Change Log#
This chapter list changes in API and bug fixes that were introduced to the library.
Changes between NVML v610 and v615#
Added
NVML_GPU_RECOVERY_ACTION_BUS_RESETandNVML_GPU_RECOVERY_ACTION_SYSTEM_REBOOTtonvmlDeviceGpuRecoveryAction_t.Added GPU Operational Event APIs to register and wait for structured events and retrieve their associated context records:
Added
nvmlDeviceGetBankRemapperStatus_v1()to query the bank remapper status.Added a new temperature sensor type
NVML_TEMPERATURE_GPU_MAXto report the temperature from the hottest part of the GPU.Added 2 new clock event reason bitmask values for board limit and reliability policies:
Added new
NVML_NVLINK_STATE_ACTIVE_TRAFFIC_DISABLEDstate.Added
nvmlDeviceSetNvlinkBwModeAsync_v1()to asynchronously set Nvlink Bandwidth mode.Added
nvmlDeviceSetMemoryLimits_v1()to set device memory limits in a cgroup partition.Added
nvmlDeviceGetMemoryLimits_v1()to get device memory limits in a cgroup partition.Modified
nvmlDeviceGetMemoryInfo_v2()to account for cgroup memory partitions when called within the partition.Added
nvmlDeviceSetAdaptiveTgpMode_v1()andnvmlDeviceGetAdaptiveTgpModeInfo_v1()to set and query Adaptive TGP mode.Added
nvmlDeviceGetNvLinkTelemetrySamples_v1()to get historical NVLink telemetry samples.Modified
nvmlDeviceWorkloadPowerProfileUpdateProfiles_v1()to allow non-privileged access using WPPS capability.Added new Workload Power Profile types to
nvmlPowerProfileType_t.Added GPM metrics
NVML_GPM_METRIC_NVLINK_L[36..71].Added missing comments on GPM metrics of C2C, cache, NVENC, GR CTXSW, and NVLink PER_SEC.
Added new GPU fabric clique types and structures for per-type clique information:
Added
nvmlDeviceGetGpuFabricInfo_v4()to retrieve per-type fabric clique assignments.Deprecated
nvmlGpuFabricInfo_v3_tin favor ofnvmlGpuFabricInfo_v4_t.Added new
NVML_GPU_FABRIC_HEALTH_MASK_GFM_STATE*Health Mask flags to GPU Fabric Health Mask.
Changes between NVML v595 and v610#
Added new MCLK field IDs:
Added new NVLINK field IDs:
Added
nvmlDeviceGetAccountingStats_v2()to retrieve additional utilization information:sampleCountsumGpuUtilsumFbUtil
Added a new NVLINK field ID:
Added support for new power scope
NVML_POWER_SCOPE_GPU_BASE, which represents GPU base power.Added support in Power Management APIs:
nvmlDeviceGetPowerManagementLimit_v2
Added support for the following
nvmlFieldValue_tfields with the new scope:
Added support for detecting
nvmlClocksEventReasonSwThermalSlowdownon Thor Jetson platforms through:Added
NVML_FI_DEV_MMA_STALL_PERCENTfor MMA stall telemetry.Updated field ID
NVML_FI_DEV_MMA_STALL_PERCENTvalue type fromNVML_VALUE_TYPE_UNSIGNED_INTtoNVML_VALUE_TYPE_DOUBLE.Added
nvmlDevicePerfMetricsGetSamples_v1()to get Performance Metric samples.Added
NVML_FI_PWR_SMOOTHING_SOC_POWER_SMOOTHING_ENABLEDfor State-Of-Charge Power Smoothing support.Added public API support for Common Platform Error Record (CPER) data:
nvmlSystemGetCPER_v1()to retrieve CPER records using a caller-supplied buffer and cursor-based iteration.nvmlGetCPER_v1_tfor input and output values, including cursor, buffer, and buffer size.nvmlCPERCursor_v1_tfor query filters and read position, includingcperTypeMask,uuid, andhandle.nvmlCPERType_tandNVML_CPER_ACCESS_TYPE_GPUfor record type filtering.NVML_CPER_CURSOR_HANDLE_INITfor cursor initialization.Added size-query support by calling with
bufferset toNULLandbufferSizeset to0. The API returnsNVML_ERROR_INSUFFICIENT_SIZEwith the required size, orNVML_SUCCESSwithbufferSizeset to0when no records exist.
Changes between NVML v590 and v595#
Added new NVLINK field IDs:
Updated the descriptions of
nvmlGpmSampleGet()andnvmlGpmQueryDeviceSupport()to emphasize that both device and MIG handles are supported by these APIs.Added
NVML_INIT_FLAG_FORCE_INITto force GPU initialization when a previousnvmlInitwas called withNO_GPUSandNO_ATTACHflags.Updated the GPM metrics’ name from
NVLINK1_L[0..17]toNVLINK_L[18..35].Updated Nvlink Version to include
NVML_NVLINK_VERSION_6_0.Added a new API to retrieve GPU PRM counters:
nvmlDeviceReadPRMCounters_v1().Added new
NVML_GPU_RECOVERY_ACTION_RECOVER_IMEX_DOMAINenum tonvmlDeviceGpuRecoveryAction_s.Added
nvmlDeviceGetBBXTimeData_v1(), which returns the cumulative number of seconds the GPU has had the driver loaded.Added new GPM UTIL metric
NVML_GPM_METRIC_DMMA_TENSOR_UTIL.Added new GPM raw metrics.
Added
nvmlDeviceGetVgpuSchedulerState_v2()to fetch the vGPU software scheduler state without taking ARR mode into account.Added
nvmlGpuInstanceGetVgpuSchedulerState_v2()to fetch the vGPU software scheduler state for the given GPU Instance without taking ARR mode into account.Added
nvmlDeviceGetVgpuSchedulerLog_v2()to query new field weight in the vGPU software scheduler logs for the device.Added
nvmlGpuInstanceGetVgpuSchedulerLog_v2()to query new field weight in the vGPU software scheduler logs for the given GPU Instance.Added
nvmlDeviceSetVgpuSchedulerState_v2()to set the vGPU scheduler state, with support for disabling ARR mode removed in this version.Added
nvmlGpuInstanceSetVgpuSchedulerState_v2()to set the vGPU scheduler state for the given GPU Instance, with support for disabling ARR mode removed in this version.Deprecated vGPU scheduler APIs:
Added
nvmlDeviceVgpuForceGspUnload()to force GSP unload on a vGPU host.Added new Incorrect Configuration Status to
nvmlGpuFabricInfoV_t:Added new
NVML_GPU_FABRIC_HEALTH_MASK_PARTITION_ASSIGNED*Health Mask flags to GPU Fabric Health Mask.Added vGPU ‘NVIDIA RTX Virtual Game Dev’ as a licensed product for vGPU.
Added new MIG profile
NVML_GPU_INSTANCE_PROFILE_3_SLICE_GFXfor 3-slice graphics and media support.
Changes between v580 and v590#
The following new functionality is exposed on NVIDIA display drivers version 590 Production or later.
Added new product architecture
NVML_DEVICE_ARCH_NPU3.Deprecated
NVML_BRAND_NVIDIA_DLAproduct brand.Added new
NVML_BRAND_NVIDIA_NPUproduct brand.Added
nvmlDeviceWorkloadPowerProfileUpdateProfiles_v1()to clear, set, or clobber existing workload power profiles from a single API.Deprecated workload power profile APIs, which will be removed in CUDA 15.0:
Added
NVML_FI_DEV_EDPP_MULTIPLIERfield value to report the current EDPp multiplier as a percentage.Added
nvmlDeviceGetUnrepairableMemoryFlag_v1()to report whether or not there is unrepairable memory.Updated
nvmlDeviceGetVgpuSchedulerLog()andnvmlGpuInstanceGetVgpuSchedulerState()to access the vGPU scheduler logs for the NVENC0 and NVENC1 engines.Updated
NVML_NVLINK_MAX_LINKSto 36 to accommodate for more NvLinks in Rubin.Added NVLINK1 GPM metrics for Rubin.
Added 14 new Power Smoothing field IDs for Delayed Power Smoothing:
Added four new Power Smoothing profile parameter IDs to set new Delayed Power Smoothing profile fields:
Added
NVML_INIT_FLAG_FORCE_INITto force GPU initialization when a previousnvmlInitwas called withNO_GPUSandNO_ATTACHflags.
Changes between v575 and v580#
The following new functionality is exposed on NVIDIA display drivers version 580 Production or later.
Added
nvmlDeviceGetRemappedRows_v2()to query the number of inactive remapped rows.Added
NVML_FI_DEV_REMAPPED_ROWS_COR_INACTIVEandNVML_FI_DEV_REMAPPED_ROWS_UNC_INACTIVEfornvmlDeviceGetFieldValues()to query the number of inactive remapped rows.Fixed bug with
NVML_FI_PWR_SMOOTHING_*field value numbering, which was different than the v570 values.Adjusted
NVML_FI_DEV_CLOCKS_EVENT_REASON_*andNVML_FI_DEV_POWER_SYNC_BALANCING_*field value numbering to resolve overlap withNVML_FI_PWR_SMOOTHING_*field values.Added
nvmlDeviceWorkloadPowerProfileUpdateProfiles_v1()to clear, set, or clobber existing profiles from a single API.Added
nvmlDeviceSetRusdSettings_v1()to set RUSD (read only user shared data buffer) polling mask.Added
nvmlDeviceGetSramUniqueUncorrectedEccErrorCounts()to get the counts of SRAM unique uncorrected ECC errors.Deprecated Applications Clocks APIs, which will be removed in CUDA 14.0:
Deprecated
nvmlDeviceGetViolationStatus(), which will be removed in CUDA 14.0.Added
nvmlDeviceGetNvLinkInfo()to query device NVLINK info.Added
nvmlDeviceGetPdi()to retrieve the device GPU PDI.Added Multi-GPU mode NVLINK Encryption
NVML_CC_SYSTEM_MULTIGPU_NVLE.Added V2 struct to
nvmlDeviceGetNvLinkInfo()to query NVLINK Firmware info.Added
nvmlDeviceReadWritePRM_v1()to retrieve GPU PRM register contents.Added
nvmlDeviceGetAddressingMode()to retrieve the addressing mode for the device.Added
nvmlDeviceGetRepairStatus()to get ECC status info.Added DLA device support.
Added
nvmlDeviceGetGpuInstanceProfileInfoByIdV(), which allows for MIG GPU instance profile info to be queried with profileId instead of profile name.Updated
nvmlGpuFabricInfoV_tto v3 to include a new Health Summary field and new Incorrect Configuration statuses.nvmlGpuFabricInfo_v2_tis deprecated and will be removed in a future release.New Incorrect Configuration Statuses:
Added
nvmlDeviceGetPowerMizerMode_v1()to query the current and supported power mizer modes on Maxwell and newer GPUs. Power mizer mode provides a hint to the driver as to how to manage GPU performance.Added
nvmlDeviceSetPowerMizerMode_v1()to set the power mizer mode on Maxwell and newer GPUs.Added
nvmlDeviceSetHostname_v1()andnvmlDeviceGetHostname_v1()to allow custom GPU hostname configuration.
Changes between v570 Update and v575#
The following new functionality is exposed on NVIDIA display drivers version 575 Production or later.
Added
nvmlSystemEventSetCreate()to create a system event set.Added
nvmlSystemEventSetFree()to release a system event set.Added
nvmlSystemRegisterEvents()to register system events on a system event set.Added
nvmlSystemEventSetWait()to wait for system event notification and obtain system event data.Added
nvmlGpuInstanceGetCreatableVgpus()to query the currently creatable vGPU types on the user-provided GPU Instance.Added
nvmlVgpuTypeGetMaxInstancesPerGpuInstance()to query the maximum number of vGPU instances per GPU Instance for the given vGPU type.Added
nvmlGpuInstanceSetVgpuSchedulerState()to set the vGPU scheduler state for the given GPU Instance.Added
nvmlGpuInstanceGetActiveVgpus()to query the currently active vGPU instances on the user-provided GPU Instance.Added
nvmlGpuInstanceGetVgpuSchedulerState()to query the vGPU software scheduler state for the given GPU Instance.Added
nvmlGpuInstanceGetVgpuSchedulerLog()to query the vGPU software scheduler logs for the given GPU Instance.Added
nvmlGpuInstanceGetVgpuTypeCreatablePlacements()to query the creatable vGPU placement IDs of the vGPU type within a GPU Instance.Added
nvmlGpuInstanceSetVgpuHeterogeneousMode()to enable or disable vGPU heterogeneous mode for the GPU Instance.Added
nvmlGpuInstanceGetVgpuHeterogeneousMode()to query the vGPU heterogeneous mode for the GPU Instance.Updated
nvmlDeviceGetVgpuCapabilities()to report whether GPU supports timesliced vGPU on MIG and whether MIG timesliced mode is enabled or not.Updated
nvmlDeviceSetVgpuCapabilities()to set the MIG timesliced mode vGPU capability of a device.Updated
nvmlDeviceSetVgpuHeterogeneousMode()to returnNVML_ERROR_NOT_SUPPORTEDwhen in MIG mode.Updated
nvmlDeviceGetVgpuHeterogeneousMode()to returnNVML_ERROR_NOT_SUPPORTEDwhen in MIG mode.Updated
nvmlDeviceGetVgpuTypeCreatablePlacements()to returnNVML_ERROR_NOT_SUPPORTEDwhen in MIG mode.Updated
nvmlDeviceGetVgpuSchedulerLog()to returnNVML_ERROR_NOT_SUPPORTEDwhen in MIG mode.Updated
nvmlDeviceSetVgpuSchedulerState()to returnNVML_ERROR_NOT_SUPPORTEDwhen in MIG mode.Updated
nvmlDeviceGetVgpuSchedulerState()to returnNVML_ERROR_NOT_SUPPORTEDwhen in MIG mode.Added 3 new
NVML_FI_DEV_C2C_LINK_ERRORfield IDs:Added
NVML_FI_DEV_C2C_LINK_POWER_STATEfield ID.Added new CTXSW GPM Metrics.
Added
nvmlDeviceGetHandleByUUIDV()that supports both ASCII and binary format UUID to retrieve the device handle.Added 2 new
NVML_FI_DEV_POWER_SYNC_BALANCINGfield IDs:Added 5 new Clock Event Reason Counters field IDs:
Updated
nvmlDeviceGetMemoryErrorCounter()to better account for transient vs. permanent errors.Added MIG profiles that can allocate all or none of Decoder, Encoder, JPEG, and OFA engines.
Changes between v565 and v570#
The following new functionality is exposed on NVIDIA display drivers version 570 Production or later.
Added field values for data related to Power Smoothing
Added
nvmlDevicePowerSmoothingActivatePresetProfile()to activate a specific Preset Profile for Power SmoothingAdded
nvmlDevicePowerSmoothingSetState()to enable/disable the Power Smoothing featureAdded
nvmlDevicePowerSmoothingUpdatePresetProfileParam()to update parameters to preset profiles for Power SmoothingAdded new enums for fieldId NVML_FI_DEV_NVLINK_GET_STATE to expose INACTIVE, ACTIVE, and SLEEP state for a link
Added
nvmlDeviceGetMarginTemperature()to retrieve the thermal margin temperature (distance to nearest slowdown threshold).Added
nvmlDeviceGetNvlinkSupportedBwModes()to get all supported Nvlink Bandwidth modesAdded
nvmlDeviceGetNvlinkBwMode()to get the current Nvlink Bandwidth modeAdded
nvmlDeviceSetNvlinkBwMode()to set the Nvlink Bandwidth modeAdded MIG profiles with support for graphics.
Added support for new recovery action - NVML_GPU_RECOVERY_ACTION_DRAIN_AND_RESET
Deprecated nvml fieldIds NVML_FI_DEV_RESET_STATUS and NVML_FI_DEV_DRAIN_AND_RESET_STATUS. Usee NVML_FI_DEV_GET_GPU_RECOVERY_ACTION instead
Added
nvmlDeviceGetDramEncryptionMode()andnvmlDeviceSetDramEncryptionMode()to query and configure DRAM Encryption ModeAdded 3 new flags to GPU Fabric Health Mask:
NVML_GPU_FABRIC_HEALTH_MASK_SHIFT_ROUTE_RECOVERY
NVML_GPU_FABRIC_HEALTH_MASK_SHIFT_ROUTE_UNHEALTHY
NVML_GPU_FABRIC_HEALTH_MASK_SHIFT_ACCESS_TIMEOUT_RECOVERY
Added new counters for Nvlink5
NVML_FI_DEV_NVLINK_COUNT_EFFECTIVE_ERRORSto get sum of the number of errors in each Nvlink packetNVML_FI_DEV_NVLINK_COUNT_EFFECTIVE_BERto get Effective BER for effective errorsNVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_0to 15 to get count of symbol errors that are correctedSwapped the values of field IDs
NVML_FI_DEV_IS_MIG_MODE_INDEPENDENT_MIG_QUERY_CAPABLEandNVML_FI_DEV_NVLINK_GET_POWER_THRESHOLD_MAXto fix backwards compatibility with v550.New revision of
nvmlPlatformInfo_t -- nvmlPlatformInfo_v2has been added. In this version the following fields from v1 have been renamedrackGuid to chassisSerialNumber
chassisPhysicalSlotNumber to slotNumber
computeSlotIndex to trayIndex
nodeIndex to hostId
nvmlPlatformInfo_v1is deprecated and will be removed in subsequent releasesRevert the fix for the issue where PCIe throughput (reported via
nvmlDeviceGetPcieThroughput()and nvidia-smi -q) is 1000 times bigger than its actual value
Changes between v560 and v565#
The following new functionality is exposed on NVIDIA display drivers version 565 Production or later.
Fixed the ECC error count mismatch between nvidia-smi query output and NVML APIs,
nvmlDeviceGetMemoryErrorCounter()andnvmlDeviceGetFieldValues().Added new value NVML_CC_SYSTEM_CPU_CAPS_AMD_SNP_VTOM for CC CPU capability reporting.
Added
nvmlDeviceGetCoolerInfo()to retrieve a cooler’s control signal characteristics and target that cooler cools.Added new value
NVML_CC_SYSTEM_CPU_CAPS_AMD_SEV_SNPfor CC CPU capability reporting.Added
nvmlDeviceGetFanSpeedRPM()to report the intended operating speed in rotations per minute (RPM) of the device’s specified fan.Added
nvmlDeviceGetPerformanceModes()to retrieve a performance modes string with all the performance modes defined for this device along with their associated GPU Clock and Memory Clock values.Added
nvmlDeviceGetCurrentClockFreqs()to retrieve a string with the associated GPU Clock and Memory Clock values for the current pstate.Added
nvmlNvlinkVersion_tenum to define NvLink Version.Added
nvmlDeviceGetPlatformInfo()to retrieve the platform information of a device.Added new event type nvmlEventTypeGpuUnavailableError.
Removed support for
nvmlDeviceGetNvLinkCrcLaneErrorCounter,nvmlDeviceGetNvLinkEccLaneErrorCounter, andnvmlDeviceGetNvLinkErrorCounter()on Blackwell.Removed support for fieldIds
NVML_FI_DEV_NVLINK_ERROR_DL_REPLAY,NVML_FI_DEV_NVLINK_ERROR_DL_RECOVERY, andNVML_FI_DEV_NVLINK_ERROR_DL_CRCon Blackwell.Added
nvmlVgpuInstanceGetRuntimeStateSize()to get the vGPU runtime state size.Updated
nvmlDeviceGetVgpuTypeSupportedPlacements()function to report both Heterogeneous and Homogeneous vGPU placements.Updated nvmlDeviceGetVgpuCapabilities to report the Homogeneous vGPU capability.
Added new event type
nvmlEventTypeGpuRecoveryAction.Added new fieldId to query GPU recovery action
NVML_FI_DEV_GET_GPU_RECOVERY_ACTION.Deprecated fieldIds:
NVML_FI_DEV_NVLINK_COUNT_VL15_DROPPEDto get Number of VL15 MADs dropped on a link in NVLink5NVML_FI_DEV_NVLINK_COUNT_RAW_BER_LANE0to get BER per lane for lane 0NVML_FI_DEV_NVLINK_COUNT_RAW_BER_LANE1to get BER per lane for lane 1NVML_FI_DEV_NVLINK_COUNT_RAW_BERto get BER per link. Sum of all the raw errors per lane/Bits received per linkNVML_FI_DEV_NVLINK_COUNT_EFFECTIVE_ERRORSto get Sum of the number of errors in each Nvlink packetNVML_FI_DEV_NVLINK_COUNT_EFFECTIVE_BERto get Effective BER for effective errors
Changes between v555 and v560#
The following new functionality is exposed on NVIDIA display drivers version 560 Production or later.
Added field values
NVML_FI_DEV_PCIE_OUTBOUND_ATOMICS_MASKandNVML_FI_DEV_PCIE_INBOUND_ATOMICS_MASKfornvmlDeviceGetFieldValues().Added field IDs
NVML_FI_DEV_RESET_STATUSandNVML_FI_DEV_DRAIN_AND_RESET_STATUSwhich correspond to the nvidia-smi output.Added
NVML_DEVICE_ARCH_T23Xarchitecture type.Added
nvmlVgpuTypeGetBAR1Info()to query the BAR1 information of a vGPU type.Added new event types,
nvmlEventTypeSingleBitEccErrorStorm,nvmlEventTypeDramRetirementEvent,nvmlEventTypeDramRetirementFailure,nvmlEventTypeNonFatalPoisonErrorandnvmlEventTypeFatalPoisonError.Added
nvmlSystemGetDriverBranch()to query the driver branch information.
Changes between v550 and v555#
The following new functionality is exposed on NVIDIA display drivers version 555 Production or later.
Added
nvmlDeviceGetClockOffsets()to query min, max and current clock offset value on a Maxwell and later GPU for a specified clock. Note:nvmlDeviceGetGpcClkVfOffset(),nvmlDeviceGetMemClkVfOffset(),nvmlDeviceGetGpcClkMinMaxVfOffset()andnvmlDeviceGetMemClkMinMaxVfOffset()will be deprecated in a future release. UsenvmlDeviceGetClockOffsets()instead.Added
nvmlDeviceSetClockOffsets()to control clock offset value on a Maxwell and later GPU for a specified clock. Note:nvmlDeviceSetGpcClkVfOffset()andnvmlDeviceSetMemClkVfOffset()will be deprecated in a future release. UsenvmlDeviceSetClockOffsets()instead.Added two new field IDs
NVML_FI_DEV_PCIE_COUNT_TX_BYTESandNVML_FI_DEV_PCIE_COUNT_RX_BYTESfornvmlDeviceGetFieldValues().Added new API
nvmlDeviceGetCapabilitieswith the first capability bitNVML_DEV_CAP_EGMfor Extended GPU Memory (EGM) capability.Added
multiGpuModedisplay on CC enabled system via new APInvmlSystemGetConfComputeSettings()or “nvidia-smi conf-compute --get-multigpu-mode” or “nvidia-smi conf-compute -mgm”.Added new field ID
NVML_FI_DEV_NVLINK_GET_POWER_THRESHOLD_MAXto get the Max Nvlink Power Threshold for a device.
Changes between v545 and v550#
The following new functionality is exposed on NVIDIA display drivers version 550 Production or later.
Added
nvmlDeviceGetNumaNodeId()to query the NUMA node of a GPU.Added new GPM metric ID
NVML_GPM_METRIC_NVOFA_1_UTILtonvmlGpmMetricId_t.Added new field ID
NVML_FI_DEV_IS_MIG_MODE_INDEPENDENT_MIG_QUERY_CAPABLE, to check MIG query capable device irrespective of MIG mode.Deprecated
NVML_P2P_CAPS_INDEX_PROPand addedNVML_P2P_CAPS_INDEX_PCIto reflect the same P2P capability.Added
nvmlDeviceGetProcessesUtilizationInfo()to retrieve the recent utilization and process ID for all running processes.Added new struct
nvmlProcessesUtilizationInfo_v1_t, which includes the new utilization of NVJPG and NVOFA.Added
nvmlDeviceGetVgpuInstancesUtilizationInfo()to retrieve the recent utilization for vGPU instances running on a physical GPU.Added
nvmlDeviceGetVgpuProcessesUtilizationInfo()to retrieve the recent utilization for processes running on vGPU instances on a physical GPU.Added
nvmlDeviceSetVgpuHeterogeneousMode()to enable or disable vGPU heterogenous mode for the device.Added
nvmlDeviceGetVgpuHeterogeneousMode()to query the vGPU heterogenous mode for the device.Added
nvmlVgpuInstanceGetPlacementId()to query placement ID of the active vGPU instance.Added
nvmlDeviceGetVgpuTypeSupportedPlacements()to query the supported vGPU placement IDs of a vGPU type.Added
nvmlDeviceGetVgpuTypeCreatablePlacements()to query the creatable vGPU placement IDs of a vGPU type.Added support to display confidential compute protected memory along with
fbandbar1innvidia-smi pmonanddmoncommands.Added
nvmlDeviceGetGpuFabricInfoV()to query GPU Fabric Probe Info for the device.Deprecated
nvmlDeviceGetGpuFabricInfo(). This function should not be used, and will be removed in a future release. UsenvmlDeviceGetGpuFabricInfoV()instead.Modified
nvmlDeviceGetGpuInstanceProfileInfo()andnvmlDeviceGetGpuInstancePossiblePlacements_v2()to no longer require MIG being enabled.Added new encoder type
NVML_ENCODER_QUERY_AV1andNVML_ENCODER_QUERY_UNKNOWNto enumerationnvmlEncoderType_t.Added
nvmlSystemSetConfComputeKeyRotationThresholdInfo()to set confidential compute key rotation threshold.Added
nvmlSystemGetConfComputeKeyRotationThresholdInfo()to query confidential compute key rotation threshold detail.Added
nvmlDeviceSetVgpuCapabilities()to set the desirable vGPU capability of a device.
Changes between v535 and v545#
The following new functionality is exposed on NVIDIA display drivers version 545 Production or later.
Added a new error code
NVML_ERROR_GPU_NOT_FOUNDto be returned if no supported GPUS are found during initialization.In
nvmlGpuFabricInfo_v2_t,partitionIdhas been renamed tocliqueId.Added new versioned structs
nvmlGpuInstanceProfileInfo_v3_tandnvmlComputeInstanceProfileInfo_v3_t.Added
nvmlDeviceGetLastBBXFlushTime()for retrieving the timestamp and duration of the latest flush of the BBX object to the inforom storage.Added
NVML_POWER_SCOPE_MEMORYto report out power usage for GPU Memory.Added
nvmlDeviceGetPciInfo_v3()which expandsnvmlDeviceGetPciInfoto also report PCI base and sub classcodes.Added new struct
nvmlPciInfoExt_v1_t, which is used innvmlDeviceGetPciInfoExt().Added
nvmlDeviceGetRunningProcessDetailList()API to get information about Compute, Graphics or MPS-Compute processes running on a GPU with protected memory usage info.
Changes between v530 and v535#
The following new functionality is exposed on NVIDIA display drivers version 535 Production or later.
Added
nvmlDeviceGetSramEccErrorStatus()to query SRAM ECC error status for the device.Added
nvmlDeviceGetModuleId()for getting device module ID.Updated
nvmlDeviceGetPowerSource()API to report undersized power source.Added:cpp:func:nvmlDeviceGetJpgUtilization and
nvmlDeviceGetOfaUtilization()APIs.Added
nvmlSystemGetNvlinkBwMode()andnvmlSystemSetNvlinkBwMode()APIs.Added
nvmlDeviceSetVgpuSchedulerState()to set the vGPU scheduler state.Added new field ID
NVML_FI_DEV_IS_RESETLESS_MIG_SUPPORTEDfor device’s resetless MIG capability.Added
nvmlDeviceGetComputeRunningProcesses_v3()to get information about Compute processes running on a GPU.Added
nvmlDeviceGetGraphicsRunningProcesses_v3()to get information about Graphics processes running on a GPU.Added
nvmlDeviceGetMPSComputeRunningProcesses_v3()to get information about MPS-Compute processes running on a GPU.Added
nvmlDeviceGetRunningProcessDetailList()to get information about Compute, Graphics or MPS-Compute processes running on a GPU with protected memory usage info.Added
nvmlDeviceGetLastBBXFlushTime()for retrieving the timestamp and duration of the latest flush of the BBX object to the inforom storage.Added new field ID
NVML_FI_DEV_PCIE_COUNT_CORRECTABLE_ERRORSfor PCIe correctable errors counter.Added new field ID
NVML_FI_DEV_PCIE_COUNT_NAKS_RECEIVEDfor PCIe NAK Receive counter.Added new field ID
NVML_FI_DEV_PCIE_COUNT_RECEIVER_ERRORfor PCIe receiver error counter.Added new field ID
NVML_FI_DEV_PCIE_COUNT_BAD_TLPfor PCIe bad TLP counter.Added new field ID
NVML_FI_DEV_PCIE_COUNT_NAKS_SENTfor NAK Send counter.Added new field ID
NVML_FI_DEV_PCIE_COUNT_BAD_DLLPfor PCIe bad DLLP counter.Added new field ID
NVML_FI_DEV_PCIE_COUNT_NON_FATAL_ERRORfor PCIe non fatal error counter.Added new field ID
NVML_FI_DEV_PCIE_COUNT_FATAL_ERRORfor PCIe fatal error counter.Added new field ID
NVML_FI_DEV_PCIE_COUNT_UNSUPPORTED_REQfor PCIe unsupported request counter.Added new field ID
NVML_FI_DEV_PCIE_COUNT_LCRC_ERRORfor PCIe LCRC error counter.Added
new field ID NVML_FI_DEV_PCIE_COUNT_LANE_ERRORfor per lane error counter with scope as PCIe lane number.Added
nvmlDeviceGetPowerUsage_v2to retrieve current power usage.Added
nvmlDeviceGetTotalEnergyConsumption_v2to get current energy consumption.Added
nvmlDeviceSetPowerManagementLimit_v2()to set the power limit.Added new field IDs,
NVML_FI_GPU_POWER_AVERAGEandNVML_FI_GPU_POWER_INSTANT, to query power usage.Renamed
nvmlDeviceCcuGetStreamStatetonvmlGpmQueryIfStreamingEnabled()andnvmlDeviceCcuSetStreamStatetonvmlGpmSetStreamingEnabled().Added support to display confidential compute protected memory along with fb and bar1 in
nvidia-smi pmonanddmoncommands.Added new field IDs
NVML_FI_DEV_TEMPERATURE_SHUTDOWN_TLIMIT,NVML_FI_DEV_TEMPERATURE_SLOWDOWN_TLIMIT,NVML_FI_DEV_TEMPERATURE_MEM_MAX_TLIMIT, andNVML_FI_DEV_TEMPERATURE_GPU_MAX_TLIMITto query temperature thresholds on Ada and later architectures.Introduced
ClockEventReasonsand related APIs which should be used instead ofClockThrottleReasons. DeprecatedClockThrottleReasons.Added ability to get GPS Temperature Threshold with
nvmlDeviceGetTemperatureThreshold()using the new enumNVML_TEMPERATURE_THRESHOLD_GPS_CURR.
Changes between v525 and v530#
The following new functionality is exposed on NVIDIA display drivers version 530 Production or later.
Fixed a typo in
nvmlGpuP2PStatus_t: added a new enum entry forNVML_P2P_STATUS_CHIPSET_NOT_SUPPORTEDwith the same numeric value as the existing erroneous entry (”NVML_P2P_STATUS_CHIPSET_NOT_SUPPORED”).Added
nvmlDeviceGetVgpuSchedulerLog()to fetch the vGPU software scheduler logs.Added
nvmlDeviceGetVgpuSchedulerState()to fetch the vGPU software scheduler state.Added
nvmlDeviceGetVgpuSchedulerCapabilities()to fetch the vGPU software scheduler capabilities.
Changes between v520 and v525#
The following new functionality is exposed on NVIDIA display drivers version 525 Production or later.
Added
nvmlDeviceGetPcieAtomicCapsto report PCIe atomic capabilities.Added
nvmlDeviceCcuGetStreamStateAPI to report the counter collection unit stream state.Added
nvmlDeviceCcuSetStreamStateAPI to set the counter collection unit stream state.Removed support for
NVML_FI_DEV_LINK_SPEED_MBPS_L{0..}field IDs in Hopper. Replaced withNVML_FI_DEV_NVLINK_GET_SPEEDwith scope as link ID.Removed support for
NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT{0..}field IDs in Hopper. Replaced withNVML_FI_DEV_NVLINK_ERROR_DL_CRCwith scope as link ID.Removed support for
NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L{0..}field IDs in Hopper. Replaced withNVML_FI_DEV_NVLINK_ERROR_DL_REPLAYwith scope as link ID.Removed support for
NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_{0..}field IDs in Hopper. Replaced withNVML_FI_DEV_NVLINK_ERROR_DL_RECOVERYwith scope as link ID.Added new field ID
NVML_FI_DEV_NVLINK_GET_STATEto get nvlink state.Added new field ID
NVML_FI_DEV_NVLINK_GET_VERSIONto get nvlink version.Added new field ID
NVML_FI_DEV_C2C_LINK_COUNTto get C2C link count.Added new field ID
NVML_FI_DEV_C2C_LINK_GET_STATUSto get C2C link status.Added new field ID
NVML_FI_DEV_C2C_LINK_GET_MAX_BWto get C2C link bandwidth.
Changes between v515 and v520#
The following new functionality is exposed on NVIDIA display drivers version 520 Production or later.
Added
nvmlDeviceGetMemClkVfOffset()API to report the MemClk VF offset value.Added
nvmlDeviceSetMemClkVfOffset()API to set the MemClk VF offset value.Added
nvmlDeviceGetMemClkMinMaxVfOffset()API to report the Memory clock min and max VF offset that user can set for a specified GPU.Added
nvmlDeviceGetTargetFanSpeed()API to report the intended target speed of the device’s specified fan.Added
nvmlDeviceGetGpcClkMinMaxVfOffset()API to report the Graphics clock min and max VF offset that user can set for a specified GPU.Added
nvmlGpmMetricsGet()to calculate GPM metrics from two GPM samples.Added
nvmlGpmSampleFree()to free allocated GPM sample.Added
nvmlGpmSampleAlloc()to allocate a GPM sample.Added
nvmlGpmSampleGet()to retrieve a GPM snapshot.Added
nvmlGpmQueryDeviceSupport()to query whether a device supports GPMAdded
nvmlDeviceGetSupportedPowerModesAPI to report the GPU’s supported power mode mask.Added
nvmlDeviceGetPowerModeAPI to report the GPU’s current power mode.Added
nvmlDeviceSetPowerModeAPI to set the new power mode.Added
nvmlDeviceGetFanControlPolicy_v2()API to report the control policy for a specified GPU fan.Added
nvmlDeviceSetFanControlPolicy()API to set the control policy for a specified GPU fan.
Changes between v510 and v515#
The following new functionality is exposed on NVIDIA display drivers version 515 Production or later.
Added
nvmlDeviceGetDefaultECCModeAPI to report the GPU’s default ECC Mode.Added
nvmlDeviceGetPcieSpeed()API to report the GPU’s PCIe link speed.Added
nvmlDeviceGetDynamicPstatesInfo()API to report the GPU’s P-states information.Added
nvmlDeviceSetFanSpeed_v2()API to set the GPU’s fan speed.Added
nvmlDeviceSetDefaultFanSpeed_v2()API to set the GPU’s default fan speed.Added
nvmlDeviceGetThermalSettings()API to report the GPU’s thermal system information.Added
nvmlDeviceGetMinMaxClockOfPState()API to report the min and max clocks of some clock domain for a given PState.Added
nvmlDeviceGetSupportedPerformanceStates()API to get all supported Performance States (P-States) for the GPU.Added
nvmlDeviceGetGpcClkVfOffset()API to report the GPCCLK VF offset value.Added
nvmlDeviceSetGpcClkVfOffset()API to set the GPCCLK VF offset value.Added
nvmlDeviceGetMinMaxFanSpeed()API to report the min and max fan speed that user can set for a specified GPU fan.
Changes between v495 and v510#
The following new functionality is exposed on NVIDIA display drivers version 510 Production or later.
Added
nvmlDeviceGetGpuInstanceProfileInfoV()andnvmlGpuInstanceGetComputeInstanceProfileInfoV()APIs to include the profile name in their output.Added
nvmlDeviceGetMemoryBusWidth()API to report the GPU’s Memory Bus Width.Added
nvmlDeviceGetPcieLinkMaxSpeed()API to report the GPU’s PCIe Max Speed.Added
nvmlDeviceGetPowerSource()API to report the GPU’s power source as AC or battery.Added
nvmlDeviceGetNumFans()API to report the GPU’s number of fans.Added
nvmlDeviceGetNumGpuCores()API to report the GPU’s number of cores.Added
nvmlDeviceGetMemoryInfo_v2(). The new version accounts separately for system-reserved memory, and includes it in the used memory amount. The previous version of the API reduced the total memory amount by the amount of system-reserved memory.Added
nvmlDeviceGetAdaptiveClockInfoStatus()API to report the status of adaptive clocking for the GPU.
Changes between v465 and v470#
The following new functionality is exposed on NVIDIA display drivers version 470 Production or later.
Added new MIG GPU instance profile NVML_GPU_INSTANCE_PROFILE_1_SLICE_REV1.
Added
nvmlDeviceGetGpuInstancePossiblePlacements_v2(). The previous version of the API will not support the profiles with possible placements greater than its total capacity, such as NVML_GPU_INSTANCE_PROFILE_1_SLICE_REV1.
Changes between v460 and v465#
The following new functionality is exposed on NVIDIA display drivers version 465 Production or later.
Added new NVML_BRAND_* enumeration values for NVIDIA, NVIDIA_RTX, GEFORCE_RTX, QUADRO_RTX and TITAN_RTX.
Updated
nvmlDeviceGetHandleByUUID()to make it MIG-aware.Updated
nvmlDeviceGetUUID()to return MIG UUIDs in the canonical format, ‘MIG-UUID’.Updated
nvmlDeviceGetHandleByUUID()to accept both UUID formats, ‘MIG-UUID’ and ‘MIG-GPU UUID/GID/CID’.The
nvmlDeviceSetAPIRestriction()andnvmlDeviceGetAPIRestriction()APIs would no longer support the ability to toggle root-only requirement fornvmlDeviceSetApplicationsClocks()andnvmlDeviceResetApplicationsClocks().
Changes between v450 and v460#
The following new functionality is exposed on NVIDIA display drivers version 460 Production or later.
Added
nvmlDeviceCreateGpuInstanceWithPlacement()to allow placement specification when creating a new MIG GPU instance.
Changes between v445 and v450#
The following new functionality is exposed on NVIDIA display drivers version 450 Production or later.
Updated
nvmlDeviceGetFanSpeed()andnvmlDeviceGetFanSpeed_v2()for allowing fan speeds greater than 100% to be reported.Added
nvmlDeviceGetCpuAffinityWithinScope()to determine the closest processor(s) within a NUMA node or socket.Added
nvmlDeviceGetMemoryAffinity()to determine the closest NUMA node(s) within a NUMA node or socket.Added support to query and disable MIG mode on Windows.
Changes between v418 and v445#
The following new functionality is exposed on NVIDIA display drivers version 445 Production or later.
Added support for the NVIDIA Ampere architecture.
Added support for Multi Instance GPU management. Refer to the “Multi Instance GPU Management” section for details.
Changes between v361 and v418#
The following new functionality is exposed on NVIDIA display drivers version 418 Production or later.
Added support for the Volta and Turing architectures, bug fixes, performance improvements, and new features.
Changes between v349 and v361#
The following new functionality is exposed on NVIDIA display drivers version 361 Production or later.
Added
nvmlDeviceGetBoardPartNumber()to return GPU part numbersRemoved support for exclusive thread compute mode (Deprecated in 7.5)
Added NVML_CLOCK_VIDEO (encoder/decoder) clock type as a supported clock type for
nvmlDeviceGetClockInfo()andnvmlDeviceGetMaxClockInfo().
Changes between v346 and v349#
The following new functionality is exposed on NVIDIA display drivers version 349 Production or later.
Added
nvmlDeviceGetTopologyCommonAncestor()to find the common path between two devices.Added
nvmlDeviceGetTopologyNearestGpus()to get a set of GPUs given a path level.Added
nvmlSystemGetTopologyGpuSet()to retrieve a set of GPUs with a given CPU affinity.Discontinued Perl bindings support.
Updated
nvmlDeviceGetAccountingPids(),nvmlDeviceGetAccountingBufferSize()andnvmlDeviceGetAccountingStats()to report accounting information for both active and terminated processes. The execution time field innvmlAccountingStats_tstructure is populated only when the process is terminated.
Changes between v340 and v346#
The following new functionality is exposed on NVIDIA display drivers version 346 Production or later.
Added
nvmlDeviceGetGraphicsRunningProcesses_v2to get information about Graphics Processes running on a device.Added
nvmlDeviceGetPcieReplayCounter()to get PCI replay counters.Added
nvmlDeviceGetPcieThroughput()to get PCI utilization information.Discontinued Perl bindings support.
Changes between NVML v331 and v340#
The following new functionality is exposed on NVIDIA display drivers version 340 Production or later.
Added
nvmlDeviceGetSamples()to get recent power, utilization and clock samples for the GPU.Added
nvmlDeviceGetTemperatureThreshold()to get temperature thresholds for the GPU.Added
nvmlDeviceGetBrand()to get the brand name of the GPU.Added
nvmlDeviceGetViolationStatus()to get the duration of time during which the device was throttled (lower than requested clocks) due to power or thermal constraints. Violations due to thermal capping is not supported at this time.Added
nvmlDeviceGetEncoderUtilization()to get the GPU video encoder utilization.Added
nvmlDeviceGetDecoderUtilization()to get the GPU video decoder utilization.Added
nvmlDeviceGetCpuAffinity()to get the closest processor(s) affinity to a particular GPU.Added
nvmlDeviceSetCpuAffinity()to set the affinity of a particular GPU to the closest processor.Added
nvmlDeviceClearCpuAffinity()to clear the affinity of a particular GPU.Added
nvmlDeviceGetBoardId()to get a unique boardId for the running system.Added
nvmlDeviceGetMultiGpuBoard()to get whether the device is on a multiGPU board.Added
nvmlDeviceGetAutoBoostedClocksEnabled()andnvmlDeviceSetAutoBoostedClocksEnabled()for querying and setting the state of auto boosted clocks on supporting hardware.Added
nvmlDeviceSetDefaultAutoBoostedClocksEnabled()for setting the default state of auto boosted clocks on supporting hardware.
Changes between NVML v5.319 Update and v331#
The following new functionality is exposed on NVIDIA display drivers version 331 or later.
Added
nvmlDeviceGetMinorNumber()to get the minor number for the device.Added
nvmlDeviceGetBAR1MemoryInfo()to get BAR1 total, available and used memory size.Added
nvmlDeviceGetBridgeChipInfo()to get the information related to bridge chip firmware.Added enforced power limit query API
nvmlDeviceGetEnforcedPowerLimit()Updated
nvmlEventSetWaitto return xid event data in case of xid error event.
Changes between NVML v5.319 RC and v5.319 Update#
The following new functionality is exposed on NVIDIA display drivers version 319 Update or later.
Added
nvmlDeviceSetAPIRestriction()andnvmlDeviceGetAPIRestriction(), with initial ability to toggle root-only requirement fornvmlDeviceSetApplicationsClocks()andnvmlDeviceResetApplicationsClocks().
Changes between NVML v4.304 Production and v5.319 RC#
The following new functionality is exposed on NVIDIA display drivers version 319 RC or later.
Added _v2 versions of
nvmlDeviceGetHandleByIndexandnvmlDeviceGetCountthat also count devices not accessible by current usernvmlDeviceGetHandleByIndex_v2()(default) can also return NVML_ERROR_NO_PERMISSION
Added
nvmlInit_v2()andnvmlDeviceGetHandleByIndex_v2()that is safer and thus recommended function for initializing the librarynvmlInit_v2()lazily initializes only requested devices (queried with nvmlDeviceGetHandle*)nvml.h defines
nvmlInit_v2()andnvmlDeviceGetHandleByIndex_v2()as default functions
Added
nvmlDeviceGetIndex()Added NVML_ERROR_GPU_IS_LOST to report GPUs that have fallen off the bus.
All NVML device APIs can return this error code, as a GPU can fall off the bus at any time.
Added new class of APIs for gathering process statistics (
nvmlAccountingStats)Application Clocks are no longer supported on GPU’s from Quadro product line
Added APIs to support dynamic page retirement. See
nvmlDeviceGetRetiredPages()andnvmlDeviceGetRetiredPagesPendingStatus()Renamed
nvmlClocksThrottleReasonUserDefinedClockstonvmlClocksThrottleReasonApplicationsClocksSetting. Old name is deprecated and can be removed in one of the next major releases.Added
nvmlDeviceGetDisplayActive()and updated documentation to clarify how it differs fromnvmlDeviceGetDisplayMode()
Changes between NVML v4.304 RC and v4.304 Production#
The following new functionality is exposed on NVIDIA display drivers version 304 Production or later.
Changes between NVML v3.295 and v4.304 RC#
The following new functionality is exposed on NVIDIA display drivers version 304 RC or later.
Added
nvmlDeviceGetInforomConfigurationChecksum()andnvmlDeviceValidateInforom().Added
nvmlDeviceGetDisplayActive()and updated documentation to clarify how it differs fromnvmlDeviceGetDisplayMode().Added new error return value for initialization failure due to kernel module not receiving interrupts.
Added
nvmlDeviceSetApplicationsClocks(),nvmlDeviceGetApplicationsClock(),nvmlDeviceResetApplicationsClocks().Added
nvmlDeviceGetSupportedMemoryClocks()andnvmlDeviceGetSupportedGraphicsClocks().Added
nvmlDeviceGetPowerManagementLimitConstraints(),nvmlDeviceGetPowerManagementDefaultLimit()andnvmlDeviceSetPowerManagementLimit().Expanded
nvmlDeviceGetUUID()to support all CUDA capable GPUs.Deprecated
nvmlDeviceGetDetailedEccErrors()in favor ofnvmlDeviceGetMemoryErrorCounter().Added
NVML_MEMORY_LOCATION_TEXTURE_MEMORYto support reporting of texture memory error counters.Added
nvmlDeviceGetCurrentClocksThrottleReasons()andnvmlDeviceGetSupportedClocksThrottleReasons().NVML_CLOCK_SMis now also reported on supported Kepler devices.Dropped support for GT200 based Tesla brand GPUs: C1060, M1060, S1070.
Changes between NVML v2.285 and v3.295#
The following new functionality is exposed on NVIDIA display drivers version 295 or later.
Deprecated
nvmlDeviceGetHandleBySerial()in favor of newly addednvmlDeviceGetHandleByUUID().Marked the input parameters of
nvmlDeviceGetHandleBySerial(),nvmlDeviceGetHandleByUUID()andnvmlDeviceGetHandleByPciBusIdas const.Added
nvmlDeviceOnSameBoard().Added
nvmlConstantsdefines.Added
nvmlDeviceGetMaxPcieLinkGeneration(),nvmlDeviceGetMaxPcieLinkWidth(),nvmlDeviceGetCurrPcieLinkGeneration(),:cpp:func:nvmlDeviceGetCurrPcieLinkWidth.Format change of
nvmlDeviceGetUUID()output to match the UUID standard. This function will return a different value.nvmlDeviceGetDetailedEccErrors()will report zero for unsupported ECC error counters when a subset of ECC error counters are supported.
Changes between NVML v1.0 and v2.285#
The following new functionality is exposed on NVIDIA display drivers version 285 or later.
Added possibility to query separately current and pending driver model with
nvmlDeviceGetDriverModel.Fixed error message when querying pending driver model with
nvmlDeviceGetDriverModelon non-Admin user account.Fixed problem when
nvmlDeviceGetDisplayMode()wouldn’t update.
Added API
nvmlDeviceGetVbiosVersion()function to report VBIOS version.Added pciSubSystemId to
nvmlPciInfo_tstruct.Added API
nvmlErrorString()function to convert error code to string.Updated docs to indicate we support M2075 and C2075.
Added API
nvmlSystemGetHicVersion()function to report HIC firmware version.Added NVML versioning support
Functions that changed API and/or size of structs have appended versioning suffix (e.g., nvmlDeviceGetPciInfo_v2). Appropriate C defines have been added that map old function names to the newer version of the function.
Added support for concurrent library usage by multiple libraries.
Added API
nvmlDeviceGetMaxClockInfo()function for reporting device’s clock limits.Added new error code NVML_ERROR_DRIVER_NOT_LOADED used by
nvmlInit.Extended
nvmlPciInfo_tstruct with new field: sub system id.Added NVML support on Windows guest account.
Changed format of pciBusId string (to XXXX:XX:XX.X) of
nvmlPciInfo_t.Parsing of busId in
nvmlDeviceGetHandleByPciBusIdis less restrictive. You can pass 0:2:0.0 or 0000:02:00 and other variations.Added API for events waiting for GPU events (Linux only) see docs of
nvmlEvents.Added API
nvmlDeviceGetComputeRunningProcesses_v2andnvmlSystemGetProcessName()functions for looking up currently running compute applications.Deprecated
nvmlDeviceGetPowerState()in favor ofnvmlDeviceGetPerformanceState().