4.1. 设备结构体
类
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- union
- struct
定义
- #define NVML_DEVICE_PCI_BUS_ID_BUFFER_SIZE 32
- #define NVML_DEVICE_PCI_BUS_ID_BUFFER_V2_SIZE 16
- #define NVML_DEVICE_PCI_BUS_ID_FMT "%08X:%02X:%02X.0"
- #define NVML_DEVICE_PCI_BUS_ID_FMT_ARGS ( pciInfo )
- #define NVML_DEVICE_PCI_BUS_ID_LEGACY_FMT "%04X:%02X:%02X.0"
- #define NVML_MAX_PHYSICAL_BRIDGE (128)
- #define NVML_NVLINK_MAX_LINKS 18
- #define NVML_VALUE_NOT_AVAILABLE (-1)
- #define nvmlProcessDetailList_v1
枚举
- enum nvmlBridgeChipType_t
- enum nvmlCoolerControl_t
- enum nvmlCoolerTarget_t
- enum nvmlGpuTopologyLevel_t
- enum nvmlIntNvLinkDeviceType_t
- enum nvmlNvLinkCapability_t
- enum nvmlNvLinkErrorCounter_t
- enum nvmlNvLinkUtilizationCountPktTypes_t
- enum nvmlNvLinkUtilizationCountUnits_t
- enum nvmlPcieUtilCounter_t
- enum nvmlPerfPolicyType_t
- enum nvmlSamplingType_t
- enum nvmlThermalController_t
- enum nvmlThermalTarget_t
- enum nvmlValueType_t
定义
- #define NVML_DEVICE_PCI_BUS_ID_BUFFER_SIZE 32
-
保证缓冲区大小足够大,以容纳 PCI 总线 ID
- #define NVML_DEVICE_PCI_BUS_ID_BUFFER_V2_SIZE 16
-
保证缓冲区大小足够大,以容纳 busIdLegacy 的 PCI 总线 ID
- #define NVML_DEVICE_PCI_BUS_ID_FMT "%08X:%02X:%02X.0"
-
busId 的 PCI 格式字符串
- #define NVML_DEVICE_PCI_BUS_ID_FMT_ARGS ( pciInfo )
-
用于从 nvmlPciInfo_t 填充 pci 总线 ID 格式的实用宏
值
(pciInfo)->domain, \ (pciInfo)->bus, \ (pciInfo)->device
- #define NVML_DEVICE_PCI_BUS_ID_LEGACY_FMT "%04X:%02X:%02X.0"
-
busIdLegacy 的 PCI 格式字符串
- #define NVML_MAX_PHYSICAL_BRIDGE (128)
-
每个板卡物理桥接器的最大限制
- #define NVML_NVLINK_MAX_LINKS 18
-
支持的最大 NvLink 链路数
- #define NVML_VALUE_NOT_AVAILABLE (-1)
-
某些字段在不可用时采用的特殊常量。当只有结构体的一部分不可用时使用。
每个结构体都明确说明何时检查此值。
- #define nvmlProcessDetailList_v1
-
nvmlProcessDetailList 版本
值
NVML_STRUCT_VERSION(ProcessDetailList, 1)
枚举
- enum nvmlBridgeChipType_t
-
枚举桥接芯片类型
值
- NVML_BRIDGE_CHIP_PLX = 0
- NVML_BRIDGE_CHIP_BRO4 = 1
- enum nvmlCoolerControl_t
-
散热器控制类型
值
- NVML_THERMAL_COOLER_SIGNAL_NONE = 0
- 此散热器没有控制信号。
- NVML_THERMAL_COOLER_SIGNAL_TOGGLE = 1
- 此散热器只能切换为 ON 或 OFF(例如开关)。
- NVML_THERMAL_COOLER_SIGNAL_VARIABLE = 2
- 此散热器的级别可以在某个最小值到某个最大值之间调整(例如旋钮)。
- NVML_THERMAL_COOLER_SIGNAL_COUNT
- enum nvmlCoolerTarget_t
-
散热器的目标
值
- NVML_THERMAL_COOLER_TARGET_NONE = 1<<0
- 此散热器不冷却任何东西。
- NVML_THERMAL_COOLER_TARGET_GPU = 1<<1
- 此散热器可以冷却 GPU。
- NVML_THERMAL_COOLER_TARGET_MEMORY = 1<<2
- 此散热器可以冷却显存。
- NVML_THERMAL_COOLER_TARGET_POWER_SUPPLY = 1<<3
- 此散热器可以冷却电源。
- NVML_THERMAL_COOLER_TARGET_GPU_RELATED = (NVML_THERMAL_COOLER_TARGET_GPU|NVML_THERMAL_COOLER_TARGET_MEMORY|NVML_THERMAL_COOLER_TARGET_POWER_SUPPLY)
- 此散热器冷却与其目标 GPU 相关的所有组件。GPU_RELATED = GPU | MEMORY | POWER_SUPPLY。
- enum nvmlGpuTopologyLevel_t
-
表示系统中两个 GPU 之间的级别关系。枚举值之间留有间隔,以便将来添加更多关系
值
- NVML_TOPOLOGY_INTERNAL = 0
- NVML_TOPOLOGY_SINGLE = 10
- NVML_TOPOLOGY_MULTIPLE = 20
- NVML_TOPOLOGY_HOSTBRIDGE = 30
- NVML_TOPOLOGY_NODE = 40
- NVML_TOPOLOGY_SYSTEM = 50
- enum nvmlIntNvLinkDeviceType_t
-
枚举 NvLink 的远程设备类型
值
- NVML_NVLINK_DEVICE_TYPE_GPU = 0x00
- NVML_NVLINK_DEVICE_TYPE_IBMNPU = 0x01
- NVML_NVLINK_DEVICE_TYPE_SWITCH = 0x02
- NVML_NVLINK_DEVICE_TYPE_UNKNOWN = 0xFF
- enum nvmlNvLinkCapability_t
-
枚举 NvLink 可查询的功能
值
- NVML_NVLINK_CAP_P2P_SUPPORTED = 0
- NVML_NVLINK_CAP_SYSMEM_ACCESS = 1
- NVML_NVLINK_CAP_P2P_ATOMICS = 2
- NVML_NVLINK_CAP_SYSMEM_ATOMICS = 3
- NVML_NVLINK_CAP_SLI_BRIDGE = 4
- NVML_NVLINK_CAP_VALID = 5
- NVML_NVLINK_CAP_COUNT
- enum nvmlNvLinkErrorCounter_t
-
枚举 NvLink 可查询的错误计数器
值
- NVML_NVLINK_ERROR_DL_REPLAY = 0
- NVML_NVLINK_ERROR_DL_RECOVERY = 1
- NVML_NVLINK_ERROR_DL_CRC_FLIT = 2
- NVML_NVLINK_ERROR_DL_CRC_DATA = 3
- NVML_NVLINK_ERROR_DL_ECC_DATA = 4
- NVML_NVLINK_ERROR_COUNT
- enum nvmlNvLinkUtilizationCountPktTypes_t
-
枚举表示要计数的 NvLink 利用率计数器数据包类型 ** 这仅适用于单位为数据包或字节的情况 ** 如 nvmlNvLinkUtilizationCountUnits_t 中指定 ** 所有数据包过滤器描述都以目标 GPU 为中心 ** 这些可以“OR”在一起
值
- NVML_NVLINK_COUNTER_PKTFILTER_NOP = 0x1
- NVML_NVLINK_COUNTER_PKTFILTER_READ = 0x2
- NVML_NVLINK_COUNTER_PKTFILTER_WRITE = 0x4
- NVML_NVLINK_COUNTER_PKTFILTER_RATOM = 0x8
- NVML_NVLINK_COUNTER_PKTFILTER_NRATOM = 0x10
- NVML_NVLINK_COUNTER_PKTFILTER_FLUSH = 0x20
- NVML_NVLINK_COUNTER_PKTFILTER_RESPDATA = 0x40
- NVML_NVLINK_COUNTER_PKTFILTER_RESPNODATA = 0x80
- NVML_NVLINK_COUNTER_PKTFILTER_ALL = 0xFF
- enum nvmlNvLinkUtilizationCountUnits_t
-
枚举表示 NvLink 利用率计数器数据包单位
值
- NVML_NVLINK_COUNTER_UNIT_CYCLES = 0
- NVML_NVLINK_COUNTER_UNIT_PACKETS = 1
- NVML_NVLINK_COUNTER_UNIT_BYTES = 2
- NVML_NVLINK_COUNTER_UNIT_RESERVED = 3
- NVML_NVLINK_COUNTER_UNIT_COUNT
- enum nvmlPcieUtilCounter_t
-
表示可查询的 PCIe 利用率计数器
值
- NVML_PCIE_UTIL_TX_BYTES = 0
- NVML_PCIE_UTIL_RX_BYTES = 1
- NVML_PCIE_UTIL_COUNT
- enum nvmlPerfPolicyType_t
-
表示可以查询违规时间的性能策略类型
值
- NVML_PERF_POLICY_POWER = 0
- 电源违规导致 GPU 降至应用时钟以下的时长。
- NVML_PERF_POLICY_THERMAL = 1
- 热量违规导致 GPU 降至应用时钟以下的时长。
- NVML_PERF_POLICY_SYNC_BOOST = 2
- 同步加速导致 GPU 降至应用时钟以下的时长。
- NVML_PERF_POLICY_BOARD_LIMIT = 3
- 板卡限制导致 GPU 降至应用时钟以下的时长。
- NVML_PERF_POLICY_LOW_UTILIZATION = 4
- 低利用率导致 GPU 降至应用时钟以下的时长。
- NVML_PERF_POLICY_RELIABILITY = 5
- 板卡可靠性限制导致 GPU 降至应用时钟以下的时长。
- NVML_PERF_POLICY_TOTAL_APP_CLOCKS = 10
- 任何限制器(上述 0-5)导致 GPU 保持在应用时钟以下的总时间。
- NVML_PERF_POLICY_TOTAL_BASE_CLOCKS = 11
- GPU 保持在基本时钟以下的总时间。
- NVML_PERF_POLICY_COUNT
- enum nvmlSamplingType_t
-
表示采样事件的类型
值
- NVML_TOTAL_POWER_SAMPLES = 0
- 表示 GPU 消耗的总功率。
- NVML_GPU_UTILIZATION_SAMPLES = 1
- 表示在一个或多个内核在 GPU 上执行期间的时间百分比。
- NVML_MEMORY_UTILIZATION_SAMPLES = 2
- 表示全局(设备)显存正在被读取或写入的时间百分比。
- NVML_ENC_UTILIZATION_SAMPLES = 3
- 表示 NVENC 保持繁忙的时间百分比。
- NVML_DEC_UTILIZATION_SAMPLES = 4
- 表示 NVDEC 保持繁忙的时间百分比。
- NVML_PROCESSOR_CLK_SAMPLES = 5
- 表示处理器时钟采样。
- NVML_MEMORY_CLK_SAMPLES = 6
- 表示显存时钟采样。
- NVML_MODULE_POWER_SAMPLES = 7
- 表示模块功耗采样,适用于 Grace Hopper 及更高版本的总模块功耗。
- NVML_JPG_UTILIZATION_SAMPLES = 8
- 表示 NVJPG 保持繁忙的时间百分比。
- NVML_OFA_UTILIZATION_SAMPLES = 9
- 表示 NVOFA 保持繁忙的时间百分比。
- NVML_SAMPLINGTYPE_COUNT
- enum nvmlThermalController_t
-
表示热传感器控制器
值
- NVML_THERMAL_CONTROLLER_NONE = 0
- NVML_THERMAL_CONTROLLER_GPU_INTERNAL
- NVML_THERMAL_CONTROLLER_ADM1032
- NVML_THERMAL_CONTROLLER_ADT7461
- NVML_THERMAL_CONTROLLER_MAX6649
- NVML_THERMAL_CONTROLLER_MAX1617
- NVML_THERMAL_CONTROLLER_LM99
- NVML_THERMAL_CONTROLLER_LM89
- NVML_THERMAL_CONTROLLER_LM64
- NVML_THERMAL_CONTROLLER_G781
- NVML_THERMAL_CONTROLLER_ADT7473
- NVML_THERMAL_CONTROLLER_SBMAX6649
- NVML_THERMAL_CONTROLLER_VBIOSEVT
- NVML_THERMAL_CONTROLLER_OS
- NVML_THERMAL_CONTROLLER_NVSYSCON_CANOAS
- NVML_THERMAL_CONTROLLER_NVSYSCON_E551
- NVML_THERMAL_CONTROLLER_MAX6649R
- NVML_THERMAL_CONTROLLER_ADT7473S
- NVML_THERMAL_CONTROLLER_UNKNOWN = -1
- enum nvmlThermalTarget_t
-
表示热传感器目标
值
- NVML_THERMAL_TARGET_NONE = 0
- NVML_THERMAL_TARGET_GPU = 1
- GPU 核心温度需要 NvPhysicalGpuHandle。
- NVML_THERMAL_TARGET_MEMORY = 2
- GPU 显存温度需要 NvPhysicalGpuHandle。
- NVML_THERMAL_TARGET_POWER_SUPPLY = 4
- GPU 电源温度需要 NvPhysicalGpuHandle。
- NVML_THERMAL_TARGET_BOARD = 8
- GPU 板载环境温度需要 NvPhysicalGpuHandle。
- NVML_THERMAL_TARGET_VCD_BOARD = 9
- 视觉计算设备板卡温度需要 NvVisualComputingDeviceHandle。
- NVML_THERMAL_TARGET_VCD_INLET = 10
- 视觉计算设备入口温度需要 NvVisualComputingDeviceHandle。
- NVML_THERMAL_TARGET_VCD_OUTLET = 11
- 视觉计算设备出口温度需要 NvVisualComputingDeviceHandle。
- NVML_THERMAL_TARGET_ALL = 15
- NVML_THERMAL_TARGET_UNKNOWN = -1
- enum nvmlValueType_t
-
表示返回的采样值的类型
值
- NVML_VALUE_TYPE_DOUBLE = 0
- NVML_VALUE_TYPE_UNSIGNED_INT = 1
- NVML_VALUE_TYPE_UNSIGNED_LONG = 2
- NVML_VALUE_TYPE_UNSIGNED_LONG_LONG = 3
- NVML_VALUE_TYPE_SIGNED_LONG_LONG = 4
- NVML_VALUE_TYPE_SIGNED_INT = 5
- NVML_VALUE_TYPE_UNSIGNED_SHORT = 6
- NVML_VALUE_TYPE_COUNT