Retrieves the root/admin permissions on the target API. See nvmlRestrictedAPI_t for the list of supported APIs. If an API is restricted only root users can call that API. See nvmlDeviceSetAPIRestriction to change current permissions.
For all fully supported products.
See also:
Gets the device's Adaptive Clock status
Applications clocks are deprecated and will be removed in CUDA 14.0.
Get architecture for device
Get attributes (engine counts etc.) for the given NVML device handle.
Note:This API currently only supports MIG device handles.
For Ampere or newer fully supported devices. Supported on Linux only.
Retrieve the current state of Auto Boosted clocks on a device and store it in isEnabled
For Kepler or newer fully supported devices.
Auto Boosted clocks are enabled by default on some hardware, allowing the GPU to run at higher clock rates to maximize performance as thermal limits allow.
On Pascal and newer hardware, Auto Aoosted clocks are controlled through application clocks. Use nvmlDeviceSetApplicationsClocks and nvmlDeviceResetApplicationsClocks to control Auto Boost behavior.
Gets Total, Available and Used size of BAR1 memory.
BAR1 is used to map the FB (device memory) so that it can be directly accessed by the CPU or by 3rd party devices (peer-to-peer on the PCIE bus).
Note:In MIG mode, if device handle is provided, the API returns aggregate information, only if the caller has appropriate privileges. Per-instance information can be queried by using specific MIG device handles.
For Kepler or newer fully supported devices.
Retrieves the device boardId from 0-N. Devices with the same boardId indicate GPUs connected to the same PLX. Use in conjunction with nvmlDeviceGetMultiGpuBoard() to decide if they are on the same board as well. The boardId returned is a unique ID for the current configuration. Uniqueness and ordering across reboots and system configurations is not guaranteed (i.e. if a Tesla K40c returns 0x100 and the two GPUs on a Tesla K10 in the same system returns 0x200 it is not guaranteed they will always return those values but they will always be different from each other).
For Fermi or newer fully supported devices.
Retrieves the the device board part number which is programmed into the board's InfoROM
For all products.
Retrieves the brand of this device.
For all products.
The type is a member of nvmlBrandType_t defined above.
Get Bridge Chip Information for all the bridge chips on the board.
For all fully supported products. Only applicable to multi-GPU products.
Retrieves the Device's C2C Mode information
Retrieves the frequency monitor fault status for the device.
For Ampere or newer fully supported devices. Requires root user.
See nvmlClkMonStatus_t for details on decoding the status output.
See also:
Retrieves the clock speed for the clock specified by the clock type and clock ID.
For Kepler or newer fully supported devices.
Retrieves the current clock speeds for the device.
For Fermi or newer fully supported devices.
See nvmlClockType_t for details on available clock information.
Get information about processes with a compute context on a device
For Fermi or newer fully supported devices.
This function returns information only about compute running processes (e.g. CUDA application which have active context). Any graphics applications (e.g. using OpenGL, DirectX) won't be listed by this function.
To query the current number of running compute processes, call this function with *infoCount = 0. The return code will be NVML_ERROR_INSUFFICIENT_SIZE, or NVML_SUCCESS if none are running. For this call infos is allowed to be NULL.
The usedGpuMemory field returned is all of the memory used by the application.
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.
Note:In MIG mode, if device handle is provided, the API returns aggregate information, only if the caller has appropriate privileges. Per-instance information can be queried by using specific MIG device handles. Querying per-instance information using MIG device handles is not supported if the device is in vGPU Host virtualization mode.
See also:
Get Conf Computing GPU attestation report.
For Ampere or newer fully supported devices. Supported on Linux, Windows TCC.
Get Conf Computing GPU certificate details.
For Ampere or newer fully supported devices. Supported on Linux, Windows TCC.
Get Conf Computing Protected and Unprotected Memory Sizes.
For Ampere or newer fully supported devices. Supported on Linux, Windows TCC.
Get Conf Computing protected memory usage.
For Ampere or newer fully supported devices. Supported on Linux, Windows TCC.
Retrieves the cooler's information. Returns a cooler's control signal characteristics. The possible types are restricted, Variable and Toggle. See nvmlCoolerControl_t for details on available signal types. Returns objects that cooler cools. Targets may be GPU, Memory, Power Supply or All of these. See nvmlCoolerTarget_t for details on available targets.
For Maxwell or newer fully supported devices.
For all discrete products with dedicated fans.
Retrieves the number of compute devices in the system. A compute device is a single GPU.
For all products.
Note: New nvmlDeviceGetCount_v2 (default in NVML 5.319) returns count of all devices in the system even if nvmlDeviceGetHandleByIndex_v2 returns NVML_ERROR_NO_PERMISSION for such device. Update your code to handle this error, or use NVML 4.304 or older nvml header file. For backward binary compatibility reasons _v1 version of the API is still present in the shared library. Old _v1 version of nvmlDeviceGetCount doesn't count devices that NVML has no permission to talk to.
Retrieves the CUDA compute capability of the device.
For all products.
Returns the major and minor compute capability version numbers of the device. The major and minor versions are equivalent to the CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MINOR and CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MAJOR attributes that would be returned by CUDA's cuDeviceGetAttribute().
Retrieves the current PCIe link generation
For Fermi or newer fully supported devices.
Retrieves the current PCIe link width
For Fermi or newer fully supported devices.
Retrieves a string with the associated current GPU Clock and Memory Clock values.
Not all tokens will be reported on all GPUs, and additional tokens may be added in the future.
Note: These clock values take into account the offset set by clients through /ref nvmlDeviceSetClockOffsets.
Clock values are returned as a comma-separated list of "token=value" pairs. Valid tokens:
Token Value "perf" unsigned int - the Performance level "nvclock" unsigned int - the GPU clocks (in MHz) for the perf level "nvclockmin" unsigned int - the GPU clocks min (in MHz) for the perf level "nvclockmax" unsigned int - the GPU clocks max (in MHz) for the perf level "nvclockeditable" unsigned int - if the GPU clock domain is editable for the perf level "memclock" unsigned int - the memory clocks (in MHz) for the perf level "memclockmin" unsigned int - the memory clocks min (in MHz) for the perf level "memclockmax" unsigned int - the memory clocks max (in MHz) for the perf level "memclockeditable" unsigned int - if the memory clock domain is editable for the perf level "memtransferrate" unsigned int - the memory transfer rate (in MHz) for the perf level "memtransferratemin" unsigned int - the memory transfer rate min (in MHz) for the perf level "memtransferratemax" unsigned int - the memory transfer rate max (in MHz) for the perf level "memtransferrateeditable" unsigned int - if the memory transfer rate is editable for the perf level
Example:
nvclock=324, nvclockmin=324, nvclockmax=324, nvclockeditable=0, memclock=324, memclockmin=324, memclockmax=324, memclockeditable=0, memtransferrate=648, memtransferratemin=648, memtransferratemax=648, memtransferrateeditable=0 ;
Retrieves the current utilization and sampling size in microseconds for the Decoder
For Kepler or newer fully supported devices.
Note:On MIG-enabled GPUs, querying decoder utilization is not currently supported.
Applications clocks are deprecated and will be removed in CUDA 14.0.
Retrieves the default ECC modes for the device.
For Fermi or newer fully supported devices. Only applicable to devices with ECC. Requires NVML_INFOROM_ECC version 1.0 or higher.
See nvmlEnableState_t for details on allowed modes.
See also:
This API supports only a fixed set of ECC error locations On different GPU architectures different locations are supported See nvmlDeviceGetMemoryErrorCounter
Retrieves the detailed ECC error counts for the device.
For Fermi or newer fully supported devices. Only applicable to devices with ECC. Requires NVML_INFOROM_ECC version 2.0 or higher to report aggregate location-based ECC counts. Requires NVML_INFOROM_ECC version 1.0 or higher to report all other ECC counts. Requires ECC Mode to be enabled.
Detailed errors provide separate ECC counts for specific parts of the memory system.
Reports zero for unsupported ECC error counters when a subset of ECC error counters are supported.
See nvmlMemoryErrorType_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.
See also:
Retrieves the display active state for the device.
For all products.
This method indicates whether a display is initialized on the device. For example whether X Server is attached to this device and has allocated memory for the screen.
Display can be active even when no monitor is physically attached.
See nvmlEnableState_t for details on allowed modes.
Retrieves the display mode for the device.
For all products.
This method indicates whether a physical display (e.g. monitor) is currently connected to any of the device's connectors.
See nvmlEnableState_t for details on allowed modes.
Retrieves the current and pending DRAM Encryption modes for the device.
BLACKWELL_OR_NEWER% Only applicable to devices that support DRAM Encryption Requires NVML_INFOROM_DEN version 1.0 or higher.
Changing DRAM Encryption modes requires a reboot. The "pending" DRAM Encryption mode refers to the target mode following the next reboot.
See nvmlEnableState_t for details on allowed modes.
See also:
Retrieves the current and pending driver model for the device.
For Kepler or newer fully supported devices. For windows only.
On Windows platforms the device driver can run in either WDDM, MCDM or WDM (TCC) modes. If a display is attached to the device it must run in WDDM mode. MCDM mode is preferred if a display is not attached. TCC mode is deprecated.
See nvmlDriverModel_t for details on available driver models.
See also:
nvmlDeviceSetDriverModel_v2()
Retrieve performance monitor samples from the associated subdevice.
Retrieves the current and pending ECC modes for the device.
For Fermi or newer fully supported devices. Only applicable to devices with ECC. Requires NVML_INFOROM_ECC version 1.0 or higher.
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.
See also:
Retrieves the current capacity of the device's encoder, as a percentage of maximum encoder capacity with valid values in the range 0-100.
For Maxwell or newer fully supported devices.
Retrieves information about active encoder sessions on a target device.
An array of active encoder sessions is returned in the caller-supplied buffer pointed at by sessionInfos. The array element count is passed in sessionCount, and sessionCount is used to return the number of sessions written to the buffer.
If the supplied buffer is not large enough to accommodate the active session array, the function returns NVML_ERROR_INSUFFICIENT_SIZE, with the element count of nvmlEncoderSessionInfo_t array required in sessionCount. To query the number of active encoder sessions, call this function with *sessionCount = 0. The code will return NVML_SUCCESS with number of active encoder sessions updated in *sessionCount.
For Maxwell or newer fully supported devices.
Retrieves the current encoder statistics for a given device.
For Maxwell or newer fully supported devices.
Retrieves the current utilization and sampling size in microseconds for the Encoder
For Kepler or newer fully supported devices.
Note:On MIG-enabled GPUs, querying encoder utilization is not currently supported.
Get the effective power limit that the driver enforces after taking into account all limiters
Note: This can be different from the nvmlDeviceGetPowerManagementLimit if other limits are set elsewhere This includes the out of band power limit interface
For Kepler or newer fully supported devices.
Retrieves information about active frame buffer capture sessions on a target device.
An array of active FBC sessions is returned in the caller-supplied buffer pointed at by sessionInfo. The array element count is passed in sessionCount, and sessionCount is used to return the number of sessions written to the buffer.
If the supplied buffer is not large enough to accommodate the active session array, the function returns NVML_ERROR_INSUFFICIENT_SIZE, with the element count of nvmlFBCSessionInfo_t array required in sessionCount. To query the number of active FBC sessions, call this function with *sessionCount = 0. The code will return NVML_SUCCESS with number of active FBC sessions updated in *sessionCount.
For Maxwell or newer fully supported devices.
Note:hResolution, vResolution, averageFPS and averageLatency data for a FBC session returned in sessionInfo may be zero if there are no new frames captured since the session started.
Retrieves the active frame buffer capture sessions statistics for a given device.
For Maxwell or newer fully supported devices.
Gets current fan control policy.
For Maxwell or newer fully supported devices.
For all cuda-capable discrete products with fans
device The identifier of the target device policy Reference in which to return the fan control policy
return NVML_SUCCESS if policy has been populated NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized NVML_ERROR_INVALID_ARGUMENT if device is invalid or policy is null or the fan given doesn't reference a fan that exists. NVML_ERROR_NOT_SUPPORTED if the device is older than Maxwell NVML_ERROR_UNKNOWN on any unexpected error
Retrieves the intended operating speed of the device's fan.
Note: The reported speed is the intended fan speed. If the fan is physically blocked and unable to spin, the output will not match the actual fan speed.
For all discrete products with dedicated fans.
The fan speed is expressed as a percentage of the product's maximum noise tolerance fan speed. This value may exceed 100% in certain cases.
Retrieves the intended operating speed in rotations per minute (RPM) of the device's specified fan.
For Maxwell or newer fully supported devices.
For all discrete products with dedicated fans.
Note: The reported speed is the intended fan speed. If the fan is physically blocked and unable to spin, the output will not match the actual fan speed.
Retrieves the intended operating speed of the device's specified fan.
Note: The reported speed is the intended fan speed. If the fan is physically blocked and unable to spin, the output will not match the actual fan speed.
For all discrete products with dedicated fans.
The fan speed is expressed as a percentage of the product's maximum noise tolerance fan speed. This value may exceed 100% in certain cases.
Retrieve the GPCCLK min max VF offset value.
Retrieve the GPCCLK VF offset value
Will be deprecated in a future release. Use nvmlDeviceGetGpuFabricInfoV instead
Get fabric information associated with the device.
For Hopper or newer fully supported devices.
On Hopper + NVSwitch systems, GPU is registered with the NVIDIA Fabric Manager Upon successful registration, the GPU is added to the NVLink fabric to enable peer-to-peer communication. This API reports the current state of the GPU in the NVLink fabric along with other useful information.
Retrieves the maximum PCIe link generation supported by this device
For Fermi or newer fully supported devices.
Get information about processes with a graphics context on a device
For Kepler or newer fully supported devices.
This function returns information only about graphics based processes (eg. applications using OpenGL, DirectX)
To query the current number of running graphics processes, call this function with *infoCount = 0. The return code will be NVML_ERROR_INSUFFICIENT_SIZE, or NVML_SUCCESS if none are running. For this call infos is allowed to be NULL.
The usedGpuMemory field returned is all of the memory used by the application.
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 graphics processes are spawned.
Note:In MIG mode, if device handle is provided, the API returns aggregate information, only if the caller has appropriate privileges. Per-instance information can be queried by using specific MIG device handles. Querying per-instance information using MIG device handles is not supported if the device is in vGPU Host virtualization mode.
See also:
Retrieve GSP firmware mode.
The caller passes in integer pointers. GSP firmware enablement and default mode information is returned with corresponding parameters. The return value in isEnabled and defaultMode should be treated as boolean.
Retrieve GSP firmware version.
The caller passes in buffer via version and corresponding GSP firmware numbered version is returned with the same parameter in string format.
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_v2(). For example, if accessibleDevices is 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 it is recommended that devices be looked up by their PCI ids or UUID. See nvmlDeviceGetHandleByUUID() and nvmlDeviceGetHandleByPciBusId_v2().
Note: The NVML index may not correlate with other APIs, such as the CUDA device index.
Starting from NVML 5, this API causes NVML to initialize the target GPU NVML may initialize additional GPUs if:
The target GPU is an SLI slave
Note: New nvmlDeviceGetCount_v2 (default in NVML 5.319) returns count of all devices in the system even if nvmlDeviceGetHandleByIndex_v2 returns NVML_ERROR_NO_PERMISSION for such device. Update your code to handle this error, or use NVML 4.304 or older nvml header file. For backward binary compatibility reasons _v1 version of the API is still present in the shared library. Old _v1 version of nvmlDeviceGetCount doesn't count devices that NVML has no permission to talk to.
This means that nvmlDeviceGetHandleByIndex_v2 and _v1 can return different devices for the same index. If you don't touch macros that map old (_v1) versions to _v2 versions at the top of the file you don't need to worry about that.
See also:
nvmlDeviceGetCount
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_v3().
Starting from NVML 5, this API causes NVML to initialize the target GPU NVML may initialize additional GPUs if:
The target GPU is an SLI slave
NVML 4.304 and older version of nvmlDeviceGetHandleByPciBusId"_v1" returns NVML_ERROR_NOT_FOUND instead of NVML_ERROR_NO_PERMISSION.
Since more than one GPU can exist on a single board this function is deprecated in favor of nvmlDeviceGetHandleByUUID. For dual GPU boards this function will return NVML_ERROR_INVALID_ARGUMENT.
Acquire the handle for a particular device, based on its board serial number.
For Fermi or newer fully supported devices.
This number corresponds to the value printed directly on the board, and to the value returned by nvmlDeviceGetSerial().
Starting from NVML 5, this API causes NVML to initialize the target GPU NVML may initialize additional GPUs as it searches for the target GPU
See also:
Acquire the handle for a particular device, based on its globally unique immutable UUID (in ASCII format) associated with each device.
For all products.
Starting from NVML 5, this API causes NVML to initialize the target GPU NVML may initialize additional GPUs as it searches for the target GPU
See also:
Acquire the handle for a particular device, based on its globally unique immutable UUID (in either ASCII or binary format) associated with each device. See nvmlUUID_v1_t for more information on the UUID struct. The caller must set the appropriate version prior to calling this API.
For all products.
This API causes NVML to initialize the target GPU NVML may initialize additional GPUs as it searches for the target GPU
Retrieves the NVML index of this device.
For all products.
Valid indices are derived from the accessibleDevices count returned by nvmlDeviceGetCount_v2(). For example, if accessibleDevices is 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 it is recommended that devices be looked up by their PCI ids or GPU UUID. See nvmlDeviceGetHandleByPciBusId_v2() and nvmlDeviceGetHandleByUUID().
When used with MIG device handles this API returns indices that can be passed to nvmlDeviceGetMigDeviceHandleByIndex to retrieve an identical handle. MIG device indices are unique within a device.
Note: The NVML index may not correlate with other APIs, such as the CUDA device index.
See also:
nvmlDeviceGetHandleByIndex()
nvmlDeviceGetCount()
Retrieves the checksum of the configuration stored in the device's infoROM.
For all products with an inforom.
Can be used to make sure that two GPUs have the exact same configuration. Current checksum takes into account configuration stored in PWR and ECC infoROM objects. Checksum can change between driver releases or when user changes configuration (e.g. disable/enable ECC)
Retrieves the global infoROM image version
For all products with an inforom.
Image version just like VBIOS version uniquely describes the exact version of the infoROM flashed on the board in contrast to infoROM object version which is only an indicator of supported features. Version string will not exceed 16 characters in length (including the NULL terminator). See nvmlConstants::NVML_DEVICE_INFOROM_VERSION_BUFFER_SIZE.
See also:
Retrieves the version information for the device's infoROM object.
For all products with an inforom.
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 in length (including the NULL terminator). See nvmlConstants::NVML_DEVICE_INFOROM_VERSION_BUFFER_SIZE.
See nvmlInforomObject_t for details on the available infoROM objects.
See also:
Gets the device's interrupt number
Retrieves the current utilization and sampling size in microseconds for the JPG
TURING_OR_NEWER%
Note:On MIG-enabled GPUs, querying decoder utilization is not currently supported.
Retrieves the timestamp and the duration of the last flush of the BBX (blackbox) infoROM object during the current run.
For all products with an inforom.
See also:
Get information about processes with a Multi-Process Service (MPS) compute context on a device
For Volta or newer fully supported devices.
This function returns information only about compute running processes (e.g. CUDA application which have active context) utilizing MPS. Any graphics applications (e.g. using OpenGL, DirectX) won't be listed by this function.
To query the current number of running compute processes, call this function with *infoCount = 0. The return code will be NVML_ERROR_INSUFFICIENT_SIZE, or NVML_SUCCESS if none are running. For this call infos is allowed to be NULL.
The usedGpuMemory field returned is all of the memory used by the application.
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.
Note:In MIG mode, if device handle is provided, the API returns aggregate information, only if the caller has appropriate privileges. Per-instance information can be queried by using specific MIG device handles. Querying per-instance information using MIG device handles is not supported if the device is in vGPU Host virtualization mode.
See also:
Retrieves the thermal margin temperature (distance to nearest slowdown threshold).
Retrieves the maximum clock speeds for the device.
For Fermi or newer fully supported devices.
See nvmlClockType_t for details on available clock information.
Note:On GPUs from Fermi family current P0 clocks (reported by nvmlDeviceGetClockInfo) can differ from max clocks by few MHz.
Retrieves the customer defined maximum boost clock speed specified by the given clock type.
For Pascal or newer fully supported devices.
Retrieves the maximum PCIe link generation possible with this device and system
I.E. for a generation 2 PCIe device attached to a generation 1 PCIe bus the max link generation this function will report is generation 1.
For Fermi or newer fully supported devices.
Retrieves the maximum PCIe link width possible with this device and system
I.E. for a device with a 16x PCIe bus width attached to a 8x PCIe system bus this function will report a max link width of 8.
For Fermi or newer fully supported devices.
Retrieve the MemClk (Memory Clock) min max VF offset value.
Retrieve the MemClk (Memory Clock) VF offset value.
Gets the device's memory bus width
Retrieves the requested memory error counter for the device.
For Fermi or newer fully supported devices. Requires NVML_INFOROM_ECC version 2.0 or higher to report aggregate location-based memory error counts. Requires NVML_INFOROM_ECC version 1.0 or higher to report all other memory error counts.
Only applicable to devices with ECC.
Requires ECC Mode to be enabled.
Note:On MIG-enabled GPUs, per instance information can be queried using specific MIG device handles. Per instance information is currently only supported for non-DRAM uncorrectable volatile errors. Querying volatile errors using device handles is currently not supported.
See nvmlMemoryErrorType_t for a description of available memory error types. See nvmlEccCounterType_t for a description of available counter types. See nvmlMemoryLocation_t for a description of available counter locations.
Retrieves the amount of used, free, reserved and total memory available on the device, in bytes. The reserved amount is supported on version 2 only.
For all products.
Enabling ECC reduces the amount of total available memory, due to the extra required parity bits. Under WDDM most 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 all active channels on the device.
See nvmlMemory_v2_t for details on available memory info.
Note:In MIG mode, if device handle is provided, the API returns aggregate information, only if the caller has appropriate privileges. Per-instance information can be queried by using specific MIG device handles.
nvmlDeviceGetMemoryInfo_v2 adds additional memory information.
On systems where GPUs are NUMA nodes, the accuracy of FB memory utilization provided by this API depends on the memory accounting of the operating system. This is because FB memory is managed by the operating system instead of the NVIDIA GPU driver. Typically, pages allocated from FB memory are not released even after the process terminates to enhance performance. In scenarios where the operating system is under memory pressure, it may resort to utilizing FB memory. Such actions can result in discrepancies in the accuracy of memory reporting.
nvmlDeviceGetMemoryInfo_v2 accounts separately for reserved memory and includes it in the used memory amount.
Retrieve min and max clocks of some clock domain for a given PState
Retrieves the min and max fan speed that user can set for the GPU fan.
For all cuda-capable discrete products with fans
return NVML_SUCCESS if speed has been adjusted NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized NVML_ERROR_INVALID_ARGUMENT if device is invalid NVML_ERROR_NOT_SUPPORTED if the device does not support this (doesn't have fans) NVML_ERROR_UNKNOWN on any unexpected error
Retrieves minor number for the device. The minor number for the device is such that the Nvidia device node file for each GPU will have the form /dev/nvidia[minor number].
For all products. Supported only for Linux
Get a unique identifier for the device module on the baseboard
This API retrieves a unique identifier for each GPU module that exists on a given baseboard. For non-baseboard products, this ID would always be 0.
Retrieves whether the device is on a Multi-GPU Board Devices that are on multi-GPU boards will set multiGpuBool to a non-zero value.
For Fermi or newer fully supported devices.
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 96 characters in length (including the NULL terminator). See nvmlConstants::NVML_DEVICE_NAME_V2_BUFFER_SIZE.
When used with MIG device handles the API returns MIG device names which can be used to identify devices based on their attributes.
Retrieves the number of fans on the device.
For all discrete products with dedicated fans.
Gets the device's core count
Note:On MIG-enabled GPUs, querying the device's core count is currently not supported using this API. Please use nvmlDeviceGetGpuInstanceProfileInfo to fetch the MIG device's core count.
Retrieves the current utilization and sampling size in microseconds for the OFA (Optical Flow Accelerator)
TURING_OR_NEWER%
Note:On MIG-enabled GPUs, querying decoder utilization is not currently supported.
Retrieve the status for a given p2p capability index between a given pair of GPU
Retrieves PCI attributes of this device.
For all products.
See nvmlPciInfoExt_v1_t for details on the available PCI info.
Retrieves the PCI attributes of this device.
For all products.
See nvmlPciInfo_t for details on the available PCI info.
Gets the device's PCIE Max Link speed in MBPS
Retrieve the PCIe replay counter.
For Kepler or newer fully supported devices.
Gets the device's PCIe Link speed in Mbps
Retrieve PCIe utilization information. This function is querying a byte counter over a 20ms interval and thus is the PCIe throughput over that interval.
For Maxwell or newer fully supported devices.
This method is not supported in virtual machines running virtual GPU (vGPU).
Retrieves the Per Device Identifier (PDI) associated with this device.
For Pascal or newer fully supported devices.
See nvmlPdi_v1_t for more information on the struct.
Retrieves a performance mode string with all the performance modes defined for this device along with their associated GPU Clock and Memory Clock values. Not all tokens will be reported on all GPUs, and additional tokens may be added in the future. For backwards compatibility we still provide nvclock and memclock; those are the same as nvclockmin and memclockmin.
Note: These clock values take into account the offset set by clients through /ref nvmlDeviceSetClockOffsets.
Maximum available Pstate (P15) shows the minimum performance level (0) and vice versa.
Each performance modes are returned as a comma-separated list of "token=value" pairs. Each set of performance mode tokens are separated by a ";". Valid tokens:
Token Value "perf" unsigned int - the Performance level "nvclock" unsigned int - the GPU clocks (in MHz) for the perf level "nvclockmin" unsigned int - the GPU clocks min (in MHz) for the perf level "nvclockmax" unsigned int - the GPU clocks max (in MHz) for the perf level "nvclockeditable" unsigned int - if the GPU clock domain is editable for the perf level "memclock" unsigned int - the memory clocks (in MHz) for the perf level "memclockmin" unsigned int - the memory clocks min (in MHz) for the perf level "memclockmax" unsigned int - the memory clocks max (in MHz) for the perf level "memclockeditable" unsigned int - if the memory clock domain is editable for the perf level "memtransferrate" unsigned int - the memory transfer rate (in MHz) for the perf level "memtransferratemin" unsigned int - the memory transfer rate min (in MHz) for the perf level "memtransferratemax" unsigned int - the memory transfer rate max (in MHz) for the perf level "memtransferrateeditable" unsigned int - if the memory transfer rate is editable for the perf level
Example:
perf=0, nvclock=324, nvclockmin=324, nvclockmax=324, nvclockeditable=0, memclock=324, memclockmin=324, memclockmax=324, memclockeditable=0, memtransferrate=648, memtransferratemin=648, memtransferratemax=648, memtransferrateeditable=0 ; perf=1, nvclock=324, nvclockmin=324, nvclockmax=640, nvclockeditable=0, memclock=810, memclockmin=810, memclockmax=810, memclockeditable=0, memtransferrate=1620, memtransferrate=1620, memtransferrate=1620, memtransferrateeditable=0 ;
Retrieves the current performance state for the device.
For Fermi or newer fully supported devices.
See nvmlPstates_t for details on allowed performance states.
Retrieves the persistence mode associated with this device.
For all 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.
See also:
Get platform information of this device.
BLACKWELL_OR_NEWER%
See nvmlPlatformInfo_v2_t for more information on the struct.
Retrieves default power management limit on this device, in milliwatts. Default power management limit is a power management limit that the device boots with.
For Kepler or newer fully supported devices.
Retrieves the power management limit associated with this device.
For Fermi or newer fully supported devices.
The power limit defines the upper boundary for the card's power draw. If the card's total power draw reaches this limit the power management algorithm kicks in.
This reading is only available if power management mode is supported. See nvmlDeviceGetPowerManagementMode.
Retrieves information about possible values of power management limits on this device.
For Kepler or newer fully supported devices.
See also:
This API has been deprecated.
Retrieves the power management mode associated with this device.
For products from the Fermi family.
Requires NVML_INFOROM_POWER version 3.0 or higher.
For from the Kepler or newer families.
Does not require NVML_INFOROM_POWER object.
This flag indicates whether any power management algorithm is currently active on the device. An enabled state does not necessarily mean the device is being actively throttled -- only that that the driver will do so if the appropriate conditions are met.
See nvmlEnableState_t for details on allowed modes.
Retrieves current power mizer mode on this device.
PowerMizerMode provides a hint to the driver as to how to manage the performance of the GPU.
For Maxwell or newer fully supported devices.
Gets the devices power source
Use nvmlDeviceGetPerformanceState. This function exposes an incorrect generalization.
Retrieve the current performance state for the device.
For Fermi or newer fully supported devices.
See nvmlPstates_t for details on allowed performance states.
Retrieves power usage for this GPU in milliwatts and its associated circuitry (e.g. memory)
For Fermi or newer fully supported devices.
On Fermi and Kepler GPUs the reading is accurate to within +/- 5% of current power draw. On Ampere (except GA100) or newer GPUs, the API returns power averaged over 1 sec interval. On GA100 and older architectures, instantaneous power is returned.
See NVML_FI_DEV_POWER_AVERAGE and NVML_FI_DEV_POWER_INSTANT to query specific power values.
It is only available if power management mode is supported. See nvmlDeviceGetPowerManagementMode.
Retrieves the current utilization and process ID
For Maxwell or newer fully supported devices.
Reads recent utilization of GPU SM (3D/Compute), framebuffer, video encoder, and video decoder for processes running. Utilization values are returned as an array of utilization sample structures in the caller-supplied buffer pointed at by utilization. One utilization sample structure is returned per process running, that had some non-zero utilization during the last sample period. It includes the CPU timestamp at which the samples were recorded. Individual utilization values are returned as "unsigned int" values. If no valid sample entries are found since the lastSeenTimeStamp, NVML_ERROR_NOT_FOUND is returned.
To read utilization values, first determine the size of buffer required to hold the samples by invoking the function with utilization set to NULL. The caller should allocate a buffer of size processSamplesCount * sizeof(nvmlProcessUtilizationSample_t). Invoke the function again with the allocated buffer passed in utilization, and processSamplesCount set to the number of entries the buffer is sized for.
On successful return, the function updates processSamplesCount with the number of process utilization sample structures that were actually written. This may differ from a previously read value as instances are created or destroyed.
lastSeenTimeStamp represents the CPU timestamp in microseconds at which utilization samples were last read. Set it to 0 to read utilization based on all the samples maintained by the driver's internal sample buffer. Set lastSeenTimeStamp to a timeStamp retrieved from a previous query to read utilization since the previous query.
Note:On MIG-enabled GPUs, querying process utilization is not currently supported.
Retrieves the recent utilization and process ID for all running processes
For Maxwell or newer fully supported devices.
Reads recent utilization of GPU SM (3D/Compute), framebuffer, video encoder, and video decoder, jpeg decoder, OFA (Optical Flow Accelerator) for all running processes. Utilization values are returned as an array of utilization sample structures in the caller-supplied buffer pointed at by procesesUtilInfo->procUtilArray. One utilization sample structure is returned per process running, that had some non-zero utilization during the last sample period. It includes the CPU timestamp at which the samples were recorded. Individual utilization values are returned as "unsigned int" values.
The caller should allocate a buffer of size processSamplesCount * sizeof(nvmlProcessUtilizationInfo_t). If the buffer is too small, the API will return NVML_ERROR_INSUFFICIENT_SIZE, with the recommended minimal buffer size at procesesUtilInfo->processSamplesCount. The caller should invoke the function again with the allocated buffer passed in procesesUtilInfo->procUtilArray, and procesesUtilInfo->processSamplesCount set to the number no less than the recommended value by the previous API return.
On successful return, the function updates procesesUtilInfo->processSamplesCount with the number of process utilization info structures that were actually written. This may differ from a previously read value as instances are created or destroyed.
procesesUtilInfo->lastSeenTimeStamp represents the CPU timestamp in microseconds at which utilization samples were last read. Set it to 0 to read utilization based on all the samples maintained by the driver's internal sample buffer. Set procesesUtilInfo->lastSeenTimeStamp to a timeStamp retrieved from a previous query to read utilization since the previous query.
procesesUtilInfo->version is the version number of the structure nvmlProcessesUtilizationInfo_t, the caller should set the correct version number to retrieve the specific version of processes utilization information.
Note:On MIG-enabled GPUs, querying process utilization is not currently supported.
Get number of remapped rows. The number of rows reported will be based on the cause of the remapping. isPending indicates whether or not there are pending remappings. A reset will be required to actually remap the row. failureOccurred will be set if a row remapping ever failed in the past. A pending remapping won't affect future work on the GPU since error-containment and dynamic page blacklisting will take care of that.
Note:On MIG-enabled GPUs with active instances, querying the number of remapped rows is not supported
For Ampere or newer fully supported devices.
Returns the list of retired pages by source, including pages that are pending retirement The address information provided from this API is the hardware address of the page that was retired. Note that this does not match the virtual address used in CUDA, but will match the address information in Xid 63
For Kepler or newer fully supported devices.
Check if any pages are pending retirement and need a reboot to fully retire.
For Kepler or newer fully supported devices.
Returns the list of retired pages by source, including pages that are pending retirement The address information provided from this API is the hardware address of the page that was retired. Note that this does not match the virtual address used in CUDA, but will match the address information in Xid 63
Note:nvmlDeviceGetRetiredPages_v2 adds an additional timestamps parameter to return the time of each page's retirement. This is supported for Pascal and newer architecture.
For Kepler or newer fully supported devices.
Get the row remapper histogram. Returns the remap availability for each bank on the GPU.
Get information about running processes on a device for input context
For Hopper or newer fully supported devices.
This function returns information only about running processes (e.g. CUDA application which have active context).
To determine the size of the plist->procArray array to allocate, call the function with plist->numProcArrayEntries set to zero and plist->procArray set to NULL. The return code will be either NVML_ERROR_INSUFFICIENT_SIZE (if there are valid processes of type plist->mode to report on, in which case the plist->numProcArrayEntries field will indicate the required number of entries in the array) or NVML_SUCCESS (if no processes of type plist->mode exist).
The usedGpuMemory field returned is all of the memory used by the application. The usedGpuCcProtectedMemory field returned is all of the protected memory used by the application.
Keep in mind that information returned by this call is dynamic and the number of elements might change in time. Allocate more space for plist->procArray table in case new processes are spawned.
Note:In MIG mode, if device handle is provided, the API returns aggregate information, only if the caller has appropriate privileges. Per-instance information can be queried by using specific MIG device handles. Querying per-instance information using MIG device handles is not supported if the device is in vGPU Host virtualization mode. Protected memory usage is currently not available in MIG mode and in windows.
Gets recent samples for the GPU.
For Kepler or newer fully supported devices.
Based on type, this method can be used to fetch the power, utilization or clock samples maintained in the buffer by the driver.
Power, Utilization and Clock samples are returned as type "unsigned int" for the union nvmlValue_t.
To get the size of samples that user needs to allocate, the method is invoked with samples set to NULL. The returned samplesCount will provide the number of samples that can be queried. The user needs to allocate the buffer with size as samplesCount * sizeof(nvmlSample_t).
lastSeenTimeStamp represents CPU timestamp in microseconds. Set it to 0 to fetch all the samples maintained by the underlying buffer. Set lastSeenTimeStamp to one of the timeStamps retrieved from the date of the previous query to get more recent samples.
This method fetches the number of entries which can be accommodated in the provided samples array, and the reference samplesCount is updated to indicate how many samples were actually retrieved. The advantage of using this method for samples in contrast to polling via existing methods is to get get higher frequency data at lower polling cost.
Note:On MIG-enabled GPUs, querying the following sample types, NVML_GPU_UTILIZATION_SAMPLES, NVML_MEMORY_UTILIZATION_SAMPLES NVML_ENC_UTILIZATION_SAMPLES and NVML_DEC_UTILIZATION_SAMPLES, is not currently supported.
Retrieves the globally unique board serial number associated with this device's board.
For all products with an inforom.
The serial number is an alphanumeric string that will not exceed 30 characters (including the NULL terminator). This number matches the serial number tag that is physically attached to the board. See nvmlConstants::NVML_DEVICE_SERIAL_BUFFER_SIZE.
Get SRAM ECC error status of this device.
For Ampere or newer fully supported devices. Requires root/admin permissions.
See nvmlEccSramErrorStatus_v1_t for more information on the struct.
Get all supported Performance States (P-States) for the device.
The returned array would contain a contiguous list of valid P-States supported by the device. If the number of supported P-States is fewer than the size of the array supplied missing elements would contain NVML_PSTATE_UNKNOWN.
The number of elements in the returned list will never exceed NVML_MAX_GPU_PERF_PSTATES.
Retrieves the intended target speed of the device's specified fan.
Normally, the driver dynamically adjusts the fan based on the needs of the GPU. But when user set fan speed using nvmlDeviceSetFanSpeed_v2, the driver will attempt to make the fan achieve the setting in nvmlDeviceSetFanSpeed_v2. The actual current speed of the fan is reported in nvmlDeviceGetFanSpeed_v2.
For all discrete products with dedicated fans.
The fan speed is expressed as a percentage of the product's maximum noise tolerance fan speed. This value may exceed 100% in certain cases.
Retrieves the temperature threshold for the GPU with the specified threshold type in degrees C.
For Kepler or newer fully supported devices.
See nvmlTemperatureThresholds_t for details on available temperature thresholds.
Note: This API is no longer the preferred interface for retrieving the following temperature thresholds on Ada and later architectures: NVML_TEMPERATURE_THRESHOLD_SHUTDOWN, NVML_TEMPERATURE_THRESHOLD_SLOWDOWN, NVML_TEMPERATURE_THRESHOLD_MEM_MAX and NVML_TEMPERATURE_THRESHOLD_GPU_MAX.
Support for reading these temperature thresholds for Ada and later architectures would be removed from this API in future releases. Please use nvmlDeviceGetFieldValues with NVML_FI_DEV_TEMPERATURE_* fields to retrieve temperature thresholds on these architectures.
Retrieves the current temperature readings (in degrees C) for the given device.
For all products.
Used to execute a list of thermal system instructions.
Retrieve the common ancestor for two devices For all products. Supported on Linux only.
Retrieve the set of GPUs that are nearest to a given device at a specific interconnectivity level For all products. Supported on Linux only.
Retrieves the total ECC error counts for the device.
For Fermi or newer fully supported devices. Only applicable to devices with ECC. Requires NVML_INFOROM_ECC version 1.0 or higher. Requires ECC Mode to be enabled.
The total error count is the sum of errors across each of the separate memory systems, i.e. the total set of errors across the entire device.
See nvmlMemoryErrorType_t for a description of available error types. See nvmlEccCounterType_t for a description of available counter types.
See also:
Retrieves total energy consumption for this GPU in millijoules (mJ) since the driver was last reloaded
For Volta or newer fully supported devices.
Retrieves the globally unique immutable UUID associated with this device, as a 5 part hexadecimal string, that augments the immutable, board serial identifier.
For all products.
The UUID is a globally unique identifier. It is the only available identifier for pre-Fermi-architecture products. It does NOT correspond to any identifier printed on the board. It will not exceed 96 characters in length (including the NULL terminator). See nvmlConstants::NVML_DEVICE_UUID_V2_BUFFER_SIZE.
When used with MIG device handles the API returns globally unique UUIDs which can be used to identify MIG devices across both GPU and MIG devices. UUIDs are immutable for the lifetime of a MIG device.
Retrieves the current utilization rates for the device's major subsystems.
For Fermi or newer fully supported devices.
See nvmlUtilization_t for details on available utilization rates.
Note:During driver initialization when ECC is enabled one can see high GPU and Memory Utilization readings. This is caused by ECC Memory Scrubbing mechanism that is performed during driver initialization.
On MIG-enabled GPUs, querying device utilization rates is not currently supported.
Use nvmlDeviceGetFieldValues to query this data. This API will be removed in CUDA 14.0.
Translations are as follows:
NVML_PERF_POLICY_POWER -> NVML_FI_DEV_CLOCKS_EVENT_REASON_SW_POWER_CAP NVML_PERF_POLICY_THERMAL -> NVML_FI_DEV_CLOCKS_EVENT_REASON_SW_THERM_SLOWDOWN NVML_PERF_POLICY_SYNC_BOOST -> NVML_FI_DEV_CLOCKS_EVENT_REASON_SYNC_BOOST NVML_PERF_POLICY_BOARD_LIMIT -> NVML_FI_DEV_PERF_POLICY_BOARD_LIMIT NVML_PERF_POLICY_LOW_UTILIZATION -> NVML_FI_DEV_PERF_POLICY_LOW_UTILIZATION NVML_PERF_POLICY_RELIABILITY -> NVML_FI_DEV_PERF_POLICY_RELIABILITY NVML_PERF_POLICY_TOTAL_APP_CLOCKS -> DEPRECATED, Do not use NVML_PERF_POLICY_TOTAL_BASE_CLOCKS -> NVML_FI_DEV_PERF_POLICY_TOTAL_BASE_CLOCKS
Check if the GPU devices are on the same physical board.
For all fully supported products.
Control current clock offset of some clock domain for a given PState
For Maxwell or newer fully supported devices.
Requires privileged user.
Set Conf Computing Unprotected Memory Size.
For Ampere or newer fully supported devices. Supported on Linux, Windows TCC.
Set the DRAM Encryption mode for the device.
For Kepler or newer fully supported devices. Only applicable to devices that support DRAM Encryption. Requires NVML_INFOROM_DEN version 1.0 or higher. Requires root/admin permissions.
The DRAM Encryption mode determines whether the GPU enables its DRAM Encryption support.
This operation takes effect after the next reboot.
See nvmlEnableState_t for details on available modes.
See also:
Sets the new power mizer mode.
For Maxwell or newer fully supported devices.
Reads the infoROM from the flash and verifies the checksums.
For all products with an inforom.
Get Conf Computing System capabilities.
For Ampere or newer fully supported devices. Supported on Linux, Windows TCC.
Get Conf Computing key rotation threshold detail.
For Hopper or newer fully supported devices. Supported on Linux, Windows TCC.
Get Conf Computing System Settings.
For Hopper or newer fully supported devices. Supported on Linux, Windows TCC.
Get Conf Computing System State.
For Ampere or newer fully supported devices. Supported on Linux, Windows TCC.
Set Conf Computing key rotation threshold.
For Hopper or newer fully supported devices. Supported on Linux, Windows TCC.
This function is to set the confidential compute key rotation threshold parameters. pKeyRotationThrInfo->maxAttackerAdvantage should be in the range from NVML_CC_KEY_ROTATION_THRESHOLD_ATTACKER_ADVANTAGE_MIN to NVML_CC_KEY_ROTATION_THRESHOLD_ATTACKER_ADVANTAGE_MAX. Default value is 60.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4