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

4.16. 设备查询

本章节描述了 NVML 可以对每个设备执行的查询。在每种情况下,设备都通过 nvmlDevice_t 句柄标识。此句柄通过调用 nvmlDeviceGetHandleByIndex_v2()nvmlDeviceGetHandleBySerial()nvmlDeviceGetHandleByPciBusId_v2()nvmlDeviceGetHandleByUUID() 之一获得。

模块

 

struct 

函数

nvmlReturn_t nvmlDeviceGetAPIRestriction ( nvmlDevice_t device, nvmlRestrictedAPI_t apiType, nvmlEnableState_t* isRestricted )
nvmlReturn_t nvmlDeviceGetAdaptiveClockInfoStatus ( nvmlDevice_t device, unsigned int* adaptiveClockStatus )
nvmlReturn_t nvmlDeviceGetApplicationsClock ( nvmlDevice_t device, nvmlClockType_t clockType, unsigned int* clockMHz )
nvmlReturn_t nvmlDeviceGetArchitecture ( nvmlDevice_t device, nvmlDeviceArchitecture_t* arch )
nvmlReturn_t nvmlDeviceGetAttributes_v2 ( nvmlDevice_t device, nvmlDeviceAttributes_t* attributes )
nvmlReturn_t nvmlDeviceGetAutoBoostedClocksEnabled ( nvmlDevice_t device, nvmlEnableState_t* isEnabled, nvmlEnableState_t* defaultIsEnabled )
nvmlReturn_t nvmlDeviceGetBAR1MemoryInfo ( nvmlDevice_t device, nvmlBAR1Memory_t* bar1Memory )
nvmlReturn_t nvmlDeviceGetBoardId ( nvmlDevice_t device, unsigned int* boardId )
nvmlReturn_t nvmlDeviceGetBoardPartNumber ( nvmlDevice_t device, char* partNumber, unsigned int  length )
nvmlReturn_t nvmlDeviceGetBrand ( nvmlDevice_t device, nvmlBrandType_t* type )
nvmlReturn_t nvmlDeviceGetBridgeChipInfo ( nvmlDevice_t device, nvmlBridgeChipHierarchy_t* bridgeHierarchy )
nvmlReturn_t nvmlDeviceGetBusType ( nvmlDevice_t device, nvmlBusType_t* type )
nvmlReturn_t nvmlDeviceGetC2cModeInfoV ( nvmlDevice_t device, nvmlC2cModeInfo_v1_t* c2cModeInfo )
nvmlReturn_t nvmlDeviceGetClkMonStatus ( nvmlDevice_t device, nvmlClkMonStatus_t* status )
nvmlReturn_t nvmlDeviceGetClock ( nvmlDevice_t device, nvmlClockType_t clockType, nvmlClockId_t clockId, unsigned int* clockMHz )
nvmlReturn_t nvmlDeviceGetClockInfo ( nvmlDevice_t device, nvmlClockType_t type, unsigned int* clock )
nvmlReturn_t nvmlDeviceGetClockOffsets ( nvmlDevice_t device, nvmlClockOffset_t* info )
nvmlReturn_t nvmlDeviceGetComputeMode ( nvmlDevice_t device, nvmlComputeMode_t* mode )
nvmlReturn_t nvmlDeviceGetComputeRunningProcesses_v3 ( nvmlDevice_t device, unsigned int* infoCount, nvmlProcessInfo_t* infos )
nvmlReturn_t nvmlDeviceGetConfComputeGpuAttestationReport ( nvmlDevice_t device, nvmlConfComputeGpuAttestationReport_t* gpuAtstReport )
nvmlReturn_t nvmlDeviceGetConfComputeGpuCertificate ( nvmlDevice_t device, nvmlConfComputeGpuCertificate_t* gpuCert )
nvmlReturn_t nvmlDeviceGetConfComputeMemSizeInfo ( nvmlDevice_t device, nvmlConfComputeMemSizeInfo_t* memInfo )
nvmlReturn_t nvmlDeviceGetConfComputeProtectedMemoryUsage ( nvmlDevice_t device, nvmlMemory_t* memory )
nvmlReturn_t nvmlDeviceGetCoolerInfo ( nvmlDevice_t device, nvmlCoolerInfo_t* coolerInfo )
nvmlReturn_t nvmlDeviceGetCount_v2 ( unsigned int* deviceCount )
nvmlReturn_t nvmlDeviceGetCudaComputeCapability ( nvmlDevice_t device, int* major, int* minor )
nvmlReturn_t nvmlDeviceGetCurrPcieLinkGeneration ( nvmlDevice_t device, unsigned int* currLinkGen )
nvmlReturn_t nvmlDeviceGetCurrPcieLinkWidth ( nvmlDevice_t device, unsigned int* currLinkWidth )
nvmlReturn_t nvmlDeviceGetCurrentClockFreqs ( nvmlDevice_t device, nvmlDeviceCurrentClockFreqs_t* currentClockFreqs )
nvmlReturn_t nvmlDeviceGetCurrentClocksEventReasons ( nvmlDevice_t device, unsigned long long* clocksEventReasons )
nvmlReturn_t nvmlDeviceGetCurrentClocksThrottleReasons ( nvmlDevice_t device, unsigned long long* clocksThrottleReasons )
nvmlReturn_t nvmlDeviceGetDecoderUtilization ( nvmlDevice_t device, unsigned int* utilization, unsigned int* samplingPeriodUs )
nvmlReturn_t nvmlDeviceGetDefaultApplicationsClock ( nvmlDevice_t device, nvmlClockType_t clockType, unsigned int* clockMHz )
nvmlReturn_t nvmlDeviceGetDefaultEccMode ( nvmlDevice_t device, nvmlEnableState_t* defaultMode )
nvmlReturn_t nvmlDeviceGetDetailedEccErrors ( nvmlDevice_t device, nvmlMemoryErrorType_t errorType, nvmlEccCounterType_t counterType, nvmlEccErrorCounts_t* eccCounts )
nvmlReturn_t nvmlDeviceGetDisplayActive ( nvmlDevice_t device, nvmlEnableState_t* isActive )
nvmlReturn_t nvmlDeviceGetDisplayMode ( nvmlDevice_t device, nvmlEnableState_t* display )
nvmlReturn_t nvmlDeviceGetDramEncryptionMode ( nvmlDevice_t device, nvmlDramEncryptionInfo_t* current, nvmlDramEncryptionInfo_t* pending )
nvmlReturn_t nvmlDeviceGetDriverModel_v2 ( nvmlDevice_t device, nvmlDriverModel_t* current, nvmlDriverModel_t* pending )
nvmlReturn_t nvmlDeviceGetDynamicPstatesInfo ( nvmlDevice_t device, nvmlGpuDynamicPstatesInfo_t* pDynamicPstatesInfo )
nvmlReturn_t nvmlDeviceGetEccMode ( nvmlDevice_t device, nvmlEnableState_t* current, nvmlEnableState_t* pending )
nvmlReturn_t nvmlDeviceGetEncoderCapacity ( nvmlDevice_t device, nvmlEncoderType_t encoderQueryType, unsigned int* encoderCapacity )
nvmlReturn_t nvmlDeviceGetEncoderSessions ( nvmlDevice_t device, unsigned int* sessionCount, nvmlEncoderSessionInfo_t* sessionInfos )
nvmlReturn_t nvmlDeviceGetEncoderStats ( nvmlDevice_t device, unsigned int* sessionCount, unsigned int* averageFps, unsigned int* averageLatency )
nvmlReturn_t nvmlDeviceGetEncoderUtilization ( nvmlDevice_t device, unsigned int* utilization, unsigned int* samplingPeriodUs )
nvmlReturn_t nvmlDeviceGetEnforcedPowerLimit ( nvmlDevice_t device, unsigned int* limit )
nvmlReturn_t nvmlDeviceGetFBCSessions ( nvmlDevice_t device, unsigned int* sessionCount, nvmlFBCSessionInfo_t* sessionInfo )
nvmlReturn_t nvmlDeviceGetFBCStats ( nvmlDevice_t device, nvmlFBCStats_t* fbcStats )
nvmlReturn_t nvmlDeviceGetFanControlPolicy_v2 ( nvmlDevice_t device, unsigned int  fan, nvmlFanControlPolicy_t* policy )
nvmlReturn_t nvmlDeviceGetFanSpeed ( nvmlDevice_t device, unsigned int* speed )
nvmlReturn_t nvmlDeviceGetFanSpeedRPM ( nvmlDevice_t device, nvmlFanSpeedInfo_t* fanSpeed )
nvmlReturn_t nvmlDeviceGetFanSpeed_v2 ( nvmlDevice_t device, unsigned int  fan, unsigned int* speed )
nvmlReturn_t nvmlDeviceGetGpcClkMinMaxVfOffset ( nvmlDevice_t device, int* minOffset, int* maxOffset )
nvmlReturn_t nvmlDeviceGetGpcClkVfOffset ( nvmlDevice_t device, int* offset )
nvmlReturn_t nvmlDeviceGetGpuFabricInfo ( nvmlDevice_t device, nvmlGpuFabricInfo_t* gpuFabricInfo )
nvmlReturn_t nvmlDeviceGetGpuFabricInfoV ( nvmlDevice_t device, nvmlGpuFabricInfoV_t* gpuFabricInfo )
nvmlReturn_t nvmlDeviceGetGpuMaxPcieLinkGeneration ( nvmlDevice_t device, unsigned int* maxLinkGenDevice )
nvmlReturn_t nvmlDeviceGetGpuOperationMode ( nvmlDevice_t device, nvmlGpuOperationMode_t* current, nvmlGpuOperationMode_t* pending )
nvmlReturn_t nvmlDeviceGetGraphicsRunningProcesses_v3 ( nvmlDevice_t device, unsigned int* infoCount, nvmlProcessInfo_t* infos )
nvmlReturn_t nvmlDeviceGetGspFirmwareMode ( nvmlDevice_t device, unsigned int* isEnabled, unsigned int* defaultMode )
nvmlReturn_t nvmlDeviceGetGspFirmwareVersion ( nvmlDevice_t device, char* version )
nvmlReturn_t nvmlDeviceGetHandleByIndex_v2 ( unsigned int  index, nvmlDevice_t* device )
nvmlReturn_t nvmlDeviceGetHandleByPciBusId_v2 ( const char* pciBusId, nvmlDevice_t* device )
nvmlReturn_t nvmlDeviceGetHandleBySerial ( const char* serial, nvmlDevice_t* device )
nvmlReturn_t nvmlDeviceGetHandleByUUID ( const char* uuid, nvmlDevice_t* device )
nvmlReturn_t nvmlDeviceGetIndex ( nvmlDevice_t device, unsigned int* index )
nvmlReturn_t nvmlDeviceGetInforomConfigurationChecksum ( nvmlDevice_t device, unsigned int* checksum )
nvmlReturn_t nvmlDeviceGetInforomImageVersion ( nvmlDevice_t device, char* version, unsigned int  length )
nvmlReturn_t nvmlDeviceGetInforomVersion ( nvmlDevice_t device, nvmlInforomObject_t object, char* version, unsigned int  length )
nvmlReturn_t nvmlDeviceGetIrqNum ( nvmlDevice_t device, unsigned int* irqNum )
nvmlReturn_t nvmlDeviceGetJpgUtilization ( nvmlDevice_t device, unsigned int* utilization, unsigned int* samplingPeriodUs )
nvmlReturn_t nvmlDeviceGetLastBBXFlushTime ( nvmlDevice_t device, unsigned long long* timestamp, unsignedlong* durationUs )
nvmlReturn_t nvmlDeviceGetMPSComputeRunningProcesses_v3 ( nvmlDevice_t device, unsigned int* infoCount, nvmlProcessInfo_t* infos )
nvmlReturn_t nvmlDeviceGetMarginTemperature ( nvmlDevice_t device, nvmlMarginTemperature_t* marginTempInfo )
nvmlReturn_t nvmlDeviceGetMaxClockInfo ( nvmlDevice_t 设备, nvmlClockType_t 类型, unsigned int* 时钟 )
nvmlReturn_t nvmlDeviceGetMaxCustomerBoostClock ( nvmlDevice_t 设备, nvmlClockType_t 时钟类型, unsigned int* 时钟频率 MHz )
nvmlReturn_t nvmlDeviceGetMaxPcieLinkGeneration ( nvmlDevice_t 设备, unsigned int* 最大链路代数 )
nvmlReturn_t nvmlDeviceGetMaxPcieLinkWidth ( nvmlDevice_t 设备, unsigned int* 最大链路宽度 )
nvmlReturn_t nvmlDeviceGetMemClkMinMaxVfOffset ( nvmlDevice_t 设备, int* 最小偏移量, int* 最大偏移量 )
nvmlReturn_t nvmlDeviceGetMemClkVfOffset ( nvmlDevice_t 设备, int* 偏移量 )
nvmlReturn_t nvmlDeviceGetMemoryBusWidth ( nvmlDevice_t 设备, unsigned int* 总线宽度 )
nvmlReturn_t nvmlDeviceGetMemoryErrorCounter ( nvmlDevice_t 设备, nvmlMemoryErrorType_t 内存错误类型, nvmlEccCounterType_t ECC 计数器类型, nvmlMemoryLocation_t 位置类型, unsigned long long* 计数 )
nvmlReturn_t nvmlDeviceGetMemoryInfo ( nvmlDevice_t 设备, nvmlMemory_t* 内存信息 )
nvmlReturn_t nvmlDeviceGetMemoryInfo_v2 ( nvmlDevice_t 设备, nvmlMemory_v2_t* 内存信息 )
nvmlReturn_t nvmlDeviceGetMinMaxClockOfPState ( nvmlDevice_t 设备, nvmlClockType_t 类型, nvmlPstates_t P 状态, unsigned int* 最小时钟频率 MHz, unsigned int* 最大时钟频率 MHz )
nvmlReturn_t nvmlDeviceGetMinMaxFanSpeed ( nvmlDevice_t 设备, unsigned int* 最小风扇速度, unsigned int* 最大风扇速度 )
nvmlReturn_t nvmlDeviceGetMinorNumber ( nvmlDevice_t 设备, unsigned int* 次设备号 )
nvmlReturn_t nvmlDeviceGetModuleId ( nvmlDevice_t 设备, unsigned int* 模块 ID )
nvmlReturn_t nvmlDeviceGetMultiGpuBoard ( nvmlDevice_t 设备, unsigned int* 多 GPU 板卡 )
nvmlReturn_t nvmlDeviceGetName ( nvmlDevice_t 设备, char* 名称, unsigned int  长度 )
nvmlReturn_t nvmlDeviceGetNumFans ( nvmlDevice_t 设备, unsigned int* 风扇数量 )
nvmlReturn_t nvmlDeviceGetNumGpuCores ( nvmlDevice_t 设备, unsigned int* GPU 核心数 )
nvmlReturn_t nvmlDeviceGetOfaUtilization ( nvmlDevice_t 设备, unsigned int* OFA 利用率, unsigned int* 采样周期 (微秒) )
nvmlReturn_t nvmlDeviceGetP2PStatus ( nvmlDevice_t 设备 1, nvmlDevice_t 设备 2, nvmlGpuP2PCapsIndex_t P2P 功能索引, nvmlGpuP2PStatus_t* P2P 状态 )
nvmlReturn_t nvmlDeviceGetPciInfoExt ( nvmlDevice_t 设备, nvmlPciInfoExt_t* PCI 信息扩展 )
nvmlReturn_t nvmlDeviceGetPciInfo_v3 ( nvmlDevice_t 设备, nvmlPciInfo_t* PCI 信息 )
nvmlReturn_t nvmlDeviceGetPcieLinkMaxSpeed ( nvmlDevice_t 设备, unsigned int* 最大 PCIe 链路速度 )
nvmlReturn_t nvmlDeviceGetPcieReplayCounter ( nvmlDevice_t 设备, unsigned int*  )
nvmlReturn_t nvmlDeviceGetPcieSpeed ( nvmlDevice_t 设备, unsigned int* PCIe 速度 )
nvmlReturn_t nvmlDeviceGetPcieThroughput ( nvmlDevice_t 设备, nvmlPcieUtilCounter_t 计数器, unsigned int*  )
nvmlReturn_t nvmlDeviceGetPerformanceModes ( nvmlDevice_t 设备, nvmlDevicePerfModes_t* 性能模式 )
nvmlReturn_t nvmlDeviceGetPerformanceState ( nvmlDevice_t 设备, nvmlPstates_t* P 状态 )
nvmlReturn_t nvmlDeviceGetPersistenceMode ( nvmlDevice_t 设备, nvmlEnableState_t* 持久模式 )
nvmlReturn_t nvmlDeviceGetPlatformInfo ( nvmlDevice_t 设备, nvmlPlatformInfo_t* 平台信息 )
nvmlReturn_t nvmlDeviceGetPowerManagementDefaultLimit ( nvmlDevice_t 设备, unsigned int* 默认功耗限制 )
nvmlReturn_t nvmlDeviceGetPowerManagementLimit ( nvmlDevice_t 设备, unsigned int* 功耗限制 )
nvmlReturn_t nvmlDeviceGetPowerManagementLimitConstraints ( nvmlDevice_t 设备, unsigned int* 最小功耗限制, unsigned int* 最大功耗限制 )
nvmlReturn_t nvmlDeviceGetPowerManagementMode ( nvmlDevice_t 设备, nvmlEnableState_t* 电源管理模式 )
nvmlReturn_t nvmlDeviceGetPowerSource ( nvmlDevice_t 设备, nvmlPowerSource_t* 电源 )
nvmlReturn_t nvmlDeviceGetPowerState ( nvmlDevice_t 设备, nvmlPstates_t* P 状态 )
nvmlReturn_t nvmlDeviceGetPowerUsage ( nvmlDevice_t 设备, unsigned int* 功耗 )
nvmlReturn_t nvmlDeviceGetProcessUtilization ( nvmlDevice_t 设备, nvmlProcessUtilizationSample_t* 利用率, unsigned int* 进程样本计数, unsigned long long 上次见到时间戳 )
nvmlReturn_t nvmlDeviceGetProcessesUtilizationInfo ( nvmlDevice_t 设备, nvmlProcessesUtilizationInfo_t* 进程利用率信息 )
nvmlReturn_t nvmlDeviceGetRemappedRows ( nvmlDevice_t 设备, unsigned int* 已纠正行数, unsigned int* 未纠正行数, unsigned int* 是否挂起, unsigned int* 是否发生故障 )
nvmlReturn_t nvmlDeviceGetRetiredPages ( nvmlDevice_t 设备, nvmlPageRetirementCause_t 失效原因, unsigned int* 页数, unsigned long long* 地址 )
nvmlReturn_t nvmlDeviceGetRetiredPagesPendingStatus ( nvmlDevice_t 设备, nvmlEnableState_t* 失效页面挂起状态 )
nvmlReturn_t nvmlDeviceGetRetiredPages_v2 ( nvmlDevice_t 设备, nvmlPageRetirementCause_t 失效原因, unsigned int* 页数, unsigned long long* 地址, unsigned long long* 时间戳 )
nvmlReturn_t nvmlDeviceGetRowRemapperHistogram ( nvmlDevice_t 设备, nvmlRowRemapperHistogramValues_t* 行重映射器直方图值 )
nvmlReturn_t nvmlDeviceGetRunningProcessDetailList ( nvmlDevice_t 设备, nvmlProcessDetailList_t* 正在运行的进程详细列表 )
nvmlReturn_t nvmlDeviceGetSamples ( nvmlDevice_t 设备, nvmlSamplingType_t 类型, unsigned long long 上次见到时间戳, nvmlValueType_t* 样本值类型, unsigned int* 样本计数, nvmlSample_t* 样本 )
nvmlReturn_t nvmlDeviceGetSerial ( nvmlDevice_t 设备, char* 序列号, unsigned int  长度 )
nvmlReturn_t nvmlDeviceGetSramEccErrorStatus ( nvmlDevice_t 设备, nvmlEccSramErrorStatus_t* SRAM ECC 错误状态 )
nvmlReturn_t nvmlDeviceGetSupportedClocksEventReasons ( nvmlDevice_t 设备, unsigned long long* 支持的时钟事件原因 )
nvmlReturn_t nvmlDeviceGetSupportedClocksThrottleReasons ( nvmlDevice_t 设备, unsigned long long* 支持的时钟限制原因 )
nvmlReturn_t nvmlDeviceGetSupportedGraphicsClocks ( nvmlDevice_t 设备, unsigned int  显存时钟频率 MHz, unsigned int* 计数, unsigned int* 图形时钟频率 MHz 列表 )
nvmlReturn_t nvmlDeviceGetSupportedMemoryClocks ( nvmlDevice_t 设备, unsigned int* 计数, unsigned int* 支持的显存时钟频率 MHz 列表 )
nvmlReturn_t nvmlDeviceGetSupportedPerformanceStates ( nvmlDevice_t 设备, nvmlPstates_t* 支持的 P 状态, unsigned int  大小 )
nvmlReturn_t nvmlDeviceGetTargetFanSpeed ( nvmlDevice_t 设备, unsigned int  风扇索引, unsigned int* 目标风扇速度 )
nvmlReturn_t nvmlDeviceGetTemperature ( nvmlDevice_t 设备, nvmlTemperatureSensors_t 传感器类型, unsigned int* 温度 )
nvmlReturn_t nvmlDeviceGetTemperatureThreshold ( nvmlDevice_t 设备, nvmlTemperatureThresholds_t 阈值类型, unsigned int* 温度 )
nvmlReturn_t nvmlDeviceGetTemperatureV ( nvmlDevice_t 设备, nvmlTemperature_t* 温度信息 )
nvmlReturn_t nvmlDeviceGetThermalSettings ( nvmlDevice_t 设备, unsigned int  传感器索引, nvmlGpuThermalSettings_t* GPU 散热设置 )
nvmlReturn_t nvmlDeviceGetTopologyCommonAncestor ( nvmlDevice_t 设备 1, nvmlDevice_t 设备 2, nvmlGpuTopologyLevel_t* 拓扑路径信息 )
nvmlReturn_t nvmlDeviceGetTopologyNearestGpus ( nvmlDevice_t 设备, nvmlGpuTopologyLevel_t 拓扑级别, unsigned int* 计数, nvmlDevice_t* 设备数组 )
nvmlReturn_t nvmlDeviceGetTotalEccErrors ( nvmlDevice_t 设备, nvmlMemoryErrorType_t 内存错误类型, nvmlEccCounterType_t ECC 计数器类型, unsigned long long* ECC 计数 )
nvmlReturn_t nvmlDeviceGetTotalEnergyConsumption ( nvmlDevice_t 设备, unsigned long long* 总能耗 )
nvmlReturn_t nvmlDeviceGetUUID ( nvmlDevice_t 设备, char* UUID, unsigned int  长度 )
nvmlReturn_t nvmlDeviceGetUtilizationRates ( nvmlDevice_t 设备, nvmlUtilization_t* 利用率信息 )
nvmlReturn_t nvmlDeviceGetVbiosVersion ( nvmlDevice_t 设备, char* VBIOS 版本, unsigned int  长度 )
nvmlReturn_t nvmlDeviceGetViolationStatus ( nvmlDevice_t 设备, nvmlPerfPolicyType_t 性能策略类型, nvmlViolationTime_t* 违规时间 )
nvmlReturn_t nvmlDeviceOnSameBoard ( nvmlDevice_t 设备 1, nvmlDevice_t 设备 2, int* 是否在同一板卡上 )
nvmlReturn_t nvmlDeviceSetClockOffsets ( nvmlDevice_t 设备, nvmlClockOffset_t* 时钟偏移量信息 )
nvmlReturn_t nvmlDeviceSetConfComputeUnprotectedMemSize ( nvmlDevice_t 设备, unsigned long long 配置计算非保护内存大小 (KiB) )
nvmlReturn_t nvmlDeviceSetDramEncryptionMode ( nvmlDevice_t device, const nvmlDramEncryptionInfo_t* dramEncryption )
nvmlReturn_t nvmlDeviceValidateInforom ( nvmlDevice_t device )
nvmlReturn_t nvmlSystemGetConfComputeCapabilities ( nvmlConfComputeSystemCaps_t* capabilities )
nvmlReturn_t nvmlSystemGetConfComputeGpusReadyState ( unsigned int* isAcceptingWork )
nvmlReturn_t nvmlSystemGetConfComputeKeyRotationThresholdInfo ( nvmlConfComputeGetKeyRotationThresholdInfo_t* pKeyRotationThrInfo )
nvmlReturn_t nvmlSystemGetConfComputeSettings ( nvmlSystemConfComputeSettings_t* settings )
nvmlReturn_t nvmlSystemGetConfComputeState ( nvmlConfComputeSystemState_t* state )
nvmlReturn_t nvmlSystemSetConfComputeGpusReadyState ( unsigned int  isAcceptingWork )
nvmlReturn_t nvmlSystemSetConfComputeKeyRotationThresholdInfo ( nvmlConfComputeSetKeyRotationThresholdInfo_t* pKeyRotationThrInfo )

函数

nvmlReturn_t nvmlDeviceGetAPIRestriction ( nvmlDevice_t device, nvmlRestrictedAPI_t apiType, nvmlEnableState_t* isRestricted )
参数
device
目标设备的标识符
apiType
此操作的目标 API 类型
isRestricted
用于返回当前限制的引用。NVML_FEATURE_ENABLED 表示该 API 仅 root 用户可用。NVML_FEATURE_DISABLED 表示所有用户均可访问该 API。
返回值

描述

检索目标 API 的 root/管理员权限。有关支持的 API 列表,请参阅 nvmlRestrictedAPI_t。如果某个 API 受到限制,则只有 root 用户才能调用该 API。请参阅 nvmlDeviceSetAPIRestriction 以更改当前权限。

适用于所有完全支持的产品。

另请参阅

nvmlRestrictedAPI_t

nvmlReturn_t nvmlDeviceGetAdaptiveClockInfoStatus ( nvmlDevice_t device, unsigned int* adaptiveClockStatus )
参数
device
目标设备的标识符
adaptiveClockStatus
当前的自适应时钟状态,可以是 NVML_ADAPTIVE_CLOCKING_INFO_STATUS_DISABLED 或 NVML_ADAPTIVE_CLOCKING_INFO_STATUS_ENABLED
返回值

描述

获取设备的自适应时钟状态

nvmlReturn_t nvmlDeviceGetApplicationsClock ( nvmlDevice_t device, nvmlClockType_t clockType, unsigned int* clockMHz )
参数
device
目标设备的标识符
clockType
标识要查询的时钟域
clockMHz
用于返回时钟频率(MHz)的引用
返回值

描述

检索应用程序将使用的时钟的当前设置,除非发生超规格情况。可以使用 nvmlDeviceSetApplicationsClocks 进行更改。

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

nvmlReturn_t nvmlDeviceGetArchitecture ( nvmlDevice_t device, nvmlDeviceArchitecture_t* arch )
参数
device
目标设备的标识符
arch
成功调用后,架构将返回到此引用。成功时设置为 NVML_DEVICE_ARCH_*
返回值

描述

获取设备的架构

nvmlReturn_t nvmlDeviceGetAttributes_v2 ( nvmlDevice_t device, nvmlDeviceAttributes_t* attributes )
参数
device
NVML 设备句柄
attributes
设备属性
返回值

描述

获取给定 NVML 设备句柄的属性(引擎计数等)。

注意

此 API 当前仅支持 MIG 设备句柄。

适用于 Ampere 或更新的完全支持的设备。仅在 Linux 上支持。

nvmlReturn_t nvmlDeviceGetAutoBoostedClocksEnabled ( nvmlDevice_t device, nvmlEnableState_t* isEnabled, nvmlEnableState_t* defaultIsEnabled )
参数
device
目标设备的标识符
isEnabled
用于存储目标设备的自动加速时钟当前状态的位置
defaultIsEnabled
用于存储目标设备的默认自动加速时钟行为的位置,当没有应用程序使用 GPU 时,设备将恢复到此行为
返回值

描述

检索设备上自动加速时钟的当前状态,并将其存储在 isEnabled 中

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

默认情况下,某些硬件上启用了自动加速时钟,允许 GPU 以更高的时钟频率运行,以在热限制允许的情况下最大限度地提高性能。

在 Pascal 和更新的硬件上,自动加速时钟通过应用程序时钟进行控制。使用 nvmlDeviceSetApplicationsClocksnvmlDeviceResetApplicationsClocks 来控制自动加速行为。

nvmlReturn_t nvmlDeviceGetBAR1MemoryInfo ( nvmlDevice_t device, nvmlBAR1Memory_t* bar1Memory )
参数
device
目标设备的标识符
bar1Memory
用于返回 BAR1 内存信息的引用。
返回值

描述

获取 BAR1 内存的总大小、可用大小和已用大小。

BAR1 用于映射 FB(设备内存),以便 CPU 或第三方设备(PCIE 总线上的对等互连)可以直接访问它。

注意

在 MIG 模式下,如果提供了设备句柄,则 API 返回聚合信息,前提是调用者具有适当的权限。可以使用特定的 MIG 设备句柄查询每个实例的信息。

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

nvmlReturn_t nvmlDeviceGetBoardId ( nvmlDevice_t device, unsigned int* boardId )
参数
device
目标设备的标识符
boardId
用于返回设备板卡 ID 的引用
返回值

描述

从 0-N 检索设备板卡 ID。具有相同 boardId 的设备表示连接到同一 PLX 的 GPU。与 nvmlDeviceGetMultiGpuBoard() 结合使用,以确定它们是否也在同一板卡上。返回的 boardId 是当前配置的唯一 ID。不保证跨重启和系统配置的唯一性和排序(即,如果 Tesla K40c 返回 0x100,并且同一系统中 Tesla K10 上的两个 GPU 返回 0x200,则不保证它们始终返回这些值,但它们始终彼此不同)。

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

nvmlReturn_t nvmlDeviceGetBoardPartNumber ( nvmlDevice_t device, char* partNumber, unsigned int  length )
参数
device
目标设备的标识符
partNumber
要返回的缓冲区的引用
length
缓冲区引用的长度
返回值

描述

检索编程到板卡 InfoROM 中的设备板卡部件号

适用于所有产品。

nvmlReturn_t nvmlDeviceGetBrand ( nvmlDevice_t device, nvmlBrandType_t* type )
参数
device
目标设备的标识符
type
用于返回产品品牌类型的引用
返回值

描述

检索此设备的品牌。

适用于所有产品。

该类型是上面定义的 nvmlBrandType_t 的成员。

nvmlReturn_t nvmlDeviceGetBridgeChipInfo ( nvmlDevice_t device, nvmlBridgeChipHierarchy_t* bridgeHierarchy )
参数
device
目标设备的标识符
bridgeHierarchy
返回的桥接芯片层次结构的引用
返回值

描述

获取板卡上所有桥接芯片的桥接芯片信息。

适用于所有完全支持的产品。仅适用于多 GPU 产品。

nvmlReturn_t nvmlDeviceGetBusType ( nvmlDevice_t device, nvmlBusType_t* type )
参数
device
目标设备的标识符
type
PCI 总线类型
描述

获取 GPU 总线类型(PCIe、PCI,...)

返回值

nvmlReturn_t nvmlDeviceGetC2cModeInfoV ( nvmlDevice_t device, nvmlC2cModeInfo_v1_t* c2cModeInfo )
参数
device
目标设备的标识符
c2cModeInfo
包含设备 C2C 模式信息的输出结构
返回值

描述

检索设备的 C2C 模式信息

nvmlReturn_t nvmlDeviceGetClkMonStatus ( nvmlDevice_t device, nvmlClkMonStatus_t* status )
参数
device
目标设备的标识符
status
用于返回 clkmon 故障状态的引用
返回值

描述

检索设备的频率监视器故障状态。

适用于 Ampere 或更新的完全支持的设备。需要 root 用户。

有关解码状态输出的详细信息,请参阅 nvmlClkMonStatus_t

另请参阅

nvmlDeviceGetClkMonStatus()

nvmlReturn_t nvmlDeviceGetClock ( nvmlDevice_t device, nvmlClockType_t clockType, nvmlClockId_t clockId, unsigned int* clockMHz )
参数
device
目标设备的标识符
clockType
标识要查询的时钟域
clockId
标识域中要查询的时钟
clockMHz
用于返回时钟频率(MHz)的引用
返回值

描述

检索由时钟类型和时钟 ID 指定的时钟的速度。

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

nvmlReturn_t nvmlDeviceGetClockInfo ( nvmlDevice_t device, nvmlClockType_t type, unsigned int* clock )
参数
device
目标设备的标识符
type
标识要查询的时钟域
clock
用于返回时钟速度(MHz)的引用
返回值

描述

检索设备当前的各时钟速度。

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

有关可用时钟信息的详细信息,请参阅 nvmlClockType_t

nvmlReturn_t nvmlDeviceGetClockOffsets ( nvmlDevice_t device, nvmlClockOffset_t* info )
参数
device
目标设备的标识符
info
指定时钟类型(输入)和 P 状态(输入)的结构,检索到的时钟偏移值(输出)、最小时钟偏移(输出)和最大时钟偏移(输出)
返回值

描述

检索给定 P 状态的某些时钟域的最小、最大和当前时钟偏移

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

注意:nvmlDeviceGetGpcClkVfOffsetnvmlDeviceGetMemClkVfOffsetnvmlDeviceGetGpcClkMinMaxVfOffsetnvmlDeviceGetMemClkMinMaxVfOffset 将在未来版本中弃用。请改用 nvmlDeviceGetClockOffsets

nvmlReturn_t nvmlDeviceGetComputeMode ( nvmlDevice_t device, nvmlComputeMode_t* mode )
参数
device
目标设备的标识符
mode
用于返回当前计算模式的引用
返回值

描述

检索设备的当前计算模式。

适用于所有产品。

有关允许的计算模式的详细信息,请参阅 nvmlComputeMode_t

另请参阅

nvmlDeviceSetComputeMode()

nvmlReturn_t nvmlDeviceGetComputeRunningProcesses_v3 ( nvmlDevice_t device, unsigned int* infoCount, nvmlProcessInfo_t* infos )
参数
device
设备句柄或 MIG 设备句柄
infoCount
用于提供 infos 数组大小的引用,并返回返回元素的数量
infos
用于返回进程信息的引用
返回值

描述

获取有关设备上具有计算上下文的进程的信息

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

此函数仅返回有关计算运行进程的信息(例如,具有活动上下文的 CUDA 应用程序)。任何图形应用程序(例如,使用 OpenGL、DirectX)都不会由此函数列出。

要查询当前正在运行的计算进程数,请调用此函数,并将 *infoCount 设置为 0。返回值将为 NVML_ERROR_INSUFFICIENT_SIZE,或者如果没有正在运行的进程,则为 NVML_SUCCESS。对于此调用,infos 允许为 NULL。

返回的 usedGpuMemory 字段是应用程序使用的所有内存。

请记住,此调用返回的信息是动态的,元素的数量可能会随时间变化。万一生成新的计算进程,请为 infos 表分配更多空间。

注意

在 MIG 模式下,如果提供了设备句柄,则 API 返回聚合信息,前提是调用者具有适当的权限。可以使用特定的 MIG 设备句柄查询每个实例的信息。如果设备处于 vGPU Host 虚拟化模式,则不支持使用 MIG 设备句柄查询每个实例的信息。

另请参阅

nvmlSystemGetProcessName

nvmlReturn_t nvmlDeviceGetConfComputeGpuAttestationReport ( nvmlDevice_t device, nvmlConfComputeGpuAttestationReport_t* gpuAtstReport )
参数
device
目标设备的标识符
gpuAtstReport
用于返回 gpu 证明报告的引用
返回值

描述

获取 Conf Computing GPU 证明报告。

适用于 Ampere 或更新的完全支持的设备。在 Linux、Windows TCC 上受支持。

nvmlReturn_t nvmlDeviceGetConfComputeGpuCertificate ( nvmlDevice_t device, nvmlConfComputeGpuCertificate_t* gpuCert )
参数
device
目标设备的标识符
gpuCert
用于返回 gpu 证书信息的引用
返回值

描述

获取 Conf Computing GPU 证书详细信息。

适用于 Ampere 或更新的完全支持的设备。在 Linux、Windows TCC 上受支持。

nvmlReturn_t nvmlDeviceGetConfComputeMemSizeInfo ( nvmlDevice_t device, nvmlConfComputeMemSizeInfo_t* memInfo )
参数
device
设备句柄
memInfo
受保护/非受保护内存大小
返回值

描述

获取 Conf Computing 受保护和非受保护内存大小。

适用于 Ampere 或更新的完全支持的设备。在 Linux、Windows TCC 上受支持。

nvmlReturn_t nvmlDeviceGetConfComputeProtectedMemoryUsage ( nvmlDevice_t device, nvmlMemory_t* memory )
参数
device
目标设备的标识符
memory
用于返回内存信息的引用
返回值

描述

获取 Conf Computing 受保护内存使用量。

适用于 Ampere 或更新的完全支持的设备。在 Linux、Windows TCC 上受支持。

nvmlReturn_t nvmlDeviceGetCoolerInfo ( nvmlDevice_t device, nvmlCoolerInfo_t* coolerInfo )
参数
device
目标设备的标识符
coolerInfo
指定散热器控制信号特性(输出)和散热器冷却目标(输出)的结构体
返回值

描述

检索散热器的信息。返回散热器的控制信号特性。可能的类型有 restricted、Variable 和 Toggle。有关可用信号类型的详细信息,请参阅 nvmlCoolerControl_t。返回散热器冷却的对象。目标可能是 GPU、内存、电源或所有这些。有关可用目标的详细信息,请参阅 nvmlCoolerTarget_t

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

适用于所有带专用风扇的独立产品。

nvmlReturn_t nvmlDeviceGetCount_v2 ( unsigned int* deviceCount )
参数
deviceCount
用于返回可访问设备数量的引用
返回值

描述

检索系统中计算设备的数量。一个计算设备是一个单独的 GPU。

适用于所有产品。

注意:新的 nvmlDeviceGetCount_v2(NVML 5.319 中的默认值)返回系统中所有设备的计数,即使 nvmlDeviceGetHandleByIndex_v2 对于此类设备返回 NVML_ERROR_NO_PERMISSION。更新您的代码以处理此错误,或使用 NVML 4.304 或更旧版本的 nvml 头文件。出于向后二进制兼容性原因,API 的 _v1 版本仍然存在于共享库中。旧的 _v1 版本 nvmlDeviceGetCount 不会计算 NVML 没有权限与之通信的设备。

nvmlReturn_t nvmlDeviceGetCudaComputeCapability ( nvmlDevice_t device, int* major, int* minor )
参数
device
目标设备的标识符
major
用于返回 CUDA 主要计算能力的引用
minor
用于返回 CUDA 次要计算能力的引用
返回值

描述

检索设备的 CUDA 计算能力。

适用于所有产品。

返回设备的主要和次要计算能力版本号。主要版本和次要版本等效于 CUDA 的 cuDeviceGetAttribute() 返回的 CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MINOR 和 CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MAJOR 属性。

nvmlReturn_t nvmlDeviceGetCurrPcieLinkGeneration ( nvmlDevice_t device, unsigned int* currLinkGen )
参数
device
目标设备的标识符
currLinkGen
用于返回当前 PCIe 链路代数的引用
返回值

描述

检索当前的 PCIe 链路代数

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

nvmlReturn_t nvmlDeviceGetCurrPcieLinkWidth ( nvmlDevice_t device, unsigned int* currLinkWidth )
参数
device
目标设备的标识符
currLinkWidth
用于返回当前 PCIe 链路代数的引用
返回值

描述

检索当前的 PCIe 链路宽度

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

nvmlReturn_t nvmlDeviceGetCurrentClockFreqs ( nvmlDevice_t device, nvmlDeviceCurrentClockFreqs_t* currentClockFreqs )
参数
device
目标设备的标识符
currentClockFreqs
用于返回性能级别字符串的引用
返回值

描述

检索包含相关当前 GPU 时钟和内存时钟值的字符串。

并非所有令牌都将在所有 GPU 上报告,并且将来可能会添加其他令牌。

注意:这些时钟值考虑了客户端通过 /ref nvmlDeviceSetClockOffsets 设置的偏移量。

时钟值以逗号分隔的“token=value”对列表形式返回。有效令牌

令牌 值 "perf" 无符号整数 - 性能级别 "nvclock" 无符号整数 - 性能级别的 GPU 时钟(以 MHz 为单位) "nvclockmin" 无符号整数 - 性能级别的 GPU 时钟最小值(以 MHz 为单位) "nvclockmax" 无符号整数 - 性能级别的 GPU 时钟最大值(以 MHz 为单位) "nvclockeditable" 无符号整数 - GPU 时钟域是否可编辑(针对性能级别) "memclock" 无符号整数 - 性能级别的内存时钟(以 MHz 为单位) "memclockmin" 无符号整数 - 性能级别的内存时钟最小值(以 MHz 为单位) "memclockmax" 无符号整数 - 性能级别的内存时钟最大值(以 MHz 为单位) "memclockeditable" 无符号整数 - 内存时钟域是否可编辑(针对性能级别) "memtransferrate" 无符号整数 - 性能级别的内存传输速率(以 MHz 为单位) "memtransferratemin" 无符号整数 - 性能级别的内存传输速率最小值(以 MHz 为单位) "memtransferratemax" 无符号整数 - 性能级别的内存传输速率最大值(以 MHz 为单位) "memtransferrateeditable" 无符号整数 - 内存传输速率是否可编辑(针对性能级别)

示例

nvclock=324, nvclockmin=324, nvclockmax=324, nvclockeditable=0, memclock=324, memclockmin=324, memclockmax=324, memclockeditable=0, memtransferrate=648, memtransferratemin=648, memtransferratemax=648, memtransferrateeditable=0 ;

nvmlReturn_t nvmlDeviceGetCurrentClocksEventReasons ( nvmlDevice_t device, unsigned long long* clocksEventReasons )
参数
device
目标设备的标识符
clocksEventReasons
用于返回活动时钟事件原因位掩码的引用
返回值

描述

检索当前时钟事件原因。

适用于所有完全支持的产品。

注意

可以同时启用多个位。多个原因可能同时影响时钟。

另请参阅

NvmlClocksEventReasons

nvmlDeviceGetSupportedClocksEventReasons

nvmlReturn_t nvmlDeviceGetCurrentClocksThrottleReasons ( nvmlDevice_t device, unsigned long long* clocksThrottleReasons )
nvmlReturn_t nvmlDeviceGetDecoderUtilization ( nvmlDevice_t device, unsigned int* utilization, unsigned int* samplingPeriodUs )
参数
device
目标设备的标识符
utilization
指向无符号整数的引用,用于解码器利用率信息
samplingPeriodUs
指向无符号整数的引用,用于采样周期(以微秒为单位)
返回值

描述

检索解码器的当前利用率和采样大小(以微秒为单位)

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

注意

在启用 MIG 的 GPU 上,当前不支持查询解码器利用率。

nvmlReturn_t nvmlDeviceGetDefaultApplicationsClock ( nvmlDevice_t device, nvmlClockType_t clockType, unsigned int* clockMHz )
参数
device
目标设备的标识符
clockType
标识要查询的时钟域
clockMHz
用于返回默认时钟(以 MHz 为单位)的引用
返回值

描述

检索 GPU 启动时或调用 nvmlDeviceResetApplicationsClocks 后默认使用的默认应用程序时钟。

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

另请参阅

nvmlDeviceGetApplicationsClock

nvmlReturn_t nvmlDeviceGetDefaultEccMode ( nvmlDevice_t device, nvmlEnableState_t* defaultMode )
参数
device
目标设备的标识符
defaultMode
用于返回默认 ECC 模式的引用
返回值

描述

检索设备的默认 ECC 模式。

适用于 Fermi 或更新的完全受支持设备。仅适用于具有 ECC 的设备。需要 NVML_INFOROM_ECC 版本 1.0 或更高版本。

有关允许模式的详细信息,请参阅 nvmlEnableState_t

另请参阅

nvmlDeviceSetEccMode()

nvmlReturn_t nvmlDeviceGetDetailedEccErrors ( nvmlDevice_t device, nvmlMemoryErrorType_t errorType, nvmlEccCounterType_t counterType, nvmlEccErrorCounts_t* eccCounts )
参数
device
目标设备的标识符
errorType
指定错误类型的标志。
counterType
指定错误计数器类型的标志。
eccCounts
用于返回指定 ECC 错误的引用
返回值

已弃用

此 API 仅支持一组固定的 ECC 错误位置。在不同的 GPU 架构上,支持不同的位置。请参阅 nvmlDeviceGetMemoryErrorCounter

描述

检索设备的详细 ECC 错误计数。

适用于 Fermi 或更新的完全受支持设备。仅适用于具有 ECC 的设备。需要 NVML_INFOROM_ECC 版本 2.0 或更高版本才能报告基于位置的聚合 ECC 计数。需要 NVML_INFOROM_ECC 版本 1.0 或更高版本才能报告所有其他 ECC 计数。需要启用 ECC 模式。

详细错误为内存系统的特定部分提供单独的 ECC 计数。

当支持 ECC 错误计数器的子集时,对于不支持的 ECC 错误计数器报告零。

有关可用位类型的描述,请参阅 nvmlMemoryErrorType_t。有关可用计数器类型的描述,请参阅 nvmlEccCounterType_t。有关提供的详细 ECC 计数的描述,请参阅 nvmlEccErrorCounts_t

另请参阅

nvmlDeviceClearEccErrorCounts()

nvmlReturn_t nvmlDeviceGetDisplayActive ( nvmlDevice_t device, nvmlEnableState_t* isActive )
参数
device
目标设备的标识符
isActive
用于返回显示活动状态的引用
返回值

描述

检索设备的显示活动状态。

适用于所有产品。

此方法指示设备上是否初始化了显示。例如,X Server 是否已附加到此设备并已为屏幕分配内存。

即使没有物理连接显示器,显示也可能是活动的。

有关允许模式的详细信息,请参阅 nvmlEnableState_t

nvmlReturn_t nvmlDeviceGetDisplayMode ( nvmlDevice_t device, nvmlEnableState_t* display )
参数
device
目标设备的标识符
display
用于返回显示模式的引用
返回值

描述

检索设备的显示模式。

适用于所有产品。

此方法指示物理显示器(例如,监视器)当前是否连接到设备的任何连接器。

有关允许模式的详细信息,请参阅 nvmlEnableState_t

nvmlReturn_t nvmlDeviceGetDramEncryptionMode ( nvmlDevice_t device, nvmlDramEncryptionInfo_t* current, nvmlDramEncryptionInfo_t* pending )
参数
device
目标设备的标识符
current
用于返回当前 DRAM 加密模式的引用
pending
用于返回待处理 DRAM 加密模式的引用
返回值

描述

检索设备的当前和待处理 DRAM 加密模式。

BLACKWELL_OR_NEWER% 仅适用于支持 DRAM 加密的设备。需要 NVML_INFOROM_DEN 版本 1.0 或更高版本。

更改 DRAM 加密模式需要重新启动。“待处理”DRAM 加密模式是指下次重新启动后的目标模式。

有关允许模式的详细信息,请参阅 nvmlEnableState_t

另请参阅

nvmlDeviceSetDramEncryptionMode()

nvmlReturn_t nvmlDeviceGetDriverModel_v2 ( nvmlDevice_t device, nvmlDriverModel_t* current, nvmlDriverModel_t* pending )
参数
device
目标设备的标识符
current
用于返回当前驱动程序模型的引用
pending
用于返回待处理驱动程序模型的引用
返回值

描述

检索设备的当前和待处理驱动程序模型。

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

在 Windows 平台上,设备驱动程序可以在 WDDM、MCDM 或 WDM (TCC) 模式下运行。如果显示器连接到设备,则必须在 WDDM 模式下运行。如果未连接显示器,则首选 MCDM 模式。TCC 模式已弃用。

有关可用驱动程序模型的详细信息,请参阅 nvmlDriverModel_t

另请参阅

nvmlDeviceSetDriverModel_v2()

nvmlReturn_t nvmlDeviceGetDynamicPstatesInfo ( nvmlDevice_t device, nvmlGpuDynamicPstatesInfo_t* pDynamicPstatesInfo )
参数
device
pDynamicPstatesInfo
返回值

描述

从关联的子设备检索性能监视器样本。

nvmlReturn_t nvmlDeviceGetEccMode ( nvmlDevice_t device, nvmlEnableState_t* current, nvmlEnableState_t* pending )
参数
device
目标设备的标识符
current
用于返回当前 ECC 模式的引用
pending
用于返回待处理 ECC 模式的引用
返回值

描述

检索设备的当前和待处理 ECC 模式。

适用于 Fermi 或更新的完全受支持设备。仅适用于具有 ECC 的设备。需要 NVML_INFOROM_ECC 版本 1.0 或更高版本。

更改 ECC 模式需要重新启动。“待处理”ECC 模式是指下次重新启动后的目标模式。

有关允许模式的详细信息,请参阅 nvmlEnableState_t

另请参阅

nvmlDeviceSetEccMode()

nvmlReturn_t nvmlDeviceGetEncoderCapacity ( nvmlDevice_t device, nvmlEncoderType_t encoderQueryType, unsigned int* encoderCapacity )
参数
device
目标设备的标识符
encoderQueryType
要查询的编码器类型
encoderCapacity
指向无符号整数的引用,用于编码器容量
返回值

描述

检索设备当前编码器容量,以最大编码器容量的百分比表示,有效值范围为 0-100。

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

nvmlReturn_t nvmlDeviceGetEncoderSessions ( nvmlDevice_t device, unsigned int* sessionCount, nvmlEncoderSessionInfo_t* sessionInfos )
参数
device
目标设备的标识符
sessionCount
指向调用方提供的数组大小的引用,并返回会话数。
sessionInfos
用于返回会话信息的引用
返回值

描述

检索有关目标设备上活动编码器会话的信息。

活动编码器会话数组在调用方提供的缓冲区中返回,该缓冲区由 sessionInfos 指向。数组元素计数在 sessionCount 中传递,sessionCount 用于返回写入缓冲区的会话数。

如果提供的缓冲区不够大,无法容纳活动会话数组,则该函数返回 NVML_ERROR_INSUFFICIENT_SIZE,并在 sessionCount 中返回所需的 nvmlEncoderSessionInfo_t 数组的元素计数。要查询活动编码器会话的数量,请调用此函数并将 *sessionCount = 0。代码将返回 NVML_SUCCESS,并且活动编码器会话的数量将在 *sessionCount 中更新。

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

nvmlReturn_t nvmlDeviceGetEncoderStats ( nvmlDevice_t device, unsigned int* sessionCount, unsigned int* averageFps, unsigned int* averageLatency )
参数
device
目标设备的标识符
sessionCount
指向无符号整数的引用,用于活动编码器会话的计数
averageFps
指向无符号整数的引用,用于所有活动会话的尾随平均 FPS
averageLatency
指向无符号整数的引用,用于编码延迟(以微秒为单位)
返回值

描述

检索给定设备的当前编码器统计信息。

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

nvmlReturn_t nvmlDeviceGetEncoderUtilization ( nvmlDevice_t device, unsigned int* utilization, unsigned int* samplingPeriodUs )
参数
device
目标设备的标识符
utilization
指向无符号整数的引用,用于编码器利用率信息
samplingPeriodUs
指向无符号整数的引用,用于采样周期(以微秒为单位)
返回值

描述

检索编码器的当前利用率和采样大小(以微秒为单位)

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

注意

在启用 MIG 的 GPU 上,当前不支持查询编码器利用率。

nvmlReturn_t nvmlDeviceGetEnforcedPowerLimit ( nvmlDevice_t device, unsigned int* limit )
参数
device
要与之通信的设备
limit
用于返回功率管理限制(以毫瓦为单位)的引用
返回值

描述

获取驱动程序在考虑所有限制器后强制执行的有效功率限制

注意:如果其他地方设置了其他限制,则这可能与 nvmlDeviceGetPowerManagementLimit 不同。这包括带外功率限制接口

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

nvmlReturn_t nvmlDeviceGetFBCSessions ( nvmlDevice_t device, unsigned int* sessionCount, nvmlFBCSessionInfo_t* sessionInfo )
参数
device
目标设备的标识符
sessionCount
指向调用方提供的数组大小的引用,并返回会话数。
sessionInfo
用于返回会话信息的引用
返回值

描述

检索有关目标设备上活动帧缓冲区捕获会话的信息。

活动 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 nvmlDeviceGetFBCStats ( nvmlDevice_t device, nvmlFBCStats_t* fbcStats )
参数
device
目标设备的标识符
fbcStats
指向包含 NvFBC 统计信息的 nvmlFBCStats_t 结构体的引用
返回值

描述

检索给定设备的活动帧缓冲区捕获会话统计信息。

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

nvmlReturn_t nvmlDeviceGetFanControlPolicy_v2 ( nvmlDevice_t device, unsigned int  fan, nvmlFanControlPolicy_t* policy )
描述

获取当前风扇控制策略。

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

适用于所有带风扇的 CUDA 独立产品

device 目标设备的标识符 policy 用于返回风扇控制策略的引用

return NVML_SUCCESS 如果 policy 已填充 NVML_ERROR_UNINITIALIZED 如果库未成功初始化 NVML_ERROR_INVALID_ARGUMENT 如果 device 无效或 policy 为 null,或者给定的风扇未引用存在的风扇。 NVML_ERROR_NOT_SUPPORTED 如果设备早于 Maxwell NVML_ERROR_UNKNOWN 如果发生任何意外错误

nvmlReturn_t nvmlDeviceGetFanSpeed ( nvmlDevice_t device, unsigned int* speed )
参数
device
目标设备的标识符
speed
返回风扇速度百分比的引用
返回值

描述

检索设备风扇的预期运行速度。

注意:报告的速度是预期的风扇速度。如果风扇被物理阻塞而无法旋转,则输出将与实际风扇速度不符。

适用于所有带专用风扇的独立产品。

风扇速度表示为产品最大噪音容限风扇速度的百分比。在某些情况下,此值可能超过 100%。

nvmlReturn_t nvmlDeviceGetFanSpeedRPM ( nvmlDevice_t device, nvmlFanSpeedInfo_t* fanSpeed )
参数
device
目标设备的标识符
fanSpeed
指定目标风扇索引(输入)和检索到的风扇速度值(输出)的结构体
返回值

描述

检索设备指定风扇的预期运行速度,单位为每分钟转数 (RPM)。

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

适用于所有带专用风扇的独立产品。

注意:报告的速度是预期的风扇速度。如果风扇被物理阻塞而无法旋转,则输出将与实际风扇速度不符。

nvmlReturn_t nvmlDeviceGetFanSpeed_v2 ( nvmlDevice_t device, unsigned int  fan, unsigned int* speed )
参数
device
目标设备的标识符
fan
目标风扇的索引,从零开始。
speed
返回风扇速度百分比的引用
返回值

描述

检索设备指定风扇的预期运行速度。

注意:报告的速度是预期的风扇速度。如果风扇被物理阻塞而无法旋转,则输出将与实际风扇速度不符。

适用于所有带专用风扇的独立产品。

风扇速度表示为产品最大噪音容限风扇速度的百分比。在某些情况下,此值可能超过 100%。

nvmlReturn_t nvmlDeviceGetGpcClkMinMaxVfOffset ( nvmlDevice_t device, int* minOffset, int* maxOffset )
参数
device
目标设备的标识符
minOffset
检索到的 GPCCLK VF 最小偏移值
maxOffset
检索到的 GPCCLK VF 最大偏移值
返回值

描述

检索 GPCCLK 最小最大 VF 偏移值。

nvmlReturn_t nvmlDeviceGetGpcClkVfOffset ( nvmlDevice_t device, int* offset )
参数
device
目标设备的标识符
offset
检索到的 GPCCLK VF 偏移值
返回值

描述

检索 GPCCLK VF 偏移值

nvmlReturn_t nvmlDeviceGetGpuFabricInfo ( nvmlDevice_t device, nvmlGpuFabricInfo_t* gpuFabricInfo )
参数
device
目标设备的标识符
gpuFabricInfo
关于 GPU Fabric 状态的信息
返回值

描述

已弃用:将在未来版本中弃用。请改用 nvmlDeviceGetGpuFabricInfoV

获取与设备关联的 Fabric 信息。

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

在 Hopper + NVSwitch 系统上,GPU 在 NVIDIA Fabric Manager 注册。成功注册后,GPU 将添加到 NVLink Fabric 以启用对等通信。此 API 报告 GPU 在 NVLink Fabric 中的当前状态以及其他有用信息。

nvmlReturn_t nvmlDeviceGetGpuFabricInfoV ( nvmlDevice_t device, nvmlGpuFabricInfoV_t* gpuFabricInfo )
参数
device
目标设备的标识符
gpuFabricInfo
关于 GPU Fabric 状态的信息
返回值

描述

围绕 nvmlDeviceGetGpuFabricInfo 的版本化包装器,它接受版本化的 nvmlGpuFabricInfo_v2_t 或更高版本的输出结构体。

注意
调用者必须在调用此函数之前将 nvmlGpuFabricInfoV_t::version 字段设置为适当的版本。例如
nvmlGpuFabricInfoV_t fabricInfo =
               { .version = nvmlGpuFabricInfo_v2 };
           nvmlReturn_t result = nvmlDeviceGetGpuFabricInfoV(device,&fabricInfo);

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

nvmlReturn_t nvmlDeviceGetGpuMaxPcieLinkGeneration ( nvmlDevice_t device, unsigned int* maxLinkGenDevice )
参数
device
目标设备的标识符
maxLinkGenDevice
返回最大 PCIe 链路代数的引用
返回值

描述

检索此设备支持的最大 PCIe 链路代数

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

nvmlReturn_t nvmlDeviceGetGpuOperationMode ( nvmlDevice_t device, nvmlGpuOperationMode_t* current, nvmlGpuOperationMode_t* pending )
参数
device
目标设备的标识符
current
返回当前 GOM 的引用
pending
返回待处理 GOM 的引用
返回值

描述

检索当前 GOM 和待处理 GOM(GPU 在重启后将切换到的 GOM)。

适用于 Kepler 系列的 GK110 M 级和 X 级 Tesla 产品。完全受支持的 GeForce 产品支持 NVML_GOM_LOW_DPNVML_GOM_ALL_ON 模式。Quadro 和 Tesla C 级产品不支持。

另请参阅

nvmlGpuOperationMode_t

nvmlDeviceSetGpuOperationMode

nvmlReturn_t nvmlDeviceGetGraphicsRunningProcesses_v3 ( nvmlDevice_t device, unsigned int* infoCount, nvmlProcessInfo_t* infos )
参数
device
设备句柄或 MIG 设备句柄
infoCount
用于提供 infos 数组大小的引用,并返回返回元素的数量
infos
用于返回进程信息的引用
返回值

描述

获取有关设备上具有图形上下文的进程的信息

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

此函数仅返回有关基于图形的进程(例如,使用 OpenGL、DirectX 的应用程序)的信息

要查询当前正在运行的图形进程数,请调用此函数,其中 *infoCount = 0。如果没有任何进程正在运行,则返回代码将为 NVML_ERROR_INSUFFICIENT_SIZE 或 NVML_SUCCESS。对于此调用,infos 允许为 NULL。

返回的 usedGpuMemory 字段是应用程序使用的所有内存。

请记住,此调用返回的信息是动态的,元素的数量可能会随时间变化。万一生成新的图形进程,请为 infos 表分配更多空间。

注意

在 MIG 模式下,如果提供了设备句柄,则 API 返回聚合信息,前提是调用者具有适当的权限。可以使用特定的 MIG 设备句柄查询每个实例的信息。如果设备处于 vGPU Host 虚拟化模式,则不支持使用 MIG 设备句柄查询每个实例的信息。

另请参阅

nvmlSystemGetProcessName

nvmlReturn_t nvmlDeviceGetGspFirmwareMode ( nvmlDevice_t device, unsigned int* isEnabled, unsigned int* defaultMode )
参数
device
设备句柄
isEnabled
指向指定 GSP 固件是否已启用的指针
defaultMode
指向指定设备默认是否支持 GSP 固件的指针
返回值

描述

检索 GSP 固件模式。

调用者传入整数指针。GSP 固件启用和默认模式信息通过相应的参数返回。isEnabled 和 defaultMode 中的返回值应被视为布尔值。

nvmlReturn_t nvmlDeviceGetGspFirmwareVersion ( nvmlDevice_t device, char* version )
参数
device
设备句柄
version
检索到的 GSP 固件版本
返回值

描述

检索 GSP 固件版本。

调用者通过 version 传入缓冲区,相应的 GSP 固件编号版本以字符串格式通过相同的参数返回。

nvmlReturn_t nvmlDeviceGetHandleByIndex_v2 ( unsigned int  index, nvmlDevice_t* device )
参数
index
目标 GPU 的索引,>= 0 且 < accessibleDevices
device
返回设备句柄的引用
返回值

描述

根据索引获取特定设备的句柄。

适用于所有产品。

有效索引源自 nvmlDeviceGetCount_v2() 返回的 accessibleDevices 计数。例如,如果 accessibleDevices 为 2,则有效索引为 0 和 1,分别对应于 GPU 0 和 GPU 1。

NVML 枚举设备的顺序不保证在重启之间保持一致。因此,建议通过其 PCI ID 或 UUID 查找设备。请参阅 nvmlDeviceGetHandleByUUID()nvmlDeviceGetHandleByPciBusId_v2()

注意:NVML 索引可能与其他 API(例如 CUDA 设备索引)不相关。

从 NVML 5 开始,此 API 会导致 NVML 初始化目标 GPU。如果出现以下情况,NVML 可能会初始化其他 GPU:

  • 目标 GPU 是 SLI 从设备

注意:新的 nvmlDeviceGetCount_v2(NVML 5.319 中的默认值)返回系统中所有设备的计数,即使 nvmlDeviceGetHandleByIndex_v2 对于此类设备返回 NVML_ERROR_NO_PERMISSION。更新您的代码以处理此错误,或使用 NVML 4.304 或更旧版本的 nvml 头文件。出于向后二进制兼容性原因,API 的 _v1 版本仍然存在于共享库中。旧的 _v1 版本 nvmlDeviceGetCount 不会计算 NVML 没有权限与之通信的设备。

这意味着对于相同的索引,nvmlDeviceGetHandleByIndex_v2 和 _v1 可能会返回不同的设备。如果您没有触及文件顶部的将旧 (_v1) 版本映射到 _v2 版本的宏,则无需担心这一点。

另请参阅

nvmlDeviceGetIndex

nvmlDeviceGetCount

nvmlReturn_t nvmlDeviceGetHandleByPciBusId_v2 ( const char* pciBusId, nvmlDevice_t* device )
参数
pciBusId
目标 GPU 的 PCI 总线 ID
device
返回设备句柄的引用
返回值

描述

根据 PCI 总线 ID 获取特定设备的句柄。

适用于所有产品。

此值对应于 nvmlPciInfo_t::busId,由 nvmlDeviceGetPciInfo_v3() 返回。

从 NVML 5 开始,此 API 会导致 NVML 初始化目标 GPU。如果出现以下情况,NVML 可能会初始化其他 GPU:

  • 目标 GPU 是 SLI 从设备

注意

NVML 4.304 和更旧版本的 nvmlDeviceGetHandleByPciBusId"_v1" 返回 NVML_ERROR_NOT_FOUND 而不是 NVML_ERROR_NO_PERMISSION。

nvmlReturn_t nvmlDeviceGetHandleBySerial ( const char* serial, nvmlDevice_t* device )
参数
serial
目标 GPU 的板载序列号
device
返回设备句柄的引用
返回值

已弃用

由于单板上可能存在多个 GPU,因此不建议使用此函数,而推荐使用 nvmlDeviceGetHandleByUUID。对于双 GPU 板,此函数将返回 NVML_ERROR_INVALID_ARGUMENT。

描述

根据板载序列号获取特定设备的句柄。

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

此编号对应于直接印在板上的值,以及 nvmlDeviceGetSerial() 返回的值。

从 NVML 5 开始,此 API 会导致 NVML 初始化目标 GPU。NVML 可能会在搜索目标 GPU 时初始化其他 GPU

另请参阅

nvmlDeviceGetSerial

nvmlDeviceGetHandleByUUID

nvmlReturn_t nvmlDeviceGetHandleByUUID ( const char* uuid, nvmlDevice_t* device )
参数
uuid
目标 GPU 或 MIG 实例的 UUID
device
返回设备句柄或 MIG 设备句柄的引用
返回值

描述

根据与每个设备关联的全局唯一不可变 UUID 获取特定设备的句柄。

适用于所有产品。

从 NVML 5 开始,此 API 会导致 NVML 初始化目标 GPU。NVML 可能会在搜索目标 GPU 时初始化其他 GPU

另请参阅

nvmlDeviceGetUUID

nvmlReturn_t nvmlDeviceGetIndex ( nvmlDevice_t device, unsigned int* index )
参数
device
目标设备的标识符
index
返回设备 NVML 索引的引用
返回值

描述

检索此设备的 NVML 索引。

适用于所有产品。

有效索引源自 nvmlDeviceGetCount_v2() 返回的 accessibleDevices 计数。例如,如果 accessibleDevices 为 2,则有效索引为 0 和 1,分别对应于 GPU 0 和 GPU 1。

NVML 枚举设备的顺序不保证在重启之间保持一致。因此,建议通过其 PCI ID 或 GPU UUID 查找设备。请参阅 nvmlDeviceGetHandleByPciBusId_v2()nvmlDeviceGetHandleByUUID()

当与 MIG 设备句柄一起使用时,此 API 返回的索引可以传递给 nvmlDeviceGetMigDeviceHandleByIndex 以检索相同的句柄。MIG 设备索引在设备内是唯一的。

注意:NVML 索引可能与其他 API(例如 CUDA 设备索引)不相关。

另请参阅

nvmlDeviceGetHandleByIndex()

nvmlDeviceGetCount()

nvmlReturn_t nvmlDeviceGetInforomConfigurationChecksum ( nvmlDevice_t device, unsigned int* checksum )
参数
device
目标设备的标识符
checksum
返回 infoROM 配置校验和的引用
返回值

描述

检索存储在设备 infoROM 中的配置的校验和。

适用于所有具有 infoROM 的产品。

可用于确保两个 GPU 具有完全相同的配置。当前校验和考虑了存储在 PWR 和 ECC infoROM 对象中的配置。校验和可能会在驱动程序版本之间更改,或者在用户更改配置时(例如,禁用/启用 ECC)更改

nvmlReturn_t nvmlDeviceGetInforomImageVersion ( nvmlDevice_t device, char* version, unsigned int  length )
参数
device
目标设备的标识符
version
返回 infoROM 镜像版本的引用
length
版本中返回的字符串的最大允许长度
返回值

描述

检索全局 infoROM 镜像版本

适用于所有具有 infoROM 的产品。

镜像版本就像 VBIOS 版本一样,唯一地描述了板上刷写的 infoROM 的确切版本,而 infoROM 对象版本仅是指示支持的功能。版本字符串的长度不会超过 16 个字符(包括 NULL 终止符)。请参阅 nvmlConstants::NVML_DEVICE_INFOROM_VERSION_BUFFER_SIZE

另请参阅

nvmlDeviceGetInforomVersion

nvmlReturn_t nvmlDeviceGetInforomVersion ( nvmlDevice_t device, nvmlInforomObject_t object, char* version, unsigned int  length )
参数
device
目标设备的标识符
object
目标 infoROM 对象
version
返回 infoROM 版本的引用
length
版本中返回的字符串的最大允许长度
返回值

描述

检索设备 infoROM 对象的版本信息。

适用于所有具有 infoROM 的产品。

Fermi 和更高版本的部件具有非易失性板载内存,用于持久保存设备信息,例如聚合 ECC 计数。此内存中数据结构的版本可能会不时更改。它的长度不会超过 16 个字符(包括 NULL 终止符)。请参阅 nvmlConstants::NVML_DEVICE_INFOROM_VERSION_BUFFER_SIZE

有关可用 infoROM 对象的详细信息,请参阅 nvmlInforomObject_t

另请参阅

nvmlDeviceGetInforomImageVersion

nvmlReturn_t nvmlDeviceGetIrqNum ( nvmlDevice_t device, unsigned int* irqNum )
参数
device
目标设备的标识符
irqNum
与指定设备关联的中断号
返回值

描述

获取设备的IRQ 号

nvmlReturn_t nvmlDeviceGetJpgUtilization ( nvmlDevice_t device, unsigned int* utilization, unsigned int* samplingPeriodUs )
参数
device
目标设备的标识符
utilization
指向无符号整数的引用,用于 jpg 利用率信息
samplingPeriodUs
指向无符号整数的引用,用于采样周期(以微秒为单位)
返回值

描述

检索 JPG 的当前利用率和采样大小(以微秒为单位)

TURING_OR_NEWER%

注意

在启用 MIG 的 GPU 上,当前不支持查询解码器利用率。

nvmlReturn_t nvmlDeviceGetLastBBXFlushTime ( nvmlDevice_t device, unsigned long long* timestamp, unsignedlong* durationUs )
参数
device
目标设备的标识符
timestamp
上次 BBX Flush 的开始时间戳
durationUs
上次 BBX Flush 的持续时间(微秒)
返回值

描述

检索当前运行期间 BBX(黑匣子)infoROM 对象的上次刷新的时间戳和持续时间。

适用于所有具有 infoROM 的产品。

另请参阅

nvmlDeviceGetInforomVersion

nvmlReturn_t nvmlDeviceGetMPSComputeRunningProcesses_v3 ( nvmlDevice_t device, unsigned int* infoCount, nvmlProcessInfo_t* infos )
参数
device
设备句柄或 MIG 设备句柄
infoCount
用于提供 infos 数组大小的引用,并返回返回元素的数量
infos
用于返回进程信息的引用
返回值

描述

获取有关设备上具有多进程服务 (MPS) 计算上下文的进程的信息

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

此函数仅返回有关利用 MPS 的计算运行进程(例如,具有活动上下文的 CUDA 应用程序)的信息。任何图形应用程序(例如,使用 OpenGL、DirectX)都不会由此函数列出。

要查询当前正在运行的计算进程数,请调用此函数,并将 *infoCount 设置为 0。返回值将为 NVML_ERROR_INSUFFICIENT_SIZE,或者如果没有正在运行的进程,则为 NVML_SUCCESS。对于此调用,infos 允许为 NULL。

返回的 usedGpuMemory 字段是应用程序使用的所有内存。

请记住,此调用返回的信息是动态的,元素的数量可能会随时间变化。万一生成新的计算进程,请为 infos 表分配更多空间。

注意

在 MIG 模式下,如果提供了设备句柄,则 API 返回聚合信息,前提是调用者具有适当的权限。可以使用特定的 MIG 设备句柄查询每个实例的信息。如果设备处于 vGPU Host 虚拟化模式,则不支持使用 MIG 设备句柄查询每个实例的信息。

另请参阅

nvmlSystemGetProcessName

nvmlReturn_t nvmlDeviceGetMarginTemperature ( nvmlDevice_t device, nvmlMarginTemperature_t* marginTempInfo )
参数
device
目标设备的标识符
marginTempInfo
用于返回温度读数的版本化结构
返回值

描述

检索热余量温度(到最近减速阈值的距离)。

nvmlReturn_t nvmlDeviceGetMaxClockInfo ( nvmlDevice_t device, nvmlClockType_t type, unsigned int* clock )
参数
device
目标设备的标识符
type
标识要查询的时钟域
clock
用于返回时钟速度(MHz)的引用
返回值

描述

检索设备的最大时钟速度。

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

有关可用时钟信息的详细信息,请参阅 nvmlClockType_t

注意

在 Fermi 系列 GPU 上,当前的 P0 时钟(由 nvmlDeviceGetClockInfo 报告)可能与最大时钟相差几个 MHz。

nvmlReturn_t nvmlDeviceGetMaxCustomerBoostClock ( nvmlDevice_t device, nvmlClockType_t clockType, unsigned int* clockMHz )
参数
device
目标设备的标识符
clockType
标识要查询的时钟域
clockMHz
用于返回时钟频率(MHz)的引用
返回值

描述

检索给定时钟类型指定的客户定义的最大加速时钟速度。

对于 Pascal 或更新的完全支持的设备。

nvmlReturn_t nvmlDeviceGetMaxPcieLinkGeneration ( nvmlDevice_t device, unsigned int* maxLinkGen )
参数
device
目标设备的标识符
maxLinkGen
返回最大 PCIe 链路代数的引用
返回值

描述

检索此设备和系统可能的最大 PCIe 链接代数

例如,对于连接到第 1 代 PCIe 总线的第 2 代 PCIe 设备,此函数将报告的最大链接代数为第 1 代。

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

nvmlReturn_t nvmlDeviceGetMaxPcieLinkWidth ( nvmlDevice_t device, unsigned int* maxLinkWidth )
参数
device
目标设备的标识符
maxLinkWidth
返回最大 PCIe 链路代数的引用
返回值

描述

检索此设备和系统可能的最大 PCIe 链接宽度

例如,对于具有 16x PCIe 总线宽度的设备连接到 8x PCIe 系统总线,此函数将报告的最大链接宽度为 8。

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

nvmlReturn_t nvmlDeviceGetMemClkMinMaxVfOffset ( nvmlDevice_t device, int* minOffset, int* maxOffset )
参数
device
目标设备的标识符
minOffset
检索到的 MemClk VF 最小偏移值
maxOffset
检索到的 MemClk VF 最大偏移值
返回值

描述

检索 MemClk(显存时钟)最小最大 VF 偏移值。

nvmlReturn_t nvmlDeviceGetMemClkVfOffset ( nvmlDevice_t device, int* offset )
参数
device
目标设备的标识符
offset
检索到的 MemClk VF 偏移值
返回值

描述

检索 MemClk(显存时钟)VF 偏移值。

nvmlReturn_t nvmlDeviceGetMemoryBusWidth ( nvmlDevice_t device, unsigned int* busWidth )
参数
device
目标设备的标识符
busWidth
设备的显存总线宽度
返回值

描述

获取设备的显存总线宽度

nvmlReturn_t nvmlDeviceGetMemoryErrorCounter ( nvmlDevice_t device, nvmlMemoryErrorType_t errorType, nvmlEccCounterType_t counterType, nvmlMemoryLocation_t locationType, unsigned long long* count )
参数
device
目标设备的标识符
errorType
指定错误类型的标志。
counterType
指定错误计数器类型的标志。
locationType
指定计数器的位置。
count
用于返回 ECC 计数器的引用
返回值

描述

检索设备的请求的内存错误计数器。

对于 Fermi 或更新的完全支持的设备。需要 NVML_INFOROM_ECC 版本 2.0 或更高版本才能报告基于位置的聚合内存错误计数。需要 NVML_INFOROM_ECC 版本 1.0 或更高版本才能报告所有其他内存错误计数。

仅适用于具有 ECC 的设备。

需要启用 ECC 模式。

注意

在启用 MIG 的 GPU 上,可以使用特定的 MIG 设备句柄查询每个实例的信息。当前仅支持非 DRAM 不可纠正的易失性错误的每个实例信息。当前不支持使用设备句柄查询易失性错误。

有关可用内存错误类型的描述,请参阅 nvmlMemoryErrorType_t。有关可用计数器类型的描述,请参阅 nvmlEccCounterType_t。有关可用计数器位置的描述,请参阅 nvmlMemoryLocation_t

nvmlReturn_t nvmlDeviceGetMemoryInfo ( nvmlDevice_t device, nvmlMemory_t* memory )
参数
device
目标设备的标识符
memory
用于返回内存信息的引用
返回值

描述

检索设备上已用、可用、保留和总内存量(以字节为单位)。版本 2 仅支持保留量。

适用于所有产品。

启用 ECC 会减少总可用内存量,因为需要额外的奇偶校验位。在 WDDM 下,大多数设备内存由 Windows 在启动时分配和管理。

在 Linux 和 Windows TCC 下,报告的已用内存量等于设备上所有活动通道分配的内存总和。

有关可用内存信息的详细信息,请参阅 nvmlMemory_v2_t

注意
  • 在 MIG 模式下,如果提供了设备句柄,则 API 返回聚合信息,前提是调用者具有适当的权限。可以使用特定的 MIG 设备句柄查询每个实例的信息。

  • nvmlDeviceGetMemoryInfo_v2 添加了额外的内存信息。

  • 在 GPU 是 NUMA 节点的系统上,此 API 提供的 FB 内存利用率的准确性取决于操作系统的内存记帐。这是因为 FB 内存由操作系统而不是 NVIDIA GPU 驱动程序管理。通常,即使进程终止,也不会释放从 FB 内存分配的页面,以提高性能。在操作系统内存压力大的情况下,可能会求助于利用 FB 内存。此类操作可能会导致内存报告准确性出现差异。

nvmlReturn_t nvmlDeviceGetMemoryInfo_v2 ( nvmlDevice_t device, nvmlMemory_v2_t* memory )
描述

nvmlDeviceGetMemoryInfo_v2 单独计算保留内存,并将其包含在已用内存量中。

nvmlReturn_t nvmlDeviceGetMinMaxClockOfPState ( nvmlDevice_t device, nvmlClockType_t type, nvmlPstates_t pstate, unsigned int* minClockMHz, unsigned int* maxClockMHz )
参数
device
目标设备的标识符
type
时钟域
pstate
要查询的 PState
minClockMHz
用于返回最小时钟频率的引用
maxClockMHz
用于返回最大时钟频率的引用
返回值

描述

检索给定 PState 的某个时钟域的最小和最大时钟

nvmlReturn_t nvmlDeviceGetMinMaxFanSpeed ( nvmlDevice_t device, unsigned int* minSpeed, unsigned int* maxSpeed )
参数
device
目标设备的标识符
minSpeed
允许设置的最小速度
maxSpeed
允许设置的最大速度
描述

检索用户可以为 GPU 风扇设置的最小和最大风扇速度。

适用于所有带风扇的 CUDA 独立产品

如果速度已调整,则返回 NVML_SUCCESS;如果库未成功初始化,则返回 NVML_ERROR_UNINITIALIZED;如果设备无效,则返回 NVML_ERROR_INVALID_ARGUMENT;如果设备不支持此功能(没有风扇),则返回 NVML_ERROR_NOT_SUPPORTED;如果发生任何意外错误,则返回 NVML_ERROR_UNKNOWN

nvmlReturn_t nvmlDeviceGetMinorNumber ( nvmlDevice_t device, unsigned int* minorNumber )
参数
device
目标设备的标识符
minorNumber
用于返回设备次要编号的引用
返回值

描述

检索设备的次要编号。设备的次要编号使得每个 GPU 的 Nvidia 设备节点文件都将具有 /dev/nvidia[次要编号] 的形式。

适用于所有产品。仅支持 Linux

nvmlReturn_t nvmlDeviceGetModuleId ( nvmlDevice_t device, unsigned int* moduleId )
参数
device
目标设备的标识符
moduleId
GPU 模块的唯一标识符
返回值

描述

获取基板上设备模块的唯一标识符

此 API 检索给定基板上存在的每个 GPU 模块的唯一标识符。对于非基板产品,此 ID 始终为 0。

nvmlReturn_t nvmlDeviceGetMultiGpuBoard ( nvmlDevice_t device, unsigned int* multiGpuBool )
参数
device
目标设备的标识符
multiGpuBool
用于返回零值或非零值以指示设备是否在多 GPU 板上的引用
返回值

描述

检索设备是否在多 GPU 板上。在多 GPU 板上的设备会将 multiGpuBool 设置为非零值。

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

nvmlReturn_t nvmlDeviceGetName ( nvmlDevice_t device, char* name, unsigned int  length )
参数
device
目标设备的标识符
name
用于返回产品名称的引用
length
name 中返回的字符串的最大允许长度
返回值

描述

检索此设备的名称。

适用于所有产品。

该名称是一个字母数字字符串,表示特定产品,例如 Tesla C2070。它不会超过 96 个字符的长度(包括 NULL 终止符)。请参阅 nvmlConstants::NVML_DEVICE_NAME_V2_BUFFER_SIZE

当与 MIG 设备句柄一起使用时,API 返回 MIG 设备名称,这些名称可用于根据其属性识别设备。

nvmlReturn_t nvmlDeviceGetNumFans ( nvmlDevice_t device, unsigned int* numFans )
参数
device
目标设备的标识符
numFans
风扇的数量
返回值

描述

检索设备上的风扇数量。

适用于所有带专用风扇的独立产品。

nvmlReturn_t nvmlDeviceGetNumGpuCores ( nvmlDevice_t device, unsigned int* numCores )
参数
device
目标设备的标识符
numCores
指定设备的内核数
返回值

描述

获取设备的内核计数

nvmlReturn_t nvmlDeviceGetOfaUtilization ( nvmlDevice_t device, unsigned int* utilization, unsigned int* samplingPeriodUs )
参数
device
目标设备的标识符
utilization
指向 ofa 利用率信息的无符号整数的引用
samplingPeriodUs
指向无符号整数的引用,用于采样周期(以微秒为单位)
返回值

描述

检索 OFA(光流加速器)的当前利用率和采样大小(以微秒为单位)

TURING_OR_NEWER%

注意

在启用 MIG 的 GPU 上,当前不支持查询解码器利用率。

nvmlReturn_t nvmlDeviceGetP2PStatus ( nvmlDevice_t device1, nvmlDevice_t device2, nvmlGpuP2PCapsIndex_t p2pIndex, nvmlGpuP2PStatus_t* p2pStatus )
参数
device1
第一个设备
device2
第二个设备
p2pIndex
在 device1 和 device2 之间查找的 p2p 功能索引
p2pStatus
用于返回 device1 和 device2 之间 p2pIndex 状态的引用
返回值

描述

检索给定 GPU 对之间给定 p2p 功能索引的状态

nvmlReturn_t nvmlDeviceGetPciInfoExt ( nvmlDevice_t device, nvmlPciInfoExt_t* pci )
参数
device
目标设备的标识符
pci
用于返回 PCI 信息的引用
返回值

描述

检索此设备的 PCI 属性。

适用于所有产品。

有关可用 PCI 信息的详细信息,请参阅 nvmlPciInfoExt_v1_t

nvmlReturn_t nvmlDeviceGetPciInfo_v3 ( nvmlDevice_t device, nvmlPciInfo_t* pci )
参数
device
目标设备的标识符
pci
用于返回 PCI 信息的引用
返回值

描述

检索此设备的 PCI 属性。

适用于所有产品。

有关可用 PCI 信息的详细信息,请参阅 nvmlPciInfo_t

nvmlReturn_t nvmlDeviceGetPcieLinkMaxSpeed ( nvmlDevice_t device, unsigned int* maxSpeed )
参数
device
目标设备的标识符
maxSpeed
设备的 PCIE 最大链接速度(MBPS)
返回值

描述

获取设备的 PCIE 最大链接速度(MBPS)

nvmlReturn_t nvmlDeviceGetPcieReplayCounter ( nvmlDevice_t device, unsigned int* value )
参数
device
目标设备的标识符
value
用于返回计数器值的引用
返回值

描述

检索 PCIe 重放计数器。

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

nvmlReturn_t nvmlDeviceGetPcieSpeed ( nvmlDevice_t device, unsigned int* pcieSpeed )
参数
device
目标设备的标识符
pcieSpeed
设备的 PCIe 最大链接速度(Mbps)
返回值

描述

获取设备的 PCIe 链接速度(Mbps)

nvmlReturn_t nvmlDeviceGetPcieThroughput ( nvmlDevice_t device, nvmlPcieUtilCounter_t counter, unsigned int* value )
参数
device
目标设备的标识符
counter
应查询的特定计数器 nvmlPcieUtilCounter_t
value
用于返回吞吐量(KB/s)的引用
返回值

描述

检索 PCIe 利用率信息。此函数查询 20 毫秒间隔内的字节计数器,因此是该间隔内的 PCIe 吞吐量。

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

虚拟机中运行虚拟 GPU (vGPU) 时不支持此方法。

nvmlReturn_t nvmlDeviceGetPerformanceModes ( nvmlDevice_t device, nvmlDevicePerfModes_t* perfModes )
参数
device
目标设备的标识符
perfModes
用于返回性能级别字符串的引用
返回值

描述

检索性能模式字符串,其中包含为此设备定义的所有性能模式以及其关联的 GPU 时钟和显存时钟值。并非所有令牌都会在所有 GPU 上报告,并且将来可能会添加其他令牌。为了向后兼容,我们仍然提供 nvclock 和 memclock;这些与 nvclockmin 和 memclockmin 相同。

注意:这些时钟值考虑了客户端通过 /ref nvmlDeviceSetClockOffsets 设置的偏移量。

最大可用 P 状态 (P15) 显示最小性能级别 (0),反之亦然。

每个性能模式都作为逗号分隔的“token=value”对列表返回。每组性能模式令牌都用“;”分隔。有效令牌

令牌 值 "perf" 无符号整数 - 性能级别 "nvclock" 无符号整数 - 性能级别的 GPU 时钟(以 MHz 为单位) "nvclockmin" 无符号整数 - 性能级别的 GPU 时钟最小值(以 MHz 为单位) "nvclockmax" 无符号整数 - 性能级别的 GPU 时钟最大值(以 MHz 为单位) "nvclockeditable" 无符号整数 - GPU 时钟域是否可编辑(针对性能级别) "memclock" 无符号整数 - 性能级别的内存时钟(以 MHz 为单位) "memclockmin" 无符号整数 - 性能级别的内存时钟最小值(以 MHz 为单位) "memclockmax" 无符号整数 - 性能级别的内存时钟最大值(以 MHz 为单位) "memclockeditable" 无符号整数 - 内存时钟域是否可编辑(针对性能级别) "memtransferrate" 无符号整数 - 性能级别的内存传输速率(以 MHz 为单位) "memtransferratemin" 无符号整数 - 性能级别的内存传输速率最小值(以 MHz 为单位) "memtransferratemax" 无符号整数 - 性能级别的内存传输速率最大值(以 MHz 为单位) "memtransferrateeditable" 无符号整数 - 内存传输速率是否可编辑(针对性能级别)

示例

perf=0, nvclock=324, nvclockmin=324, nvclockmax=324, nvclockeditable=0, memclock=324, memclockmin=324, memclockmax=324, memclockeditable=0, memtransferrate=648, memtransferratemin=648, memtransferratemax=648, memtransferrateeditable=0 ; perf=1, nvclock=324, nvclockmin=324, nvclockmax=640, nvclockeditable=0, memclock=810, memclockmin=810, memclockmax=810, memclockeditable=0, memtransferrate=1620, memtransferrate=1620, memtransferrate=1620, memtransferrateeditable=0 ;

nvmlReturn_t nvmlDeviceGetPerformanceState ( nvmlDevice_t device, nvmlPstates_t* pState )
参数
device
目标设备的标识符
pState
用于返回性能状态读数的引用
返回值

描述

检索设备的当前性能状态。

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

有关允许的性能状态的详细信息,请参阅 nvmlPstates_t

nvmlReturn_t nvmlDeviceGetPersistenceMode ( nvmlDevice_t device, nvmlEnableState_t* mode )
参数
device
目标设备的标识符
mode
用于返回当前驱动程序持久性模式的引用
返回值

描述

检索与此设备关联的持久性模式。

适用于所有产品。仅适用于 Linux。

当驱动程序持久性模式启用时,当最后一个客户端断开连接时,驱动程序软件状态不会被拆除。默认情况下,此功能处于禁用状态。

有关允许模式的详细信息,请参阅 nvmlEnableState_t

另请参阅

nvmlDeviceSetPersistenceMode()

nvmlReturn_t nvmlDeviceGetPlatformInfo ( nvmlDevice_t device, nvmlPlatformInfo_t* platformInfo )
参数
device
目标设备的标识符
platformInfo
指向调用方提供的 nvmlPlatformInfo_t 结构的指针。
返回值

描述

获取此设备的平台信息。

BLACKWELL_OR_NEWER%

有关结构的更多信息,请参阅 nvmlPlatformInfo_v1_t

nvmlReturn_t nvmlDeviceGetPowerManagementDefaultLimit ( nvmlDevice_t device, unsigned int* defaultLimit )
参数
device
目标设备的标识符
defaultLimit
用于返回默认功耗管理限制(以毫瓦为单位)的参考
返回值

描述

检索此设备上的默认功耗管理限制,以毫瓦为单位。默认功耗管理限制是设备启动时使用的功耗管理限制。

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

nvmlReturn_t nvmlDeviceGetPowerManagementLimit ( nvmlDevice_t device, unsigned int* limit )
参数
device
目标设备的标识符
limit
用于返回功率管理限制(以毫瓦为单位)的引用
返回值

描述

检索与此设备关联的功耗管理限制。

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

功耗限制定义了显卡功耗的上限。如果显卡的总功耗达到此限制,则功耗管理算法将启动。

此读数仅在支持功耗管理模式时可用。请参阅 nvmlDeviceGetPowerManagementMode

nvmlReturn_t nvmlDeviceGetPowerManagementLimitConstraints ( nvmlDevice_t device, unsigned int* minLimit, unsigned int* maxLimit )
参数
device
目标设备的标识符
minLimit
用于返回最小功耗管理限制(以毫瓦为单位)的参考
maxLimit
用于返回最大功耗管理限制(以毫瓦为单位)的参考
返回值

描述

检索有关此设备上功耗管理限制可能值的信息。

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

另请参阅

nvmlDeviceSetPowerManagementLimit

nvmlReturn_t nvmlDeviceGetPowerManagementMode ( nvmlDevice_t device, nvmlEnableState_t* mode )
参数
device
目标设备的标识符
mode
用于返回当前功耗管理模式的参考
返回值

描述

此 API 已被弃用。

检索与此设备关联的功耗管理模式。

适用于 Fermi 系列产品。

  • 需要 NVML_INFOROM_POWER 版本 3.0 或更高版本。

适用于 Kepler 或更新的系列产品。

  • 不需要 NVML_INFOROM_POWER 对象。

此标志指示设备上当前是否激活任何功耗管理算法。启用状态并不一定意味着设备正在被主动节流,而只是意味着如果满足适当的条件,驱动程序将这样做。

有关允许模式的详细信息,请参阅 nvmlEnableState_t

nvmlReturn_t nvmlDeviceGetPowerSource ( nvmlDevice_t device, nvmlPowerSource_t* powerSource )
参数
device
目标设备的标识符
powerSource
设备的电源
返回值

描述

获取设备的电源

nvmlReturn_t nvmlDeviceGetPowerState ( nvmlDevice_t device, nvmlPstates_t* pState )
参数
device
目标设备的标识符
pState
用于返回性能状态读数的引用
返回值

描述

已弃用:请使用 nvmlDeviceGetPerformanceState。此函数暴露了一个不正确的概括。

检索设备的当前性能状态。

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

有关允许的性能状态的详细信息,请参阅 nvmlPstates_t

nvmlReturn_t nvmlDeviceGetPowerUsage ( nvmlDevice_t device, unsigned int* power )
参数
device
目标设备的标识符
power
用于返回功耗信息的参考
返回值

描述

检索此 GPU 及其相关电路(例如,内存)的功耗(以毫瓦为单位)

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

在 Fermi 和 Kepler GPU 上,读数的精度在当前功耗的 +/- 5% 以内。在 Ampere(GA100 除外)或更新的 GPU 上,API 返回 1 秒间隔内的平均功耗。在 GA100 和更早的架构上,返回瞬时功耗。

请参阅 NVML_FI_DEV_POWER_AVERAGENVML_FI_DEV_POWER_INSTANT 以查询特定的功耗值。

仅当支持功耗管理模式时才可用。请参阅 nvmlDeviceGetPowerManagementMode

nvmlReturn_t nvmlDeviceGetProcessUtilization ( nvmlDevice_t device, nvmlProcessUtilizationSample_t* utilization, unsigned int* processSamplesCount, unsigned long long lastSeenTimeStamp )
参数
device
目标设备的标识符
utilization
指向调用方提供的缓冲区,用于返回访客进程利用率样本
processSamplesCount
指向调用方提供的数组大小的指针,并返回正在运行的进程数
lastSeenTimeStamp
仅返回时间戳大于 lastSeenTimeStamp 的样本。
返回值

描述

检索当前利用率和进程 ID

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

读取最近运行的进程的 GPU SM (3D/计算)、帧缓冲区、视频编码器和视频解码器的利用率。利用率值作为利用率样本结构的数组返回到 utilization 指向的调用方提供的缓冲区中。每个正在运行的进程返回一个利用率样本结构,该进程在上一个采样期间具有一些非零利用率。它包括记录样本的 CPU 时间戳。各个利用率值作为“unsigned int”值返回。如果自 lastSeenTimeStamp 以来未找到有效的样本条目,则返回 NVML_ERROR_NOT_FOUND。

要读取利用率值,首先通过使用设置为 NULL 的 utilization 调用函数来确定保存样本所需的缓冲区大小。调用方应分配大小为 processSamplesCount * sizeof(nvmlProcessUtilizationSample_t) 的缓冲区。再次调用该函数,并将分配的缓冲区传入 utilization,并将 processSamplesCount 设置为缓冲区大小的条目数。

在成功返回时,函数将使用实际写入的进程利用率样本结构的数量更新 processSamplesCount。这可能与先前读取的值不同,因为实例会被创建或销毁。

lastSeenTimeStamp 表示 CPU 时间戳(以微秒为单位),上次读取利用率样本的时间。将其设置为 0 以基于驱动程序内部样本缓冲区维护的所有样本读取利用率。将 lastSeenTimeStamp 设置为从先前查询检索的时间戳,以读取自先前查询以来的利用率。

注意

在启用 MIG 的 GPU 上,当前不支持查询进程利用率。

nvmlReturn_t nvmlDeviceGetProcessesUtilizationInfo ( nvmlDevice_t device, nvmlProcessesUtilizationInfo_t* procesesUtilInfo )
参数
device
目标设备的标识符
procesesUtilInfo
指向调用方提供的 nvmlProcessesUtilizationInfo_t 结构的指针。
返回值

描述

检索所有正在运行的进程的最近利用率和进程 ID

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

读取所有正在运行的进程的 GPU SM(3D/计算)、帧缓冲区、视频编码器和视频解码器、jpeg 解码器、OFA(光流加速器)的最近利用率。利用率值作为利用率样本结构的数组返回到 procesesUtilInfo->procUtilArray 指向的调用方提供的缓冲区中。每个正在运行的进程返回一个利用率样本结构,该进程在上一个采样期间具有一些非零利用率。它包括记录样本的 CPU 时间戳。各个利用率值作为“unsigned int”值返回。

调用方应分配大小为 processSamplesCount * sizeof(nvmlProcessUtilizationInfo_t) 的缓冲区。如果缓冲区太小,API 将返回 NVML_ERROR_INSUFFICIENT_SIZE,其中 procesesUtilInfo->processSamplesCount 中包含建议的最小缓冲区大小。调用方应再次调用该函数,并将分配的缓冲区传入 procesesUtilInfo->procUtilArray,并将 procesesUtilInfo->processSamplesCount 设置为不小于先前 API 返回的建议值。

在成功返回时,函数将使用实际写入的进程利用率信息结构的数量更新 procesesUtilInfo->processSamplesCount。这可能与先前读取的值不同,因为实例会被创建或销毁。

procesesUtilInfo->lastSeenTimeStamp 表示 CPU 时间戳(以微秒为单位),上次读取利用率样本的时间。将其设置为 0 以基于驱动程序内部样本缓冲区维护的所有样本读取利用率。将 procesesUtilInfo->lastSeenTimeStamp 设置为从先前查询检索的时间戳,以读取自先前查询以来的利用率。

procesesUtilInfo->version 是结构 nvmlProcessesUtilizationInfo_t 的版本号,调用方应设置正确的版本号以检索特定版本的进程利用率信息。

注意

在启用 MIG 的 GPU 上,当前不支持查询进程利用率。

nvmlReturn_t nvmlDeviceGetRemappedRows ( nvmlDevice_t device, unsigned int* corrRows, unsigned int* uncRows, unsigned int* isPending, unsigned int* failureOccurred )
参数
device
目标设备的标识符
corrRows
纠正错误导致的重新映射行数的参考
uncRows
不可纠正错误导致的重新映射行数的参考
isPending
重新映射是否挂起的参考
failureOccurred
在过去重新映射失败时设置的参考
返回值

描述

获取重新映射的行数。报告的行数将基于重新映射的原因。 isPending 指示是否存在挂起的重新映射。需要重置才能实际重新映射行。如果过去行重新映射失败,则将设置 failureOccurred。挂起的重新映射不会影响 GPU 上的未来工作,因为错误遏制和动态页面黑名单将处理该问题。

注意

在启用 MIG 且实例处于活动状态的 GPU 上,不支持查询重新映射的行数

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

nvmlReturn_t nvmlDeviceGetRetiredPages ( nvmlDevice_t device, nvmlPageRetirementCause_t cause, unsigned int* pageCount, unsigned long long* addresses )
参数
device
目标设备的标识符
cause
按停用原因筛选页面地址
pageCount
用于提供地址缓冲区大小并返回与原因匹配的停用页数的参考。设置为 0 以在不分配地址缓冲区的情况下查询大小
addresses
用于写入页面地址的缓冲区
返回值

描述

按来源返回停用页面的列表,包括挂起的停用页面。从此 API 提供的地址信息是停用页面的硬件地址。请注意,这与 CUDA 中使用的虚拟地址不匹配,但将与 Xid 63 中的地址信息匹配

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

nvmlReturn_t nvmlDeviceGetRetiredPagesPendingStatus ( nvmlDevice_t device, nvmlEnableState_t* isPending )
参数
device
目标设备的标识符
isPending
用于返回挂起状态的参考
返回值

描述

检查是否有任何页面正在等待停用,并且需要重新启动才能完全停用。

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

nvmlReturn_t nvmlDeviceGetRetiredPages_v2 ( nvmlDevice_t device, nvmlPageRetirementCause_t cause, unsigned int* pageCount, unsigned long long* addresses, unsigned long long* timestamps )
参数
device
目标设备的标识符
cause
按停用原因筛选页面地址
pageCount
用于提供地址缓冲区大小并返回与原因匹配的停用页数的参考。设置为 0 以在不分配地址缓冲区的情况下查询大小
addresses
用于写入页面地址的缓冲区
timestamps
用于写入页面停用时间戳的缓冲区,_v2 的附加参数
返回值

描述

按来源返回停用页面的列表,包括挂起的停用页面。从此 API 提供的地址信息是停用页面的硬件地址。请注意,这与 CUDA 中使用的虚拟地址不匹配,但将与 Xid 63 中的地址信息匹配

注意

nvmlDeviceGetRetiredPages_v2 添加了一个额外的时间戳参数,以返回每个页面停用的时间。

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

nvmlReturn_t nvmlDeviceGetRowRemapperHistogram ( nvmlDevice_t device, nvmlRowRemapperHistogramValues_t* values )
参数
device
设备句柄
values
直方图值
返回值

描述

获取行重映射器直方图。返回 GPU 上每个 bank 的重映射可用性。

nvmlReturn_t nvmlDeviceGetRunningProcessDetailList ( nvmlDevice_t device, nvmlProcessDetailList_t* plist )
参数
device
设备句柄或 MIG 设备句柄
plist
用于处理详细信息列表的参考 plist->version API 版本 plist->mode 进程模式 plist->procArray 用于返回进程信息的参考 plist->numProcArrayEntries 返回条目的进程数组大小
返回值

描述

获取有关设备上运行进程的输入上下文信息

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

此函数仅返回有关正在运行的进程的信息(例如,具有活动上下文的 CUDA 应用程序)。

要确定要分配的 plist->procArray 数组的大小,请调用该函数,并将 plist->numProcArrayEntries 设置为零,并将 plist->procArray 设置为 NULL。返回代码将是 NVML_ERROR_INSUFFICIENT_SIZE(如果有 plist->mode 类型的有效进程要报告,在这种情况下,plist->numProcArrayEntries 字段将指示数组中所需的条目数)或 NVML_SUCCESS(如果不存在 plist->mode 类型的进程)。

返回的 usedGpuMemory 字段是应用程序使用的所有内存。返回的 usedGpuCcProtectedMemory 字段是应用程序使用的所有受保护内存。

请记住,此调用返回的信息是动态的,并且元素的数量可能会随时间变化。为 plist->procArray 表分配更多空间,以防生成新进程。

注意

在 MIG 模式下,如果提供设备句柄,则 API 仅在调用方具有适当权限的情况下返回聚合信息。可以使用特定的 MIG 设备句柄查询每个实例的信息。如果设备处于 vGPU Host 虚拟化模式,则不支持使用 MIG 设备句柄查询每个实例的信息。受保护内存使用情况目前在 MIG 模式和 Windows 中不可用。

nvmlReturn_t nvmlDeviceGetSamples ( nvmlDevice_t device, nvmlSamplingType_t type, unsigned long long lastSeenTimeStamp, nvmlValueType_t* sampleValType, unsigned int* sampleCount, nvmlSample_t* samples )
参数
device
目标设备的标识符
type
采样事件的类型
lastSeenTimeStamp
仅返回时间戳大于 lastSeenTimeStamp 的样本。
sampleValType
输出参数,用于表示 nvmlSampleVal_t 中描述的样本值类型
sampleCount
用于提供样本数组中可以查询的元素数量的参考
samples
用于返回样本的参考
返回值

描述

获取 GPU 的最近样本。

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

基于类型,此方法可用于获取驱动程序在缓冲区中维护的功耗、利用率或时钟样本。

功耗、利用率和时钟样本作为“unsigned int”类型返回,用于联合 nvmlValue_t

要获取用户需要分配的样本大小,可以使用设置为 NULL 的 samples 调用该方法。返回的 samplesCount 将提供可以查询的样本数。用户需要分配大小为 samplesCount * sizeof(nvmlSample_t) 的缓冲区。

lastSeenTimeStamp 表示 CPU 时间戳(以微秒为单位)。将其设置为 0 以获取底层缓冲区维护的所有样本。将 lastSeenTimeStamp 设置为从先前查询的日期检索的时间戳之一,以获取更新的样本。

此方法获取可以在提供的样本数组中容纳的条目数,并且参考 samplesCount 将更新以指示实际检索了多少个样本。与通过现有方法轮询相比,使用此方法获取样本的优势在于以较低的轮询成本获得更高频率的数据。

注意

在启用 MIG 的 GPU 上,当前不支持查询以下样本类型 NVML_GPU_UTILIZATION_SAMPLES、NVML_MEMORY_UTILIZATION_SAMPLES NVML_ENC_UTILIZATION_SAMPLES 和 NVML_DEC_UTILIZATION_SAMPLES。

nvmlReturn_t nvmlDeviceGetSerial ( nvmlDevice_t device, char* serial, unsigned int  length )
参数
device
目标设备的标识符
serial
用于返回板卡/模块序列号的参考
length
序列号中返回的字符串的最大允许长度
返回值

描述

检索与此设备的板卡关联的全局唯一板卡序列号。

适用于所有具有 infoROM 的产品。

序列号是一个字母数字字符串,不会超过 30 个字符(包括 NULL 终止符)。此号码与物理连接到板卡上的序列号标签匹配。请参阅 nvmlConstants::NVML_DEVICE_SERIAL_BUFFER_SIZE

nvmlReturn_t nvmlDeviceGetSramEccErrorStatus ( nvmlDevice_t device, nvmlEccSramErrorStatus_t* status )
参数
device
目标设备的标识符
status
返回 SRAM ECC 错误状态
返回值

描述

获取此设备的 SRAM ECC 错误状态。

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

有关结构的更多信息,请参阅 nvmlEccSramErrorStatus_v1_t

nvmlReturn_t nvmlDeviceGetSupportedClocksEventReasons ( nvmlDevice_t device, unsigned long long* supportedClocksEventReasons )
参数
device
目标设备的标识符
supportedClocksEventReasons
用于返回支持的时钟事件原因位掩码的参考
返回值

描述

检索 nvmlDeviceGetCurrentClocksEventReasons 可以返回的支持的时钟事件原因的位掩码

适用于所有完全支持的产品。

虚拟机中运行虚拟 GPU (vGPU) 时不支持此方法。

另请参阅

NvmlClocksEventReasons

nvmlDeviceGetCurrentClocksEventReasons

nvmlReturn_t nvmlDeviceGetSupportedClocksThrottleReasons ( nvmlDevice_t device, unsigned long long* supportedClocksThrottleReasons )
nvmlReturn_t nvmlDeviceGetSupportedGraphicsClocks ( nvmlDevice_t device, unsigned int  memoryClockMHz, unsigned int* count, unsigned int* clocksMHz )
参数
device
目标设备的标识符
memoryClockMHz
用于返回可能的图形时钟的显存时钟
count
用于提供 clocksMHz 数组大小并返回元素数量的参考
clocksMHz
用于返回 MHz 时钟的参考
返回值

描述

检索可用作 nvmlDeviceSetApplicationsClocks 参数的可能图形时钟列表。

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

另请参阅

nvmlDeviceSetApplicationsClocks

nvmlDeviceGetSupportedMemoryClocks

nvmlReturn_t nvmlDeviceGetSupportedMemoryClocks ( nvmlDevice_t device, unsigned int* count, unsigned int* clocksMHz )
参数
device
目标设备的标识符
count
用于提供 clocksMHz 数组大小并返回元素数量的参考
clocksMHz
用于返回时钟频率(MHz)的引用
返回值

描述

检索可用作 nvmlDeviceSetApplicationsClocks 参数的可能显存时钟列表。

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

另请参阅

nvmlDeviceSetApplicationsClocks

nvmlDeviceGetSupportedGraphicsClocks

nvmlReturn_t nvmlDeviceGetSupportedPerformanceStates ( nvmlDevice_t device, nvmlPstates_t* pstates, unsigned int  size )
参数
device
目标设备的标识符
pstates
用于返回设备支持的性能状态列表的容器
size
提供的 pstates 数组的大小(以字节为单位)
返回值

描述

获取设备的所有支持的性能状态 (P-State)。

返回的数组将包含设备支持的有效 P-State 的连续列表。如果支持的 P-State 数量少于提供的数组大小,则缺失的元素将包含 NVML_PSTATE_UNKNOWN。

返回列表中的元素数量永远不会超过 NVML_MAX_GPU_PERF_PSTATES。

nvmlReturn_t nvmlDeviceGetTargetFanSpeed ( nvmlDevice_t device, unsigned int  fan, unsigned int* targetSpeed )
参数
device
目标设备的标识符
fan
目标风扇的索引,从零开始。
targetSpeed
返回风扇速度百分比的引用
返回值

描述

检索设备指定风扇的预期目标速度。

通常,驱动程序会根据 GPU 的需求动态调整风扇。但是,当用户使用 nvmlDeviceSetFanSpeed_v2 设置风扇速度时,驱动程序将尝试使风扇达到 nvmlDeviceSetFanSpeed_v2 中的设置。风扇的实际当前速度在 nvmlDeviceGetFanSpeed_v2 中报告。

适用于所有带专用风扇的独立产品。

风扇速度表示为产品最大噪音容限风扇速度的百分比。在某些情况下,此值可能超过 100%。

nvmlReturn_t nvmlDeviceGetTemperature ( nvmlDevice_t device, nvmlTemperatureSensors_t sensorType, unsigned int* temp )
nvmlReturn_t nvmlDeviceGetTemperatureThreshold ( nvmlDevice_t device, nvmlTemperatureThresholds_t thresholdType, unsigned int* temp )
参数
device
目标设备的标识符
thresholdType
The type of threshold value queried
temp
Reference in which to return the temperature reading
返回值

描述

Retrieves the temperature threshold for the GPU with the specified threshold type in degrees C.

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

See nvmlTemperatureThresholds_t for details on available temperature thresholds.

Note: This API is no longer the preferred interface for retrieving the following temperature thresholds on Ada and later architectures: NVML_TEMPERATURE_THRESHOLD_SHUTDOWN, NVML_TEMPERATURE_THRESHOLD_SLOWDOWN, NVML_TEMPERATURE_THRESHOLD_MEM_MAX and NVML_TEMPERATURE_THRESHOLD_GPU_MAX.

Support for reading these temperature thresholds for Ada and later architectures would be removed from this API in future releases. Please use nvmlDeviceGetFieldValues with NVML_FI_DEV_TEMPERATURE_* fields to retrieve temperature thresholds on these architectures.

nvmlReturn_t nvmlDeviceGetTemperatureV ( nvmlDevice_t device, nvmlTemperature_t* temperature )
参数
device
Target device identifier.
temperature
Structure specifying the sensor type (input) and retrieved temperature value (output).
返回值

描述

Retrieves the current temperature readings (in degrees C) for the given device.

适用于所有产品。

nvmlReturn_t nvmlDeviceGetThermalSettings ( nvmlDevice_t device, unsigned int  sensorIndex, nvmlGpuThermalSettings_t* pThermalSettings )
参数
device
目标设备的标识符
sensorIndex
The index of the thermal sensor
pThermalSettings
Reference in which to return the thermal sensor information
返回值

描述

Used to execute a list of thermal system instructions.

nvmlReturn_t nvmlDeviceGetTopologyCommonAncestor ( nvmlDevice_t device1, nvmlDevice_t device2, nvmlGpuTopologyLevel_t* pathInfo )
参数
device1
The identifier of the first device
device2
The identifier of the second device
pathInfo
A nvmlGpuTopologyLevel_t that gives the path type
返回值

描述

Retrieve the common ancestor for two devices For all products. Supported on Linux only.

nvmlReturn_t nvmlDeviceGetTopologyNearestGpus ( nvmlDevice_t device, nvmlGpuTopologyLevel_t level, unsigned int* count, nvmlDevice_t* deviceArray )
参数
device
The identifier of the first device
level
The nvmlGpuTopologyLevel_t level to search for other GPUs
count
When zero, is set to the number of matching GPUs such that deviceArray can be malloc'd. When non-zero, deviceArray will be filled with count number of device handles.
deviceArray
An array of device handles for GPUs found at level
返回值

描述

Retrieve the set of GPUs that are nearest to a given device at a specific interconnectivity level For all products. Supported on Linux only.

nvmlReturn_t nvmlDeviceGetTotalEccErrors ( nvmlDevice_t device, nvmlMemoryErrorType_t errorType, nvmlEccCounterType_t counterType, unsigned long long* eccCounts )
参数
device
目标设备的标识符
errorType
指定错误类型的标志。
counterType
指定错误计数器类型的标志。
eccCounts
用于返回指定 ECC 错误的引用
返回值

描述

Retrieves the total ECC error counts for the device.

For Fermi or newer fully supported devices. Only applicable to devices with ECC. Requires NVML_INFOROM_ECC version 1.0 or higher. Requires ECC Mode to be enabled.

The total error count is the sum of errors across each of the separate memory systems, i.e. the total set of errors across the entire device.

See nvmlMemoryErrorType_t for a description of available error types. See nvmlEccCounterType_t for a description of available counter types.

另请参阅

nvmlDeviceClearEccErrorCounts()

nvmlReturn_t nvmlDeviceGetTotalEnergyConsumption ( nvmlDevice_t device, unsigned long long* energy )
参数
device
目标设备的标识符
energy
Reference in which to return the energy consumption information
返回值

描述

Retrieves total energy consumption for this GPU in millijoules (mJ) since the driver was last reloaded

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

nvmlReturn_t nvmlDeviceGetUUID ( nvmlDevice_t device, char* uuid, unsigned int  length )
参数
device
目标设备的标识符
uuid
Reference in which to return the GPU UUID
length
The maximum allowed length of the string returned in uuid
返回值

描述

Retrieves the globally unique immutable UUID associated with this device, as a 5 part hexadecimal string, that augments the immutable, board serial identifier.

适用于所有产品。

The UUID is a globally unique identifier. It is the only available identifier for pre-Fermi-architecture products. It does NOT correspond to any identifier printed on the board. It will not exceed 96 characters in length (including the NULL terminator). See nvmlConstants::NVML_DEVICE_UUID_V2_BUFFER_SIZE.

When used with MIG device handles the API returns globally unique UUIDs which can be used to identify MIG devices across both GPU and MIG devices. UUIDs are immutable for the lifetime of a MIG device.

nvmlReturn_t nvmlDeviceGetUtilizationRates ( nvmlDevice_t device, nvmlUtilization_t* utilization )
参数
device
目标设备的标识符
utilization
Reference in which to return the utilization information
返回值

描述

Retrieves the current utilization rates for the device's major subsystems.

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

See nvmlUtilization_t for details on available utilization rates.

注意
  • During driver initialization when ECC is enabled one can see high GPU and Memory Utilization readings. This is caused by ECC Memory Scrubbing mechanism that is performed during driver initialization.

  • On MIG-enabled GPUs, querying device utilization rates is not currently supported.

nvmlReturn_t nvmlDeviceGetVbiosVersion ( nvmlDevice_t device, char* version, unsigned int  length )
参数
device
目标设备的标识符
version
Reference to which to return the VBIOS version
length
版本中返回的字符串的最大允许长度
返回值

描述

Get VBIOS version of the device.

适用于所有产品。

The VBIOS version may change from time to time. It will not exceed 32 characters in length (including the NULL terminator). See nvmlConstants::NVML_DEVICE_VBIOS_VERSION_BUFFER_SIZE.

nvmlReturn_t nvmlDeviceGetViolationStatus ( nvmlDevice_t device, nvmlPerfPolicyType_t perfPolicyType, nvmlViolationTime_t* violTime )
参数
device
目标设备的标识符
perfPolicyType
Represents Performance policy which can trigger GPU throttling
violTime
Reference to which violation time related information is returned
返回值

描述

Gets the duration of time during which the device was throttled (lower than requested clocks) due to power or thermal constraints.

The method is important to users who are tying to understand if their GPUs throttle at any point during their applications. The difference in violation times at two different reference times gives the indication of GPU throttling event.

Violation for thermal capping is not supported at this time.

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

nvmlReturn_t nvmlDeviceOnSameBoard ( nvmlDevice_t device1, nvmlDevice_t device2, int* onSameBoard )
参数
device1
The first GPU device
device2
The second GPU device
onSameBoard
Reference in which to return the status. Non-zero indicates that the GPUs are on the same board.
返回值

描述

Check if the GPU devices are on the same physical board.

适用于所有完全支持的产品。

nvmlReturn_t nvmlDeviceSetClockOffsets ( nvmlDevice_t device, nvmlClockOffset_t* info )
参数
device
目标设备的标识符
info
Structure specifying the clock type (input), the pstate (input) and clock offset value (input)
返回值

描述

Control current clock offset of some clock domain for a given PState

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

Requires privileged user.

nvmlReturn_t nvmlDeviceSetConfComputeUnprotectedMemSize ( nvmlDevice_t device, unsigned long long sizeKiB )
参数
device
Device Handle
sizeKiB
Unprotected Memory size to be set in KiB
返回值

描述

Set Conf Computing Unprotected Memory Size.

适用于 Ampere 或更新的完全支持的设备。在 Linux、Windows TCC 上受支持。

nvmlReturn_t nvmlDeviceSetDramEncryptionMode ( nvmlDevice_t device, const nvmlDramEncryptionInfo_t* dramEncryption )
参数
device
目标设备的标识符
dramEncryption
The target DRAM Encryption mode
返回值

描述

Set the DRAM Encryption mode for the device.

For Kepler or newer fully supported devices. Only applicable to devices that support DRAM Encryption. Requires NVML_INFOROM_DEN version 1.0 or higher. Requires root/admin permissions.

The DRAM Encryption mode determines whether the GPU enables its DRAM Encryption support.

This operation takes effect after the next reboot.

See nvmlEnableState_t for details on available modes.

另请参阅

nvmlDeviceGetDramEncryptionMode()

nvmlReturn_t nvmlDeviceValidateInforom ( nvmlDevice_t device )
参数
device
目标设备的标识符
返回值

描述

Reads the infoROM from the flash and verifies the checksums.

适用于所有具有 infoROM 的产品。

nvmlReturn_t nvmlSystemGetConfComputeCapabilities ( nvmlConfComputeSystemCaps_t* capabilities )
参数
capabilities
System CC capabilities
返回值

描述

Get Conf Computing System capabilities.

适用于 Ampere 或更新的完全支持的设备。在 Linux、Windows TCC 上受支持。

nvmlReturn_t nvmlSystemGetConfComputeGpusReadyState ( unsigned int* isAcceptingWork )
参数
isAcceptingWork
Returns GPU current work accepting state, NVML_CC_ACCEPTING_CLIENT_REQUESTS_TRUE or NVML_CC_ACCEPTING_CLIENT_REQUESTS_FALSE
描述

Get Conf Computing GPUs ready state.

适用于 Ampere 或更新的完全支持的设备。在 Linux、Windows TCC 上受支持。

返回值

nvmlReturn_t nvmlSystemGetConfComputeKeyRotationThresholdInfo ( nvmlConfComputeGetKeyRotationThresholdInfo_t* pKeyRotationThrInfo )
参数
pKeyRotationThrInfo
Reference in which to return the key rotation threshold data
返回值

描述

Get Conf Computing key rotation threshold detail.

For Hopper or newer fully supported devices. Supported on Linux, Windows TCC.

nvmlReturn_t nvmlSystemGetConfComputeSettings ( nvmlSystemConfComputeSettings_t* settings )
参数
settings
System CC settings
返回值

描述

Get Conf Computing System Settings.

For Hopper or newer fully supported devices. Supported on Linux, Windows TCC.

nvmlReturn_t nvmlSystemGetConfComputeState ( nvmlConfComputeSystemState_t* state )
参数
state
System CC State
返回值

描述

Get Conf Computing System State.

适用于 Ampere 或更新的完全支持的设备。在 Linux、Windows TCC 上受支持。

nvmlReturn_t nvmlSystemSetConfComputeGpusReadyState ( unsigned int  isAcceptingWork )
参数
isAcceptingWork
GPU accepting new work, NVML_CC_ACCEPTING_CLIENT_REQUESTS_TRUE or NVML_CC_ACCEPTING_CLIENT_REQUESTS_FALSE
描述

Set Conf Computing GPUs ready state.

适用于 Ampere 或更新的完全支持的设备。在 Linux、Windows TCC 上受支持。

返回值

nvmlReturn_t nvmlSystemSetConfComputeKeyRotationThresholdInfo ( nvmlConfComputeSetKeyRotationThresholdInfo_t* pKeyRotationThrInfo )
参数
pKeyRotationThrInfo
Reference to the key rotation threshold data
返回值

描述

Set Conf Computing key rotation threshold.

For Hopper or newer fully supported devices. Supported on Linux, Windows TCC.

This function is to set the confidential compute key rotation threshold parameters. pKeyRotationThrInfo->maxAttackerAdvantage should be in the range from NVML_CC_KEY_ROTATION_THRESHOLD_ATTACKER_ADVANTAGE_MIN to NVML_CC_KEY_ROTATION_THRESHOLD_ATTACKER_ADVANTAGE_MAX. Default value is 60.

CPU and Memory Affinity


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