NVML API 参考指南 (PDF) - vR570 (较旧版本) - 上次更新于 2025 年 1 月 29 日 - 发送反馈

4.5. 记账统计

一组 API,旨在提供关于 GPU 使用情况的每个进程的信息。

注意
  • 所有记账统计和记账模式都存在于 NVIDIA 驱动程序中,并在驱动程序卸载时重置为默认值(禁用)。建议在启用持久模式的情况下运行。

  • 启用记账模式对 GPU 性能没有负面影响。

模块

 

结构体 

函数

nvmlReturn_t nvmlDeviceClearAccountingPids ( nvmlDevice_t 设备 )
nvmlReturn_t nvmlDeviceGetAccountingBufferSize ( nvmlDevice_t 设备, unsigned int* 缓冲区大小 )
nvmlReturn_t nvmlDeviceGetAccountingMode ( nvmlDevice_t 设备, nvmlEnableState_t* 模式 )
nvmlReturn_t nvmlDeviceGetAccountingPids ( nvmlDevice_t 设备, unsigned int* 计数, unsigned int* 进程 ID )
nvmlReturn_t nvmlDeviceGetAccountingStats ( nvmlDevice_t 设备, unsigned int  进程 ID, nvmlAccountingStats_t* 统计信息 )
nvmlReturn_t nvmlDeviceSetAccountingMode ( nvmlDevice_t 设备, nvmlEnableState_t 模式 )
nvmlReturn_t nvmlDeviceSetPowerManagementLimit_v2 ( nvmlDevice_t 设备, nvmlPowerValue_v2_t* 功率值 )

函数

nvmlReturn_t nvmlDeviceClearAccountingPids ( nvmlDevice_t 设备 )
参数
设备
目标设备的标识符
返回

描述

清除关于所有已终止进程的记账信息。

适用于 Kepler 或更新的完全支持的设备。需要 root/管理员权限。

参见 nvmlDeviceGetAccountingMode 参见 nvmlDeviceGetAccountingStats 参见 nvmlDeviceSetAccountingMode

nvmlReturn_t nvmlDeviceGetAccountingBufferSize ( nvmlDevice_t 设备, unsigned int* 缓冲区大小 )
参数
设备
目标设备的标识符
缓冲区大小
在其中提供用于记账统计的循环缓冲区大小(元素数量)的引用。
返回

描述

返回带有记账 pids 的循环缓冲区可以容纳的进程数量。

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

这是将存储记账信息的进程的最大数量,在此数量之后,关于最旧进程的信息将被关于新进程的信息覆盖。

另请参阅

nvmlDeviceGetAccountingStats

nvmlDeviceGetAccountingPids

nvmlReturn_t nvmlDeviceGetAccountingMode ( nvmlDevice_t 设备, nvmlEnableState_t* 模式 )
参数
设备
目标设备的标识符
模式
在其中返回当前记账模式的引用
返回

描述

查询每个进程记账模式的状态。

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

参见 nvmlDeviceGetAccountingStats 了解更多详情。参见 nvmlDeviceSetAccountingMode

nvmlReturn_t nvmlDeviceGetAccountingPids ( nvmlDevice_t 设备, unsigned int* 计数, unsigned int* 进程 ID )
参数
设备
目标设备的标识符
计数
在其中提供 pids 数组大小的引用,并返回准备查询的元素数量
进程 ID
在其中返回进程 ID 列表的引用
返回

描述

查询可以查询记账统计信息的进程列表。返回的进程列表可能处于运行或终止状态。

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

要查询记账模式下的进程数量,请使用 *count = 0 和 pids=NULL 调用此函数。返回代码将是 NVML_ERROR_INSUFFICIENT_SIZE,并带有指示进程数量的更新后的 count 值。

了解更多详情,参见 nvmlDeviceGetAccountingStats

注意

在 PID 冲突的情况下,在循环缓冲区满之前,某些进程可能无法访问。

另请参阅

nvmlDeviceGetAccountingBufferSize

nvmlReturn_t nvmlDeviceGetAccountingStats ( nvmlDevice_t 设备, unsigned int  进程 ID, nvmlAccountingStats_t* 统计信息 )
参数
设备
目标设备的标识符
进程 ID
要查询统计信息的目标进程的进程 ID
统计信息
在其中返回进程的记账统计信息的引用
返回

描述

查询进程的记账统计信息。

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

记账统计信息捕获进程生命周期内的 GPU 利用率和其他统计信息。可以在进程的生命周期内及其终止后查询记账统计信息。nvmlAccountingStats_t 中的时间字段在进程生命周期内报告为 0,并在进程终止后更新为实际运行时间。记账统计信息保存在循环缓冲区中,新创建的进程会覆盖关于旧进程的信息。

参见 nvmlAccountingStats_t 了解有关每个返回指标的描述。可以查询的进程列表可以从 nvmlDeviceGetAccountingPids 检索。

注意
  • 记账模式需要开启。参见 nvmlDeviceGetAccountingMode

  • 只能查询计算和图形应用程序的统计信息。监控应用程序的统计信息无法查询,因为它们不贡献 GPU 利用率。

  • 在 pid 冲突的情况下,将仅报告最新进程(最后终止的进程)的统计信息

另请参阅

nvmlDeviceGetAccountingBufferSize

nvmlReturn_t nvmlDeviceSetAccountingMode ( nvmlDevice_t 设备, nvmlEnableState_t 模式 )
参数
设备
目标设备的标识符
模式
目标记账模式
返回

描述

启用或禁用每个进程的记账。

适用于 Kepler 或更新的完全支持的设备。需要 root/管理员权限。

注意
  • 此设置不是持久性的,并且在驱动程序卸载后将默认为禁用。启用持久模式以确保设置不会切换为禁用。

  • 启用记账模式对 GPU 性能没有负面影响。

  • 禁用记账会清除所有记账 pids 信息。

  • 在启用 MIG 的 GPU 上,记账模式将设置为禁用,且不支持更改它。

参见 nvmlDeviceGetAccountingMode 参见 nvmlDeviceGetAccountingStats 参见 nvmlDeviceClearAccountingPids

nvmlReturn_t nvmlDeviceSetPowerManagementLimit_v2 ( nvmlDevice_t 设备, nvmlPowerValue_v2_t* 功率值 )
参数
设备
目标设备的标识符
功率值
要设置的以毫瓦为单位的功率管理限制
返回

描述

设置此设备的新功率限制。

适用于 Kepler 或更新的完全支持的设备。需要 root/管理员权限。

参见 nvmlDeviceGetPowerManagementLimitConstraints 以检查允许的值范围。

参见 nvmlPowerValue_v2_t 了解有关该结构体的更多信息。

注意

限制在重启或驱动程序卸载后不会持久。启用持久模式以防止在没有应用程序使用设备时驱动程序卸载。

此 API 替换了 nvmlDeviceSetPowerManagementLimit。它可以作为旧版本的直接替代品使用。

另请参阅

NVML_FI_DEV_POWER_AVERAGE

NVML_FI_DEV_POWER_INSTANT

NVML_FI_DEV_POWER_MIN_LIMIT

NVML_FI_DEV_POWER_MAX_LIMIT

NVML_FI_DEV_POWER_CURRENT_LIMIT

NVLink


NVML API 参考指南 (PDF) - vR570 (较旧版本) - 上次更新于 2025 年 1 月 29 日 - 发送反馈