NVML API Reference Guide (PDF) - vR610 (older) - Last updated May 26, 2026 - Send Feedback

5.15. System Queries

This chapter describes the queries that NVML can perform against the local system. These queries are not device-specific.

Classes

struct 

Defines

#define NVML_CUDA_DRIVER_VERSION_MAJOR ( v ) ((v)/1000)
Macro to extract the major version number from the CUDA driver version.
#define NVML_CUDA_DRIVER_VERSION_MINOR ( v ) (((v)%1000)/10)
Macro to extract the minor version number from the CUDA driver version.
#define nvmlSystemDriverBranchInfo_v1
Version macro for nvmlSystemDriverBranchInfo_v1_t.

Functions

nvmlReturn_t nvmlSystemGetCPER_v1 ( nvmlGetCPER_v1_t* cper )
nvmlReturn_t nvmlSystemGetCudaDriverVersion ( int* cudaDriverVersion )
nvmlReturn_t nvmlSystemGetCudaDriverVersion_v2 ( int* cudaDriverVersion )
nvmlReturn_t nvmlSystemGetDriverBranch ( nvmlSystemDriverBranchInfo_t* branchInfo, unsigned int  length )
nvmlReturn_t nvmlSystemGetDriverVersion ( char* version, unsigned int  length )
nvmlReturn_t nvmlSystemGetHicVersion ( unsigned int* hwbcCount, nvmlHwbcEntry_t* hwbcEntries )
nvmlReturn_t nvmlSystemGetNVMLVersion ( char* version, unsigned int  length )
nvmlReturn_t nvmlSystemGetProcessName ( unsigned int  pid, char* name, unsigned int  length )
nvmlReturn_t nvmlSystemGetTopologyGpuSet ( unsigned int  cpuNumber, unsigned int* count, nvmlDevice_t* deviceArray )

Defines

#define NVML_CUDA_DRIVER_VERSION_MAJOR ( v ) ((v)/1000)

Macros for converting the CUDA driver version number to Major and Minor version numbers.

#define NVML_CUDA_DRIVER_VERSION_MINOR ( v ) (((v)%1000)/10)

#define nvmlSystemDriverBranchInfo_v1

Value

NVML_STRUCT_VERSION(SystemDriverBranchInfo, 1)

Functions

nvmlReturn_t nvmlSystemGetCPER_v1 ( nvmlGetCPER_v1_t* cper )
Parameters
cper
Pointer to an nvmlGetCPER_v1_t. On entry set cursor.cperTypeMask, cursor.uuid (empty string for all), cursor.handle (to NVML_CPER_CURSOR_HANDLE_INIT for first call), buffer (or NULL), bufferSize. On return cursor.handle and bufferSize are updated.
Returns

Description

Retrieves Common Platform Error Record (CPER) data.

Records are returned in a caller-supplied buffer. Iteration is driven by the cursor (nvmlCPERCursor_v1_t) struct: pass the same cursor on every call in a sequence; the implementation updates cursor.handle. Do not modify cursor between calls. To change cursor.cperTypeMask or cursor.uuid, set cursor.handle to NVML_CPER_CURSOR_HANDLE_INIT and call again (new iteration).

For a size query, call with buffer NULL and bufferSize 0; the function returns NVML_ERROR_INSUFFICIENT_SIZE and sets bufferSize when records exist, or NVML_SUCCESS with bufferSize set to 0 when there are no CPER records. Use bufferSize == 0 on return as the indicator for "no records" or "no more records".

This API requires root privileges. Records are available from initialization.

nvmlReturn_t nvmlSystemGetCudaDriverVersion ( int* cudaDriverVersion )
Parameters
cudaDriverVersion
Reference in which to return the version identifier
Returns

Description

Retrieves the version of the CUDA driver.

For all products.

The CUDA driver version returned will be retreived from the currently installed version of CUDA. If the cuda library is not found, this function will return a known supported version number.

nvmlReturn_t nvmlSystemGetCudaDriverVersion_v2 ( int* cudaDriverVersion )
Parameters
cudaDriverVersion
Reference in which to return the version identifier
Returns

Description

Retrieves the version of the CUDA driver from the shared library.

For all products.

The returned CUDA driver version by calling cuDriverGetVersion()

nvmlReturn_t nvmlSystemGetDriverBranch ( nvmlSystemDriverBranchInfo_t* branchInfo, unsigned int  length )
Parameters
branchInfo
Pointer to the driver branch information structure nvmlSystemDriverBranchInfo_t
length
The maximum allowed length of the driver branch string
Returns

Description

Retrieves the driver branch of the NVIDIA driver installed on the system.

For all products.

The branch identifier is an alphanumeric string. It will not exceed 80 characters in length (including the NULL terminator). See nvmlConstants::NVML_SYSTEM_DRIVER_VERSION_BUFFER_SIZE.

nvmlReturn_t nvmlSystemGetDriverVersion ( char* version, unsigned int  length )
Parameters
version
Reference in which to return the version identifier
length
The maximum allowed length of the string returned in version
Returns

Description

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 NULL terminator). See nvmlConstants::NVML_SYSTEM_DRIVER_VERSION_BUFFER_SIZE.

nvmlReturn_t nvmlSystemGetHicVersion ( unsigned int* hwbcCount, nvmlHwbcEntry_t* hwbcEntries )
Parameters
hwbcCount
Size of hwbcEntries array
hwbcEntries
Array holding information about hwbc
Returns

Description

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 connected to an S-class system for it to be reported by this function.

nvmlReturn_t nvmlSystemGetNVMLVersion ( char* version, unsigned int  length )
Parameters
version
Reference in which to return the version identifier
length
The maximum allowed length of the string returned in version
Returns

Description

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 NULL terminator). See nvmlConstants::NVML_SYSTEM_NVML_VERSION_BUFFER_SIZE.

nvmlReturn_t nvmlSystemGetProcessName ( unsigned int  pid, char* name, unsigned int  length )
Parameters
pid
The identifier of the process
name
Reference in which to return the process name
length
The maximum allowed length of the string returned in name
Returns

Description

Gets name of the process with provided process id

For all products.

Returned process name is cropped to provided length. name string is encoded in ANSI.

nvmlReturn_t nvmlSystemGetTopologyGpuSet ( unsigned int  cpuNumber, unsigned int* count, nvmlDevice_t* deviceArray )
Parameters
cpuNumber
The CPU number
count
When zero, is set to the number of matching GPUs such that deviceArray can be malloc'd. When non-zero, deviceArray will be filled with count number of device handles.
deviceArray
An array of device handles for GPUs found with affinity to cpuNumber
Returns

Description

Retrieve the set of GPUs that have a CPU affinity with the given CPU number For all products. Supported on Linux only.


NVML API Reference Guide (PDF) - vR610 (older) - Last updated May 26, 2026 - Send Feedback