NVML API Reference Guide (PDF) - vR340 (older) - Last updated July 1, 2014 - Send Feedback

## 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 nvmlBrandType_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 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_COUNT
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

  See nvmlDeviceGetMemoryErrorCounter

  ###### 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 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_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_COUNT

NVML API Reference Guide (PDF) - vR340 (older) - Last updated July 1, 2014 - Send Feedback