2.2. Device Enums
Classes
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
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_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