NVML API Reference Guide (PDF) - v535 (older) - Last updated January 31, 2024 - Send Feedback

4.2. Device Enums

Classes

struct 
struct 

Defines

#define MAX_CLK_DOMAINS 32
#define NVML_DOUBLE_BIT_ECC
#define NVML_SINGLE_BIT_ECC
#define nvmlEccBitType_t nvmlMemoryErrorType_t
#define nvmlFlagDefault 0x00
Generic flag used to specify the default behavior of some functions. See description of particular functions for details.
#define nvmlFlagForce 0x01
Generic flag used to force some behavior. See description of particular functions for details.

Enumerations

enum nvmlBrandType_t
enum nvmlClockId_t
enum nvmlClockType_t
enum nvmlComputeMode_t
enum nvmlDriverModel_t
enum nvmlEccCounterType_t
enum nvmlEnableState_t
enum nvmlGpuOperationMode_t
enum nvmlInforomObject_t
enum nvmlMemoryErrorType_t
enum nvmlMemoryLocation_t
enum nvmlPageRetirementCause_t
enum nvmlPstates_t
enum nvmlRestrictedAPI_t
enum nvmlReturn_t
enum nvmlTemperatureSensors_t
enum nvmlTemperatureThresholds_t

Defines

#define MAX_CLK_DOMAINS 32

Max Clock Monitors available

#define NVML_DOUBLE_BIT_ECC
Deprecated

Mapped to NVML_MEMORY_ERROR_TYPE_UNCORRECTED

Double bit ECC errors

Value

NVML_MEMORY_ERROR_TYPE_UNCORRECTED

#define NVML_SINGLE_BIT_ECC
Deprecated

Mapped to NVML_MEMORY_ERROR_TYPE_CORRECTED

Single bit ECC errors

Value

NVML_MEMORY_ERROR_TYPE_CORRECTED

#define nvmlEccBitType_t nvmlMemoryErrorType_t
Deprecated

See nvmlMemoryErrorType_t for a more flexible type

ECC bit types.

#define nvmlFlagDefault 0x00

#define nvmlFlagForce 0x01

Enumerations

enum nvmlBrandType_t

* The Brand of the GPU

Values
NVML_BRAND_UNKNOWN = 0
NVML_BRAND_QUADRO = 1
NVML_BRAND_TESLA = 2
NVML_BRAND_NVS = 3
NVML_BRAND_GRID = 4
NVML_BRAND_GEFORCE = 5
NVML_BRAND_TITAN = 6
NVML_BRAND_NVIDIA_VAPPS = 7
NVML_BRAND_NVIDIA_VPC = 8
NVML_BRAND_NVIDIA_VCS = 9
NVML_BRAND_NVIDIA_VWS = 10
NVML_BRAND_NVIDIA_CLOUD_GAMING = 11
NVML_BRAND_NVIDIA_VGAMING = NVML_BRAND_NVIDIA_CLOUD_GAMING
NVML_BRAND_QUADRO_RTX = 12
NVML_BRAND_NVIDIA_RTX = 13
NVML_BRAND_NVIDIA = 14
NVML_BRAND_GEFORCE_RTX = 15
NVML_BRAND_TITAN_RTX = 16
NVML_BRAND_COUNT
enum nvmlClockId_t

Clock Ids. These are used in combination with nvmlClockType_t to specify a single clock value.

Values
NVML_CLOCK_ID_CURRENT = 0
Current actual clock value.
NVML_CLOCK_ID_APP_CLOCK_TARGET = 1
Target application clock.
NVML_CLOCK_ID_APP_CLOCK_DEFAULT = 2
Default application clock target.
NVML_CLOCK_ID_CUSTOMER_BOOST_MAX = 3
OEM-defined maximum clock rate.
NVML_CLOCK_ID_COUNT
Count of Clock Ids.
enum nvmlClockType_t

Clock types.

All speeds are in Mhz.

Values
NVML_CLOCK_GRAPHICS = 0
Graphics clock domain.
NVML_CLOCK_SM = 1
SM clock domain.
NVML_CLOCK_MEM = 2
Memory clock domain.
NVML_CLOCK_VIDEO = 3
Video encoder/decoder clock domain.
NVML_CLOCK_COUNT
Count of clock types.
enum nvmlComputeMode_t

Compute mode.

NVML_COMPUTEMODE_EXCLUSIVE_PROCESS was added in CUDA 4.0. Earlier CUDA versions supported a single exclusive mode, which is equivalent to NVML_COMPUTEMODE_EXCLUSIVE_THREAD in CUDA 4.0 and beyond.

Values
NVML_COMPUTEMODE_DEFAULT = 0
Default compute mode -- multiple contexts per device.
NVML_COMPUTEMODE_EXCLUSIVE_THREAD = 1
Support Removed.
NVML_COMPUTEMODE_PROHIBITED = 2
Compute-prohibited mode -- no contexts per device.
NVML_COMPUTEMODE_EXCLUSIVE_PROCESS = 3
Compute-exclusive-process mode -- only one context per device, usable from multiple threads at a time.
NVML_COMPUTEMODE_COUNT
enum nvmlDriverModel_t

Driver models.

Windows only.

Values
NVML_DRIVER_WDDM = 0
WDDM driver model -- GPU treated as a display device.
NVML_DRIVER_WDM = 1
WDM (TCC) model (recommended) -- GPU treated as a generic device.
enum nvmlEccCounterType_t

ECC counter types.

Note: Volatile counts are reset each time the driver loads. On Windows this is once per boot. On Linux this can be more frequent. On Linux the driver unloads when no active clients exist. If persistence mode is enabled or there is always a driver client active (e.g. X11), then Linux also sees per-boot behavior. If not, volatile counts are reset each time a compute app is run.

Values
NVML_VOLATILE_ECC = 0
Volatile counts are reset each time the driver loads.
NVML_AGGREGATE_ECC = 1
Aggregate counts persist across reboots (i.e. for the lifetime of the device).
NVML_ECC_COUNTER_TYPE_COUNT
Count of memory counter types.
enum nvmlEnableState_t

Generic enable/disable enum.

Values
NVML_FEATURE_DISABLED = 0
Feature disabled.
NVML_FEATURE_ENABLED = 1
Feature enabled.
enum nvmlGpuOperationMode_t

GPU Operation Mode

GOM allows to reduce power usage and optimize GPU throughput by disabling GPU features.

Each GOM is designed to meet specific user needs.

Values
NVML_GOM_ALL_ON = 0
Everything is enabled and running at full speed.
NVML_GOM_COMPUTE = 1
Designed for running only compute tasks. Graphics operations are not allowed
NVML_GOM_LOW_DP = 2
Designed for running graphics applications that don't require high bandwidth double precision
enum nvmlInforomObject_t

Available infoROM objects.

Values
NVML_INFOROM_OEM = 0
An object defined by OEM.
NVML_INFOROM_ECC = 1
The ECC object determining the level of ECC support.
NVML_INFOROM_POWER = 2
The power management object.
NVML_INFOROM_COUNT
This counts the number of infoROM objects the driver knows about.
enum nvmlMemoryErrorType_t

Memory error types

Values
NVML_MEMORY_ERROR_TYPE_CORRECTED = 0
A memory error that was correctedFor ECC errors, these are single bit errors For Texture memory, these are errors fixed by resend
NVML_MEMORY_ERROR_TYPE_UNCORRECTED = 1
A memory error that was not correctedFor ECC errors, these are double bit errors For Texture memory, these are errors where the resend fails
NVML_MEMORY_ERROR_TYPE_COUNT
Count of memory error types.
enum nvmlMemoryLocation_t
Values
NVML_MEMORY_LOCATION_L1_CACHE = 0
GPU L1 Cache.
NVML_MEMORY_LOCATION_L2_CACHE = 1
GPU L2 Cache.
NVML_MEMORY_LOCATION_DRAM = 2
Turing+ DRAM.
NVML_MEMORY_LOCATION_DEVICE_MEMORY = 2
GPU Device Memory.
NVML_MEMORY_LOCATION_REGISTER_FILE = 3
GPU Register File.
NVML_MEMORY_LOCATION_TEXTURE_MEMORY = 4
GPU Texture Memory.
NVML_MEMORY_LOCATION_TEXTURE_SHM = 5
Shared memory.
NVML_MEMORY_LOCATION_CBU = 6
CBU.
NVML_MEMORY_LOCATION_SRAM = 7
Turing+ SRAM.
NVML_MEMORY_LOCATION_COUNT
This counts the number of memory locations the driver knows about.
enum nvmlPageRetirementCause_t

Causes for page retirement

Values
NVML_PAGE_RETIREMENT_CAUSE_MULTIPLE_SINGLE_BIT_ECC_ERRORS = 0
Page was retired due to multiple single bit ECC error.
NVML_PAGE_RETIREMENT_CAUSE_DOUBLE_BIT_ECC_ERROR = 1
Page was retired due to double bit ECC error.
NVML_PAGE_RETIREMENT_CAUSE_COUNT
enum nvmlPstates_t

Allowed PStates.

Values
NVML_PSTATE_0 = 0
Performance state 0 -- Maximum Performance.
NVML_PSTATE_1 = 1
Performance state 1.
NVML_PSTATE_2 = 2
Performance state 2.
NVML_PSTATE_3 = 3
Performance state 3.
NVML_PSTATE_4 = 4
Performance state 4.
NVML_PSTATE_5 = 5
Performance state 5.
NVML_PSTATE_6 = 6
Performance state 6.
NVML_PSTATE_7 = 7
Performance state 7.
NVML_PSTATE_8 = 8
Performance state 8.
NVML_PSTATE_9 = 9
Performance state 9.
NVML_PSTATE_10 = 10
Performance state 10.
NVML_PSTATE_11 = 11
Performance state 11.
NVML_PSTATE_12 = 12
Performance state 12.
NVML_PSTATE_13 = 13
Performance state 13.
NVML_PSTATE_14 = 14
Performance state 14.
NVML_PSTATE_15 = 15
Performance state 15 -- Minimum Performance.
NVML_PSTATE_UNKNOWN = 32
Unknown performance state.
enum nvmlRestrictedAPI_t

API types that allow changes to default permission restrictions

Values
NVML_RESTRICTED_API_SET_APPLICATION_CLOCKS = 0
APIs that change application clocks, see nvmlDeviceSetApplicationsClocks and see nvmlDeviceResetApplicationsClocks
NVML_RESTRICTED_API_SET_AUTO_BOOSTED_CLOCKS = 1
APIs that enable/disable Auto Boosted clocks see nvmlDeviceSetAutoBoostedClocksEnabled
NVML_RESTRICTED_API_COUNT
enum nvmlReturn_t

Return values for NVML API calls.

Values
NVML_SUCCESS = 0
The operation was successful.
NVML_ERROR_UNINITIALIZED = 1
NVML was not first initialized with nvmlInit().
NVML_ERROR_INVALID_ARGUMENT = 2
A supplied argument is invalid.
NVML_ERROR_NOT_SUPPORTED = 3
The requested operation is not available on target device.
NVML_ERROR_NO_PERMISSION = 4
The current user does not have permission for operation.
NVML_ERROR_ALREADY_INITIALIZED = 5
Deprecated: Multiple initializations are now allowed through ref counting.
NVML_ERROR_NOT_FOUND = 6
A query to find an object was unsuccessful.
NVML_ERROR_INSUFFICIENT_SIZE = 7
An input argument is not large enough.
NVML_ERROR_INSUFFICIENT_POWER = 8
A device's external power cables are not properly attached.
NVML_ERROR_DRIVER_NOT_LOADED = 9
NVIDIA driver is not loaded.
NVML_ERROR_TIMEOUT = 10
User provided timeout passed.
NVML_ERROR_IRQ_ISSUE = 11
NVIDIA Kernel detected an interrupt issue with a GPU.
NVML_ERROR_LIBRARY_NOT_FOUND = 12
NVML Shared Library couldn't be found or loaded.
NVML_ERROR_FUNCTION_NOT_FOUND = 13
Local version of NVML doesn't implement this function.
NVML_ERROR_CORRUPTED_INFOROM = 14
infoROM is corrupted
NVML_ERROR_GPU_IS_LOST = 15
The GPU has fallen off the bus or has otherwise become inaccessible.
NVML_ERROR_RESET_REQUIRED = 16
The GPU requires a reset before it can be used again.
NVML_ERROR_OPERATING_SYSTEM = 17
The GPU control device has been blocked by the operating system/cgroups.
NVML_ERROR_LIB_RM_VERSION_MISMATCH = 18
RM detects a driver/library version mismatch.
NVML_ERROR_IN_USE = 19
An operation cannot be performed because the GPU is currently in use.
NVML_ERROR_MEMORY = 20
Insufficient memory.
NVML_ERROR_NO_DATA = 21
No data.
NVML_ERROR_VGPU_ECC_NOT_SUPPORTED = 22
The requested vgpu operation is not available on target device, becasue ECC is enabled.
NVML_ERROR_INSUFFICIENT_RESOURCES = 23
Ran out of critical resources, other than memory.
NVML_ERROR_FREQ_NOT_SUPPORTED = 24
Ran out of critical resources, other than memory.
NVML_ERROR_ARGUMENT_VERSION_MISMATCH = 25
The provided version is invalid/unsupported.
NVML_ERROR_DEPRECATED = 26
The requested functionality has been deprecated.
NVML_ERROR_NOT_READY = 27
The system is not ready for the request.
NVML_ERROR_UNKNOWN = 999
An internal driver error occurred.
enum nvmlTemperatureSensors_t

Temperature sensors.

Values
NVML_TEMPERATURE_GPU = 0
Temperature sensor for the GPU die.
NVML_TEMPERATURE_COUNT
enum nvmlTemperatureThresholds_t

Temperature thresholds.

Values
NVML_TEMPERATURE_THRESHOLD_SHUTDOWN = 0
NVML_TEMPERATURE_THRESHOLD_SLOWDOWN = 1
NVML_TEMPERATURE_THRESHOLD_MEM_MAX = 2
NVML_TEMPERATURE_THRESHOLD_GPU_MAX = 3
NVML_TEMPERATURE_THRESHOLD_ACOUSTIC_MIN = 4
NVML_TEMPERATURE_THRESHOLD_ACOUSTIC_CURR = 5
NVML_TEMPERATURE_THRESHOLD_ACOUSTIC_MAX = 6
NVML_TEMPERATURE_THRESHOLD_COUNT

NVML API Reference Guide (PDF) - v535 (older) - Last updated January 31, 2024 - Send Feedback