4.24. vGPU 管理
本章介绍支持 NVIDIA vGPU 的 API。
函数
- nvmlReturn_t nvmlDeviceGetActiveVgpus ( nvmlDevice_t device, unsigned int* vgpuCount, nvmlVgpuInstance_t* vgpuInstances )
- nvmlReturn_t nvmlDeviceGetCreatableVgpus ( nvmlDevice_t device, unsigned int* vgpuCount, nvmlVgpuTypeId_t* vgpuTypeIds )
- nvmlReturn_t nvmlDeviceGetSupportedVgpus ( nvmlDevice_t device, unsigned int* vgpuCount, nvmlVgpuTypeId_t* vgpuTypeIds )
- nvmlReturn_t nvmlDeviceGetVgpuCapabilities ( nvmlDevice_t device, nvmlDeviceVgpuCapability_t capability, unsigned int* capResult )
- nvmlReturn_t nvmlGetVgpuDriverCapabilities ( nvmlVgpuDriverCapability_t capability, unsigned int* capResult )
- nvmlReturn_t nvmlVgpuInstanceGetEccMode ( nvmlVgpuInstance_t vgpuInstance, nvmlEnableState_t* eccMode )
- nvmlReturn_t nvmlVgpuInstanceGetEncoderCapacity ( nvmlVgpuInstance_t vgpuInstance, unsigned int* encoderCapacity )
- nvmlReturn_t nvmlVgpuInstanceGetEncoderSessions ( nvmlVgpuInstance_t vgpuInstance, unsigned int* sessionCount, nvmlEncoderSessionInfo_t* sessionInfo )
- nvmlReturn_t nvmlVgpuInstanceGetEncoderStats ( nvmlVgpuInstance_t vgpuInstance, unsigned int* sessionCount, unsigned int* averageFps, unsigned int* averageLatency )
- nvmlReturn_t nvmlVgpuInstanceGetFBCSessions ( nvmlVgpuInstance_t vgpuInstance, unsigned int* sessionCount, nvmlFBCSessionInfo_t* sessionInfo )
- nvmlReturn_t nvmlVgpuInstanceGetFBCStats ( nvmlVgpuInstance_t vgpuInstance, nvmlFBCStats_t* fbcStats )
- nvmlReturn_t nvmlVgpuInstanceGetFbUsage ( nvmlVgpuInstance_t vgpuInstance, unsigned long long* fbUsage )
- nvmlReturn_t nvmlVgpuInstanceGetFrameRateLimit ( nvmlVgpuInstance_t vgpuInstance, unsigned int* frameRateLimit )
- nvmlReturn_t nvmlVgpuInstanceGetGpuInstanceId ( nvmlVgpuInstance_t vgpuInstance, unsigned int* gpuInstanceId )
- nvmlReturn_t nvmlVgpuInstanceGetGpuPciId ( nvmlVgpuInstance_t vgpuInstance, char* vgpuPciId, unsigned int* length )
- nvmlReturn_t nvmlVgpuInstanceGetLicenseStatus ( nvmlVgpuInstance_t vgpuInstance, unsigned int* licensed )
- nvmlReturn_t nvmlVgpuInstanceGetMdevUUID ( nvmlVgpuInstance_t vgpuInstance, char* mdevUuid, unsigned int size )
- nvmlReturn_t nvmlVgpuInstanceGetType ( nvmlVgpuInstance_t vgpuInstance, nvmlVgpuTypeId_t* vgpuTypeId )
- nvmlReturn_t nvmlVgpuInstanceGetUUID ( nvmlVgpuInstance_t vgpuInstance, char* uuid, unsigned int size )
- nvmlReturn_t nvmlVgpuInstanceGetVmDriverVersion ( nvmlVgpuInstance_t vgpuInstance, char* version, unsigned int length )
- nvmlReturn_t nvmlVgpuInstanceGetVmID ( nvmlVgpuInstance_t vgpuInstance, char* vmId, unsigned int size, nvmlVgpuVmIdType_t* vmIdType )
- nvmlReturn_t nvmlVgpuInstanceSetEncoderCapacity ( nvmlVgpuInstance_t vgpuInstance, unsigned int encoderCapacity )
- nvmlReturn_t nvmlVgpuTypeGetBAR1Info ( nvmlVgpuTypeId_t vgpuTypeId, nvmlVgpuTypeBar1Info_t* bar1Info )
- nvmlReturn_t nvmlVgpuTypeGetCapabilities ( nvmlVgpuTypeId_t vgpuTypeId, nvmlVgpuCapability_t capability, unsigned int* capResult )
- nvmlReturn_t nvmlVgpuTypeGetClass ( nvmlVgpuTypeId_t vgpuTypeId, char* vgpuTypeClass, unsigned int* size )
- nvmlReturn_t nvmlVgpuTypeGetDeviceID ( nvmlVgpuTypeId_t vgpuTypeId, unsigned long long* deviceID, unsigned long long* subsystemID )
- nvmlReturn_t nvmlVgpuTypeGetFrameRateLimit ( nvmlVgpuTypeId_t vgpuTypeId, unsigned int* frameRateLimit )
- nvmlReturn_t nvmlVgpuTypeGetFramebufferSize ( nvmlVgpuTypeId_t vgpuTypeId, unsigned long long* fbSize )
- nvmlReturn_t nvmlVgpuTypeGetGpuInstanceProfileId ( nvmlVgpuTypeId_t vgpuTypeId, unsigned int* gpuInstanceProfileId )
- nvmlReturn_t nvmlVgpuTypeGetLicense ( nvmlVgpuTypeId_t vgpuTypeId, char* vgpuTypeLicenseString, unsigned int size )
- nvmlReturn_t nvmlVgpuTypeGetMaxInstances ( nvmlDevice_t device, nvmlVgpuTypeId_t vgpuTypeId, unsigned int* vgpuInstanceCount )
- nvmlReturn_t nvmlVgpuTypeGetMaxInstancesPerVm ( nvmlVgpuTypeId_t vgpuTypeId, unsigned int* vgpuInstanceCountPerVm )
- nvmlReturn_t nvmlVgpuTypeGetName ( nvmlVgpuTypeId_t vgpuTypeId, char* vgpuTypeName, unsigned int* size )
- nvmlReturn_t nvmlVgpuTypeGetNumDisplayHeads ( nvmlVgpuTypeId_t vgpuTypeId, unsigned int* numDisplayHeads )
- nvmlReturn_t nvmlVgpuTypeGetResolution ( nvmlVgpuTypeId_t vgpuTypeId, unsigned int displayIndex, unsigned int* xdim, unsigned int* ydim )
函数
- nvmlReturn_t nvmlDeviceGetActiveVgpus ( nvmlDevice_t device, unsigned int* vgpuCount, nvmlVgpuInstance_t* vgpuInstances )
-
参数
- device
- 目标设备的标识符
- vgpuCount
- 指针,传入数组大小,并返回类型数量
- vgpuInstances
- 指向数组的指针,用于返回 vGPU 实例列表
返回值
- NVML_SUCCESS 操作成功完成
- NVML_ERROR_UNINITIALIZED 如果库未成功初始化
- NVML_ERROR_INVALID_ARGUMENT 如果 device 无效,或 vgpuCount 为 NULL
- NVML_ERROR_INSUFFICIENT_SIZE 如果大小太小
- NVML_ERROR_NOT_SUPPORTED 如果设备不支持 vGPU
- NVML_ERROR_UNKNOWN 任何意外错误
描述
检索设备上活动的 vGPU 实例。
活动 vGPU 实例的数组在调用者提供的缓冲区中返回,该缓冲区由 vgpuInstances 指向。数组元素计数在 vgpuCount 中传入,vgpuCount 用于返回写入缓冲区的 vGPU 实例数。
如果提供的缓冲区不够大,无法容纳 vGPU 实例数组,则函数返回 NVML_ERROR_INSUFFICIENT_SIZE,并且 vgpuCount 中包含所需的 nvmlVgpuInstance_t 数组的元素计数。要查询活动 vGPU 实例的数量,请使用 *vgpuCount = 0 调用此函数。如果不支持 vGPU 类型,代码将返回 NVML_ERROR_INSUFFICIENT_SIZE 或 NVML_SUCCESS。
适用于 Kepler 或更新的完全支持的设备。
- nvmlReturn_t nvmlDeviceGetCreatableVgpus ( nvmlDevice_t device, unsigned int* vgpuCount, nvmlVgpuTypeId_t* vgpuTypeIds )
-
参数
- device
- 目标设备的标识符
- vgpuCount
- 指向调用者提供的数组大小的指针,并返回 vGPU 类型的数量
- vgpuTypeIds
- 指向调用者提供的数组的指针,用于返回 vGPU 类型列表
返回值
- NVML_SUCCESS 操作成功完成
- NVML_ERROR_INSUFFICIENT_SIZE vgpuTypeIds 缓冲区太小,数组元素计数在 vgpuCount 中返回
- NVML_ERROR_INVALID_ARGUMENT 如果 vgpuCount 为 NULL
- NVML_ERROR_NOT_SUPPORTED 如果设备不支持 vGPU
- NVML_ERROR_UNKNOWN 任何意外错误
描述
检索物理 GPU (device) 上当前可创建的 vGPU 类型。
物理 GPU(由 device 指示)的可创建 vGPU 类型数组在调用者提供的缓冲区中返回,该缓冲区由 vgpuTypeIds 指向。nvmlVgpuTypeId_t 数组的元素计数在 vgpuCount 中传入,vgpuCount 用于返回写入缓冲区的 vGPU 类型数。
设备的 creatable vGPU 类型可能会随时间而变化,因为可以并发运行在设备上的 vGPU 类型可能存在限制。例如,如果设备上一次只允许一种 vGPU 类型,则可创建列表将限制为设备上已在运行的 vGPU 类型。
如果提供的缓冲区不够大,无法容纳 vGPU 类型数组,则函数返回 NVML_ERROR_INSUFFICIENT_SIZE,并且 vgpuCount 中包含所需的 nvmlVgpuTypeId_t 数组的元素计数。要查询可以为 GPU 创建的 vGPU 类型数量,请使用 *vgpuCount = 0 调用此函数。如果不可创建 vGPU 类型,代码将返回 NVML_ERROR_INSUFFICIENT_SIZE 或 NVML_SUCCESS。
- nvmlReturn_t nvmlDeviceGetSupportedVgpus ( nvmlDevice_t device, unsigned int* vgpuCount, nvmlVgpuTypeId_t* vgpuTypeIds )
-
参数
- device
- 目标设备的标识符
- vgpuCount
- 指向调用者提供的数组大小的指针,并返回 vGPU 类型的数量
- vgpuTypeIds
- 指向调用者提供的数组的指针,用于返回 vGPU 类型列表
返回值
- NVML_SUCCESS 操作成功完成
- NVML_ERROR_INSUFFICIENT_SIZE vgpuTypeIds 缓冲区太小,数组元素计数在 vgpuCount 中返回
- NVML_ERROR_INVALID_ARGUMENT 如果 vgpuCount 为 NULL 或 device 无效
- NVML_ERROR_NOT_SUPPORTED 如果设备不支持 vGPU
- NVML_ERROR_UNKNOWN 任何意外错误
描述
检索物理 GPU (device) 上支持的 vGPU 类型。
物理 GPU(由 device 指示)的支持 vGPU 类型数组在调用者提供的缓冲区中返回,该缓冲区由 vgpuTypeIds 指向。nvmlVgpuTypeId_t 数组的元素计数在 vgpuCount 中传入,vgpuCount 用于返回写入缓冲区的 vGPU 类型数。
如果提供的缓冲区不够大,无法容纳 vGPU 类型数组,则函数返回 NVML_ERROR_INSUFFICIENT_SIZE,并且 vgpuCount 中包含所需的 nvmlVgpuTypeId_t 数组的元素计数。要查询 GPU 支持的 vGPU 类型数量,请使用 *vgpuCount = 0 调用此函数。如果不支持 vGPU 类型,代码将返回 NVML_ERROR_INSUFFICIENT_SIZE 或 NVML_SUCCESS。
- nvmlReturn_t nvmlDeviceGetVgpuCapabilities ( nvmlDevice_t device, nvmlDeviceVgpuCapability_t capability, unsigned int* capResult )
-
参数
- device
- 目标设备的标识符
- capability
- 指定要查询的 nvmlDeviceVgpuCapability_t
- capResult
- 指定是否支持查询的功能,并返回功能的数据
返回值
- NVML_SUCCESS 操作成功完成
- NVML_ERROR_UNINITIALIZED 如果库未成功初始化
- NVML_ERROR_INVALID_ARGUMENT 如果 device 无效,或者 capability 无效,或者 capResult 为 NULL
- NVML_ERROR_NOT_SUPPORTED API 在当前状态下不受支持,或者设备不在 vGPU 模式下
- NVML_ERROR_UNKNOWN 任何意外错误
描述
检索 GPU 请求的 vGPU 功能。
有关可以查询的特定功能,请参阅 nvmlDeviceVgpuCapability_t 结构。capResult 中的返回值报告一个非零值,指示支持该功能,并根据查询的功能报告该功能的数据。
适用于 Maxwell 或更新的完全支持的设备。
- nvmlReturn_t nvmlGetVgpuDriverCapabilities ( nvmlVgpuDriverCapability_t capability, unsigned int* capResult )
-
参数
- capability
- 指定要查询的 nvmlVgpuDriverCapability_t
- capResult
- 查询功能的布尔值,指示是否支持该特性
返回值
- NVML_SUCCESS 操作成功完成
- NVML_ERROR_UNINITIALIZED 如果库未成功初始化
- NVML_ERROR_INVALID_ARGUMENT 如果 capability 无效,或者 capResult 为 NULL
- NVML_ERROR_NOT_SUPPORTED API 在当前状态下不受支持,或者设备不在 vGPU 模式下
- NVML_ERROR_UNKNOWN 任何意外错误
描述
检索请求的 vGPU 驱动程序功能。
有关可以查询的特定功能,请参阅 nvmlVgpuDriverCapability_t 结构。capResult 中的返回值应视为布尔值,非零值表示支持该功能。
适用于 Maxwell 或更新的完全支持的设备。
- nvmlReturn_t nvmlVgpuInstanceGetEccMode ( nvmlVgpuInstance_t vgpuInstance, nvmlEnableState_t* eccMode )
-
参数
- vgpuInstance
- 目标 vGPU 实例的标识符
- eccMode
- 用于返回当前 ECC 模式的引用
返回值
- NVML_SUCCESS 如果已成功检索 vgpuInstance 的 ECC 模式
- NVML_ERROR_UNINITIALIZED 如果库未成功初始化
- NVML_ERROR_INVALID_ARGUMENT 如果 vgpuInstance 为 0,或 mode 为 NULL
- NVML_ERROR_NOT_FOUND 如果 vgpuInstance 与系统上有效的活动 vGPU 实例不匹配
- NVML_ERROR_NOT_SUPPORTED 如果 vGPU 不支持此功能
- NVML_ERROR_UNKNOWN 任何意外错误
描述
检索 vGPU 实例的当前 ECC 模式。
- nvmlReturn_t nvmlVgpuInstanceGetEncoderCapacity ( nvmlVgpuInstance_t vgpuInstance, unsigned int* encoderCapacity )
-
参数
- vgpuInstance
- 目标 vGPU 实例的标识符
- encoderCapacity
- 指向用于存放编码器容量的无符号整数的引用
返回值
- NVML_SUCCESS 如果已检索 encoderCapacity
- NVML_ERROR_UNINITIALIZED 如果库未成功初始化
- NVML_ERROR_INVALID_ARGUMENT 如果 vgpuInstance 为 0,或 encoderQueryType 无效
- NVML_ERROR_NOT_FOUND 如果 vgpuInstance 与系统上有效的活动 vGPU 实例不匹配
- NVML_ERROR_UNKNOWN 任何意外错误
描述
检索 vGPU 实例的编码器容量,以最大编码器容量的百分比表示,有效值范围为 0-100。
适用于 Maxwell 或更新的完全支持的设备。
- nvmlReturn_t nvmlVgpuInstanceGetEncoderSessions ( nvmlVgpuInstance_t vgpuInstance, unsigned int* sessionCount, nvmlEncoderSessionInfo_t* sessionInfo )
-
参数
- vgpuInstance
- 目标 vGPU 实例的标识符
- sessionCount
- 指向调用者提供的数组大小的引用,并返回会话数。
- sessionInfo
- 指向调用者提供的数组的引用,会话信息列表将在其中返回。
返回值
- NVML_SUCCESS 如果已获取 sessionInfo
- NVML_ERROR_UNINITIALIZED 如果库未成功初始化
- NVML_ERROR_INSUFFICIENT_SIZE 如果 sessionCount 太小,数组元素计数在 sessionCount 中返回
- NVML_ERROR_INVALID_ARGUMENT 如果 sessionCount 为 NULL,或者 vgpuInstance 为 0。
- NVML_ERROR_NOT_FOUND 如果 vgpuInstance 与系统上有效的活动 vGPU 实例不匹配
- NVML_ERROR_UNKNOWN 任何意外错误
描述
检索有关 vGPU 实例上所有活动编码器会话的信息。
活动编码器会话的数组在调用者提供的缓冲区中返回,该缓冲区由 sessionInfo 指向。数组元素计数在 sessionCount 中传入,sessionCount 用于返回写入缓冲区的会话数。
如果提供的缓冲区不够大,无法容纳活动会话数组,则函数返回 NVML_ERROR_INSUFFICIENT_SIZE,并且 sessionCount 中包含所需的 nvmlEncoderSessionInfo_t 数组的元素计数。要查询活动编码器会话的数量,请使用 *sessionCount = 0 调用此函数。代码将返回 NVML_SUCCESS,并在 *sessionCount 中更新活动编码器会话的数量。
适用于 Maxwell 或更新的完全支持的设备。
- nvmlReturn_t nvmlVgpuInstanceGetEncoderStats ( nvmlVgpuInstance_t vgpuInstance, unsigned int* sessionCount, unsigned int* averageFps, unsigned int* averageLatency )
-
参数
- vgpuInstance
- 目标 vGPU 实例的标识符
- sessionCount
- 指向用于存放活动编码器会话计数的无符号整数的引用
- averageFps
- 指向用于存放所有活动会话的尾随平均 FPS 的无符号整数的引用
- averageLatency
- 指向用于存放编码延迟(以微秒为单位)的无符号整数的引用
返回值
- NVML_SUCCESS 如果已获取 sessionCount、averageFps 和 averageLatency
- NVML_ERROR_UNINITIALIZED 如果库未成功初始化
- NVML_ERROR_INVALID_ARGUMENT 如果 sessionCount、averageFps 或 averageLatency 为 NULL,或者 vgpuInstance 为 0。
- NVML_ERROR_NOT_FOUND 如果 vgpuInstance 与系统上有效的活动 vGPU 实例不匹配
- NVML_ERROR_UNKNOWN 任何意外错误
描述
检索 vGPU 实例的当前编码器统计信息
适用于 Maxwell 或更新的完全支持的设备。
- nvmlReturn_t nvmlVgpuInstanceGetFBCSessions ( nvmlVgpuInstance_t vgpuInstance, unsigned int* sessionCount, nvmlFBCSessionInfo_t* sessionInfo )
-
参数
- vgpuInstance
- 目标 vGPU 实例的标识符
- sessionCount
- 指向调用者提供的数组大小的引用,并返回会话数。
- sessionInfo
- 用于返回会话信息的引用
返回值
- NVML_SUCCESS 如果已获取 sessionInfo
- NVML_ERROR_UNINITIALIZED 如果库未成功初始化
- NVML_ERROR_INVALID_ARGUMENT 如果 vgpuInstance 为 0,或 sessionCount 为 NULL。
- NVML_ERROR_NOT_FOUND 如果 vgpuInstance 与系统上有效的活动 vGPU 实例不匹配
- NVML_ERROR_INSUFFICIENT_SIZE 如果 sessionCount 太小,数组元素计数在 sessionCount 中返回
- NVML_ERROR_UNKNOWN 任何意外错误
描述
检索 vGPU 实例上处于活动状态的帧缓冲区捕获会话的信息。
活动的 FBC 会话数组将在调用方提供的缓冲区中返回,该缓冲区由 sessionInfo 指向。数组元素计数在 sessionCount 中传递,sessionCount 用于返回写入缓冲区的会话数。
如果提供的缓冲区不足以容纳活动会话数组,该函数将返回 NVML_ERROR_INSUFFICIENT_SIZE 错误,并在 sessionCount 中返回所需的 nvmlFBCSessionInfo_t 数组的元素计数。要查询活动的 FBC 会话数,请调用此函数并将 *sessionCount 设置为 0。代码将返回 NVML_SUCCESS,并且活动 FBC 会话数将在 *sessionCount 中更新。
适用于 Maxwell 或更新的完全支持的设备。
注意如果自会话开始以来没有捕获到新帧,则 sessionInfo 中返回的 FBC 会话的 hResolution、vResolution、averageFPS 和 averageLatency 数据可能为零。
- nvmlReturn_t nvmlVgpuInstanceGetFBCStats ( nvmlVgpuInstance_t vgpuInstance, nvmlFBCStats_t* fbcStats )
-
参数
- vgpuInstance
- 目标 vGPU 实例的标识符
- fbcStats
- 指向包含 NvFBC 统计信息的 nvmlFBCStats_t 结构的引用
返回值
- NVML_SUCCESS 如果已获取 fbcStats
- NVML_ERROR_UNINITIALIZED 如果库未成功初始化
- NVML_ERROR_INVALID_ARGUMENT 如果 vgpuInstance 为 0,或者 fbcStats 为 NULL
- NVML_ERROR_NOT_FOUND 如果 vgpuInstance 与系统上有效的活动 vGPU 实例不匹配
- NVML_ERROR_UNKNOWN 任何意外错误
描述
检索 vGPU 实例的活动帧缓冲区捕获会话统计信息
适用于 Maxwell 或更新的完全支持的设备。
- nvmlReturn_t nvmlVgpuInstanceGetFbUsage ( nvmlVgpuInstance_t vgpuInstance, unsigned long long* fbUsage )
-
参数
- vgpuInstance
- 目标实例的标识符
- fbUsage
- 指向帧缓冲区使用量(以字节为单位)的指针
返回值
- NVML_SUCCESS 操作成功完成
- NVML_ERROR_UNINITIALIZED 如果库未成功初始化
- NVML_ERROR_INVALID_ARGUMENT 如果 vgpuInstance 为 0,或者 fbUsage 为 NULL
- NVML_ERROR_NOT_FOUND 如果 vgpuInstance 与系统上有效的活动 vGPU 实例不匹配
- NVML_ERROR_UNKNOWN 任何意外错误
描述
检索帧缓冲区使用量(以字节为单位)。
帧缓冲区使用量是 VM 当前使用的 vGPU 帧缓冲区内存量。
适用于 Kepler 或更新的完全支持的设备。
- nvmlReturn_t nvmlVgpuInstanceGetFrameRateLimit ( nvmlVgpuInstance_t vgpuInstance, unsigned int* frameRateLimit )
-
参数
- vgpuInstance
- 目标 vGPU 实例的标识符
- frameRateLimit
- 引用以返回帧率限制
返回值
- NVML_SUCCESS 如果已设置 frameRateLimit
- NVML_ERROR_NOT_SUPPORTED 如果 vGPU 类型禁用了帧率限制器
- NVML_ERROR_UNINITIALIZED 如果库未成功初始化
- NVML_ERROR_INVALID_ARGUMENT 如果 vgpuInstance 为 0,或者 frameRateLimit 为 NULL
- NVML_ERROR_NOT_FOUND 如果 vgpuInstance 与系统上有效的活动 vGPU 实例不匹配
- NVML_ERROR_UNKNOWN 任何意外错误
描述
检索为 vGPU 实例设置的帧率限制。
返回为 vGPU 实例设置的帧率限制值
适用于 Kepler 或更新的完全支持的设备。
- nvmlReturn_t nvmlVgpuInstanceGetGpuInstanceId ( nvmlVgpuInstance_t vgpuInstance, unsigned int* gpuInstanceId )
-
参数
- vgpuInstance
- 目标 vGPU 实例的标识符
- gpuInstanceId
- GPU 实例 ID
返回值
- NVML_SUCCESS 操作成功完成
- NVML_ERROR_UNINITIALIZED 如果库未成功初始化
- NVML_ERROR_INVALID_ARGUMENT 如果 vgpuInstance 为 0,或者 gpuInstanceId 为 NULL。
- NVML_ERROR_NOT_FOUND 如果 vgpuInstance 与系统上有效的活动 vGPU 实例不匹配
- NVML_ERROR_UNKNOWN 任何意外错误
描述
检索给定 vGPU 实例的 GPU 实例 ID。对于 MIG 支持的 vGPU 实例,API 将返回有效的 GPU 实例 ID,否则返回 INVALID_GPU_INSTANCE_ID。
适用于 Kepler 或更新的完全支持的设备。
- nvmlReturn_t nvmlVgpuInstanceGetGpuPciId ( nvmlVgpuInstance_t vgpuInstance, char* vgpuPciId, unsigned int* length )
-
参数
- vgpuInstance
- 目标 vGPU 实例的标识符
- vgpuPciId
- 调用方提供的缓冲区,用于返回 vGPU PCI ID 字符串
- length
- vgpuPciId 缓冲区的大小
返回值
- NVML_SUCCESS 如果成功检索到 vGPU PCI ID
- NVML_ERROR_UNINITIALIZED 如果库未成功初始化
- NVML_ERROR_INVALID_ARGUMENT 如果 vgpuInstance 为 0,或者 vgpuPciId 为 NULL
- NVML_ERROR_NOT_FOUND 如果 vgpuInstance 与系统上有效的活动 vGPU 实例不匹配
- NVML_ERROR_DRIVER_NOT_LOADED 如果 NVIDIA 驱动程序未在 vGPU 实例上运行
- NVML_ERROR_INSUFFICIENT_SIZE 如果 length 太小,length 将设置为所需长度
- NVML_ERROR_UNKNOWN 任何意外错误
描述
检索给定 vGPU 实例的 PCI ID,即 VM 内部看到的 GPU 的 PCI ID。
如果 vGPU 实例上未安装 NVIDIA 驱动程序,则 vGPU PCI ID 将返回为“00000000:00:00.0”。
- nvmlReturn_t nvmlVgpuInstanceGetLicenseStatus ( nvmlVgpuInstance_t vgpuInstance, unsigned int* licensed )
-
参数
- vgpuInstance
- 目标 vGPU 实例的标识符
- licensed
- 引用以返回许可状态
返回值
- NVML_SUCCESS 如果已设置 licensed
- NVML_ERROR_UNINITIALIZED 如果库未成功初始化
- NVML_ERROR_INVALID_ARGUMENT 如果 vgpuInstance 为 0,或者 licensed 为 NULL
- NVML_ERROR_NOT_FOUND 如果 vgpuInstance 与系统上有效的活动 vGPU 实例不匹配
- NVML_ERROR_UNKNOWN 任何意外错误
已弃用
请使用 nvmlVgpuInstanceGetLicenseInfo_v2。
描述
检索 vGPU 实例的当前许可状态。
如果 vGPU 当前已获得许可,则 licensed 设置为 1,否则设置为 0。
适用于 Kepler 或更新的完全支持的设备。
- nvmlReturn_t nvmlVgpuInstanceGetMdevUUID ( nvmlVgpuInstance_t vgpuInstance, char* mdevUuid, unsigned int size )
-
参数
- vgpuInstance
- 目标 vGPU 实例的标识符
- mdevUuid
- 指向调用方提供的缓冲区的指针,用于保存 MDEV UUID
- size
- 缓冲区大小(以字节为单位)
返回值
- NVML_SUCCESS 操作成功完成
- NVML_ERROR_UNINITIALIZED 如果库未成功初始化
- NVML_ERROR_NOT_SUPPORTED 在 KVM 以外的任何虚拟机监控程序上
- NVML_ERROR_INVALID_ARGUMENT 如果 vgpuInstance 为 0,或者 mdevUuid 为 NULL
- NVML_ERROR_NOT_FOUND 如果 vgpuInstance 与系统上有效的活动 vGPU 实例不匹配
- NVML_ERROR_INSUFFICIENT_SIZE 如果大小太小
- NVML_ERROR_UNKNOWN 任何意外错误
描述
检索 vGPU 实例的 MDEV UUID。
MDEV UUID 是分配给 VM 的 mdev 设备的全局唯一标识符,以 5 部分十六进制字符串形式返回,长度不超过 80 个字符(包括 NULL 终止符)。MDEV UUID 仅在 KVM 平台上显示。请参阅 nvmlConstants::NVML_DEVICE_UUID_BUFFER_SIZE。
适用于 Maxwell 或更新的完全支持的设备。
- nvmlReturn_t nvmlVgpuInstanceGetType ( nvmlVgpuInstance_t vgpuInstance, nvmlVgpuTypeId_t* vgpuTypeId )
-
参数
- vgpuInstance
- 目标 vGPU 实例的标识符
- vgpuTypeId
- 引用以返回 vgpuTypeId
返回值
- NVML_SUCCESS 如果已设置 vgpuTypeId
- NVML_ERROR_UNINITIALIZED 如果库未成功初始化
- NVML_ERROR_INVALID_ARGUMENT 如果 vgpuInstance 为 0,或者 vgpuTypeId 为 NULL
- NVML_ERROR_NOT_FOUND 如果 vgpuInstance 与系统上有效的活动 vGPU 实例不匹配
- NVML_ERROR_UNKNOWN 任何意外错误
描述
检索 vGPU 实例的 vGPU 类型。
返回分配给 vGPU 实例的 vGPU 类型 ID。
适用于 Kepler 或更新的完全支持的设备。
- nvmlReturn_t nvmlVgpuInstanceGetUUID ( nvmlVgpuInstance_t vgpuInstance, char* uuid, unsigned int size )
-
参数
- vgpuInstance
- 目标 vGPU 实例的标识符
- uuid
- 指向调用方提供的缓冲区的指针,用于保存 vGPU UUID
- size
- 缓冲区大小(以字节为单位)
返回值
- NVML_SUCCESS 操作成功完成
- NVML_ERROR_UNINITIALIZED 如果库未成功初始化
- NVML_ERROR_INVALID_ARGUMENT 如果 vgpuInstance 为 0,或者 uuid 为 NULL
- NVML_ERROR_NOT_FOUND 如果 vgpuInstance 与系统上有效的活动 vGPU 实例不匹配
- NVML_ERROR_INSUFFICIENT_SIZE 如果大小太小
- NVML_ERROR_UNKNOWN 任何意外错误
描述
检索 vGPU 实例的 UUID。
UUID 是与 vGPU 关联的全局唯一标识符,以 5 部分十六进制字符串形式返回,长度不超过 80 个字符(包括 NULL 终止符)。请参阅 nvmlConstants::NVML_DEVICE_UUID_BUFFER_SIZE。
适用于 Kepler 或更新的完全支持的设备。
- nvmlReturn_t nvmlVgpuInstanceGetVmDriverVersion ( nvmlVgpuInstance_t vgpuInstance, char* version, unsigned int length )
-
参数
- vgpuInstance
- 目标 vGPU 实例的标识符
- version
- 调用方提供的缓冲区,用于返回驱动程序版本字符串
- length
- 版本缓冲区的大小
返回值
- NVML_SUCCESS 如果已设置 version
- NVML_ERROR_UNINITIALIZED 如果库未成功初始化
- NVML_ERROR_INVALID_ARGUMENT 如果 vgpuInstance 为 0
- NVML_ERROR_NOT_FOUND 如果 vgpuInstance 与系统上有效的活动 vGPU 实例不匹配
- NVML_ERROR_INSUFFICIENT_SIZE 如果 length 太小
- NVML_ERROR_UNKNOWN 任何意外错误
描述
检索与 vGPU 关联的 VM 中安装的 NVIDIA 驱动程序版本。
版本作为字母数字字符串在调用方提供的缓冲区 version 中返回。版本字符串的长度不会超过 80 个字符(包括 NUL 终止符)。请参阅 nvmlConstants::NVML_SYSTEM_DRIVER_VERSION_BUFFER_SIZE。
可以随时为 vGPU 实例调用 nvmlVgpuInstanceGetVmDriverVersion()。如果 VM 中未安装 NVIDIA 驱动程序,或者 VM 尚未启动到 NVIDIA 驱动程序加载和初始化的程度,则访客 VM 驱动程序版本将返回为“不可用”。
适用于 Kepler 或更新的完全支持的设备。
- nvmlReturn_t nvmlVgpuInstanceGetVmID ( nvmlVgpuInstance_t vgpuInstance, char* vmId, unsigned int size, nvmlVgpuVmIdType_t* vmIdType )
-
参数
- vgpuInstance
- 目标 vGPU 实例的标识符
- vmId
- 指向调用方提供的缓冲区的指针,用于保存 VM ID
- size
- 缓冲区大小(以字节为单位)
- vmIdType
- 指向保存 VM ID 类型的指针
返回值
- NVML_SUCCESS 操作成功完成
- NVML_ERROR_UNINITIALIZED 如果库未成功初始化
- NVML_ERROR_INVALID_ARGUMENT 如果 vmId 或 vmIdType 为 NULL,或者 vgpuInstance 为 0
- NVML_ERROR_NOT_FOUND 如果 vgpuInstance 与系统上有效的活动 vGPU 实例不匹配
- NVML_ERROR_INSUFFICIENT_SIZE 如果大小太小
- NVML_ERROR_UNKNOWN 任何意外错误
描述
检索与 vGPU 实例关联的 VM ID。
VM ID 以字符串形式返回,长度不超过 80 个字符(包括 NUL 终止符)。请参阅 nvmlConstants::NVML_DEVICE_UUID_BUFFER_SIZE。
VM ID 的格式因平台而异,并在 vmIdType 中返回的类型标识符中指示。
适用于 Kepler 或更新的完全支持的设备。
- nvmlReturn_t nvmlVgpuInstanceSetEncoderCapacity ( nvmlVgpuInstance_t vgpuInstance, unsigned int encoderCapacity )
-
参数
- vgpuInstance
- 目标 vGPU 实例的标识符
- encoderCapacity
- 编码器容量值的无符号整数
返回值
- NVML_SUCCESS 如果已设置 encoderCapacity
- NVML_ERROR_UNINITIALIZED 如果库未成功初始化
- NVML_ERROR_INVALID_ARGUMENT 如果 vgpuInstance 为 0,或者 encoderCapacity 超出 0-100 的范围。
- NVML_ERROR_NOT_FOUND 如果 vgpuInstance 与系统上有效的活动 vGPU 实例不匹配
- NVML_ERROR_UNKNOWN 任何意外错误
描述
设置 vGPU 实例的编码器容量,以最大编码器容量的百分比表示,有效值范围为 0-100。
适用于 Maxwell 或更新的完全支持的设备。
- nvmlReturn_t nvmlVgpuTypeGetBAR1Info ( nvmlVgpuTypeId_t vgpuTypeId, nvmlVgpuTypeBar1Info_t* bar1Info )
-
参数
- vgpuTypeId
- vGPU 类型的句柄
- bar1Info
- 指向 vGPU 类型 BAR1 信息结构 nvmlVgpuTypeBar1Info_t 的指针
返回值
- NVML_SUCCESS 操作成功完成
- NVML_ERROR_UNINITIALIZED 如果库未成功初始化
- NVML_ERROR_INVALID_ARGUMENT 如果 vgpuTypeId 无效,或者 bar1Info 为 NULL
- NVML_ERROR_UNKNOWN 任何意外错误
描述
检索给定 vGPU 类型的 BAR1 信息。
适用于 Maxwell 或更新的完全支持的设备。
- nvmlReturn_t nvmlVgpuTypeGetCapabilities ( nvmlVgpuTypeId_t vgpuTypeId, nvmlVgpuCapability_t capability, unsigned int* capResult )
-
参数
- vgpuTypeId
- vGPU 类型的句柄
- capability
- 指定要查询的 nvmlVgpuCapability_t
- capResult
- 查询功能的布尔值,指示是否支持该特性
返回值
- NVML_SUCCESS 操作成功完成
- NVML_ERROR_UNINITIALIZED 如果库未成功初始化
- NVML_ERROR_INVALID_ARGUMENT 如果 vgpuTypeId 无效,或者 capability 无效,或者 capResult 为 NULL
- NVML_ERROR_UNKNOWN 任何意外错误
描述
检索给定 vGPU 类型的请求功能。有关可以查询的特定功能,请参阅 nvmlVgpuCapability_t 结构。capResult 中的返回值应视为布尔值,非零值表示支持该功能。
适用于 Maxwell 或更新的完全支持的设备。
- nvmlReturn_t nvmlVgpuTypeGetClass ( nvmlVgpuTypeId_t vgpuTypeId, char* vgpuTypeClass, unsigned int* size )
-
参数
- vgpuTypeId
- vGPU 类型的句柄
- vgpuTypeClass
- 指向字符串数组的指针,用于返回类
- size
- 字符串的大小
返回值
- NVML_SUCCESS 操作成功完成
- NVML_ERROR_INVALID_ARGUMENT 如果 vgpuTypeId 无效,或者 vgpuTypeClass 为 NULL
- NVML_ERROR_INSUFFICIENT_SIZE 如果大小太小
- NVML_ERROR_UNKNOWN 任何意外错误
描述
检索 vGPU 类型的类。长度不会超过 64 个字符(包括 NUL 终止符)。请参阅 nvmlConstants::NVML_DEVICE_NAME_BUFFER_SIZE。
适用于 Kepler 或更新的完全支持的设备。
- nvmlReturn_t nvmlVgpuTypeGetDeviceID ( nvmlVgpuTypeId_t vgpuTypeId, unsigned long long* deviceID, unsigned long long* subsystemID )
-
参数
- vgpuTypeId
- vGPU 类型的句柄
- deviceID
- 设备 ID 和设备供应商 ID 包含在单个 32 位值中
- subsystemID
- 子系统 ID 和子系统供应商 ID 包含在单个 32 位值中
返回值
- NVML_SUCCESS 操作成功完成
- NVML_ERROR_UNINITIALIZED 如果库未成功初始化
- NVML_ERROR_INVALID_ARGUMENT 如果 vgpuTypeId 无效,或者 deviceId 或 subsystemID 为 NULL
- NVML_ERROR_UNKNOWN 任何意外错误
描述
检索 vGPU 类型的设备 ID。
适用于 Kepler 或更新的完全支持的设备。
- nvmlReturn_t nvmlVgpuTypeGetFrameRateLimit ( nvmlVgpuTypeId_t vgpuTypeId, unsigned int* frameRateLimit )
-
参数
- vgpuTypeId
- vGPU 类型的句柄
- frameRateLimit
- 引用以返回帧率限制值
返回值
- NVML_SUCCESS 操作成功完成
- NVML_ERROR_NOT_SUPPORTED 如果 vGPU 类型禁用了帧率限制器
- NVML_ERROR_UNINITIALIZED 如果库未成功初始化
- NVML_ERROR_INVALID_ARGUMENT 如果 vgpuTypeId 无效,或者 frameRateLimit 为 NULL
- NVML_ERROR_UNKNOWN 任何意外错误
描述
检索 vGPU 类型的静态帧率限制值
适用于 Kepler 或更新的完全支持的设备。
- nvmlReturn_t nvmlVgpuTypeGetFramebufferSize ( nvmlVgpuTypeId_t vgpuTypeId, unsigned long long* fbSize )
-
参数
- vgpuTypeId
- vGPU 类型的句柄
- fbSize
- 指向帧缓冲区大小(以字节为单位)的指针
返回值
- NVML_SUCCESS 操作成功完成
- NVML_ERROR_UNINITIALIZED 如果库未成功初始化
- NVML_ERROR_INVALID_ARGUMENT 如果 vgpuTypeId 无效,或者 fbSize 为 NULL
- NVML_ERROR_UNKNOWN 任何意外错误
描述
检索 vGPU 帧缓冲区大小(以字节为单位)。
适用于 Kepler 或更新的完全支持的设备。
- nvmlReturn_t nvmlVgpuTypeGetGpuInstanceProfileId ( nvmlVgpuTypeId_t vgpuTypeId, unsigned int* gpuInstanceProfileId )
-
参数
- vgpuTypeId
- vGPU 类型的句柄
- gpuInstanceProfileId
- GPU 实例 Profile ID
返回值
- NVML_SUCCESS 操作成功完成
- NVML_ERROR_NOT_SUPPORTED 如果设备未处于 vGPU 主机虚拟化模式
- NVML_ERROR_INVALID_ARGUMENT 如果 vgpuTypeId 无效,或者 gpuInstanceProfileId 为 NULL
- NVML_ERROR_UNKNOWN 任何意外错误
描述
检索给定 vGPU 类型 ID 的 GPU 实例 Profile ID。对于支持 MIG 的 vGPU 类型,API 将返回有效的 GPU 实例 Profile ID,否则返回 INVALID_GPU_INSTANCE_PROFILE_ID。
适用于 Kepler 或更新的完全支持的设备。
- nvmlReturn_t nvmlVgpuTypeGetLicense ( nvmlVgpuTypeId_t vgpuTypeId, char* vgpuTypeLicenseString, unsigned int size )
-
参数
- vgpuTypeId
- vGPU 类型的句柄
- vgpuTypeLicenseString
- 指向缓冲区的指针,用于返回许可证信息
- size
- vgpuTypeLicenseString 缓冲区的大小
返回值
- NVML_SUCCESS 操作成功完成
- NVML_ERROR_UNINITIALIZED 如果库未成功初始化
- NVML_ERROR_INVALID_ARGUMENT 如果 vgpuTypeId 无效,或者 vgpuTypeLicenseString 为 NULL
- NVML_ERROR_INSUFFICIENT_SIZE 如果大小太小
- NVML_ERROR_UNKNOWN 任何意外错误
描述
检索 vGPU 类型的许可证要求
运行指定 vGPU 类型所需的许可证类型和版本以字母数字字符串形式返回,格式为“<许可证名称>,<版本>”,例如“GRID-Virtual-PC,2.0”。如果 vGPU 可以使用* 多种类型的许可证运行,则许可证以分号分隔,例如“GRID-Virtual-PC,2.0;GRID-Virtual-WS,2.0;GRID-Virtual-WS-Ext,2.0”。
返回的字符串的总长度不会超过 128 个字符,包括 NUL 终止符。请参阅 nvmlVgpuConstants::NVML_GRID_LICENSE_BUFFER_SIZE。
适用于 Kepler 或更新的完全支持的设备。
- nvmlReturn_t nvmlVgpuTypeGetMaxInstances ( nvmlDevice_t device, nvmlVgpuTypeId_t vgpuTypeId, unsigned int* vgpuInstanceCount )
-
参数
- device
- 目标设备的标识符
- vgpuTypeId
- vGPU 类型的句柄
- vgpuInstanceCount
- 指针,用于获取给定 vgpuTypeId 类型的 vGPU 实例在设备上可创建的最大数量
返回值
- NVML_SUCCESS 操作成功完成
- NVML_ERROR_UNINITIALIZED 如果库未成功初始化
- NVML_ERROR_INVALID_ARGUMENT 如果 vgpuTypeId 无效或目标设备不支持,或者 vgpuInstanceCount 为 NULL
- NVML_ERROR_UNKNOWN 任何意外错误
描述
检索给定 vGPU 类型在设备上可创建的最大 vGPU 实例数
适用于 Kepler 或更新的完全支持的设备。
- nvmlReturn_t nvmlVgpuTypeGetMaxInstancesPerVm ( nvmlVgpuTypeId_t vgpuTypeId, unsigned int* vgpuInstanceCountPerVm )
-
参数
- vgpuTypeId
- vGPU 类型的句柄
- vgpuInstanceCountPerVm
- 指针,用于获取给定 vgpuTypeId 类型在每个 VM 中支持的最大 vGPU 实例数
返回值
- NVML_SUCCESS 操作成功完成
- NVML_ERROR_UNINITIALIZED 如果库未成功初始化
- NVML_ERROR_INVALID_ARGUMENT 如果 vgpuTypeId 无效,或者 vgpuInstanceCountPerVm 为 NULL
- NVML_ERROR_UNKNOWN 任何意外错误
描述
检索给定 vGPU 类型在每个 VM 中支持的最大 vGPU 实例数
适用于 Kepler 或更新的完全支持的设备。
- nvmlReturn_t nvmlVgpuTypeGetName ( nvmlVgpuTypeId_t vgpuTypeId, char* vgpuTypeName, unsigned int* size )
-
参数
- vgpuTypeId
- vGPU 类型的句柄
- vgpuTypeName
- 指向缓冲区的指针,用于返回名称
- size
- 缓冲区大小
返回值
- NVML_SUCCESS 操作成功完成
- NVML_ERROR_INVALID_ARGUMENT 如果 vgpuTypeId 无效,或者 name 为 NULL
- NVML_ERROR_INSUFFICIENT_SIZE 如果大小太小
- NVML_ERROR_UNKNOWN 任何意外错误
描述
检索 vGPU 类型名称。
名称是表示特定 vGPU 的字母数字字符串,例如 GRID M60-2Q。长度不会超过 64 个字符(包括 NUL 终止符)。请参阅 nvmlConstants::NVML_DEVICE_NAME_BUFFER_SIZE。
适用于 Kepler 或更新的完全支持的设备。
- nvmlReturn_t nvmlVgpuTypeGetNumDisplayHeads ( nvmlVgpuTypeId_t vgpuTypeId, unsigned int* numDisplayHeads )
-
参数
- vgpuTypeId
- vGPU 类型的句柄
- numDisplayHeads
- 指向显示头数量的指针
返回值
- NVML_SUCCESS 操作成功完成
- NVML_ERROR_UNINITIALIZED 如果库未成功初始化
- NVML_ERROR_INVALID_ARGUMENT 如果 vgpuTypeId 无效,或者 numDisplayHeads 为 NULL
- NVML_ERROR_UNKNOWN 任何意外错误
描述
检索 vGPU 支持的显示头计数。
适用于 Kepler 或更新的完全支持的设备。
- nvmlReturn_t nvmlVgpuTypeGetResolution ( nvmlVgpuTypeId_t vgpuTypeId, unsigned int displayIndex, unsigned int* xdim, unsigned int* ydim )
-
参数
- vgpuTypeId
- vGPU 类型的句柄
- displayIndex
- 显示头的从零开始的索引
- xdim
- 指向 X 维度中最大像素数的指针
- ydim
- 指向 Y 维度中最大像素数的指针
返回值
- NVML_SUCCESS 操作成功完成
- NVML_ERROR_UNINITIALIZED 如果库未成功初始化
- NVML_ERROR_INVALID_ARGUMENT 如果 vgpuTypeId 无效,或者 xdim 或 ydim 为 NULL,或者 displayIndex 超出范围。
- NVML_ERROR_UNKNOWN 任何意外错误
描述
检索 vGPU 显示头的最大支持分辨率。
适用于 Kepler 或更新的完全支持的设备。