13.07.2015 Views

Released with CUDA 4.1 - NVIDIA Developer Zone

Released with CUDA 4.1 - NVIDIA Developer Zone

Released with CUDA 4.1 - NVIDIA Developer Zone

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

NVML API REFERENCE MANUALDecember 5, 2011Version 2.285.05


Contents1 NVML API Reference 11.1 Feature Matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Change log of NVML library 72.1 Changes between NVML v1.0 and v2.285 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 Module Index 93.1 Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 Data Structure Index 11<strong>4.1</strong> Data Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 Module Documentation 135.1 Device Structs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135.1.1 Define Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135.1.1.1 NVML_VALUE_NOT_AVAILABLE . . . . . . . . . . . . . . . . . . . . . . . . 135.2 Device Enums . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145.2.1 Enumeration Type Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155.2.1.1 nvmlClockType_t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155.2.1.2 nvmlComputeMode_t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165.2.1.3 nvmlDriverModel_t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165.2.1.4 nvmlEccBitType_t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165.2.1.5 nvmlEccCounterType_t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165.2.1.6 nvmlEnableState_t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175.2.1.7 nvmlInforomObject_t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175.2.1.8 nvmlPstates_t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175.2.1.9 nvmlReturn_t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185.2.1.10 nvmlTemperatureSensors_t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185.3 Unit Structs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195.3.1 Enumeration Type Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19


iiCONTENTS5.3.1.1 nvmlFanState_t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195.3.1.2 nvmlLedColor_t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195.4 Event Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205.<strong>4.1</strong> Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205.4.2 Define Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205.4.2.1 nvmlEventTypePState . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205.5 Initialization and Cleanup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215.5.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215.5.2 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215.5.2.1 nvmlInit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215.5.2.2 nvmlShutdown . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215.6 Error reporting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225.6.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225.6.2 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225.6.2.1 nvmlErrorString . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225.7 System Queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235.7.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235.7.2 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235.7.2.1 nvmlSystemGetDriverVersion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235.7.2.2 nvmlSystemGetNVMLVersion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235.7.2.3 nvmlSystemGetProcessName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245.8 Unit Queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255.8.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255.8.2 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255.8.2.1 nvmlSystemGetHicVersion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255.8.2.2 nvmlUnitGetCount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255.8.2.3 nvmlUnitGetDevices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265.8.2.4 nvmlUnitGetFanSpeedInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265.8.2.5 nvmlUnitGetHandleByIndex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275.8.2.6 nvmlUnitGetLedState . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275.8.2.7 nvmlUnitGetPsuInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275.8.2.8 nvmlUnitGetTemperature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285.8.2.9 nvmlUnitGetUnitInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285.9 Device Queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295.9.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295.9.2 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305.9.2.1 nvmlDeviceGetClockInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30<strong>NVIDIA</strong> Management Library


CONTENTSiii5.9.2.2 nvmlDeviceGetComputeMode . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305.9.2.3 nvmlDeviceGetComputeRunningProcesses . . . . . . . . . . . . . . . . . . . . . . 315.9.2.4 nvmlDeviceGetCount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315.9.2.5 nvmlDeviceGetDetailedEccErrors . . . . . . . . . . . . . . . . . . . . . . . . . . 325.9.2.6 nvmlDeviceGetDisplayMode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325.9.2.7 nvmlDeviceGetDriverModel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335.9.2.8 nvmlDeviceGetEccMode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335.9.2.9 nvmlDeviceGetFanSpeed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345.9.2.10 nvmlDeviceGetHandleByIndex . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345.9.2.11 nvmlDeviceGetHandleByPciBusId . . . . . . . . . . . . . . . . . . . . . . . . . . 355.9.2.12 nvmlDeviceGetHandleBySerial . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355.9.2.13 nvmlDeviceGetInforomVersion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355.9.2.14 nvmlDeviceGetMaxClockInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365.9.2.15 nvmlDeviceGetMemoryInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365.9.2.16 nvmlDeviceGetName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375.9.2.17 nvmlDeviceGetPciInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375.9.2.18 nvmlDeviceGetPerformanceState . . . . . . . . . . . . . . . . . . . . . . . . . . . 385.9.2.19 nvmlDeviceGetPersistenceMode . . . . . . . . . . . . . . . . . . . . . . . . . . . 385.9.2.20 nvmlDeviceGetPowerManagementLimit . . . . . . . . . . . . . . . . . . . . . . . 395.9.2.21 nvmlDeviceGetPowerManagementMode . . . . . . . . . . . . . . . . . . . . . . . 395.9.2.22 nvmlDeviceGetPowerState . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405.9.2.23 nvmlDeviceGetPowerUsage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405.9.2.24 nvmlDeviceGetSerial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405.9.2.25 nvmlDeviceGetTemperature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415.9.2.26 nvmlDeviceGetTotalEccErrors . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415.9.2.27 nvmlDeviceGetUtilizationRates . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425.9.2.28 nvmlDeviceGetUUID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425.9.2.29 nvmlDeviceGetVbiosVersion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435.10 Unit Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445.10.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445.10.2 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445.10.2.1 nvmlUnitSetLedState . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445.11 Device Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455.11.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455.11.2 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455.11.2.1 nvmlDeviceClearEccErrorCounts . . . . . . . . . . . . . . . . . . . . . . . . . . . 455.11.2.2 nvmlDeviceSetComputeMode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46<strong>NVIDIA</strong> Management Library


ivCONTENTS5.11.2.3 nvmlDeviceSetDriverModel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465.11.2.4 nvmlDeviceSetEccMode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475.11.2.5 nvmlDeviceSetPersistenceMode . . . . . . . . . . . . . . . . . . . . . . . . . . . 485.12 Event Handling Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495.12.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495.12.2 Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495.12.2.1 nvmlEventSet_t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495.12.3 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495.12.3.1 nvmlDeviceGetSupportedEventTypes . . . . . . . . . . . . . . . . . . . . . . . . . 495.12.3.2 nvmlDeviceRegisterEvents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505.12.3.3 nvmlEventSetCreate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515.12.3.4 nvmlEventSetFree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515.12.3.5 nvmlEventSetWait . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516 Data Structure Documentation 536.1 nvmlEccErrorCounts_t Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536.1.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536.2 nvmlEventData_t Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546.2.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546.3 nvmlHwbcEntry_t Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556.3.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556.4 nvmlLedState_t Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566.<strong>4.1</strong> Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566.5 nvmlMemory_t Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576.5.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576.6 nvmlPciInfo_t Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 586.6.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 586.7 nvmlProcessInfo_t Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 596.7.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 596.8 nvmlPSUInfo_t Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 606.8.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 606.9 nvmlUnitFanInfo_t Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 616.9.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 616.10 nvmlUnitFanSpeeds_t Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 626.10.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 626.11 nvmlUnitInfo_t Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 636.11.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63<strong>NVIDIA</strong> Management Library


CONTENTSv6.12 nvmlUtilization_t Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 646.12.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64<strong>NVIDIA</strong> Management Library


Chapter 1NVML API ReferenceThe <strong>NVIDIA</strong> Management Library (NVML) is a C-based programmatic interface for monitoring and managing variousstates <strong>with</strong>in <strong>NVIDIA</strong> Tesla GPUs.It is intended to be a platform for building 3rd party applications, and is also the underlying library for the <strong>NVIDIA</strong>supportednvidia-smi tool.NVML is thread-safe so it is safe to make simultaneous NVML calls from multiple threads.API DocumentationSupported OS platforms:• Windows: Windows Server 2008 R2 64bit, Windows 7 64bit• Linux: 32-bit and 64-bitSupported products:• Full Support– <strong>NVIDIA</strong> Tesla Line: S1070, S2050, C1060, C2050/70/75, M2050/70/75/90, X2070/90– <strong>NVIDIA</strong> Quadro ®Line: 4000, 5000, 6000, 7000, M2070-Q– <strong>NVIDIA</strong> GeForce ®Line: None• Limited Support– <strong>NVIDIA</strong> Tesla Line: None– <strong>NVIDIA</strong> Quadro ®Line: All other current and previous generation Quadro-branded parts– <strong>NVIDIA</strong> GeForce ®Line: All current and previous generation GeForce-branded partsThe NVML library can be found at %ProgramW6432%\"<strong>NVIDIA</strong> Corporation"\NVSMI\ on Windows, but will notbe added to the path. To dynamically link to NVML, add this path to the PATH environmental variable. To dynamicallyload NVML, call LoadLibrary <strong>with</strong> this path.On Linux the NVML library will be found on the standard library path. For 64 bit Linux, both the 32 bit and 64 bitNVML libraries will be installed.The NVML API is divided into five categories:


2 NVML API Reference• Support Methods:– Initialization and Cleanup• Query Methods:– System Queries– Device Queries– Unit Queries• Control Methods:– Unit Commands– Device Commands• Event Handling Methods:– Event Handling Methods• Error reporting Methods– Error reportingList of changes can be found in the Changelog<strong>NVIDIA</strong> Management Library


1.1 Feature Matrix 31.1 Feature MatrixFigure 1.1: This chart shows which unit-level features are available for each S-class product. All GPUs <strong>with</strong>in eachS-class product also provide the information listed in the Device chart below.<strong>NVIDIA</strong> Management Library


4 NVML API ReferenceFigure 1.2: This chart shows which features are available for each Fermi GPU product.<strong>NVIDIA</strong> Management Library


1.1 Feature Matrix 5Figure 1.3: This chart shows which features are available for each Quadro and T10 GPU product.<strong>NVIDIA</strong> Management Library


6 NVML API Reference<strong>NVIDIA</strong> Management Library


Chapter 2Change log of NVML library


8 Change log of NVML libraryThis chapter list changes in API and bug fixes that were introduced to the library2.1 Changes between NVML v1.0 and v2.285• Added possibility to query separately current and pending driver model <strong>with</strong> nvmlDeviceGetDriverModel• Added API nvmlDeviceGetVbiosVersion function to report VBIOS version.• Added pciSubSystemId to nvmlPciInfo_t struct• Added API nvmlErrorString function to convert error code to string• Updated docs to indicate we support M2075 and C2075• Added API nvmlSystemGetHicVersion function to report HIC firmware version• Added NVML versioning support– Functions that changed API and/or size of structs have appended versioning suffix (e.g.nvmlDeviceGetPciInfo_v2). Appropriate C defines have been added that map old function names to thenewer version of the function• Added support for concurrent library usage by multiple libraries• Added API nvmlDeviceGetMaxClockInfo function for reporting device’s clock limits• Added new error code NVML_ERROR_DRIVER_NOT_LOADED used by nvmlInit• Extended nvmlPciInfo_t struct <strong>with</strong> new field: sub system id• Added NVML support on Windows guest account• Changed format of pciBusId string (to XXXX:XX:XX.X) of nvmlPciInfo_t• Parsing of busId in nvmlDeviceGetHandleByPciBusId is less restrictive. You can pass 0:2:0.0 or 0000:02:00and other variations• Added API for events waiting for GPU events (Linux only) see docs of Event Handling Methods• Added API nvmlDeviceGetComputeRunningProcesses and nvmlSystemGetProcessName functions for lookingup currently running compute applications• Deprecated nvmlDeviceGetPowerState in favor of nvmlDeviceGetPerformanceState.<strong>NVIDIA</strong> Management Library


Chapter 3Module Index3.1 ModulesHere is a list of all modules:Device Structs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13Device Enums . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14Unit Structs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19Initialization and Cleanup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21Error reporting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22System Queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23Unit Queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25Device Queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29Unit Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44Device Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45Event Handling Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49Event Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20


10 Module Index<strong>NVIDIA</strong> Management Library


12 Data Structure Index<strong>NVIDIA</strong> Management Library


Chapter 5Module Documentation5.1 Device StructsData Structures• struct nvmlPciInfo_t• struct nvmlEccErrorCounts_t• struct nvmlUtilization_t• struct nvmlMemory_t• struct nvmlProcessInfo_tDefines• #define NVML_VALUE_NOT_AVAILABLE (-1)5.1.1 Define Documentation5.1.1.1 #define NVML_VALUE_NOT_AVAILABLE (-1)Special constant that some fields take when they are not available. Used when only part of the struct is not available.Each structure explicitly states when to check for this value.


14 Module Documentation5.2 Device EnumsDefines• #define nvmlFlagDefault 0x00Generic flag used to specify the default behavior of some functions. See description of particular functions for details.• #define nvmlFlagForce 0x01Generic flag used to force some behavior. See description of particular functions for details.Enumerations• enum nvmlEnableState_t {NVML_FEATURE_DISABLED = 0,NVML_FEATURE_ENABLED = 1 }• enum nvmlTemperatureSensors_t { NVML_TEMPERATURE_GPU = 0 }• enum nvmlComputeMode_t {NVML_COMPUTEMODE_DEFAULT = 0,NVML_COMPUTEMODE_EXCLUSIVE_THREAD = 1,NVML_COMPUTEMODE_PROHIBITED = 2,NVML_COMPUTEMODE_EXCLUSIVE_PROCESS = 3 }• enum nvmlEccBitType_t {NVML_SINGLE_BIT_ECC = 0,NVML_DOUBLE_BIT_ECC = 1 }• enum nvmlEccCounterType_t {NVML_VOLATILE_ECC = 0,NVML_AGGREGATE_ECC = 1 }• enum nvmlClockType_t {NVML_CLOCK_GRAPHICS = 0,NVML_CLOCK_SM = 1,NVML_CLOCK_MEM = 2 }• enum nvmlDriverModel_t {NVML_DRIVER_WDDM = 0,NVML_DRIVER_WDM = 1 }• enum nvmlPstates_t {NVML_PSTATE_0 = 0,NVML_PSTATE_1 = 1,NVML_PSTATE_2 = 2,NVML_PSTATE_3 = 3,NVML_PSTATE_4 = 4,NVML_PSTATE_5 = 5,NVML_PSTATE_6 = 6,NVML_PSTATE_7 = 7,<strong>NVIDIA</strong> Management Library


5.2 Device Enums 15NVML_PSTATE_8 = 8,NVML_PSTATE_9 = 9,NVML_PSTATE_10 = 10,NVML_PSTATE_11 = 11,NVML_PSTATE_12 = 12,NVML_PSTATE_13 = 13,NVML_PSTATE_14 = 14,NVML_PSTATE_15 = 15,NVML_PSTATE_UNKNOWN = 32 }• enum nvmlInforomObject_t {NVML_INFOROM_OEM = 0,NVML_INFOROM_ECC = 1,NVML_INFOROM_POWER = 2 }• enum nvmlReturn_t {NVML_SUCCESS = 0,NVML_ERROR_UNINITIALIZED = 1,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,NVML_ERROR_TIMEOUT = 10,NVML_ERROR_UNKNOWN = 999 }5.2.1 Enumeration Type Documentation5.2.1.1 enum nvmlClockType_tClock types.All speeds are in Mhz.Enumerator:NVML_CLOCK_GRAPHICS Graphics clock domain.NVML_CLOCK_SM SM clock domain.NVML_CLOCK_MEM Memory clock domain.<strong>NVIDIA</strong> Management Library


16 Module Documentation5.2.1.2 enum nvmlComputeMode_tCompute mode.NVML_COMPUTEMODE_EXCLUSIVE_PROCESS was added in <strong>CUDA</strong> 4.0. Earlier <strong>CUDA</strong> versions supporteda single exclusive mode, which is equivalent to NVML_COMPUTEMODE_EXCLUSIVE_THREAD in <strong>CUDA</strong> 4.0and beyond.Enumerator:NVML_COMPUTEMODE_DEFAULT Default compute mode – multiple contexts per device.NVML_COMPUTEMODE_EXCLUSIVE_THREAD Compute-exclusive-thread mode – only one context perdevice, usable from one thread at a time.NVML_COMPUTEMODE_PROHIBITED Compute-prohibited mode – no contexts per device.NVML_COMPUTEMODE_EXCLUSIVE_PROCESS Compute-exclusive-process mode – only one contextper device, usable from multiple threads at a time.5.2.1.3 enum nvmlDriverModel_tDriver models.Windows only.Enumerator:NVML_DRIVER_WDDM WDDM driver model – GPU treated as a display device.NVML_DRIVER_WDM WDM (TCC) model (recommended) – GPU treated as a generic device.5.2.1.4 enum nvmlEccBitType_tECC bit types.Enumerator:NVML_SINGLE_BIT_ECC Single bit ECC errors.NVML_DOUBLE_BIT_ECC Double bit ECC errors.5.2.1.5 enum nvmlEccCounterType_tECC counter types.Note: Volatile counts are reset each time the driver loads. On Windows this is once per boot. On Linux this can bemore frequent. On Linux the driver unloads when no active clients exist. If persistence mode is enabled or there isalways a driver client active (e.g. X11), then Linux also sees per-boot behavior. If not, volatile counts are reset eachtime a compute app is run.Enumerator:NVML_VOLATILE_ECCVolatile counts are reset each time the driver loads.NVML_AGGREGATE_ECC Aggregate counts persist across reboots (i.e. for the lifetime of the device).<strong>NVIDIA</strong> Management Library


5.2 Device Enums 175.2.1.6 enum nvmlEnableState_tGeneric enable/disable enum.Enumerator:NVML_FEATURE_DISABLED Feature disabled.NVML_FEATURE_ENABLED Feature enabled.5.2.1.7 enum nvmlInforomObject_tAvailable infoROM objects.Enumerator:NVML_INFOROM_OEM An object defined by OEM.NVML_INFOROM_ECC The ECC object determining the level of ECC support.NVML_INFOROM_POWER The power management object.5.2.1.8 enum nvmlPstates_tAllowed PStates.Enumerator:NVML_PSTATE_0 Performance state 0 – Maximum Performance.NVML_PSTATE_1 Performance state 1.NVML_PSTATE_2 Performance state 2.NVML_PSTATE_3 Performance state 3.NVML_PSTATE_4 Performance state 4.NVML_PSTATE_5 Performance state 5.NVML_PSTATE_6 Performance state 6.NVML_PSTATE_7 Performance state 7.NVML_PSTATE_8 Performance state 8.NVML_PSTATE_9 Performance state 9.NVML_PSTATE_10 Performance state 10.NVML_PSTATE_11 Performance state 11.NVML_PSTATE_12 Performance state 12.NVML_PSTATE_13 Performance state 13.NVML_PSTATE_14 Performance state 14.NVML_PSTATE_15 Performance state 15 – Minimum Performance.NVML_PSTATE_UNKNOWN Unknown performance state.<strong>NVIDIA</strong> Management Library


18 Module Documentation5.2.1.9 enum nvmlReturn_tReturn values for NVML API calls.Enumerator:NVML_SUCCESSThe operation was successful.NVML_ERROR_UNINITIALIZED NVML was not first initialized <strong>with</strong> nvmlInit().NVML_ERROR_INVALID_ARGUMENT A supplied argument is invalid.NVML_ERROR_NOT_SUPPORTED The requested operation is not available on target device.NVML_ERROR_NO_PERMISSION The current user does not have permission for operation.NVML_ERROR_ALREADY_INITIALIZED Deprecated: Multiple initializations are now allowed through refcounting.NVML_ERROR_NOT_FOUND A query to find an object was unsuccessful.NVML_ERROR_INSUFFICIENT_SIZE An input argument is not large enough.NVML_ERROR_INSUFFICIENT_POWER A device’s external power cables are not properly attached.NVML_ERROR_DRIVER_NOT_LOADED<strong>NVIDIA</strong> driver is not loaded.NVML_ERROR_TIMEOUT User provided timeout passed.NVML_ERROR_UNKNOWNAn internal driver error occurred.5.2.1.10 enum nvmlTemperatureSensors_tTemperature sensors.Enumerator:NVML_TEMPERATURE_GPU Temperature sensor for the GPU die.<strong>NVIDIA</strong> Management Library


20 Module Documentation5.4 Event TypesDefines• #define nvmlEventTypeSingleBitEccError 0x0000000000000001LLEvent about single bit ECC errors.• #define nvmlEventTypeDoubleBitEccError 0x0000000000000002LLEvent about double bit ECC errors.• #define nvmlEventTypePState 0x0000000000000004LLEvent about PState changes.• #define nvmlEventTypeXidCriticalError 0x0000000000000008LLEvent that Xid critical error occurred.• #define nvmlEventTypeNone 0x0000000000000000LLMask <strong>with</strong> no events.• #define nvmlEventTypeAllMask of all events.5.<strong>4.1</strong> Detailed DescriptionEvent Types which user can be notified about. See description of particular functions for details.See nvmlDeviceRegisterEvents and nvmlDeviceGetSupportedEventTypes to check which devices support each event.Types can be combined <strong>with</strong> bitwise or operator ’|’ when passed to nvmlDeviceRegisterEvents5.4.2 Define Documentation5.4.2.1 #define nvmlEventTypePState 0x0000000000000004LLNote:On Fermi architecture PState changes are also an indicator that GPU is throttling down due to no work beingexecuted on the GPU, power capping or thermal capping. In a typical situation, Fermi-based GPU should stay inP0 for the duration of the execution of the compute process.<strong>NVIDIA</strong> Management Library


5.5 Initialization and Cleanup 215.5 Initialization and CleanupFunctions• nvmlReturn_t DECLDIR nvmlInit ()• nvmlReturn_t DECLDIR nvmlShutdown ()5.5.1 Detailed DescriptionThis chapter describes the methods that handle NVML initialization and cleanup. It is the user’s responsibility to callnvmlInit() before calling any other methods, and nvmlShutdown() once NVML is no longer being used.5.5.2 Function Documentation5.5.2.1 nvmlReturn_t DECLDIR nvmlInit ()Initialize NVML by discovering and attaching to all GPU devices in the system.For all products.This method should be called once before invoking any other methods in the library. A reference count of the numberof initializations is maintained. Shutdown only occurs when the reference count reaches zero.Returns:• NVML_SUCCESS if NVML has been properly initialized• NVML_ERROR_NO_PERMISSION if the user doesn’t have permission to talk to any device• NVML_ERROR_DRIVER_NOT_LOADED if <strong>NVIDIA</strong> driver is not running• NVML_ERROR_INSUFFICIENT_POWER if any devices have improperly attached external power cables• NVML_ERROR_UNKNOWN on any unexpected error5.5.2.2 nvmlReturn_t DECLDIR nvmlShutdown ()Shut down NVML by releasing all GPU resources previously allocated <strong>with</strong> nvmlInit().For all products.This method should be called after NVML work is done, once for each call to nvmlInit() A reference count of thenumber of initializations is maintained. Shutdown only occurs when the reference count reaches zero. For backwardscompatibility, no error is reported if nvmlShutdown() is called more times than nvmlInit().Returns:• NVML_SUCCESS if NVML has been properly shut down• NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized• NVML_ERROR_UNKNOWN on any unexpected error<strong>NVIDIA</strong> Management Library


22 Module Documentation5.6 Error reportingFunctions• const DECLDIR char ∗ nvmlErrorString (nvmlReturn_t result)5.6.1 Detailed DescriptionThis chapter describes helper functions for error reporting routines.5.6.2 Function Documentation5.6.2.1 const DECLDIR char∗ nvmlErrorString (nvmlReturn_t result)Helper method for converting NVML error codes into readable strings.For all productsParameters:result NVML error code to convertReturns:String representation of the error.<strong>NVIDIA</strong> Management Library


5.7 System Queries 235.7 System QueriesFunctions• nvmlReturn_t DECLDIR nvmlSystemGetDriverVersion (char ∗version, unsigned int length)• nvmlReturn_t DECLDIR nvmlSystemGetNVMLVersion (char ∗version, unsigned int length)• nvmlReturn_t DECLDIR nvmlSystemGetProcessName (unsigned int pid, char ∗name, unsigned int length)5.7.1 Detailed DescriptionThis chapter describes the queries that NVML can perform against the local system. These queries are not devicespecific.5.7.2 Function Documentation5.7.2.1 nvmlReturn_t DECLDIR nvmlSystemGetDriverVersion (char ∗ version, unsigned int length)Retrieves the version of the system’s graphics driver.For all products.The version identifier is an alphanumeric string. It will not exceed 80 characters in length (including the NULLterminator).Parameters:version Reference in which to return the version identifierlength The maximum allowed length of the string returned in versionReturns:• NVML_SUCCESS if version has been set• NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized• NVML_ERROR_INVALID_ARGUMENT if version is NULL• NVML_ERROR_INSUFFICIENT_SIZE if length is too small5.7.2.2 nvmlReturn_t DECLDIR nvmlSystemGetNVMLVersion (char ∗ version, unsigned int length)Retrieves the version of the NVML library.For all products.The version identifier is an alphanumeric string. It will not exceed 80 characters in length (including the NULLterminator).Parameters:version Reference in which to return the version identifierlength The maximum allowed length of the string returned in versionReturns:• NVML_SUCCESS if version has been set<strong>NVIDIA</strong> Management Library


24 Module Documentation• NVML_ERROR_INVALID_ARGUMENT if version is NULL• NVML_ERROR_INSUFFICIENT_SIZE if length is too small5.7.2.3 nvmlReturn_t DECLDIR nvmlSystemGetProcessName (unsigned int pid, char ∗ name, unsigned intlength)Gets name of the process <strong>with</strong> provided process idFor all products.Returned process name is cropped to provided length. name string is encoded in ANSI.Parameters:pid The identifier of the processname Reference in which to return the process namelength The maximum allowed length of the string returned in nameReturns:• NVML_SUCCESS if name has been set• NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized• NVML_ERROR_INVALID_ARGUMENT if name is NULL• NVML_ERROR_NOT_FOUND if process doesn’t exists• NVML_ERROR_NO_PERMISSION if the user doesn’t have permission to perform this operation• NVML_ERROR_UNKNOWN on any unexpected error<strong>NVIDIA</strong> Management Library


5.8 Unit Queries 255.8 Unit QueriesFunctions• nvmlReturn_t DECLDIR nvmlUnitGetCount (unsigned int ∗unitCount)• nvmlReturn_t DECLDIR nvmlUnitGetHandleByIndex (unsigned int index, nvmlUnit_t ∗unit)• nvmlReturn_t DECLDIR nvmlUnitGetUnitInfo (nvmlUnit_t unit, nvmlUnitInfo_t ∗info)• nvmlReturn_t DECLDIR nvmlUnitGetLedState (nvmlUnit_t unit, nvmlLedState_t ∗state)• nvmlReturn_t DECLDIR nvmlUnitGetPsuInfo (nvmlUnit_t unit, nvmlPSUInfo_t ∗psu)• nvmlReturn_t DECLDIR nvmlUnitGetTemperature (nvmlUnit_t unit, unsigned int type, unsigned int ∗temp)• nvmlReturn_t DECLDIR nvmlUnitGetFanSpeedInfo (nvmlUnit_t unit, nvmlUnitFanSpeeds_t ∗fanSpeeds)• nvmlReturn_t DECLDIR nvmlUnitGetDevices (nvmlUnit_t unit, unsigned int ∗deviceCount, nvmlDevice_t∗devices)• nvmlReturn_t DECLDIR nvmlSystemGetHicVersion (unsigned int ∗hwbcCount, nvmlHwbcEntry_t∗hwbcEntries)5.8.1 Detailed DescriptionThis chapter describes that queries that NVML can perform against each unit. For S-class systems only. In each casethe device is identified <strong>with</strong> an nvmlUnit_t handle. This handle is obtained by calling nvmlUnitGetHandleByIndex().5.8.2 Function Documentation5.8.2.1 nvmlReturn_t DECLDIR nvmlSystemGetHicVersion (unsigned int ∗ hwbcCount, nvmlHwbcEntry_t∗ hwbcEntries)Retrieves the IDs and firmware versions for any Host Interface Cards (HICs) in the system.For S-class products.The hwbcCount argument is expected to be set to the size of the input hwbcEntries array. The HIC must be connectedto an S-class system for it to be reported by this function.Parameters:hwbcCount Size of hwbcEntries arrayhwbcEntries Array holding information about hwbcReturns:• NVML_SUCCESS if hwbcCount and hwbcEntries have been populated• NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized• NVML_ERROR_INVALID_ARGUMENT if either hwbcCount or hwbcEntries is NULL• NVML_ERROR_INSUFFICIENT_SIZE if hwbcCount indicates that the hwbcEntries array is too small5.8.2.2 nvmlReturn_t DECLDIR nvmlUnitGetCount (unsigned int ∗ unitCount)Retrieves the number of units in the system.For S-class products.<strong>NVIDIA</strong> Management Library


26 Module DocumentationParameters:unitCount Reference in which to return the number of unitsReturns:• NVML_SUCCESS if unitCount has been set• NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized• NVML_ERROR_INVALID_ARGUMENT if unitCount is NULL• NVML_ERROR_UNKNOWN on any unexpected error5.8.2.3 nvmlReturn_t DECLDIR nvmlUnitGetDevices (nvmlUnit_t unit, unsigned int ∗ deviceCount,nvmlDevice_t ∗ devices)Retrieves the set of GPU devices that are attached to the specified unit.For S-class products.The deviceCount argument is expected to be set to the size of the input devices array.Parameters:unit The identifier of the target unitdeviceCount Reference in which to provide the devices array size, and to return the number of attached GPUdevicesdevices Reference in which to return the references to the attached GPU devicesReturns:• NVML_SUCCESS if deviceCount and devices have been populated• NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized• NVML_ERROR_INSUFFICIENT_SIZE if deviceCount indicates that the devices array is too small• NVML_ERROR_INVALID_ARGUMENT if unit is invalid, either of deviceCount or devices is NULL5.8.2.4 nvmlReturn_t DECLDIR nvmlUnitGetFanSpeedInfo (nvmlUnit_t unit, nvmlUnitFanSpeeds_t ∗fanSpeeds)Retrieves the fan speed readings for the unit.For S-class products.See nvmlUnitFanSpeeds_t for details on available fan speed info.Parameters:unit The identifier of the target unitfanSpeeds Reference in which to return the fan speed informationReturns:• NVML_SUCCESS if fanSpeeds has been populated• NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized• NVML_ERROR_INVALID_ARGUMENT if unit is invalid or fanSpeeds is NULL• NVML_ERROR_NOT_SUPPORTED if this is not an S-class product• NVML_ERROR_UNKNOWN on any unexpected error<strong>NVIDIA</strong> Management Library


5.8 Unit Queries 275.8.2.5 nvmlReturn_t DECLDIR nvmlUnitGetHandleByIndex (unsigned int index, nvmlUnit_t ∗ unit)Acquire the handle for a particular unit, based on its index.For S-class products.Valid indices are derived from the unitCount returned by nvmlUnitGetCount(). For example, if unitCount is 2 the validindices are 0 and 1, corresponding to UNIT 0 and UNIT 1.The order in which NVML enumerates units has no guarantees of consistency between reboots.Parameters:index The index of the target unit, >= 0 and < unitCountunit Reference in which to return the unit handleReturns:• NVML_SUCCESS if unit has been set• NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized• NVML_ERROR_INVALID_ARGUMENT if index is invalid or unit is NULL• NVML_ERROR_UNKNOWN on any unexpected error5.8.2.6 nvmlReturn_t DECLDIR nvmlUnitGetLedState (nvmlUnit_t unit, nvmlLedState_t ∗ state)Retrieves the LED state associated <strong>with</strong> this unit.For S-class products.See nvmlLedState_t for details on allowed states.Parameters:unit The identifier of the target unitstate Reference in which to return the current LED stateReturns:• NVML_SUCCESS if state has been set• NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized• NVML_ERROR_INVALID_ARGUMENT if unit is invalid or state is NULL• NVML_ERROR_NOT_SUPPORTED if this is not an S-class product• NVML_ERROR_UNKNOWN on any unexpected errorSee also:nvmlUnitSetLedState()5.8.2.7 nvmlReturn_t DECLDIR nvmlUnitGetPsuInfo (nvmlUnit_t unit, nvmlPSUInfo_t ∗ psu)Retrieves the PSU stats for the unit.For S-class products.See nvmlPSUInfo_t for details on available PSU info.<strong>NVIDIA</strong> Management Library


28 Module DocumentationParameters:unit The identifier of the target unitpsu Reference in which to return the PSU informationReturns:• NVML_SUCCESS if psu has been populated• NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized• NVML_ERROR_INVALID_ARGUMENT if unit is invalid or psu is NULL• NVML_ERROR_NOT_SUPPORTED if this is not an S-class product• NVML_ERROR_UNKNOWN on any unexpected error5.8.2.8 nvmlReturn_t DECLDIR nvmlUnitGetTemperature (nvmlUnit_t unit, unsigned int type, unsignedint ∗ temp)Retrieves the temperature readings for the unit, in degrees C.For S-class products.Depending on the product, readings may be available for intake (type=0), exhaust (type=1) and board (type=2).Parameters:unit The identifier of the target unittype The type of reading to taketemp Reference in which to return the intake temperatureReturns:• NVML_SUCCESS if temp has been populated• NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized• NVML_ERROR_INVALID_ARGUMENT if unit or type is invalid or temp is NULL• NVML_ERROR_NOT_SUPPORTED if this is not an S-class product• NVML_ERROR_UNKNOWN on any unexpected error5.8.2.9 nvmlReturn_t DECLDIR nvmlUnitGetUnitInfo (nvmlUnit_t unit, nvmlUnitInfo_t ∗ info)Retrieves the static information associated <strong>with</strong> a unit.For S-class products.See nvmlUnitInfo_t for details on available unit info.Parameters:unit The identifier of the target unitinfo Reference in which to return the unit informationReturns:• NVML_SUCCESS if info has been populated• NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized• NVML_ERROR_INVALID_ARGUMENT if unit is invalid or info is NULL<strong>NVIDIA</strong> Management Library


5.9 Device Queries 295.9 Device QueriesFunctions• nvmlReturn_t DECLDIR nvmlDeviceGetCount (unsigned int ∗deviceCount)• nvmlReturn_t DECLDIR nvmlDeviceGetHandleByIndex (unsigned int index, nvmlDevice_t ∗device)• nvmlReturn_t DECLDIR nvmlDeviceGetHandleBySerial (char ∗serial, nvmlDevice_t ∗device)• nvmlReturn_t DECLDIR nvmlDeviceGetHandleByPciBusId (char ∗pciBusId, nvmlDevice_t ∗device)• nvmlReturn_t DECLDIR nvmlDeviceGetName (nvmlDevice_t device, char ∗name, unsigned int length)• nvmlReturn_t DECLDIR nvmlDeviceGetSerial (nvmlDevice_t device, char ∗serial, unsigned int length)• nvmlReturn_t DECLDIR nvmlDeviceGetUUID (nvmlDevice_t device, char ∗uuid, unsigned int length)• nvmlReturn_t DECLDIR nvmlDeviceGetInforomVersion (nvmlDevice_t device, nvmlInforomObject_t object,char ∗version, unsigned int length)• nvmlReturn_t DECLDIR nvmlDeviceGetDisplayMode (nvmlDevice_t device, nvmlEnableState_t ∗display)• nvmlReturn_t DECLDIR nvmlDeviceGetPersistenceMode (nvmlDevice_t device, nvmlEnableState_t ∗mode)• nvmlReturn_t DECLDIR nvmlDeviceGetPciInfo (nvmlDevice_t device, nvmlPciInfo_t ∗pci)• nvmlReturn_t DECLDIR nvmlDeviceGetClockInfo (nvmlDevice_t device, nvmlClockType_t type, unsigned int∗clock)• nvmlReturn_t DECLDIR nvmlDeviceGetMaxClockInfo (nvmlDevice_t device, nvmlClockType_t type, unsignedint ∗clock)• nvmlReturn_t DECLDIR nvmlDeviceGetFanSpeed (nvmlDevice_t device, unsigned int ∗speed)• nvmlReturn_t DECLDIR nvmlDeviceGetTemperature (nvmlDevice_t device, nvmlTemperatureSensors_t sensorType,unsigned int ∗temp)• nvmlReturn_t DECLDIR nvmlDeviceGetPerformanceState (nvmlDevice_t device, nvmlPstates_t ∗pState)• nvmlReturn_t DECLDIR nvmlDeviceGetPowerState (nvmlDevice_t device, nvmlPstates_t ∗pState)• nvmlReturn_t DECLDIR nvmlDeviceGetPowerManagementMode (nvmlDevice_t device, nvmlEnableState_t∗mode)• nvmlReturn_t DECLDIR nvmlDeviceGetPowerManagementLimit (nvmlDevice_t device, unsigned int ∗limit)• nvmlReturn_t DECLDIR nvmlDeviceGetPowerUsage (nvmlDevice_t device, unsigned int ∗power)• nvmlReturn_t DECLDIR nvmlDeviceGetMemoryInfo (nvmlDevice_t device, nvmlMemory_t ∗memory)• nvmlReturn_t DECLDIR nvmlDeviceGetComputeMode (nvmlDevice_t device, nvmlComputeMode_t ∗mode)• nvmlReturn_t DECLDIR nvmlDeviceGetEccMode (nvmlDevice_t device, nvmlEnableState_t ∗current,nvmlEnableState_t ∗pending)• nvmlReturn_t DECLDIR nvmlDeviceGetTotalEccErrors (nvmlDevice_t device, nvmlEccBitType_t bitType,nvmlEccCounterType_t counterType, unsigned long long ∗eccCounts)• nvmlReturn_t DECLDIR nvmlDeviceGetDetailedEccErrors (nvmlDevice_t device, nvmlEccBitType_t bitType,nvmlEccCounterType_t counterType, nvmlEccErrorCounts_t ∗eccCounts)• nvmlReturn_t DECLDIR nvmlDeviceGetUtilizationRates (nvmlDevice_t device, nvmlUtilization_t∗utilization)• nvmlReturn_t DECLDIR nvmlDeviceGetDriverModel (nvmlDevice_t device, nvmlDriverModel_t ∗current,nvmlDriverModel_t ∗pending)• nvmlReturn_t DECLDIR nvmlDeviceGetVbiosVersion (nvmlDevice_t device, char ∗version, unsigned intlength)• nvmlReturn_t DECLDIR nvmlDeviceGetComputeRunningProcesses (nvmlDevice_t device, unsigned int∗infoCount, nvmlProcessInfo_t ∗infos)5.9.1 Detailed DescriptionThis chapter describes that queries that NVML can perform against each device. In each case the device is identified<strong>with</strong> an nvmlDevice_t handle. This handle is obtained by calling one of nvmlDeviceGetHandleByIndex(), nvmlDeviceGetHandleBySerial()or nvmlDeviceGetHandleByPciBusId().<strong>NVIDIA</strong> Management Library


30 Module Documentation5.9.2 Function Documentation5.9.2.1 nvmlReturn_t DECLDIR nvmlDeviceGetClockInfo (nvmlDevice_t device, nvmlClockType_t type,unsigned int ∗ clock)Retrieves the current clock speeds for the device.For Tesla products, and Quadro ®products from the Fermi family.See nvmlClockType_t for details on available clock information.Parameters:device The identifier of the target devicetype Identify which clock domain to queryclock Reference in which to return the clock speed in MHzReturns:• NVML_SUCCESS if clock has been set• NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized• NVML_ERROR_INVALID_ARGUMENT if device is invalid or clock is NULL• NVML_ERROR_NOT_SUPPORTED if the device cannot report the specified clock• NVML_ERROR_UNKNOWN on any unexpected error5.9.2.2 nvmlReturn_t DECLDIR nvmlDeviceGetComputeMode (nvmlDevice_t device, nvmlComputeMode_t∗ mode)Retrieves the current compute mode for the device.For all <strong>CUDA</strong>-capable products.See nvmlComputeMode_t for details on allowed compute modes.Parameters:device The identifier of the target devicemode Reference in which to return the current compute modeReturns:See also:• NVML_SUCCESS if mode has been set• NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized• NVML_ERROR_INVALID_ARGUMENT if device is invalid or mode is NULL• NVML_ERROR_NOT_SUPPORTED if the device does not support this feature• NVML_ERROR_UNKNOWN on any unexpected errornvmlDeviceSetComputeMode()<strong>NVIDIA</strong> Management Library


5.9 Device Queries 315.9.2.3 nvmlReturn_t DECLDIR nvmlDeviceGetComputeRunningProcesses (nvmlDevice_t device, unsignedint ∗ infoCount, nvmlProcessInfo_t ∗ infos)Get information about processes <strong>with</strong> a compute context on a deviceFor Tesla and Quadro ®products from the Fermi family.This function returns information only about compute running processes (e.g. <strong>CUDA</strong> application which have activecontext). Any graphics applications (e.g. using OpenGL, DirectX) won’t be listed by this function.Keep in mind that information returned by this call is dynamic and the number of elements might change in time.Allocate more space for infos table in case new compute processes are spawned.Parameters:device The identifier of the target deviceinfoCount Reference in which to provide the infos array size, and to return the number of returned elementsinfos Reference in which to return the process informationReturns:See also:• NVML_SUCCESS if infoCount and infos have been populated• NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized• NVML_ERROR_INSUFFICIENT_SIZE if infoCount indicates that the infos array is too small infoCountwill contain minimal amount of space necessary for the call to complete• NVML_ERROR_INVALID_ARGUMENT if device is invalid, either of infoCount or infos is NULL• NVML_ERROR_UNKNOWN on any unexpected errornvmlSystemGetProcessName5.9.2.4 nvmlReturn_t DECLDIR nvmlDeviceGetCount (unsigned int ∗ deviceCount)Retrieves the number of compute devices in the system. A compute device is a single GPU.For all products.On some platforms not all devices may be accessible due to permission restrictions. In these cases the device countwill reflect only the GPUs that NVML can access.Parameters:deviceCount Reference in which to return the number of accessible devicesReturns:• NVML_SUCCESS if deviceCount has been set• NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized• NVML_ERROR_INVALID_ARGUMENT if deviceCount is NULL• NVML_ERROR_UNKNOWN on any unexpected error<strong>NVIDIA</strong> Management Library


32 Module Documentation5.9.2.5 nvmlReturn_t DECLDIR nvmlDeviceGetDetailedEccErrors (nvmlDevice_t device, nvmlEccBitType_tbitType, nvmlEccCounterType_t counterType, nvmlEccErrorCounts_t ∗ eccCounts)Retrieves the detailed ECC error counts for the device.For Tesla and Quadro ®products from the Fermi family. Requires NVML_INFOROM_ECC version 2.0 or higherto report aggregate location-based ECC counts. Requires NVML_INFOROM_ECC version 1.0 or higher to report allother ECC counts. Requires ECC Mode to be enabled.Detailed errors provide separate ECC counts for specific parts of the memory system.See nvmlEccBitType_t for a description of available bit types.See nvmlEccCounterType_t for a description of available counter types.See nvmlEccErrorCounts_t for a description of provided detailed ECC counts.Parameters:device The identifier of the target devicebitType Flag that specifies the bit-type of the errors.counterType Flag that specifies the counter-type of the errors.eccCounts Reference in which to return the specified ECC errorsReturns:See also:• NVML_SUCCESS if eccCounts has been populated• NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized• NVML_ERROR_INVALID_ARGUMENT if device, bitType or counterType is invalid, or eccCounts isNULL• NVML_ERROR_NOT_SUPPORTED if the device does not support this feature• NVML_ERROR_UNKNOWN on any unexpected errornvmlDeviceClearEccErrorCounts()5.9.2.6 nvmlReturn_t DECLDIR nvmlDeviceGetDisplayMode (nvmlDevice_t device, nvmlEnableState_t ∗display)Retrieves the display mode for the device.For Tesla products, and Quadro ®products from the Fermi family.This method indicates whether a physical display is currently connected to the device.See nvmlEnableState_t for details on allowed modes.Parameters:device The identifier of the target devicedisplay Reference in which to return the display modeReturns:• NVML_SUCCESS if display has been set<strong>NVIDIA</strong> Management Library


5.9 Device Queries 33• NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized• NVML_ERROR_INVALID_ARGUMENT if device is invalid or display is NULL• NVML_ERROR_NOT_SUPPORTED if the device does not support this feature5.9.2.7 nvmlReturn_t DECLDIR nvmlDeviceGetDriverModel (nvmlDevice_t device, nvmlDriverModel_t ∗current, nvmlDriverModel_t ∗ pending)Retrieves the current and pending driver model for the device.For Tesla products, and Quadro ®products from the Fermi family. For windows only.On Windows platforms the device driver can run in either WDDM or WDM (TCC) mode. If a display is attached tothe device it must run in WDDM mode. TCC mode is preferred if a display is not attached.See nvmlDriverModel_t for details on available driver models.Parameters:device The identifier of the target devicecurrent Reference in which to return the current driver modelpending Reference in which to return the pending driver modelReturns:See also:• NVML_SUCCESS if current and pending have been populated• NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized• NVML_ERROR_INVALID_ARGUMENT if device is invalid or both current and pending are NULL• NVML_ERROR_NOT_SUPPORTED if the platform is not windows• NVML_ERROR_UNKNOWN on any unexpected errornvmlDeviceSetDriverModel()5.9.2.8 nvmlReturn_t DECLDIR nvmlDeviceGetEccMode (nvmlDevice_t device, nvmlEnableState_t ∗current, nvmlEnableState_t ∗ pending)Retrieves the current and pending ECC modes for the device.For Tesla and Quadro ®products from the Fermi family. Requires NVML_INFOROM_ECC version 1.0 or higher.Changing ECC modes requires a reboot. The "pending" ECC mode refers to the target mode following the next reboot.See nvmlEnableState_t for details on allowed modes.Parameters:device The identifier of the target devicecurrent Reference in which to return the current ECC modepending Reference in which to return the pending ECC modeReturns:• NVML_SUCCESS if current and pending have been set<strong>NVIDIA</strong> Management Library


34 Module DocumentationSee also:• NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized• NVML_ERROR_INVALID_ARGUMENT if device is invalid or either current or pending is NULL• NVML_ERROR_NOT_SUPPORTED if the device does not support this feature• NVML_ERROR_UNKNOWN on any unexpected errornvmlDeviceSetEccMode()5.9.2.9 nvmlReturn_t DECLDIR nvmlDeviceGetFanSpeed (nvmlDevice_t device, unsigned int ∗ speed)Retrieves the current operating speed of the device’s fan.For all discrete products <strong>with</strong> dedicated fans.The fan speed is expressed as a percent of the maximum, i.e. full speed is 100%.Parameters:device The identifier of the target devicespeed Reference in which to return the fan speed percentageReturns:• NVML_SUCCESS if speed has been set• NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized• NVML_ERROR_INVALID_ARGUMENT if device is invalid or speed is NULL• NVML_ERROR_NOT_SUPPORTED if the device does not have a fan• NVML_ERROR_UNKNOWN on any unexpected error5.9.2.10 nvmlReturn_t DECLDIR nvmlDeviceGetHandleByIndex (unsigned int index, nvmlDevice_t ∗device)Acquire the handle for a particular device, based on its index.For all products.Valid indices are derived from the accessibleDevices count returned by nvmlDeviceGetCount(). For example, if accessibleDevicesis 2 the valid indices are 0 and 1, corresponding to GPU 0 and GPU 1.The order in which NVML enumerates devices has no guarantees of consistency between reboots. For that reason itis recommended that devices be looked up by their PCI ids or board serial numbers. See nvmlDeviceGetHandleBySerial()and nvmlDeviceGetHandleByPciBusId().Parameters:index The index of the target GPU, >= 0 and < accessibleDevicesdevice Reference in which to return the device handleReturns:• NVML_SUCCESS if device has been set• NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized• NVML_ERROR_INVALID_ARGUMENT if index is invalid or device is NULL• NVML_ERROR_UNKNOWN on any unexpected error<strong>NVIDIA</strong> Management Library


5.9 Device Queries 355.9.2.11 nvmlReturn_t DECLDIR nvmlDeviceGetHandleByPciBusId (char ∗ pciBusId, nvmlDevice_t ∗device)Acquire the handle for a particular device, based on its PCI bus id.For all products.This value corresponds to the nvmlPciInfo_t::busId returned by nvmlDeviceGetPciInfo().Parameters:pciBusId The PCI bus id of the target GPUdevice Reference in which to return the device handleReturns:• NVML_SUCCESS if device has been set• NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized• NVML_ERROR_INVALID_ARGUMENT if pciBusId is invalid or device is NULL• NVML_ERROR_NOT_FOUND if pciBusId does not match a valid device on the system• NVML_ERROR_UNKNOWN on any unexpected error5.9.2.12 nvmlReturn_t DECLDIR nvmlDeviceGetHandleBySerial (char ∗ serial, nvmlDevice_t ∗ device)Acquire the handle for a particular device, based on its board serial number.For Tesla and Quadro ®products from the Fermi family.This number corresponds to the value printed directly on the board, and to the value returned by nvmlDeviceGetSerial().Parameters:serial The board serial number of the target GPUdevice Reference in which to return the device handleReturns:• NVML_SUCCESS if device has been set• NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized• NVML_ERROR_INVALID_ARGUMENT if serial is invalid or device is NULL• NVML_ERROR_NOT_FOUND if serial does not match a valid device on the system• NVML_ERROR_UNKNOWN on any unexpected error5.9.2.13 nvmlReturn_t DECLDIR nvmlDeviceGetInforomVersion (nvmlDevice_t device,nvmlInforomObject_t object, char ∗ version, unsigned int length)Retrieves the version information for the device’s infoROM.For Tesla and Quadro ®products from the Fermi family.Fermi and higher parts have non-volatile on-board memory for persisting device info, such as aggregate ECC counts.The version of the data structures in this memory may change from time to time. It will not exceed 16 characters inlength (including the NULL terminator).See nvmlInforomObject_t for details on the available infoROM objects.<strong>NVIDIA</strong> Management Library


36 Module DocumentationParameters:device The identifier of the target deviceobject The target infoROM objectversion Reference in which to return the infoROM versionlength The maximum allowed length of the string returned in versionReturns:• NVML_SUCCESS if version has been set• NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized• NVML_ERROR_INVALID_ARGUMENT if version is NULL• NVML_ERROR_INSUFFICIENT_SIZE if length is too small• NVML_ERROR_NOT_SUPPORTED if the device does not have an infoROM• NVML_ERROR_UNKNOWN on any unexpected error5.9.2.14 nvmlReturn_t DECLDIR nvmlDeviceGetMaxClockInfo (nvmlDevice_t device, nvmlClockType_ttype, unsigned int ∗ clock)Retrieves the maximum clock speeds for the device.For Tesla products, and Quadro ®products from the Fermi family.See nvmlClockType_t for details on available clock information.Parameters:device The identifier of the target devicetype Identify which clock domain to queryclock Reference in which to return the clock speed in MHzReturns:• NVML_SUCCESS if clock has been set• NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized• NVML_ERROR_INVALID_ARGUMENT if device is invalid or clock is NULL• NVML_ERROR_NOT_SUPPORTED if the device cannot report the specified clock• NVML_ERROR_UNKNOWN on any unexpected error5.9.2.15 nvmlReturn_t DECLDIR nvmlDeviceGetMemoryInfo (nvmlDevice_t device, nvmlMemory_t ∗memory)Retrieves the amount of used, free and total memory available on the device, in bytes.For all products.Enabling ECC reduces the amount of total available memory, due to the extra required parity bits. Under WDDMmost device memory is allocated and managed on startup by Windows.Under Linux and Windows TCC, the reported amount of used memory is equal to the sum of memory allocated by allactive channels on the device.See nvmlMemory_t for details on available memory info.<strong>NVIDIA</strong> Management Library


5.9 Device Queries 37Parameters:device The identifier of the target devicememory Reference in which to return the memory informationReturns:• NVML_SUCCESS if memory has been populated• NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized• NVML_ERROR_INVALID_ARGUMENT if device is invalid or memory is NULL• NVML_ERROR_UNKNOWN on any unexpected error5.9.2.16 nvmlReturn_t DECLDIR nvmlDeviceGetName (nvmlDevice_t device, char ∗ name, unsigned intlength)Retrieves the name of this device.For all products.The name is an alphanumeric string that denotes a particular product, e.g. Tesla C2070. It will not exceed 64characters in length (including the NULL terminator).Parameters:device The identifier of the target devicename Reference in which to return the product namelength The maximum allowed length of the string returned in nameReturns:• NVML_SUCCESS if name has been set• NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized• NVML_ERROR_INVALID_ARGUMENT if device is invalid, or name is NULL• NVML_ERROR_INSUFFICIENT_SIZE if length is too small5.9.2.17 nvmlReturn_t DECLDIR nvmlDeviceGetPciInfo (nvmlDevice_t device, nvmlPciInfo_t ∗ pci)Retrieves the PCI attributes of this device.For all products.See nvmlPciInfo_t for details on the available PCI info.Parameters:device The identifier of the target devicepci Reference in which to return the PCI infoReturns:• NVML_SUCCESS if pci has been populated• NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized• NVML_ERROR_INVALID_ARGUMENT if device is invalid or pci is NULL• NVML_ERROR_UNKNOWN on any unexpected error<strong>NVIDIA</strong> Management Library


38 Module Documentation5.9.2.18 nvmlReturn_t DECLDIR nvmlDeviceGetPerformanceState (nvmlDevice_t device, nvmlPstates_t ∗pState)Retrieves the current performance state for the device.For Tesla products, and Quadro ®products from the Fermi family.See nvmlPstates_t for details on allowed performance states.Parameters:device The identifier of the target devicepState Reference in which to return the performance state readingReturns:• NVML_SUCCESS if pState has been set• NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized• NVML_ERROR_INVALID_ARGUMENT if device is invalid or pState is NULL• NVML_ERROR_NOT_SUPPORTED if the device does not support this feature• NVML_ERROR_UNKNOWN on any unexpected error5.9.2.19 nvmlReturn_t DECLDIR nvmlDeviceGetPersistenceMode (nvmlDevice_t device, nvmlEnableState_t∗ mode)Retrieves the persistence mode associated <strong>with</strong> this device.For all <strong>CUDA</strong>-capable products. For Linux only.When driver persistence mode is enabled the driver software state is not torn down when the last client disconnects.By default this feature is disabled.See nvmlEnableState_t for details on allowed modes.Parameters:device The identifier of the target devicemode Reference in which to return the current driver persistence modeReturns:See also:• NVML_SUCCESS if mode has been set• NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized• NVML_ERROR_INVALID_ARGUMENT if device is invalid or mode is NULL• NVML_ERROR_NOT_SUPPORTED if the device does not support this feature• NVML_ERROR_UNKNOWN on any unexpected errornvmlDeviceSetPersistenceMode()<strong>NVIDIA</strong> Management Library


5.9 Device Queries 395.9.2.20 nvmlReturn_t DECLDIR nvmlDeviceGetPowerManagementLimit (nvmlDevice_t device, unsignedint ∗ limit)Retrieves the power management limit associated <strong>with</strong> this device, in milliwatts.For "GF11x" Tesla and Quadro ®products from the Fermi family. Requires NVML_INFOROM_POWER version3.0 or higher.The power limit defines the upper boundary for the card’s power draw. If the card’s total power draw reaches this limitthe power management algorithm kicks in.This reading is only available if power management mode is supported. See nvmlDeviceGetPowerManagementMode.Parameters:device The identifier of the target devicelimit Reference in which to return the power management limitReturns:• NVML_SUCCESS if limit has been set• NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized• NVML_ERROR_INVALID_ARGUMENT if device is invalid or limit is NULL• NVML_ERROR_NOT_SUPPORTED if the device does not support this feature• NVML_ERROR_UNKNOWN on any unexpected error5.9.2.21 nvmlReturn_t DECLDIR nvmlDeviceGetPowerManagementMode (nvmlDevice_t device,nvmlEnableState_t ∗ mode)Retrieves the power management mode associated <strong>with</strong> this device.For "GF11x" Tesla and Quadro ®products from the Fermi family. Requires NVML_INFOROM_POWER version3.0 or higher.This flag indicates whether any power management algorithm is currently active on the device. An enabled state doesnot necessarily mean the device is being actively throttled – only that that the driver will do so if the appropriateconditions are met.See nvmlEnableState_t for details on allowed modes.Parameters:device The identifier of the target devicemode Reference in which to return the current power management modeReturns:• NVML_SUCCESS if mode has been set• NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized• NVML_ERROR_INVALID_ARGUMENT if device is invalid or mode is NULL• NVML_ERROR_NOT_SUPPORTED if the device does not support this feature• NVML_ERROR_UNKNOWN on any unexpected error<strong>NVIDIA</strong> Management Library


40 Module Documentation5.9.2.22 nvmlReturn_t DECLDIR nvmlDeviceGetPowerState (nvmlDevice_t device, nvmlPstates_t ∗ pState)Deprecated: Use nvmlDeviceGetPerformanceState. This function exposes an incorrect generalization.Retrieve the current power state for the device.For Tesla products, and Quadro ®products from the Fermi family.See nvmlPstates_t for details on allowed power states.Parameters:device The identifier of the target devicepState Reference in which to return the power state readingReturns:• NVML_SUCCESS if pState has been set• NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized• NVML_ERROR_INVALID_ARGUMENT if device is invalid or pState is NULL• NVML_ERROR_NOT_SUPPORTED if the device does not support this feature• NVML_ERROR_UNKNOWN on any unexpected error5.9.2.23 nvmlReturn_t DECLDIR nvmlDeviceGetPowerUsage (nvmlDevice_t device, unsigned int ∗ power)Retrieves the power usage reading for the device, in milliwatts. This is the power draw for the entire board, includingGPU, memory, etc.For "GF11x" Tesla and Quadro ®products from the Fermi family. Requires NVML_INFOROM_POWER version3.0 or higher.The reading is accurate to <strong>with</strong>in a range of +/- 5 watts. It is only available if power management mode is supported.See nvmlDeviceGetPowerManagementMode.Parameters:device The identifier of the target devicepower Reference in which to return the power usage informationReturns:• NVML_SUCCESS if power has been populated• NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized• NVML_ERROR_INVALID_ARGUMENT if device is invalid or power is NULL• NVML_ERROR_NOT_SUPPORTED if the device does not support power readings• NVML_ERROR_UNKNOWN on any unexpected error5.9.2.24 nvmlReturn_t DECLDIR nvmlDeviceGetSerial (nvmlDevice_t device, char ∗ serial, unsigned intlength)Retrieves the globally unique serial number associated <strong>with</strong> this device.For Tesla and Quadro ®products from the Fermi family.The serial number is an alphanumeric string that will not exceed 30 characters (including the NULL terminator). Thisnumber matches the serial number tag that is physically attached to the board.<strong>NVIDIA</strong> Management Library


5.9 Device Queries 41Parameters:device The identifier of the target deviceserial Reference in which to return the board/module serial numberlength The maximum allowed length of the string returned in serialReturns:• NVML_SUCCESS if serial has been set• NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized• NVML_ERROR_INVALID_ARGUMENT if device is invalid, or serial is NULL• NVML_ERROR_INSUFFICIENT_SIZE if length is too small• NVML_ERROR_NOT_SUPPORTED if the device does not support this feature5.9.2.25 nvmlReturn_t DECLDIR nvmlDeviceGetTemperature (nvmlDevice_t device,nvmlTemperatureSensors_t sensorType, unsigned int ∗ temp)Retrieves the current temperature readings for the device, in degrees C.For all discrete and S-class products.See nvmlTemperatureSensors_t for details on available temperature sensors.Parameters:device The identifier of the target devicesensorType Flag that indicates which sensor reading to retrievetemp Reference in which to return the temperature readingReturns:• NVML_SUCCESS if temp has been set• NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized• NVML_ERROR_INVALID_ARGUMENT if device is invalid, sensorType is invalid or temp is NULL• NVML_ERROR_NOT_SUPPORTED if the device does not have the specified sensor• NVML_ERROR_UNKNOWN on any unexpected error5.9.2.26 nvmlReturn_t DECLDIR nvmlDeviceGetTotalEccErrors (nvmlDevice_t device, nvmlEccBitType_tbitType, nvmlEccCounterType_t counterType, unsigned long long ∗ eccCounts)Retrieves the total ECC error counts for the device.For Tesla and Quadro ®products from the Fermi family. 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 acrossthe entire device.See nvmlEccBitType_t for a description of available bit types.See nvmlEccCounterType_t for a description of available counter types.<strong>NVIDIA</strong> Management Library


42 Module DocumentationParameters:device The identifier of the target devicebitType Flag that specifies the bit-type of the errors.counterType Flag that specifies the counter-type of the errors.eccCounts Reference in which to return the specified ECC errorsReturns:See also:• NVML_SUCCESS if eccCounts has been set• NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized• NVML_ERROR_INVALID_ARGUMENT if device, bitType or counterType is invalid, or eccCounts isNULL• NVML_ERROR_NOT_SUPPORTED if the device does not support this feature• NVML_ERROR_UNKNOWN on any unexpected errornvmlDeviceClearEccErrorCounts()5.9.2.27 nvmlReturn_t DECLDIR nvmlDeviceGetUtilizationRates (nvmlDevice_t device, nvmlUtilization_t ∗utilization)Retrieves the current utilization rates for the device’s major subsystems.For Tesla products, and Quadro ®products from the Fermi family.See nvmlUtilization_t for details on available utilization rates.Parameters:device The identifier of the target deviceutilization Reference in which to return the utilization informationReturns:• NVML_SUCCESS if utilization has been populated• NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized• NVML_ERROR_INVALID_ARGUMENT if device is invalid or utilization is NULL• NVML_ERROR_NOT_SUPPORTED if the device does not support this feature• NVML_ERROR_UNKNOWN on any unexpected error5.9.2.28 nvmlReturn_t DECLDIR nvmlDeviceGetUUID (nvmlDevice_t device, char ∗ uuid, unsigned intlength)Retrieves the UUID associated <strong>with</strong> this device, as a 5 part hexadecimal string.For Tesla products, and Quadro ®products from the Fermi family.The UUID is a globally unique identifier. It is the only available identifier for pre-Fermi-architecture products. It doesNOT correspond to any identifier printed on the board. It will not exceed 80 characters in length (including the NULLterminator).<strong>NVIDIA</strong> Management Library


5.9 Device Queries 43Parameters:device The identifier of the target deviceuuid Reference in which to return the GPU UUIDlength The maximum allowed length of the string returned in uuidReturns:• NVML_SUCCESS if uuid has been set• NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized• NVML_ERROR_INVALID_ARGUMENT if device is invalid, or uuid is NULL• NVML_ERROR_INSUFFICIENT_SIZE if length is too small• NVML_ERROR_NOT_SUPPORTED if the device does not support this feature• NVML_ERROR_UNKNOWN on any unexpected error5.9.2.29 nvmlReturn_t DECLDIR nvmlDeviceGetVbiosVersion (nvmlDevice_t device, char ∗ version,unsigned int length)Get VBIOS version of the device.For all products.The VBIOS version may change from time to time. It will not exceed 32 characters in length (including the NULLterminator).Parameters:device The identifier of the target deviceversion Reference to which to return the VBIOS versionlength The maximum allowed length of the string returned in versionReturns:• NVML_SUCCESS if version has been set• NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized• NVML_ERROR_INVALID_ARGUMENT if device is invalid, or version is NULL• NVML_ERROR_INSUFFICIENT_SIZE if length is too small• NVML_ERROR_UNKNOWN on any unexpected error<strong>NVIDIA</strong> Management Library


44 Module Documentation5.10 Unit CommandsFunctions• nvmlReturn_t DECLDIR nvmlUnitSetLedState (nvmlUnit_t unit, nvmlLedColor_t color)5.10.1 Detailed DescriptionThis chapter describes NVML operations that change the state of the unit. For S-class products. Each of these requiresroot/admin access. Non-admin users will see an NVML_ERROR_NO_PERMISSION error code when invoking anyof these methods.5.10.2 Function Documentation5.10.2.1 nvmlReturn_t DECLDIR nvmlUnitSetLedState (nvmlUnit_t unit, nvmlLedColor_t color)Set the LED state for the unit. The LED can be either green (0) or amber (1).For S-class products. Requires root/admin permissions.This operation takes effect immediately.Current S-Class products don’t provide unique LEDs for each unit. As such, both front and back LEDs will betoggled in unison regardless of which unit is specified <strong>with</strong> this command.See nvmlLedColor_t for available colors.Parameters:unit The identifier of the target unitcolor The target LED colorReturns:See also:• NVML_SUCCESS if the LED color has been set• NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized• NVML_ERROR_INVALID_ARGUMENT if unit or color is invalid• NVML_ERROR_NOT_SUPPORTED if this is not an S-class product• NVML_ERROR_NO_PERMISSION if the user doesn’t have permission to perform this operation• NVML_ERROR_UNKNOWN on any unexpected errornvmlUnitGetLedState()<strong>NVIDIA</strong> Management Library


5.11 Device Commands 455.11 Device CommandsFunctions• nvmlReturn_t DECLDIR nvmlDeviceSetPersistenceMode (nvmlDevice_t device, nvmlEnableState_t mode)• nvmlReturn_t DECLDIR nvmlDeviceSetComputeMode (nvmlDevice_t device, nvmlComputeMode_t mode)• nvmlReturn_t DECLDIR nvmlDeviceSetEccMode (nvmlDevice_t device, nvmlEnableState_t ecc)• nvmlReturn_t DECLDIR nvmlDeviceClearEccErrorCounts (nvmlDevice_t device, nvmlEccCounterType_-t counterType)• nvmlReturn_t DECLDIR nvmlDeviceSetDriverModel (nvmlDevice_t device, nvmlDriverModel_t driverModel,unsigned int flags)5.11.1 Detailed DescriptionThis chapter describes NVML operations that change the state of the device. Each of these requires root/admin access.Non-admin users will see an NVML_ERROR_NO_PERMISSION error code when invoking any of these methods.5.11.2 Function Documentation5.11.2.1 nvmlReturn_t DECLDIR nvmlDeviceClearEccErrorCounts (nvmlDevice_t device,nvmlEccCounterType_t counterType)Clear the ECC error counts for the device.For Tesla and Quadro ®products from the Fermi family. Requires NVML_INFOROM_ECC version 2.0 or higher toclear aggregate location-based ECC counts. Requires NVML_INFOROM_ECC version 1.0 or higher to clear all otherECC counts. Requires root/admin permissions. Requires ECC Mode to be enabled.Sets all of the specified ECC counters to 0, including both detailed and total counts.This operation takes effect immediately.See nvmlEccCounterType_t for details on available counter types.Parameters:device The identifier of the target devicecounterType Flag that indicates which type of errors should be cleared.Returns:See also:• NVML_SUCCESS if the error counts were cleared• NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized• NVML_ERROR_INVALID_ARGUMENT if device is invalid or counterType is invalid• NVML_ERROR_NOT_SUPPORTED if the device does not support this feature• NVML_ERROR_NO_PERMISSION if the user doesn’t have permission to perform this operation• NVML_ERROR_UNKNOWN on any unexpected error• nvmlDeviceGetDetailedEccErrors()• nvmlDeviceGetTotalEccErrors()<strong>NVIDIA</strong> Management Library


46 Module Documentation5.11.2.2 nvmlReturn_t DECLDIR nvmlDeviceSetComputeMode (nvmlDevice_t device,nvmlComputeMode_t mode)Set the compute mode for the device.For all <strong>CUDA</strong>-capable products. Requires root/admin permissions.The compute mode determines whether a GPU can be used for compute operations and whether it can be shared acrosscontexts.This operation takes effect immediately. Under Linux it is not persistent across reboots and always resets to "Default".Under windows it is persistent.Under windows compute mode may only be set to DEFAULT when running in WDDMSee nvmlComputeMode_t for details on available compute modes.Parameters:device The identifier of the target devicemode The target compute modeReturns:See also:• NVML_SUCCESS if the compute mode was set• NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized• NVML_ERROR_INVALID_ARGUMENT if device is invalid or mode is invalid• NVML_ERROR_NOT_SUPPORTED if the device does not support this feature• NVML_ERROR_NO_PERMISSION if the user doesn’t have permission to perform this operation• NVML_ERROR_UNKNOWN on any unexpected errornvmlDeviceGetComputeMode()5.11.2.3 nvmlReturn_t DECLDIR nvmlDeviceSetDriverModel (nvmlDevice_t device, nvmlDriverModel_tdriverModel, unsigned int flags)Set the driver model for the device.For Tesla products, and Quadro ®products from the Fermi family. For windows only. Requires root/admin permissions.On Windows platforms the device driver can run in either WDDM or WDM (TCC) mode. If a display is attached tothe device it must run in WDDM mode.It is possible to force the change to WDM (TCC) while the display is still attached <strong>with</strong> a force flag (nvmlFlagForce).This should only be done if the host is subsequently powered down and the display is detached from the device beforethe next reboot.This operation takes effect after the next reboot.Under windows driver model may only be set to WDDM when running in DEFAULT compute mode.See nvmlDriverModel_t for details on available driver models. See nvmlFlagDefault and nvmlFlagForceParameters:device The identifier of the target device<strong>NVIDIA</strong> Management Library


5.11 Device Commands 47driverModel The target driver modelflags Flags that change the default behaviorReturns:See also:• NVML_SUCCESS if the driver model has been set• NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized• NVML_ERROR_INVALID_ARGUMENT if device is invalid or driverModel is invalid• NVML_ERROR_NOT_SUPPORTED if the platform is not windows or the device does not support thisfeature• NVML_ERROR_NO_PERMISSION if the user doesn’t have permission to perform this operation• NVML_ERROR_UNKNOWN on any unexpected errornvmlDeviceGetDriverModel()5.11.2.4 nvmlReturn_t DECLDIR nvmlDeviceSetEccMode (nvmlDevice_t device, nvmlEnableState_t ecc)Set the ECC mode for the device.For Tesla and Quadro ®products from the Fermi family. Requires NVML_INFOROM_ECC version 1.0 or higher.Requires root/admin permissions.The ECC mode determines whether the GPU enables its ECC support.This operation takes effect after the next reboot.See nvmlEnableState_t for details on available modes.Parameters:device The identifier of the target deviceecc The target ECC modeReturns:See also:• NVML_SUCCESS if the ECC mode was set• NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized• NVML_ERROR_INVALID_ARGUMENT if device is invalid or ecc is invalid• NVML_ERROR_NOT_SUPPORTED if the device does not support this feature• NVML_ERROR_NO_PERMISSION if the user doesn’t have permission to perform this operation• NVML_ERROR_UNKNOWN on any unexpected errornvmlDeviceGetEccMode()<strong>NVIDIA</strong> Management Library


48 Module Documentation5.11.2.5 nvmlReturn_t DECLDIR nvmlDeviceSetPersistenceMode (nvmlDevice_t device, nvmlEnableState_tmode)Set the persistence mode for the device.For all <strong>CUDA</strong>-capable products. For Linux only. Requires root/admin permissions.The persistence mode determines whether the GPU driver software is torn down after the last client exits.This operation takes effect immediately. It is not persistent across reboots. After each reboot the persistence mode isreset to "Disabled".See nvmlEnableState_t for available modes.Parameters:device The identifier of the target devicemode The target persistence modeReturns:See also:• NVML_SUCCESS if the persistence mode was set• NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized• NVML_ERROR_INVALID_ARGUMENT if device is invalid or mode is invalid• NVML_ERROR_NOT_SUPPORTED if the device does not support this feature• NVML_ERROR_NO_PERMISSION if the user doesn’t have permission to perform this operation• NVML_ERROR_UNKNOWN on any unexpected errornvmlDeviceGetPersistenceMode()<strong>NVIDIA</strong> Management Library


5.12 Event Handling Methods 495.12 Event Handling MethodsData Structures• struct nvmlEventData_tModules• Event TypesTypedefs• typedef struct nvmlEventSet_st ∗ nvmlEventSet_tFunctions• nvmlReturn_t DECLDIR nvmlEventSetCreate (nvmlEventSet_t ∗set)• nvmlReturn_t DECLDIR nvmlDeviceRegisterEvents (nvmlDevice_t device, unsigned long long eventTypes,nvmlEventSet_t set)• nvmlReturn_t DECLDIR nvmlDeviceGetSupportedEventTypes (nvmlDevice_t device, unsigned long long∗eventTypes)• nvmlReturn_t DECLDIR nvmlEventSetWait (nvmlEventSet_t set, nvmlEventData_t ∗data, unsigned int timeoutms)• nvmlReturn_t DECLDIR nvmlEventSetFree (nvmlEventSet_t set)5.12.1 Detailed DescriptionThis chapter describes methods that NVML can perform against each device to register and wait for some event tooccur.5.12.2 Typedef Documentation5.12.2.1 typedef struct nvmlEventSet_st∗ nvmlEventSet_tHandle to an event set5.12.3 Function Documentation5.12.3.1 nvmlReturn_t DECLDIR nvmlDeviceGetSupportedEventTypes (nvmlDevice_t device, unsignedlong long ∗ eventTypes)Returns information about events supported on deviceFor all products.Events are not supported on Windows. So this function returns an empty mask in eventTypes on Windows.Parameters:device The identifier of the target device<strong>NVIDIA</strong> Management Library


50 Module DocumentationeventTypes Reference in which to return bitmask of supported eventsReturns:See also:• NVML_SUCCESS if the eventTypes has been set• NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized• NVML_ERROR_INVALID_ARGUMENT if eventType is NULL• NVML_ERROR_UNKNOWN on any unexpected errorEvent TypesnvmlDeviceRegisterEvents5.12.3.2 nvmlReturn_t DECLDIR nvmlDeviceRegisterEvents (nvmlDevice_t device, unsigned long longeventTypes, nvmlEventSet_t set)Starts recording of events on a specified devices and add the events to specified nvmlEventSet_tFor Tesla products, and Quadro ®products from the Fermi family. Ecc events are available only on ECC enableddevices (see nvmlDeviceGetTotalEccErrors) Power capping events are available only on Power Management enableddevices (see nvmlDeviceGetPowerManagementMode)For linux only.IMPORTANT: Operations on set are not thread safeThis call starts recording of events on specific device. All events that occurred before this call are not recorded.Checking if some event occurred can be done <strong>with</strong> nvmlEventSetWaitParameters:device The identifier of the target deviceeventTypes Bitmask of Event Types to recordset Set to which add new event typesReturns:See also:• NVML_SUCCESS if the event has been set• NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized• NVML_ERROR_INVALID_ARGUMENT if eventTypes is invalid or set is NULL• NVML_ERROR_NOT_SUPPORTED if the platform does not support this feature or some of requestedevent types• NVML_ERROR_UNKNOWN on any unexpected errorEvent TypesnvmlDeviceGetSupportedEventTypesnvmlEventSetWaitnvmlEventSetFree<strong>NVIDIA</strong> Management Library


5.12 Event Handling Methods 515.12.3.3 nvmlReturn_t DECLDIR nvmlEventSetCreate (nvmlEventSet_t ∗ set)Create an empty set of events. Event set should be freed by nvmlEventSetFreeParameters:set Reference in which to return the event handleReturns:• NVML_SUCCESS if the event has been set• NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized• NVML_ERROR_INVALID_ARGUMENT if set is NULL• NVML_ERROR_UNKNOWN on any unexpected errorSee also:nvmlEventSetFree5.12.3.4 nvmlReturn_t DECLDIR nvmlEventSetFree (nvmlEventSet_t set)Releases events in the setFor Tesla products, and Quadro ®products from the Fermi family.Parameters:set Reference to events to be releasedReturns:• NVML_SUCCESS if the event has been successfully released• NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized• NVML_ERROR_UNKNOWN on any unexpected errorSee also:nvmlDeviceRegisterEvents5.12.3.5 nvmlReturn_t DECLDIR nvmlEventSetWait (nvmlEventSet_t set, nvmlEventData_t ∗ data,unsigned int timeoutms)Waits on events and delivers eventsFor Tesla products, and Quadro ®products from the Fermi family.If some events are ready to be delivered at the time of the call, function returns immediately. If there are no eventsready to be delivered, function sleeps till event arrives but not longer than specified timeout. This function in certainconditions can return before specified timeout passes (e.g. when interrupt arrives)Parameters:set Reference to set of events to wait ondata Reference in which to return event data<strong>NVIDIA</strong> Management Library


52 Module Documentationtimeoutms Maximum amount of wait time in ms for registered eventReturns:See also:• NVML_SUCCESS if the data has been set• NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized• NVML_ERROR_INVALID_ARGUMENT if data is NULL• NVML_ERROR_TIMEOUT if no event arrived in specified timeout or interrupt arrived• NVML_ERROR_UNKNOWN on any unexpected errorEvent TypesnvmlDeviceRegisterEvents<strong>NVIDIA</strong> Management Library


Chapter 6Data Structure Documentation6.1 nvmlEccErrorCounts_t Struct Reference#include Data Fields• unsigned long long l1CacheL1 cache errors.• unsigned long long l2CacheL2 cache errors.• unsigned long long deviceMemoryDevice memory errors.• unsigned long long registerFileRegister file errors.6.1.1 Detailed DescriptionDetailed ECC error counts for a device.


54 Data Structure Documentation6.2 nvmlEventData_t Struct Reference#include Data Fields• nvmlDevice_t deviceSpecific device where the event occurred.• unsigned long long eventTypeInformation about what specific event occurred.6.2.1 Detailed DescriptionInformation about occurred event<strong>NVIDIA</strong> Management Library


6.3 nvmlHwbcEntry_t Struct Reference 556.3 nvmlHwbcEntry_t Struct Reference#include 6.3.1 Detailed DescriptionDescription of HWBC entry<strong>NVIDIA</strong> Management Library


56 Data Structure Documentation6.4 nvmlLedState_t Struct Reference#include Data Fields• char cause [256]If amber, a text description of the cause.• nvmlLedColor_t colorGREEN or AMBER.6.<strong>4.1</strong> Detailed DescriptionLED states for an S-class unit.<strong>NVIDIA</strong> Management Library


6.5 nvmlMemory_t Struct Reference 576.5 nvmlMemory_t Struct Reference#include Data Fields• unsigned long long totalTotal installed FB memory (in bytes).• unsigned long long freeUnallocated FB memory (in bytes).• unsigned long long usedAllocated FB memory (in bytes). Note that the driver/GPU always sets aside a small amount of memory for bookkeeping.6.5.1 Detailed DescriptionMemory allocation information for a device.<strong>NVIDIA</strong> Management Library


58 Data Structure Documentation6.6 nvmlPciInfo_t Struct Reference#include Data Fields• char busId [16]The tuple domain:bus:device.function PCI identifier (& NULL terminator).• unsigned int domainThe PCI domain on which the device’s bus resides, 0 to 255.• unsigned int busThe bus on which the device resides, 0 to 255.• unsigned int deviceThe device’s id on the bus, 0 to 31.• unsigned int pciDeviceIdThe combined 16-bit device id and 16-bit vendor id.• unsigned int pciSubSystemIdThe 32-bit Sub System Device ID.6.6.1 Detailed DescriptionPCI information about a GPU device.<strong>NVIDIA</strong> Management Library


6.7 nvmlProcessInfo_t Struct Reference 596.7 nvmlProcessInfo_t Struct Reference#include Data Fields• unsigned int pidProcess ID.• unsigned long long usedGpuMemoryAmount of used GPU memory in bytes. < Under WDDM, NVML_VALUE_NOT_AVAILABLE is always reported


60 Data Structure Documentation6.8 nvmlPSUInfo_t Struct Reference#include Data Fields• char state [256]The power supply state.• unsigned int currentPSU current (A).• unsigned int voltagePSU voltage (V).• unsigned int powerPSU power draw (W).6.8.1 Detailed DescriptionPower usage information for an S-class unit. The power supply state is a human readable string that equals "Normal"or contains a combination of "Abnormal" plus one or more of the following:• High voltage• Fan failure• Heatsink temperature• Current limit• Voltage below UV alarm threshold• Low-voltage• SI2C remote off command• MOD_DISABLE input• Short pin transition<strong>NVIDIA</strong> Management Library


6.9 nvmlUnitFanInfo_t Struct Reference 616.9 nvmlUnitFanInfo_t Struct Reference#include Data Fields• unsigned int speedFan speed (RPM).• nvmlFanState_t stateFlag that indicates whether fan is working properly.6.9.1 Detailed DescriptionFan speed reading for a single fan in an S-class unit.<strong>NVIDIA</strong> Management Library


62 Data Structure Documentation6.10 nvmlUnitFanSpeeds_t Struct Reference#include Data Fields• nvmlUnitFanInfo_t fans [24]Fan speed data for each fan.• unsigned int countNumber of fans in unit.6.10.1 Detailed DescriptionFan speed readings for an entire S-class unit.<strong>NVIDIA</strong> Management Library


6.11 nvmlUnitInfo_t Struct Reference 636.11 nvmlUnitInfo_t Struct Reference#include Data Fields• char name [96]Product name.• char id [96]Product identifier.• char serial [96]Product serial number.• char firmwareVersion [96]Firmware version.6.11.1 Detailed DescriptionStatic S-class unit info.<strong>NVIDIA</strong> Management Library


64 Data Structure Documentation6.12 nvmlUtilization_t Struct Reference#include Data Fields• unsigned int gpuPercent of time over the past second during which one or more kernels was executing on the GPU.• unsigned int memoryPercent of time over the past second during which global (device) memory was being read or written.6.12.1 Detailed DescriptionUtilization information for a device.<strong>NVIDIA</strong> Management Library


IndexDevice Commands, 45Device Enums, 14Device Queries, 29Device Structs, 13Error reporting, 22Event Handling Methods, 49Event Types, 20Initialization and Cleanup, 21NVML_AGGREGATE_ECCnvmlDeviceEnumvs, 16NVML_CLOCK_GRAPHICSnvmlDeviceEnumvs, 15NVML_CLOCK_MEMnvmlDeviceEnumvs, 15NVML_CLOCK_SMnvmlDeviceEnumvs, 15NVML_COMPUTEMODE_DEFAULTnvmlDeviceEnumvs, 16NVML_COMPUTEMODE_EXCLUSIVE_PROCESSnvmlDeviceEnumvs, 16NVML_COMPUTEMODE_EXCLUSIVE_THREADnvmlDeviceEnumvs, 16NVML_COMPUTEMODE_PROHIBITEDnvmlDeviceEnumvs, 16NVML_DOUBLE_BIT_ECCnvmlDeviceEnumvs, 16NVML_DRIVER_WDDMnvmlDeviceEnumvs, 16NVML_DRIVER_WDMnvmlDeviceEnumvs, 16NVML_ERROR_ALREADY_INITIALIZEDnvmlDeviceEnumvs, 18NVML_ERROR_DRIVER_NOT_LOADEDnvmlDeviceEnumvs, 18NVML_ERROR_INSUFFICIENT_POWERnvmlDeviceEnumvs, 18NVML_ERROR_INSUFFICIENT_SIZEnvmlDeviceEnumvs, 18NVML_ERROR_INVALID_ARGUMENTnvmlDeviceEnumvs, 18NVML_ERROR_NO_PERMISSIONnvmlDeviceEnumvs, 18NVML_ERROR_NOT_FOUNDnvmlDeviceEnumvs, 18NVML_ERROR_NOT_SUPPORTEDnvmlDeviceEnumvs, 18NVML_ERROR_TIMEOUTnvmlDeviceEnumvs, 18NVML_ERROR_UNINITIALIZEDnvmlDeviceEnumvs, 18NVML_ERROR_UNKNOWNnvmlDeviceEnumvs, 18NVML_FAN_FAILEDnvmlUnitStructs, 19NVML_FAN_NORMALnvmlUnitStructs, 19NVML_FEATURE_DISABLEDnvmlDeviceEnumvs, 17NVML_FEATURE_ENABLEDnvmlDeviceEnumvs, 17NVML_INFOROM_ECCnvmlDeviceEnumvs, 17NVML_INFOROM_OEMnvmlDeviceEnumvs, 17NVML_INFOROM_POWERnvmlDeviceEnumvs, 17NVML_LED_COLOR_AMBERnvmlUnitStructs, 19NVML_LED_COLOR_GREENnvmlUnitStructs, 19NVML_PSTATE_0nvmlDeviceEnumvs, 17NVML_PSTATE_1nvmlDeviceEnumvs, 17NVML_PSTATE_10nvmlDeviceEnumvs, 17NVML_PSTATE_11nvmlDeviceEnumvs, 17NVML_PSTATE_12nvmlDeviceEnumvs, 17NVML_PSTATE_13nvmlDeviceEnumvs, 17NVML_PSTATE_14nvmlDeviceEnumvs, 17NVML_PSTATE_15nvmlDeviceEnumvs, 17NVML_PSTATE_2nvmlDeviceEnumvs, 17


66 INDEXNVML_PSTATE_3nvmlDeviceEnumvs, 17NVML_PSTATE_4nvmlDeviceEnumvs, 17NVML_PSTATE_5nvmlDeviceEnumvs, 17NVML_PSTATE_6nvmlDeviceEnumvs, 17NVML_PSTATE_7nvmlDeviceEnumvs, 17NVML_PSTATE_8nvmlDeviceEnumvs, 17NVML_PSTATE_9nvmlDeviceEnumvs, 17NVML_PSTATE_UNKNOWNnvmlDeviceEnumvs, 17NVML_SINGLE_BIT_ECCnvmlDeviceEnumvs, 16NVML_SUCCESSnvmlDeviceEnumvs, 18NVML_TEMPERATURE_GPUnvmlDeviceEnumvs, 18NVML_VOLATILE_ECCnvmlDeviceEnumvs, 16NVML_VALUE_NOT_AVAILABLEnvmlDeviceStructs, 13nvmlClockType_tnvmlDeviceEnumvs, 15nvmlComputeMode_tnvmlDeviceEnumvs, 15nvmlDeviceClearEccErrorCountsnvmlDeviceCommands, 45nvmlDeviceCommandsnvmlDeviceClearEccErrorCounts, 45nvmlDeviceSetComputeMode, 45nvmlDeviceSetDriverModel, 46nvmlDeviceSetEccMode, 47nvmlDeviceSetPersistenceMode, 47nvmlDeviceEnumvsNVML_AGGREGATE_ECC, 16NVML_CLOCK_GRAPHICS, 15NVML_CLOCK_MEM, 15NVML_CLOCK_SM, 15NVML_COMPUTEMODE_DEFAULT, 16NVML_COMPUTEMODE_EXCLUSIVE_-PROCESS, 16NVML_COMPUTEMODE_EXCLUSIVE_-THREAD, 16NVML_COMPUTEMODE_PROHIBITED, 16NVML_DOUBLE_BIT_ECC, 16NVML_DRIVER_WDDM, 16NVML_DRIVER_WDM, 16NVML_ERROR_ALREADY_INITIALIZED, 18NVML_ERROR_DRIVER_NOT_LOADED, 18NVML_ERROR_INSUFFICIENT_POWER, 18NVML_ERROR_INSUFFICIENT_SIZE, 18NVML_ERROR_INVALID_ARGUMENT, 18NVML_ERROR_NO_PERMISSION, 18NVML_ERROR_NOT_FOUND, 18NVML_ERROR_NOT_SUPPORTED, 18NVML_ERROR_TIMEOUT, 18NVML_ERROR_UNINITIALIZED, 18NVML_ERROR_UNKNOWN, 18NVML_FEATURE_DISABLED, 17NVML_FEATURE_ENABLED, 17NVML_INFOROM_ECC, 17NVML_INFOROM_OEM, 17NVML_INFOROM_POWER, 17NVML_PSTATE_0, 17NVML_PSTATE_1, 17NVML_PSTATE_10, 17NVML_PSTATE_11, 17NVML_PSTATE_12, 17NVML_PSTATE_13, 17NVML_PSTATE_14, 17NVML_PSTATE_15, 17NVML_PSTATE_2, 17NVML_PSTATE_3, 17NVML_PSTATE_4, 17NVML_PSTATE_5, 17NVML_PSTATE_6, 17NVML_PSTATE_7, 17NVML_PSTATE_8, 17NVML_PSTATE_9, 17NVML_PSTATE_UNKNOWN, 17NVML_SINGLE_BIT_ECC, 16NVML_SUCCESS, 18NVML_TEMPERATURE_GPU, 18NVML_VOLATILE_ECC, 16nvmlClockType_t, 15nvmlComputeMode_t, 15nvmlDriverModel_t, 16nvmlEccBitType_t, 16nvmlEccCounterType_t, 16nvmlEnableState_t, 16nvmlInforomObject_t, 17nvmlPstates_t, 17nvmlReturn_t, 17nvmlTemperatureSensors_t, 18nvmlDeviceGetClockInfonvmlDeviceQueries, 30nvmlDeviceGetComputeModenvmlDeviceQueries, 30nvmlDeviceGetComputeRunningProcessesnvmlDeviceQueries, 30nvmlDeviceGetCountnvmlDeviceQueries, 31nvmlDeviceGetDetailedEccErrors<strong>NVIDIA</strong> Management Library


INDEX 67nvmlDeviceQueries, 31nvmlDeviceGetDisplayModenvmlDeviceQueries, 32nvmlDeviceGetDriverModelnvmlDeviceQueries, 33nvmlDeviceGetEccModenvmlDeviceQueries, 33nvmlDeviceGetFanSpeednvmlDeviceQueries, 34nvmlDeviceGetHandleByIndexnvmlDeviceQueries, 34nvmlDeviceGetHandleByPciBusIdnvmlDeviceQueries, 34nvmlDeviceGetHandleBySerialnvmlDeviceQueries, 35nvmlDeviceGetInforomVersionnvmlDeviceQueries, 35nvmlDeviceGetMaxClockInfonvmlDeviceQueries, 36nvmlDeviceGetMemoryInfonvmlDeviceQueries, 36nvmlDeviceGetNamenvmlDeviceQueries, 37nvmlDeviceGetPciInfonvmlDeviceQueries, 37nvmlDeviceGetPerformanceStatenvmlDeviceQueries, 37nvmlDeviceGetPersistenceModenvmlDeviceQueries, 38nvmlDeviceGetPowerManagementLimitnvmlDeviceQueries, 38nvmlDeviceGetPowerManagementModenvmlDeviceQueries, 39nvmlDeviceGetPowerStatenvmlDeviceQueries, 39nvmlDeviceGetPowerUsagenvmlDeviceQueries, 40nvmlDeviceGetSerialnvmlDeviceQueries, 40nvmlDeviceGetSupportedEventTypesnvmlEvents, 49nvmlDeviceGetTemperaturenvmlDeviceQueries, 41nvmlDeviceGetTotalEccErrorsnvmlDeviceQueries, 41nvmlDeviceGetUtilizationRatesnvmlDeviceQueries, 42nvmlDeviceGetUUIDnvmlDeviceQueries, 42nvmlDeviceGetVbiosVersionnvmlDeviceQueries, 43nvmlDeviceQueriesnvmlDeviceGetClockInfo, 30nvmlDeviceGetComputeMode, 30nvmlDeviceGetComputeRunningProcesses, 30nvmlDeviceGetCount, 31nvmlDeviceGetDetailedEccErrors, 31nvmlDeviceGetDisplayMode, 32nvmlDeviceGetDriverModel, 33nvmlDeviceGetEccMode, 33nvmlDeviceGetFanSpeed, 34nvmlDeviceGetHandleByIndex, 34nvmlDeviceGetHandleByPciBusId, 34nvmlDeviceGetHandleBySerial, 35nvmlDeviceGetInforomVersion, 35nvmlDeviceGetMaxClockInfo, 36nvmlDeviceGetMemoryInfo, 36nvmlDeviceGetName, 37nvmlDeviceGetPciInfo, 37nvmlDeviceGetPerformanceState, 37nvmlDeviceGetPersistenceMode, 38nvmlDeviceGetPowerManagementLimit, 38nvmlDeviceGetPowerManagementMode, 39nvmlDeviceGetPowerState, 39nvmlDeviceGetPowerUsage, 40nvmlDeviceGetSerial, 40nvmlDeviceGetTemperature, 41nvmlDeviceGetTotalEccErrors, 41nvmlDeviceGetUtilizationRates, 42nvmlDeviceGetUUID, 42nvmlDeviceGetVbiosVersion, 43nvmlDeviceRegisterEventsnvmlEvents, 50nvmlDeviceSetComputeModenvmlDeviceCommands, 45nvmlDeviceSetDriverModelnvmlDeviceCommands, 46nvmlDeviceSetEccModenvmlDeviceCommands, 47nvmlDeviceSetPersistenceModenvmlDeviceCommands, 47nvmlDeviceStructsNVML_VALUE_NOT_AVAILABLE, 13nvmlDriverModel_tnvmlDeviceEnumvs, 16nvmlEccBitType_tnvmlDeviceEnumvs, 16nvmlEccCounterType_tnvmlDeviceEnumvs, 16nvmlEccErrorCounts_t, 53nvmlEnableState_tnvmlDeviceEnumvs, 16nvmlErrorReportingnvmlErrorString, 22nvmlErrorStringnvmlErrorReporting, 22nvmlEventData_t, 54nvmlEvents<strong>NVIDIA</strong> Management Library


68 INDEXnvmlDeviceGetSupportedEventTypes, 49nvmlDeviceRegisterEvents, 50nvmlEventSet_t, 49nvmlEventSetCreate, 50nvmlEventSetFree, 51nvmlEventSetWait, 51nvmlEventSet_tnvmlEvents, 49nvmlEventSetCreatenvmlEvents, 50nvmlEventSetFreenvmlEvents, 51nvmlEventSetWaitnvmlEvents, 51nvmlEventTypenvmlEventTypePState, 20nvmlEventTypePStatenvmlEventType, 20nvmlFanState_tnvmlUnitStructs, 19nvmlHwbcEntry_t, 55nvmlInforomObject_tnvmlDeviceEnumvs, 17nvmlInitnvmlInitializationAndCleanup, 21nvmlInitializationAndCleanupnvmlInit, 21nvmlShutdown, 21nvmlLedColor_tnvmlUnitStructs, 19nvmlLedState_t, 56nvmlMemory_t, 57nvmlPciInfo_t, 58nvmlProcessInfo_t, 59nvmlPstates_tnvmlDeviceEnumvs, 17nvmlPSUInfo_t, 60nvmlReturn_tnvmlDeviceEnumvs, 17nvmlShutdownnvmlInitializationAndCleanup, 21nvmlSystemGetDriverVersionnvmlSystemQueries, 23nvmlSystemGetHicVersionnvmlUnitQueries, 25nvmlSystemGetNVMLVersionnvmlSystemQueries, 23nvmlSystemGetProcessNamenvmlSystemQueries, 24nvmlSystemQueriesnvmlSystemGetDriverVersion, 23nvmlSystemGetNVMLVersion, 23nvmlSystemGetProcessName, 24nvmlTemperatureSensors_tnvmlDeviceEnumvs, 18nvmlUnitCommandsnvmlUnitSetLedState, 44nvmlUnitFanInfo_t, 61nvmlUnitFanSpeeds_t, 62nvmlUnitGetCountnvmlUnitQueries, 25nvmlUnitGetDevicesnvmlUnitQueries, 26nvmlUnitGetFanSpeedInfonvmlUnitQueries, 26nvmlUnitGetHandleByIndexnvmlUnitQueries, 26nvmlUnitGetLedStatenvmlUnitQueries, 27nvmlUnitGetPsuInfonvmlUnitQueries, 27nvmlUnitGetTemperaturenvmlUnitQueries, 28nvmlUnitGetUnitInfonvmlUnitQueries, 28nvmlUnitInfo_t, 63nvmlUnitQueriesnvmlSystemGetHicVersion, 25nvmlUnitGetCount, 25nvmlUnitGetDevices, 26nvmlUnitGetFanSpeedInfo, 26nvmlUnitGetHandleByIndex, 26nvmlUnitGetLedState, 27nvmlUnitGetPsuInfo, 27nvmlUnitGetTemperature, 28nvmlUnitGetUnitInfo, 28nvmlUnitSetLedStatenvmlUnitCommands, 44nvmlUnitStructsNVML_FAN_FAILED, 19NVML_FAN_NORMAL, 19NVML_LED_COLOR_AMBER, 19NVML_LED_COLOR_GREEN, 19nvmlFanState_t, 19nvmlLedColor_t, 19nvmlUtilization_t, 64System Queries, 23Unit Commands, 44Unit Queries, 25Unit Structs, 19<strong>NVIDIA</strong> Management Library

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!