4.2. 设备枚举
类
定义
- #define MAX_CLK_DOMAINS 32
- #define NVML_ADAPTIVE_CLOCKING_INFO_STATUS_DISABLED 0x00000000
- #define NVML_BUS_TYPE_UNKNOWN 0
- #define NVML_DEVICE_ARCH_KEPLER 2
- #define NVML_DOUBLE_BIT_ECC
- #define NVML_FAN_POLICY_TEMPERATURE_CONTINOUS_SW 0
- #define NVML_GSP_FIRMWARE_VERSION_BUF_SIZE 0x40
- #define NVML_PCIE_LINK_MAX_SPEED_INVALID 0x00000000
- #define NVML_POWER_SCOPE_GPU 0U
- 仅目标 GPU。
- #define NVML_POWER_SCOPE_MEMORY 2U
- 目标 GPU 内存。
- #define NVML_POWER_SCOPE_MODULE 1U
- 目标整个模块。
- #define NVML_POWER_SOURCE_AC 0x00000000
- #define NVML_SINGLE_BIT_ECC
- #define nvmlEccBitType_t nvmlMemoryErrorType_t
- #define nvmlFlagDefault 0x00
- 用于指定某些函数默认行为的通用标志。 有关详细信息,请参阅特定函数的描述。
- #define nvmlFlagForce 0x01
- 用于强制某些行为的通用标志。 有关详细信息,请参阅特定函数的描述。
枚举
- enum nvmlBrandType_t
- enum nvmlClockId_t
- enum nvmlClockType_t
- enum nvmlComputeMode_t
- enum nvmlDriverModel_t
- enum nvmlEccCounterType_t
- enum nvmlEnableState_t
- enum nvmlGpuOperationMode_t
- enum nvmlGpuUtilizationDomainId_t
- enum nvmlInforomObject_t
- enum nvmlMemoryErrorType_t
- enum nvmlMemoryLocation_t
- enum nvmlNvlinkVersion_t
- enum nvmlPageRetirementCause_t
- enum nvmlPstates_t
- enum nvmlRestrictedAPI_t
- enum nvmlReturn_t
- enum nvmlTemperatureSensors_t
- enum nvmlTemperatureThresholds_t
定义
- #define MAX_CLK_DOMAINS 32
-
最大时钟监视器可用数量
- #define NVML_ADAPTIVE_CLOCKING_INFO_STATUS_DISABLED 0x00000000
-
自适应时钟状态
- #define NVML_BUS_TYPE_UNKNOWN 0
-
PCI 总线类型
- #define NVML_DEVICE_ARCH_KEPLER 2
-
简化的芯片架构
- #define NVML_DOUBLE_BIT_ECC
-
值
NVML_MEMORY_ERROR_TYPE_UNCORRECTED
- #define NVML_FAN_POLICY_TEMPERATURE_CONTINOUS_SW 0
-
设备电源模式 设备风扇控制策略
- #define NVML_GSP_FIRMWARE_VERSION_BUF_SIZE 0x40
-
GSP 固件
- #define NVML_PCIE_LINK_MAX_SPEED_INVALID 0x00000000
-
设备 PCIE 链路最大速度
- #define NVML_POWER_SCOPE_GPU 0U
-
设备范围 - 这对于检索 GPU 和模块(例如 GPU + CPU)级别的遥测数据非常有用
- #define NVML_POWER_SCOPE_MEMORY 2U
-
- #define NVML_POWER_SCOPE_MODULE 1U
-
- #define NVML_POWER_SOURCE_AC 0x00000000
-
设备电源
- #define NVML_SINGLE_BIT_ECC
-
值
NVML_MEMORY_ERROR_TYPE_CORRECTED
- #define nvmlEccBitType_t nvmlMemoryErrorType_t
- #define nvmlFlagDefault 0x00
-
- #define nvmlFlagForce 0x01
-
枚举
- enum nvmlBrandType_t
-
* GPU 的品牌
值
- NVML_BRAND_UNKNOWN = 0
- NVML_BRAND_QUADRO = 1
- NVML_BRAND_TESLA = 2
- NVML_BRAND_NVS = 3
- NVML_BRAND_GRID = 4
- NVML_BRAND_GEFORCE = 5
- NVML_BRAND_TITAN = 6
- NVML_BRAND_NVIDIA_VAPPS = 7
- NVML_BRAND_NVIDIA_VPC = 8
- NVML_BRAND_NVIDIA_VCS = 9
- NVML_BRAND_NVIDIA_VWS = 10
- NVML_BRAND_NVIDIA_CLOUD_GAMING = 11
- NVML_BRAND_NVIDIA_VGAMING = NVML_BRAND_NVIDIA_CLOUD_GAMING
- NVML_BRAND_QUADRO_RTX = 12
- NVML_BRAND_NVIDIA_RTX = 13
- NVML_BRAND_NVIDIA = 14
- NVML_BRAND_GEFORCE_RTX = 15
- NVML_BRAND_TITAN_RTX = 16
- NVML_BRAND_COUNT
- enum nvmlClockId_t
-
时钟 ID。 这些与 nvmlClockType_t 结合使用以指定单个时钟值。
值
- NVML_CLOCK_ID_CURRENT = 0
- 当前实际时钟值。
- NVML_CLOCK_ID_APP_CLOCK_TARGET = 1
- 目标应用程序时钟。
- NVML_CLOCK_ID_APP_CLOCK_DEFAULT = 2
- 默认应用程序时钟目标。
- NVML_CLOCK_ID_CUSTOMER_BOOST_MAX = 3
- OEM 定义的最大时钟频率。
- NVML_CLOCK_ID_COUNT
- 时钟 ID 的计数。
- enum nvmlClockType_t
-
时钟类型。
所有速度单位均为 Mhz。
值
- NVML_CLOCK_GRAPHICS = 0
- 图形时钟域。
- NVML_CLOCK_SM = 1
- SM 时钟域。
- NVML_CLOCK_MEM = 2
- 内存时钟域。
- NVML_CLOCK_VIDEO = 3
- 视频编码器/解码器时钟域。
- NVML_CLOCK_COUNT
- 时钟类型的计数。
- enum nvmlComputeMode_t
-
计算模式。
NVML_COMPUTEMODE_EXCLUSIVE_PROCESS 在 CUDA 4.0 中添加。 早期 CUDA 版本支持单一独占模式,该模式等效于 CUDA 4.0 及更高版本中的 NVML_COMPUTEMODE_EXCLUSIVE_THREAD。
值
- NVML_COMPUTEMODE_DEFAULT = 0
- 默认计算模式 -- 每个设备多个上下文。
- NVML_COMPUTEMODE_EXCLUSIVE_THREAD = 1
- 支持已移除。
- NVML_COMPUTEMODE_PROHIBITED = 2
- 计算禁止模式 -- 每个设备无上下文。
- NVML_COMPUTEMODE_EXCLUSIVE_PROCESS = 3
- 计算独占进程模式 -- 每个设备仅一个上下文,可同时从多个线程使用。
- NVML_COMPUTEMODE_COUNT
- enum nvmlDriverModel_t
-
驱动程序模型。
仅限 Windows。
值
- NVML_DRIVER_WDDM = 0
- WDDM 驱动程序模型 -- GPU 被视为显示设备。
- NVML_DRIVER_WDM = 1
- WDM (TCC) 模型(已弃用)-- GPU 被视为通用计算设备。
- NVML_DRIVER_MCDM = 2
- MCDM 驱动程序模型 -- GPU 被视为 Microsoft 计算设备。
- enum nvmlEccCounterType_t
-
ECC 计数器类型。
注意:易失性计数在每次驱动程序加载时重置。 在 Windows 上,这在每次启动时发生一次。 在 Linux 上,这可能更频繁。 在 Linux 上,当没有活动的客户端存在时,驱动程序会卸载。 如果持久模式已启用或始终有驱动程序客户端处于活动状态(例如 X11),则 Linux 也看到每次启动行为。 否则,易失性计数在每次运行计算应用程序时重置。
值
- NVML_VOLATILE_ECC = 0
- 易失性计数在每次驱动程序加载时重置。
- NVML_AGGREGATE_ECC = 1
- 聚合计数在重新启动后仍然存在(即,在设备的生命周期内)。
- NVML_ECC_COUNTER_TYPE_COUNT
- 内存计数器类型的计数。
- enum nvmlEnableState_t
-
通用启用/禁用枚举。
值
- NVML_FEATURE_DISABLED = 0
- 功能已禁用。
- NVML_FEATURE_ENABLED = 1
- 功能已启用。
- enum nvmlGpuOperationMode_t
-
GPU 操作模式
GOM 允许通过禁用 GPU 功能来降低功耗并优化 GPU 吞吐量。
每个 GOM 都旨在满足特定用户需求。
值
- NVML_GOM_ALL_ON = 0
- 所有功能均已启用并以全速运行。
- NVML_GOM_COMPUTE = 1
- 专为仅运行计算任务而设计。 不允许图形操作
- NVML_GOM_LOW_DP = 2
- 专为运行不需要高带宽双精度图形应用程序而设计
- enum nvmlGpuUtilizationDomainId_t
-
表示 GPU 利用率域
值
- NVML_GPU_UTILIZATION_DOMAIN_GPU = 0
- 图形引擎域。
- NVML_GPU_UTILIZATION_DOMAIN_FB = 1
- 帧缓冲区域。
- NVML_GPU_UTILIZATION_DOMAIN_VID = 2
- 视频引擎域。
- NVML_GPU_UTILIZATION_DOMAIN_BUS = 3
- 总线接口域。
- enum nvmlInforomObject_t
-
可用的 infoROM 对象。
值
- NVML_INFOROM_OEM = 0
- OEM 定义的对象。
- NVML_INFOROM_ECC = 1
- 确定 ECC 支持级别的 ECC 对象。
- NVML_INFOROM_POWER = 2
- 电源管理对象。
- NVML_INFOROM_DEN = 3
- DRAM 加密对象。
- NVML_INFOROM_COUNT
- 这计算驱动程序知道的 infoROM 对象的数量。
- enum nvmlMemoryErrorType_t
-
内存错误类型
值
- NVML_MEMORY_ERROR_TYPE_CORRECTED = 0
- 已纠正的内存错误 对于 ECC 错误,这些是单位错误 对于纹理内存,这些是通过重新发送修复的错误
- NVML_MEMORY_ERROR_TYPE_UNCORRECTED = 1
- 未纠正的内存错误 对于 ECC 错误,这些是双位错误 对于纹理内存,这些是重新发送失败的错误
- NVML_MEMORY_ERROR_TYPE_COUNT
- 内存错误类型的计数。
- enum nvmlMemoryLocation_t
-
值
- NVML_MEMORY_LOCATION_L1_CACHE = 0
- GPU L1 缓存。
- NVML_MEMORY_LOCATION_L2_CACHE = 1
- GPU L2 缓存。
- NVML_MEMORY_LOCATION_DRAM = 2
- 图灵+ DRAM。
- NVML_MEMORY_LOCATION_DEVICE_MEMORY = 2
- GPU 设备内存。
- NVML_MEMORY_LOCATION_REGISTER_FILE = 3
- GPU 寄存器文件。
- NVML_MEMORY_LOCATION_TEXTURE_MEMORY = 4
- GPU 纹理内存。
- NVML_MEMORY_LOCATION_TEXTURE_SHM = 5
- 共享内存。
- NVML_MEMORY_LOCATION_CBU = 6
- CBU。
- NVML_MEMORY_LOCATION_SRAM = 7
- 图灵+ SRAM。
- NVML_MEMORY_LOCATION_COUNT
- 这计算驱动程序知道的内存位置的数量。
- enum nvmlNvlinkVersion_t
-
表示 Nvlink 版本
值
- NVML_NVLINK_VERSION_INVALID = 0
- NVML_NVLINK_VERSION_1_0 = 1
- NVML_NVLINK_VERSION_2_0 = 2
- NVML_NVLINK_VERSION_2_2 = 3
- NVML_NVLINK_VERSION_3_0 = 4
- NVML_NVLINK_VERSION_3_1 = 5
- NVML_NVLINK_VERSION_4_0 = 6
- NVML_NVLINK_VERSION_5_0 = 7
- enum nvmlPageRetirementCause_t
-
页面停用原因
值
- NVML_PAGE_RETIREMENT_CAUSE_MULTIPLE_SINGLE_BIT_ECC_ERRORS = 0
- 页面因多个单位 ECC 错误而停用。
- NVML_PAGE_RETIREMENT_CAUSE_DOUBLE_BIT_ECC_ERROR = 1
- 页面因双位 ECC 错误而停用。
- NVML_PAGE_RETIREMENT_CAUSE_COUNT
- enum nvmlPstates_t
-
允许的 P 状态。
值
- NVML_PSTATE_0 = 0
- 性能状态 0 -- 最大性能。
- NVML_PSTATE_1 = 1
- 性能状态 1。
- NVML_PSTATE_2 = 2
- 性能状态 2。
- NVML_PSTATE_3 = 3
- 性能状态 3。
- NVML_PSTATE_4 = 4
- 性能状态 4。
- NVML_PSTATE_5 = 5
- 性能状态 5。
- NVML_PSTATE_6 = 6
- 性能状态 6。
- NVML_PSTATE_7 = 7
- 性能状态 7。
- NVML_PSTATE_8 = 8
- 性能状态 8。
- NVML_PSTATE_9 = 9
- 性能状态 9。
- NVML_PSTATE_10 = 10
- 性能状态 10。
- NVML_PSTATE_11 = 11
- 性能状态 11。
- NVML_PSTATE_12 = 12
- 性能状态 12。
- NVML_PSTATE_13 = 13
- 性能状态 13。
- NVML_PSTATE_14 = 14
- 性能状态 14。
- NVML_PSTATE_15 = 15
- 性能状态 15 -- 最小性能。
- NVML_PSTATE_UNKNOWN = 32
- 未知性能状态。
- enum nvmlRestrictedAPI_t
-
允许更改默认权限限制的 API 类型
值
- NVML_RESTRICTED_API_SET_APPLICATION_CLOCKS = 0
- 更改应用程序时钟的 API,请参阅 nvmlDeviceSetApplicationsClocks 和 nvmlDeviceResetApplicationsClocks
- NVML_RESTRICTED_API_SET_AUTO_BOOSTED_CLOCKS = 1
- 启用/禁用自动加速时钟的 API,请参阅 nvmlDeviceSetAutoBoostedClocksEnabled
- NVML_RESTRICTED_API_COUNT
- enum nvmlReturn_t
-
NVML API 调用的返回值。
值
- NVML_SUCCESS = 0
- 操作成功。
- NVML_ERROR_UNINITIALIZED = 1
- NVML 未首先使用 nvmlInit() 初始化。
- NVML_ERROR_INVALID_ARGUMENT = 2
- 提供的参数无效。
- NVML_ERROR_NOT_SUPPORTED = 3
- 目标设备上不支持请求的操作。
- NVML_ERROR_NO_PERMISSION = 4
- 当前用户没有操作权限。
- NVML_ERROR_ALREADY_INITIALIZED = 5
- 已弃用:现在允许多次初始化,通过引用计数。
- NVML_ERROR_NOT_FOUND = 6
- 查找对象的查询不成功。
- NVML_ERROR_INSUFFICIENT_SIZE = 7
- 输入参数不够大。
- NVML_ERROR_INSUFFICIENT_POWER = 8
- 设备的外部电源线未正确连接。
- NVML_ERROR_DRIVER_NOT_LOADED = 9
- NVIDIA 驱动程序未加载。
- NVML_ERROR_TIMEOUT = 10
- 用户提供的超时已过。
- NVML_ERROR_IRQ_ISSUE = 11
- NVIDIA 内核检测到 GPU 存在中断问题。
- NVML_ERROR_LIBRARY_NOT_FOUND = 12
- 找不到或无法加载 NVML 共享库。
- NVML_ERROR_FUNCTION_NOT_FOUND = 13
- 本地 NVML 版本未实现此功能。
- NVML_ERROR_CORRUPTED_INFOROM = 14
- infoROM 已损坏
- NVML_ERROR_GPU_IS_LOST = 15
- GPU 已从总线上脱落或无法访问。
- NVML_ERROR_RESET_REQUIRED = 16
- GPU 需要重置才能再次使用。
- NVML_ERROR_OPERATING_SYSTEM = 17
- GPU 控制设备已被操作系统/cgroups 阻止。
- NVML_ERROR_LIB_RM_VERSION_MISMATCH = 18
- RM 检测到驱动程序/库版本不匹配。
- NVML_ERROR_IN_USE = 19
- 由于 GPU 当前正在使用中,因此无法执行操作。
- NVML_ERROR_MEMORY = 20
- 内存不足。
- NVML_ERROR_NO_DATA = 21
- 没有数据。
- NVML_ERROR_VGPU_ECC_NOT_SUPPORTED = 22
- 目标设备上不支持请求的 vGPU 操作,因为 ECC 已启用。
- NVML_ERROR_INSUFFICIENT_RESOURCES = 23
- 关键资源耗尽,内存除外。
- NVML_ERROR_FREQ_NOT_SUPPORTED = 24
- 关键资源耗尽,内存除外。
- NVML_ERROR_ARGUMENT_VERSION_MISMATCH = 25
- 提供的版本无效/不受支持。
- NVML_ERROR_DEPRECATED = 26
- 请求的功能已弃用。
- NVML_ERROR_NOT_READY = 27
- 系统未准备好进行请求。
- NVML_ERROR_GPU_NOT_FOUND = 28
- 未找到 GPU。
- NVML_ERROR_INVALID_STATE = 29
- 资源未处于执行请求操作的正确状态。
- NVML_ERROR_UNKNOWN = 999
- 发生内部驱动程序错误。
- enum nvmlTemperatureSensors_t
-
温度传感器。
值
- NVML_TEMPERATURE_GPU = 0
- GPU 芯片的温度传感器。
- NVML_TEMPERATURE_COUNT
- enum nvmlTemperatureThresholds_t
-
温度阈值。
值
- NVML_TEMPERATURE_THRESHOLD_SHUTDOWN = 0
- NVML_TEMPERATURE_THRESHOLD_SLOWDOWN = 1
- NVML_TEMPERATURE_THRESHOLD_MEM_MAX = 2
- NVML_TEMPERATURE_THRESHOLD_GPU_MAX = 3
- NVML_TEMPERATURE_THRESHOLD_ACOUSTIC_MIN = 4
- NVML_TEMPERATURE_THRESHOLD_ACOUSTIC_CURR = 5
- NVML_TEMPERATURE_THRESHOLD_ACOUSTIC_MAX = 6
- NVML_TEMPERATURE_THRESHOLD_GPS_CURR = 7
- NVML_TEMPERATURE_THRESHOLD_COUNT