4.2. Device Enums
Defines
- #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 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
Defines
Enumerations
- 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_COUNT
- 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
- Compute-exclusive-thread mode -- only one context per device, usable from one thread at a time.
- 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
-
Memory locations
Values
- NVML_MEMORY_LOCATION_L1_CACHE = 0
- GPU L1 Cache.
- NVML_MEMORY_LOCATION_L2_CACHE = 1
- GPU L2 Cache.
- 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_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 nvmlDeviceResetApplicationsClocks
- 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_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