NVML API 参考指南 (PDF) - vR570 (更旧版本) - 最后更新日期:2025 年 1 月 29 日 - 发送反馈

4.23. vGPU API

本章介绍与 NVIDIA vGPU 软件产品相关的操作。

函数

nvmlReturn_t nvmlDeviceGetGridLicensableFeatures_v4 ( nvmlDevice_t device, nvmlGridLicensableFeatures_t* pGridLicensableFeatures )
nvmlReturn_t nvmlDeviceGetHostVgpuMode ( nvmlDevice_t device, nvmlHostVgpuMode_t* pHostVgpuMode )
nvmlReturn_t nvmlDeviceGetVgpuHeterogeneousMode ( nvmlDevice_t device, nvmlVgpuHeterogeneousMode_t* pHeterogeneousMode )
nvmlReturn_t nvmlDeviceGetVgpuTypeCreatablePlacements ( nvmlDevice_t device, nvmlVgpuTypeId_t vgpuTypeId, nvmlVgpuPlacementList_t* pPlacementList )
nvmlReturn_t nvmlDeviceGetVgpuTypeSupportedPlacements ( nvmlDevice_t device, nvmlVgpuTypeId_t vgpuTypeId, nvmlVgpuPlacementList_t* pPlacementList )
nvmlReturn_t nvmlDeviceGetVirtualizationMode ( nvmlDevice_t device, nvmlGpuVirtualizationMode_t* pVirtualMode )
nvmlReturn_t nvmlDeviceSetVgpuCapabilities ( nvmlDevice_t device, nvmlDeviceVgpuCapability_t capability, nvmlEnableState_t state )
nvmlReturn_t nvmlDeviceSetVgpuHeterogeneousMode ( nvmlDevice_t device, const nvmlVgpuHeterogeneousMode_t* pHeterogeneousMode )
nvmlReturn_t nvmlDeviceSetVirtualizationMode ( nvmlDevice_t device, nvmlGpuVirtualizationMode_t virtualMode )
nvmlReturn_t nvmlVgpuInstanceGetPlacementId ( nvmlVgpuInstance_t vgpuInstance, nvmlVgpuPlacementId_t* pPlacement )
nvmlReturn_t nvmlVgpuInstanceGetRuntimeStateSize ( nvmlVgpuInstance_t vgpuInstance, nvmlVgpuRuntimeState_t* pState )
nvmlReturn_t nvmlVgpuTypeGetFbReservation ( nvmlVgpuTypeId_t vgpuTypeId, unsigned long long* fbReservation )
nvmlReturn_t nvmlVgpuTypeGetGspHeapSize ( nvmlVgpuTypeId_t vgpuTypeId, unsigned long long* gspHeapSize )

函数

nvmlReturn_t nvmlDeviceGetGridLicensableFeatures_v4 ( nvmlDevice_t device, nvmlGridLicensableFeatures_t* pGridLicensableFeatures )
参数
device
目标设备的标识符
pGridLicensableFeatures
指向结构的指针,其中返回 vGPU 软件可授权的功能
返回值

描述

检索 vGPU 软件可授权的功能。

确定系统是否支持 vGPU 软件许可。如果支持,则返回可授权功能列表及其当前许可状态。

nvmlReturn_t nvmlDeviceGetHostVgpuMode ( nvmlDevice_t device, nvmlHostVgpuMode_t* pHostVgpuMode )
参数
device
目标设备的标识符
pHostVgpuMode
用于返回当前 vGPU 模式的引用
返回值

描述

查询 vGPU 支持的设备上是否支持 SR-IOV 主机操作。

检查设备和驱动程序是否支持 SR-IOV 主机功能,如果这两个条件都为真,则指示设备处于 SR-IOV 模式。

nvmlReturn_t nvmlDeviceGetVgpuHeterogeneousMode ( nvmlDevice_t device, nvmlVgpuHeterogeneousMode_t* pHeterogeneousMode )
参数
device
目标设备的标识符
pHeterogeneousMode
指向调用者提供的 nvmlVgpuHeterogeneousMode_t 结构的指针
返回值

描述

获取设备的 vGPU 异构模式。

在异构模式下,vGPU 可以同时托管具有不同帧缓冲区大小的时间分片 vGPU。

成功返回时,该函数返回 pHeterogeneousMode->mode,其中包含当前的 vGPU 异构模式。pHeterogeneousMode->version 是结构 nvmlVgpuHeterogeneousMode_t 的版本号,调用者应设置正确的版本号以检索 vGPU 异构模式。pHeterogeneousMode->mode 可以是 NVML_FEATURE_ENABLEDNVML_FEATURE_DISABLED

nvmlReturn_t nvmlDeviceGetVgpuTypeCreatablePlacements ( nvmlDevice_t device, nvmlVgpuTypeId_t vgpuTypeId, nvmlVgpuPlacementList_t* pPlacementList )
参数
device
目标设备的标识符
vgpuTypeId
vGPU 类型句柄。vGPU 类型 ID
pPlacementList
指向 vGPU 放置结构 nvmlVgpuPlacementList_t 列表的指针
返回值

描述

查询 vGPU 类型的可创建 vGPU 放置 ID。

vgpuTypeId 指示的 vGPU 类型 ID 的可创建 vGPU 放置 ID 数组在调用者提供的 pPlacementList->placementIds 缓冲区中返回。placementIds 数组所需的内存应根据 vGPU 类型的最大实例数进行分配,可以通过 nvmlVgpuTypeGetMaxInstances() 查询。如果调用者提供的计数不足,该函数将返回 NVML_ERROR_INSUFFICIENT_SIZE 以及 pPlacementList->count 中所需的条目数。然后,调用者应重新分配大小为 pPlacementList->count * sizeof(pPlacementList->placementIds) 的缓冲区,并再次调用该函数。

可创建的 vGPU 放置 ID 可能会随时间而变化,因为对于 vGPU 实例正在运行的 vGPU 类型可能存在限制。

nvmlReturn_t nvmlDeviceGetVgpuTypeSupportedPlacements ( nvmlDevice_t device, nvmlVgpuTypeId_t vgpuTypeId, nvmlVgpuPlacementList_t* pPlacementList )
参数
device
目标设备的标识符
vgpuTypeId
vGPU 类型句柄。vGPU 类型 ID
pPlacementList
指向 vGPU 放置结构 nvmlVgpuPlacementList_t 的指针
返回值

描述

查询 vGPU 类型的受支持 vGPU 放置 ID。

该函数在调用者在 pPlacementList->placementIds 处提供的缓冲区中返回指定 vGPU 类型 ID 的受支持 vGPU 放置 ID 数组。placementIds 数组所需的内存必须根据 vGPU 类型实例的最大数量进行分配,这可以通过 nvmlVgpuTypeGetMaxInstances() 检索。如果调用者提供的计数不足,该函数将返回 NVML_ERROR_INSUFFICIENT_SIZE 以及 pPlacementList->count 中所需的条目数。然后,调用者应重新分配大小为 pPlacementList->count * sizeof(pPlacementList->placementIds) 的缓冲区,并再次调用该函数。

要获取同构放置 ID 列表,调用者需要将 pPlacementList->mode 设置为 NVML_VGPU_PGPU_HOMOGENEOUS_MODE。对于异构放置 ID,pPlacementList->mode 应设置为 NVML_VGPU_PGPU_HETEROGENEOUS_MODE。默认情况下,返回异构放置 ID 列表。

nvmlReturn_t nvmlDeviceGetVirtualizationMode ( nvmlDevice_t device, nvmlGpuVirtualizationMode_t* pVirtualMode )
参数
device
目标设备的标识符
pVirtualMode
虚拟化模式的引用。NVML_GPU_VIRTUALIZATION_? 之一
返回值

描述

此方法用于获取与 GPU 对应的虚拟化模式。

适用于 Kepler 或更新的完全支持的设备。

nvmlReturn_t nvmlDeviceSetVgpuCapabilities ( nvmlDevice_t device, nvmlDeviceVgpuCapability_t capability, nvmlEnableState_t state )
参数
device
目标设备的标识符
capability
指定要设置的 nvmlDeviceVgpuCapability_t
state
目标功能模式
返回值

描述

设置设备的所需 vGPU 功能

有关可以设置的特定功能,请参阅 nvmlDeviceVgpuCapability_t 结构。有关可用状态,请参阅 nvmlEnableState_t

nvmlReturn_t nvmlDeviceSetVgpuHeterogeneousMode ( nvmlDevice_t device, const nvmlVgpuHeterogeneousMode_t* pHeterogeneousMode )
参数
device
目标设备的标识符
pHeterogeneousMode
指向调用者提供的 nvmlVgpuHeterogeneousMode_t 结构的指针
返回值

描述

启用或禁用设备的 vGPU 异构模式。

在异构模式下,vGPU 可以同时托管具有不同帧缓冲区大小的时间分片 vGPU。

API 将在激活失败时返回相应的错误代码。例如,如果设备上有任何 vGPU 实例处于活动状态,则异构模式设置将失败,并显示错误 NVML_ERROR_IN_USE。此 API 的调用者应关闭 vGPU VM 并重试设置模式。成功返回时,该函数使用用户提供的 pHeterogeneousMode->mode 更新 vGPU 异构模式。pHeterogeneousMode->version 是结构 nvmlVgpuHeterogeneousMode_t 的版本号,调用者应设置正确的版本号以设置 vGPU 异构模式。

nvmlReturn_t nvmlDeviceSetVirtualizationMode ( nvmlDevice_t device, nvmlGpuVirtualizationMode_t virtualMode )
参数
device
目标设备的标识符
virtualMode
虚拟化模式。NVML_GPU_VIRTUALIZATION_? 之一
返回值

描述

此方法用于设置与 GPU 对应的虚拟化模式。

适用于 Kepler 或更新的完全支持的设备。

nvmlReturn_t nvmlVgpuInstanceGetPlacementId ( nvmlVgpuInstance_t vgpuInstance, nvmlVgpuPlacementId_t* pPlacement )
参数
vgpuInstance
目标 vGPU 实例的标识符
pPlacement
指向 vGPU 放置 ID 结构 nvmlVgpuPlacementId_t 的指针
返回值

描述

查询活动 vGPU 实例的放置 ID。

当处于 vGPU 异构模式时,此函数返回有效的放置 ID 作为 pPlacement->placementId,否则返回 NVML_INVALID_VGPU_PLACEMENT_ID。pPlacement->version 是结构 nvmlVgpuPlacementId_t 的版本号,调用者应设置正确的版本号以获取 vGPU 实例 vgpuInstance 的放置 ID。

nvmlReturn_t nvmlVgpuInstanceGetRuntimeStateSize ( nvmlVgpuInstance_t vgpuInstance, nvmlVgpuRuntimeState_t* pState )
参数
vgpuInstance
目标 vGPU 实例的标识符
pState
指向 vGPU 运行时状态结构的指针 nvmlVgpuRuntimeState_t
返回值

描述

检索 vGPU 实例当前使用的运行时状态大小

此大小表示 vGPU 实例在标准操作期间使用的最大内存数据大小。此测量不包括分配给 vGPU 实例的帧缓冲区 (FB) 数据大小。

适用于 Maxwell 或更新的完全支持的设备。

nvmlReturn_t nvmlVgpuTypeGetFbReservation ( nvmlVgpuTypeId_t vgpuTypeId, unsigned long long* fbReservation )
参数
vgpuTypeId
vGPU 类型句柄
fbReservation
用于返回帧缓冲区预留的引用
返回值

描述

以字节为单位检索 vGPU 类型的静态帧缓冲区预留

nvmlReturn_t nvmlVgpuTypeGetGspHeapSize ( nvmlVgpuTypeId_t vgpuTypeId, unsigned long long* gspHeapSize )
参数
vgpuTypeId
vGPU 类型句柄
gspHeapSize
用于返回 GSP 堆大小值的引用
返回值

描述

以字节为单位检索 vGPU 类型的静态 GSP 堆大小


NVML API 参考指南 (PDF) - vR570 (更旧版本) - 最后更新日期:2025 年 1 月 29 日 - 发送反馈