amdsmi.h File Reference

amdsmi.h File Reference#

AMD SMI: amdsmi.h File Reference
amdsmi.h File Reference

AMD System Management Interface API. More...

#include <stdlib.h>
#include <stdbool.h>
#include <stdint.h>

Go to the source code of this file.

Data Structures

struct  amdsmi_hsmp_driver_version_t
 This structure holds HSMP Driver version information. More...
 
struct  amdsmi_range_t
 This structure represents a range (e.g., frequencies or voltages). More...
 
struct  amdsmi_xgmi_info_t
 XGMI Information. More...
 
struct  amdsmi_vram_usage_t
 VRam Usage. More...
 
struct  amdsmi_violation_status_t
 This structure hold violation status information. Note: for MI3x asics and higher, older ASICs will show unsupported. More...
 
struct  amdsmi_frequency_range_t
 Frequency Range. More...
 
union  amdsmi_bdf_t
 bdf types More...
 
struct  amdsmi_bdf_t::bdf_
 
struct  amdsmi_enumeration_info_t
 Structure holds enumeration information. More...
 
struct  amdsmi_pcie_info_t
 pcie information More...
 
struct  amdsmi_pcie_info_t::pcie_static_
 
struct  amdsmi_pcie_info_t::pcie_metric_
 
struct  amdsmi_power_cap_info_t
 Power Cap Information. More...
 
struct  amdsmi_vbios_info_t
 VBios Information. More...
 
struct  amdsmi_gpu_cache_info_t
 GPU Cache Information. More...
 
struct  amdsmi_gpu_cache_info_t::cache_
 
struct  amdsmi_fw_info_t
 Firmware Information. More...
 
struct  amdsmi_fw_info_t::fw_info_list_
 
struct  amdsmi_asic_info_t
 ASIC Information. More...
 
struct  amdsmi_kfd_info_t
 Structure holds kfd information. More...
 
union  amdsmi_nps_caps_t
 This union holds memory partition bitmask. More...
 
struct  amdsmi_nps_caps_t::nps_flags_
 
struct  amdsmi_memory_partition_config_t
 Memory Partition Configuration. This structure is used to identify various memory partition configurations. More...
 
struct  amdsmi_memory_partition_config_t::numa_range_
 
struct  amdsmi_accelerator_partition_profile_t
 Accelerator Partition Resource Profile. More...
 
struct  amdsmi_accelerator_partition_resource_profile_t
 Accelerator Partition Resources. This struct is used to identify various partition resource profiles. More...
 
struct  amdsmi_accelerator_partition_profile_config_t
 Accelerator Partition Profile Configurations. More...
 
struct  amdsmi_cpu_util_t
 This structure holds CPU utilization information. More...
 
struct  amdsmi_link_metrics_t
 Link Metrics. More...
 
struct  amdsmi_link_metrics_t::_links
 
struct  amdsmi_vram_info_t
 VRam Information. More...
 
struct  amdsmi_driver_info_t
 Driver Information. More...
 
struct  amdsmi_board_info_t
 Board Information. More...
 
struct  amdsmi_power_info_t
 Power Information. More...
 
struct  amdsmi_clk_info_t
 Clock Information. More...
 
struct  amdsmi_engine_usage_t
 Engine Usage amdsmi_engine_usage_t: This structure holds common GPU activity values seen in both BM or SRIOV. More...
 
struct  amdsmi_proc_info_t
 Process Information. More...
 
struct  amdsmi_proc_info_t::engine_usage_
 
struct  amdsmi_proc_info_t::memory_usage_
 
struct  amdsmi_p2p_capability_t
 IO Link P2P Capability. More...
 
struct  amdsmi_counter_value_t
 Counter value. More...
 
struct  amdsmi_evt_notification_data_t
 Event notification data returned from event notification API. More...
 
struct  amdsmi_utilization_counter_t
 The utilization counter data. More...
 
struct  amdsmi_retired_page_record_t
 Reserved Memory Page Record. More...
 
struct  amdsmi_power_profile_status_t
 This structure contains information about which power profiles are supported by the system for a given device, and which power profile is currently active. More...
 
struct  amdsmi_frequencies_t
 This structure holds information about clock frequencies. More...
 
struct  amdsmi_dpm_policy_entry_t
 The dpm policy. More...
 
struct  amdsmi_dpm_policy_t
 DPM Policy. More...
 
struct  amdsmi_pcie_bandwidth_t
 This structure holds information about the possible PCIe bandwidths. Specifically, the possible transfer rates and their associated numbers of lanes are stored here. More...
 
struct  amdsmi_version_t
 This structure holds version information. More...
 
struct  amdsmi_od_vddc_point_t
 This structure represents a point on the frequency-voltage plane. More...
 
struct  amdsmi_freq_volt_region_t
 This structure holds 2 amdsmi_range_t's, one for frequency and one for voltage. These 2 ranges indicate the range of possible values for the corresponding amdsmi_od_vddc_point_t. More...
 
struct  amdsmi_od_volt_curve_t
 OD Vold Curve AMDSMI_NUM_VOLTAGE_CURVE_POINTS number of amdsmi_od_vddc_point_t's. More...
 
struct  amdsmi_od_volt_freq_data_t
 This structure holds the frequency-voltage values for a device. More...
 
struct  amd_metrics_table_header_t
 Structure holds the gpu metrics table header for a device. More...
 
struct  amdsmi_gpu_xcp_metrics_t
 The following structures hold the gpu statistics for a device. More...
 
struct  amdsmi_gpu_metrics_t
 Structure holds the gpu metrics values for a device. More...
 
struct  amdsmi_xgmi_link_status_t
 XGMI Link Status. More...
 
struct  amdsmi_name_value_t
 This structure holds the name value pairs. More...
 
struct  amdsmi_ras_feature_t
 This structure holds ras feature. More...
 
struct  amdsmi_error_count_t
 This structure holds error counts. More...
 
struct  amdsmi_process_info_t
 This structure contains information specific to a process. More...
 
struct  amdsmi_topology_nearest_t
 Topology Nearest. More...
 
struct  amdsmi_smu_fw_version_t
 This structure holds SMU Firmware version information. More...
 
struct  amdsmi_ddr_bw_metrics_t
 DDR bandwidth metrics. More...
 
struct  amdsmi_temp_range_refresh_rate_t
 temperature range and refresh rate metrics of a DIMM More...
 
struct  amdsmi_dimm_power_t
 DIMM Power(mW), power update rate(ms) and dimm address. More...
 
struct  amdsmi_dimm_thermal_t
 DIMM temperature(°C) and update rate(ms) and dimm address. More...
 
struct  amdsmi_link_id_bw_type_t
 LINK name and Bandwidth type Information.It contains link names i.e valid link names are "P0", "P1", "P2", "P3", "P4", "G0", "G1", "G2", "G3", "G4" "G5", "G6", "G7" Valid bandwidth types 1(Aggregate_BW), 2 (Read BW), 4 (Write BW). More...
 
struct  amdsmi_dpm_level_t
 max and min LCLK DPM level on a given NBIO ID. Valid max and min DPM level values are 0 - 1. More...
 
struct  amdsmi_hsmp_metrics_table_t
 HSMP Metrics table (supported only with hsmp proto version 6). More...
 
struct  amdsmi_cpu_info_t
 cpu info data More...
 
struct  amdsmi_sock_info_t
 cpu socket info data More...
 
struct  amdsmi_cper_guid_t
 Cper. More...
 
struct  amdsmi_cper_timestamp_t
 
union  amdsmi_cper_valid_bits_t
 
struct  amdsmi_cper_valid_bits_t::valid_bits_
 
struct  amdsmi_cper_hdr_t
 

Macros

#define AMDSMI_MAX_MM_IP_COUNT   8
 Maximum size definitions.
 
#define AMDSMI_MAX_STRING_LENGTH   256
 
#define AMDSMI_MAX_DEVICES   32
 
#define AMDSMI_MAX_CACHE_TYPES   10
 
#define AMDSMI_MAX_ACCELERATOR_PROFILE   32
 
#define AMDSMI_MAX_CP_PROFILE_RESOURCES   32
 
#define AMDSMI_MAX_ACCELERATOR_PARTITIONS   8
 
#define AMDSMI_MAX_NUM_NUMA_NODES   32
 
#define AMDSMI_GPU_UUID_SIZE   38
 
#define AMDSMI_MAX_NUM_XGMI_PHYSICAL_LINK   64
 Common defines.
 
#define AMDSMI_MAX_CONTAINER_TYPE   2
 
#define CENTRIGRADE_TO_MILLI_CENTIGRADE   1000
 The following structure holds the gpu metrics values for a device. More...
 
#define AMDSMI_NUM_HBM_INSTANCES   4
 This should match NUM_HBM_INSTANCES.
 
#define AMDSMI_MAX_NUM_VCN   4
 This should match MAX_NUM_VCN.
 
#define AMDSMI_MAX_NUM_CLKS   4
 This should match MAX_NUM_CLKS.
 
#define AMDSMI_MAX_NUM_XGMI_LINKS   8
 This should match MAX_NUM_XGMI_LINKS.
 
#define AMDSMI_MAX_NUM_GFX_CLKS   8
 This should match MAX_NUM_GFX_CLKS.
 
#define AMDSMI_MAX_AID   4
 This should match AMDSMI_MAX_AID.
 
#define AMDSMI_MAX_ENGINES   8
 This should match AMDSMI_MAX_ENGINES.
 
#define AMDSMI_MAX_NUM_JPEG   32
 This should match AMDSMI_MAX_NUM_JPEG (8*4=32)
 
#define AMDSMI_MAX_NUM_JPEG_ENG_V1   40
 Introduced in gpu metrics v1.8, document presents NUM_JPEG_ENG_V1 but will change to AMDSMI_MAX_NUM_JPEG_ENG_V1 for continuity.
 
#define AMDSMI_MAX_NUM_XCC   8
 This should match AMDSMI_MAX_NUM_XCC; XCC - Accelerated Compute Core, the collection of compute units, ACE (Asynchronous Compute Engines), caches, and global resources organized as one unit. More...
 
#define AMDSMI_MAX_NUM_XCP   8
 This should match AMDSMI_MAX_NUM_XCP; XCP - Accelerated Compute Processor, also referred to as the Graphics Compute Partitions. Each physical gpu could have a maximum of 8 separate partitions associated with each (depending on ASIC support). More...
 
#define MAX_NUMBER_OF_AFIDS_PER_RECORD   12
 Max Number of AFIDs that will be inside one cper entry.
 
#define AMDSMI_TIME_FORMAT   "%02d:%02d:%02d.%03d"
 String format.
 
#define AMDSMI_DATE_FORMAT   "%04d-%02d-%02d:%02d:%02d:%02d.%03d"
 
#define AMDSMI_LIB_VERSION_MAJOR   26
 library versioning More...
 
#define AMDSMI_LIB_VERSION_MINOR   0
 Minor version should be updated for each API change, but without changing headers.
 
#define AMDSMI_LIB_VERSION_RELEASE   0
 Release version should be set to 0 as default and can be updated by the PMs for each CSP point release.
 
#define AMDSMI_LIB_VERSION_CREATE_STRING(MAJOR, MINOR, RELEASE)   (#MAJOR "." #MINOR "." #RELEASE)
 
#define AMDSMI_LIB_VERSION_EXPAND_PARTS(MAJOR_STR, MINOR_STR, RELEASE_STR)   AMDSMI_LIB_VERSION_CREATE_STRING(MAJOR_STR, MINOR_STR, RELEASE_STR)
 
#define AMDSMI_LIB_VERSION_STRING   AMDSMI_LIB_VERSION_EXPAND_PARTS(AMDSMI_LIB_VERSION_MAJOR, AMDSMI_LIB_VERSION_MINOR, AMDSMI_LIB_VERSION_RELEASE)
 
#define AMDSMI_MAX_NUM_FREQUENCIES   33
 
#define AMDSMI_MAX_FAN_SPEED   255
 
#define AMDSMI_NUM_VOLTAGE_CURVE_POINTS   3
 
#define AMDSMI_EVENT_MASK_FROM_INDEX(i)   (1ULL << ((i) - 1))
 Macro to generate event bitmask from event id.
 
#define AMDSMI_MAX_UTILIZATION_VALUES   4
 The max number of values per counter type.
 
#define AMDSMI_MAX_NUM_PM_POLICIES   32
 

Typedefs

typedef void * amdsmi_processor_handle
 opaque handler point to underlying implementation
 
typedef void * amdsmi_socket_handle
 
typedef void * amdsmi_cpusocket_handle
 opaque handler point to underlying implementation
 
typedef uint32_t amdsmi_process_handle_t
 Process Handle.
 
typedef uintptr_t amdsmi_event_handle_t
 Handle to performance event counter.
 
typedef uint64_t amdsmi_bit_field_t
 Bitfield used in various AMDSMI calls.
 

Enumerations

enum  amdsmi_init_flags_t {
  AMDSMI_INIT_ALL_PROCESSORS = 0xFFFFFFFF , AMDSMI_INIT_AMD_CPUS = (1 << 0) , AMDSMI_INIT_AMD_GPUS = (1 << 1) , AMDSMI_INIT_NON_AMD_CPUS = (1 << 2) ,
  AMDSMI_INIT_NON_AMD_GPUS = (1 << 3) , AMDSMI_INIT_AMD_APUS = (AMDSMI_INIT_AMD_CPUS | AMDSMI_INIT_AMD_GPUS)
}
 Initialization flags. More...
 
enum  amdsmi_mm_ip_t { AMDSMI_MM_UVD , AMDSMI_MM_VCE , AMDSMI_MM_VCN , AMDSMI_MM__MAX }
 GPU Capability info. More...
 
enum  amdsmi_container_types_t { AMDSMI_CONTAINER_LXC , AMDSMI_CONTAINER_DOCKER }
 Container. More...
 
enum  processor_type_t {
  AMDSMI_PROCESSOR_TYPE_UNKNOWN = 0 , AMDSMI_PROCESSOR_TYPE_AMD_GPU , AMDSMI_PROCESSOR_TYPE_AMD_CPU , AMDSMI_PROCESSOR_TYPE_NON_AMD_GPU ,
  AMDSMI_PROCESSOR_TYPE_NON_AMD_CPU , AMDSMI_PROCESSOR_TYPE_AMD_CPU_CORE , AMDSMI_PROCESSOR_TYPE_AMD_APU
}
 Processor types detectable by AMD SMI. More...
 
enum  amdsmi_status_t {
  AMDSMI_STATUS_SUCCESS = 0 , AMDSMI_STATUS_INVAL = 1 , AMDSMI_STATUS_NOT_SUPPORTED = 2 , AMDSMI_STATUS_NOT_YET_IMPLEMENTED = 3 ,
  AMDSMI_STATUS_FAIL_LOAD_MODULE = 4 , AMDSMI_STATUS_FAIL_LOAD_SYMBOL = 5 , AMDSMI_STATUS_DRM_ERROR = 6 , AMDSMI_STATUS_API_FAILED = 7 ,
  AMDSMI_STATUS_TIMEOUT = 8 , AMDSMI_STATUS_RETRY = 9 , AMDSMI_STATUS_NO_PERM = 10 , AMDSMI_STATUS_INTERRUPT = 11 ,
  AMDSMI_STATUS_IO = 12 , AMDSMI_STATUS_ADDRESS_FAULT = 13 , AMDSMI_STATUS_FILE_ERROR = 14 , AMDSMI_STATUS_OUT_OF_RESOURCES = 15 ,
  AMDSMI_STATUS_INTERNAL_EXCEPTION = 16 , AMDSMI_STATUS_INPUT_OUT_OF_BOUNDS = 17 , AMDSMI_STATUS_INIT_ERROR = 18 , AMDSMI_STATUS_REFCOUNT_OVERFLOW = 19 ,
  AMDSMI_STATUS_DIRECTORY_NOT_FOUND = 20 , AMDSMI_STATUS_BUSY = 30 , AMDSMI_STATUS_NOT_FOUND = 31 , AMDSMI_STATUS_NOT_INIT = 32 ,
  AMDSMI_STATUS_NO_SLOT = 33 , AMDSMI_STATUS_DRIVER_NOT_LOADED = 34 , AMDSMI_STATUS_MORE_DATA = 39 , AMDSMI_STATUS_NO_DATA = 40 ,
  AMDSMI_STATUS_INSUFFICIENT_SIZE = 41 , AMDSMI_STATUS_UNEXPECTED_SIZE = 42 , AMDSMI_STATUS_UNEXPECTED_DATA = 43 , AMDSMI_STATUS_NON_AMD_CPU = 44 ,
  AMDSMI_STATUS_NO_ENERGY_DRV = 45 , AMDSMI_STATUS_NO_MSR_DRV = 46 , AMDSMI_STATUS_NO_HSMP_DRV = 47 , AMDSMI_STATUS_NO_HSMP_SUP = 48 ,
  AMDSMI_STATUS_NO_HSMP_MSG_SUP = 49 , AMDSMI_STATUS_HSMP_TIMEOUT = 50 , AMDSMI_STATUS_NO_DRV = 51 , AMDSMI_STATUS_FILE_NOT_FOUND = 52 ,
  AMDSMI_STATUS_ARG_PTR_NULL = 53 , AMDSMI_STATUS_AMDGPU_RESTART_ERR = 54 , AMDSMI_STATUS_SETTING_UNAVAILABLE = 55 , AMDSMI_STATUS_CORRUPTED_EEPROM = 56 ,
  AMDSMI_STATUS_MAP_ERROR = 0xFFFFFFFE , AMDSMI_STATUS_UNKNOWN_ERROR = 0xFFFFFFFF
}
 Error codes returned by amdsmi functions. More...
 
enum  amdsmi_clk_type_t {
  AMDSMI_CLK_TYPE_SYS = 0x0 , AMDSMI_CLK_TYPE_FIRST = AMDSMI_CLK_TYPE_SYS , AMDSMI_CLK_TYPE_GFX = AMDSMI_CLK_TYPE_SYS , AMDSMI_CLK_TYPE_DF ,
  AMDSMI_CLK_TYPE_DCEF , AMDSMI_CLK_TYPE_SOC , AMDSMI_CLK_TYPE_MEM , AMDSMI_CLK_TYPE_PCIE ,
  AMDSMI_CLK_TYPE_VCLK0 , AMDSMI_CLK_TYPE_VCLK1 , AMDSMI_CLK_TYPE_DCLK0 , AMDSMI_CLK_TYPE_DCLK1 ,
  AMDSMI_CLK_TYPE__MAX = AMDSMI_CLK_TYPE_DCLK1
}
 Clock types. More...
 
enum  amdsmi_accelerator_partition_type_t {
  AMDSMI_ACCELERATOR_PARTITION_INVALID = 0 , AMDSMI_ACCELERATOR_PARTITION_SPX , AMDSMI_ACCELERATOR_PARTITION_DPX , AMDSMI_ACCELERATOR_PARTITION_TPX ,
  AMDSMI_ACCELERATOR_PARTITION_QPX , AMDSMI_ACCELERATOR_PARTITION_CPX , AMDSMI_ACCELERATOR_PARTITION_MAX
}
 Accelerator Partition. More...
 
enum  amdsmi_accelerator_partition_resource_type_t {
  AMDSMI_ACCELERATOR_XCC , AMDSMI_ACCELERATOR_ENCODER , AMDSMI_ACCELERATOR_DECODER , AMDSMI_ACCELERATOR_DMA ,
  AMDSMI_ACCELERATOR_JPEG , AMDSMI_ACCELERATOR_MAX
}
 Accelerator Partition Resource Types. More...
 
enum  amdsmi_compute_partition_type_t {
  AMDSMI_COMPUTE_PARTITION_INVALID = 0 , AMDSMI_COMPUTE_PARTITION_SPX , AMDSMI_COMPUTE_PARTITION_DPX , AMDSMI_COMPUTE_PARTITION_TPX ,
  AMDSMI_COMPUTE_PARTITION_QPX , AMDSMI_COMPUTE_PARTITION_CPX
}
 Compute Partition. This enum is used to identify various compute partitioning settings. More...
 
enum  amdsmi_memory_partition_type_t {
  AMDSMI_MEMORY_PARTITION_UNKNOWN = 0 , AMDSMI_MEMORY_PARTITION_NPS1 = 1 , AMDSMI_MEMORY_PARTITION_NPS2 = 2 , AMDSMI_MEMORY_PARTITION_NPS4 = 4 ,
  AMDSMI_MEMORY_PARTITION_NPS8 = 8
}
 Memory Partitions. More...
 
enum  amdsmi_temperature_type_t {
  AMDSMI_TEMPERATURE_TYPE_EDGE , AMDSMI_TEMPERATURE_TYPE_FIRST = AMDSMI_TEMPERATURE_TYPE_EDGE , AMDSMI_TEMPERATURE_TYPE_HOTSPOT , AMDSMI_TEMPERATURE_TYPE_JUNCTION = AMDSMI_TEMPERATURE_TYPE_HOTSPOT ,
  AMDSMI_TEMPERATURE_TYPE_VRAM , AMDSMI_TEMPERATURE_TYPE_HBM_0 , AMDSMI_TEMPERATURE_TYPE_HBM_1 , AMDSMI_TEMPERATURE_TYPE_HBM_2 ,
  AMDSMI_TEMPERATURE_TYPE_HBM_3 , AMDSMI_TEMPERATURE_TYPE_PLX , AMDSMI_TEMPERATURE_TYPE_GPUBOARD_NODE_FIRST = 100 , AMDSMI_TEMPERATURE_TYPE_GPUBOARD_NODE_RETIMER_X = AMDSMI_TEMPERATURE_TYPE_GPUBOARD_NODE_FIRST ,
  AMDSMI_TEMPERATURE_TYPE_GPUBOARD_NODE_OAM_X_IBC , AMDSMI_TEMPERATURE_TYPE_GPUBOARD_NODE_OAM_X_IBC_2 , AMDSMI_TEMPERATURE_TYPE_GPUBOARD_NODE_OAM_X_VDD18_VR , AMDSMI_TEMPERATURE_TYPE_GPUBOARD_NODE_OAM_X_04_HBM_B_VR ,
  AMDSMI_TEMPERATURE_TYPE_GPUBOARD_NODE_OAM_X_04_HBM_D_VR , AMDSMI_TEMPERATURE_TYPE_GPUBOARD_NODE_LAST = 149 , AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VR_FIRST = 150 , AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDCR_VDD0 = AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VR_FIRST ,
  AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDCR_VDD1 , AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDCR_VDD2 , AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDCR_VDD3 , AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDCR_SOC_A ,
  AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDCR_SOC_C , AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDCR_SOCIO_A , AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDCR_SOCIO_C , AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDD_085_HBM ,
  AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDCR_11_HBM_B , AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDCR_11_HBM_D , AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDD_USR , AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDIO_11_E32 ,
  AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VR_LAST = 199 , AMDSMI_TEMPERATURE_TYPE_BASEBOARD_FIRST = 200 , AMDSMI_TEMPERATURE_TYPE_BASEBOARD_UBB_FPGA = AMDSMI_TEMPERATURE_TYPE_BASEBOARD_FIRST , AMDSMI_TEMPERATURE_TYPE_BASEBOARD_UBB_FRONT ,
  AMDSMI_TEMPERATURE_TYPE_BASEBOARD_UBB_BACK , AMDSMI_TEMPERATURE_TYPE_BASEBOARD_UBB_OAM7 , AMDSMI_TEMPERATURE_TYPE_BASEBOARD_UBB_IBC , AMDSMI_TEMPERATURE_TYPE_BASEBOARD_UBB_UFPGA ,
  AMDSMI_TEMPERATURE_TYPE_BASEBOARD_UBB_OAM1 , AMDSMI_TEMPERATURE_TYPE_BASEBOARD_OAM_0_1_HSC , AMDSMI_TEMPERATURE_TYPE_BASEBOARD_OAM_2_3_HSC , AMDSMI_TEMPERATURE_TYPE_BASEBOARD_OAM_4_5_HSC ,
  AMDSMI_TEMPERATURE_TYPE_BASEBOARD_OAM_6_7_HSC , AMDSMI_TEMPERATURE_TYPE_BASEBOARD_UBB_FPGA_0V72_VR , AMDSMI_TEMPERATURE_TYPE_BASEBOARD_UBB_FPGA_3V3_VR , AMDSMI_TEMPERATURE_TYPE_BASEBOARD_RETIMER_0_1_2_3_1V2_VR ,
  AMDSMI_TEMPERATURE_TYPE_BASEBOARD_RETIMER_4_5_6_7_1V2_VR , AMDSMI_TEMPERATURE_TYPE_BASEBOARD_RETIMER_0_1_0V9_VR , AMDSMI_TEMPERATURE_TYPE_BASEBOARD_RETIMER_4_5_0V9_VR , AMDSMI_TEMPERATURE_TYPE_BASEBOARD_RETIMER_2_3_0V9_VR ,
  AMDSMI_TEMPERATURE_TYPE_BASEBOARD_RETIMER_6_7_0V9_VR , AMDSMI_TEMPERATURE_TYPE_BASEBOARD_OAM_0_1_2_3_3V3_VR , AMDSMI_TEMPERATURE_TYPE_BASEBOARD_OAM_4_5_6_7_3V3_VR , AMDSMI_TEMPERATURE_TYPE_BASEBOARD_IBC_HSC ,
  AMDSMI_TEMPERATURE_TYPE_BASEBOARD_IBC , AMDSMI_TEMPERATURE_TYPE_BASEBOARD_LAST = 249 , AMDSMI_TEMPERATURE_TYPE__MAX = AMDSMI_TEMPERATURE_TYPE_BASEBOARD_LAST
}
 This enumeration is used to indicate from which part of the processor a temperature reading should be obtained. More...
 
enum  amdsmi_fw_block_t {
  AMDSMI_FW_ID_SMU = 1 , AMDSMI_FW_ID_FIRST = AMDSMI_FW_ID_SMU , AMDSMI_FW_ID_CP_CE , AMDSMI_FW_ID_CP_PFP ,
  AMDSMI_FW_ID_CP_ME , AMDSMI_FW_ID_CP_MEC_JT1 , AMDSMI_FW_ID_CP_MEC_JT2 , AMDSMI_FW_ID_CP_MEC1 ,
  AMDSMI_FW_ID_CP_MEC2 , AMDSMI_FW_ID_RLC , AMDSMI_FW_ID_SDMA0 , AMDSMI_FW_ID_SDMA1 ,
  AMDSMI_FW_ID_SDMA2 , AMDSMI_FW_ID_SDMA3 , AMDSMI_FW_ID_SDMA4 , AMDSMI_FW_ID_SDMA5 ,
  AMDSMI_FW_ID_SDMA6 , AMDSMI_FW_ID_SDMA7 , AMDSMI_FW_ID_VCN , AMDSMI_FW_ID_UVD ,
  AMDSMI_FW_ID_VCE , AMDSMI_FW_ID_ISP , AMDSMI_FW_ID_DMCU_ERAM , AMDSMI_FW_ID_DMCU_ISR ,
  AMDSMI_FW_ID_RLC_RESTORE_LIST_GPM_MEM , AMDSMI_FW_ID_RLC_RESTORE_LIST_SRM_MEM , AMDSMI_FW_ID_RLC_RESTORE_LIST_CNTL , AMDSMI_FW_ID_RLC_V ,
  AMDSMI_FW_ID_MMSCH , AMDSMI_FW_ID_PSP_SYSDRV , AMDSMI_FW_ID_PSP_SOSDRV , AMDSMI_FW_ID_PSP_TOC ,
  AMDSMI_FW_ID_PSP_KEYDB , AMDSMI_FW_ID_DFC , AMDSMI_FW_ID_PSP_SPL , AMDSMI_FW_ID_DRV_CAP ,
  AMDSMI_FW_ID_MC , AMDSMI_FW_ID_PSP_BL , AMDSMI_FW_ID_CP_PM4 , AMDSMI_FW_ID_RLC_P ,
  AMDSMI_FW_ID_SEC_POLICY_STAGE2 , AMDSMI_FW_ID_REG_ACCESS_WHITELIST , AMDSMI_FW_ID_IMU_DRAM , AMDSMI_FW_ID_IMU_IRAM ,
  AMDSMI_FW_ID_SDMA_TH0 , AMDSMI_FW_ID_SDMA_TH1 , AMDSMI_FW_ID_CP_MES , AMDSMI_FW_ID_MES_KIQ ,
  AMDSMI_FW_ID_MES_STACK , AMDSMI_FW_ID_MES_THREAD1 , AMDSMI_FW_ID_MES_THREAD1_STACK , AMDSMI_FW_ID_RLX6 ,
  AMDSMI_FW_ID_RLX6_DRAM_BOOT , AMDSMI_FW_ID_RS64_ME , AMDSMI_FW_ID_RS64_ME_P0_DATA , AMDSMI_FW_ID_RS64_ME_P1_DATA ,
  AMDSMI_FW_ID_RS64_PFP , AMDSMI_FW_ID_RS64_PFP_P0_DATA , AMDSMI_FW_ID_RS64_PFP_P1_DATA , AMDSMI_FW_ID_RS64_MEC ,
  AMDSMI_FW_ID_RS64_MEC_P0_DATA , AMDSMI_FW_ID_RS64_MEC_P1_DATA , AMDSMI_FW_ID_RS64_MEC_P2_DATA , AMDSMI_FW_ID_RS64_MEC_P3_DATA ,
  AMDSMI_FW_ID_PPTABLE , AMDSMI_FW_ID_PSP_SOC , AMDSMI_FW_ID_PSP_DBG , AMDSMI_FW_ID_PSP_INTF ,
  AMDSMI_FW_ID_RLX6_CORE1 , AMDSMI_FW_ID_RLX6_DRAM_BOOT_CORE1 , AMDSMI_FW_ID_RLCV_LX7 , AMDSMI_FW_ID_RLC_SAVE_RESTORE_LIST ,
  AMDSMI_FW_ID_ASD , AMDSMI_FW_ID_TA_RAS , AMDSMI_FW_ID_TA_XGMI , AMDSMI_FW_ID_RLC_SRLG ,
  AMDSMI_FW_ID_RLC_SRLS , AMDSMI_FW_ID_PM , AMDSMI_FW_ID_DMCU , AMDSMI_FW_ID_PLDM_BUNDLE ,
  AMDSMI_FW_ID__MAX
}
 The values of this enum are used to identify the various firmware blocks. More...
 
enum  amdsmi_vram_type_t {
  AMDSMI_VRAM_TYPE_UNKNOWN = 0 , AMDSMI_VRAM_TYPE_HBM = 1 , AMDSMI_VRAM_TYPE_HBM2 = 2 , AMDSMI_VRAM_TYPE_HBM2E = 3 ,
  AMDSMI_VRAM_TYPE_HBM3 = 4 , AMDSMI_VRAM_TYPE_DDR2 = 10 , AMDSMI_VRAM_TYPE_DDR3 = 11 , AMDSMI_VRAM_TYPE_DDR4 = 12 ,
  AMDSMI_VRAM_TYPE_GDDR1 = 17 , AMDSMI_VRAM_TYPE_GDDR2 = 18 , AMDSMI_VRAM_TYPE_GDDR3 = 19 , AMDSMI_VRAM_TYPE_GDDR4 = 20 ,
  AMDSMI_VRAM_TYPE_GDDR5 = 21 , AMDSMI_VRAM_TYPE_GDDR6 = 22 , AMDSMI_VRAM_TYPE_GDDR7 = 23 , AMDSMI_VRAM_TYPE__MAX = AMDSMI_VRAM_TYPE_GDDR7
}
 vRam Types. This enum is used to identify various VRam types. More...
 
enum  amdsmi_card_form_factor_t { AMDSMI_CARD_FORM_FACTOR_PCIE , AMDSMI_CARD_FORM_FACTOR_OAM , AMDSMI_CARD_FORM_FACTOR_CEM , AMDSMI_CARD_FORM_FACTOR_UNKNOWN }
 Card Form Factor. More...
 
enum  amdsmi_cache_property_type_t {
  AMDSMI_CACHE_PROPERTY_ENABLED = 0x00000001 , AMDSMI_CACHE_PROPERTY_DATA_CACHE = 0x00000002 , AMDSMI_CACHE_PROPERTY_INST_CACHE = 0x00000004 , AMDSMI_CACHE_PROPERTY_CPU_CACHE = 0x00000008 ,
  AMDSMI_CACHE_PROPERTY_SIMD_CACHE = 0x00000010
}
 cache properties More...
 
enum  amdsmi_link_type_t {
  AMDSMI_LINK_TYPE_INTERNAL = 0 , AMDSMI_LINK_TYPE_PCIE = 1 , AMDSMI_LINK_TYPE_XGMI = 2 , AMDSMI_LINK_TYPE_NOT_APPLICABLE = 3 ,
  AMDSMI_LINK_TYPE_UNKNOWN = 4
}
 Link type. More...
 
enum  amdsmi_dev_perf_level_t {
  AMDSMI_DEV_PERF_LEVEL_AUTO = 0 , AMDSMI_DEV_PERF_LEVEL_FIRST = AMDSMI_DEV_PERF_LEVEL_AUTO , AMDSMI_DEV_PERF_LEVEL_LOW , AMDSMI_DEV_PERF_LEVEL_HIGH ,
  AMDSMI_DEV_PERF_LEVEL_MANUAL , AMDSMI_DEV_PERF_LEVEL_STABLE_STD , AMDSMI_DEV_PERF_LEVEL_STABLE_PEAK , AMDSMI_DEV_PERF_LEVEL_STABLE_MIN_MCLK ,
  AMDSMI_DEV_PERF_LEVEL_STABLE_MIN_SCLK , AMDSMI_DEV_PERF_LEVEL_DETERMINISM , AMDSMI_DEV_PERF_LEVEL_LAST = AMDSMI_DEV_PERF_LEVEL_DETERMINISM , AMDSMI_DEV_PERF_LEVEL_UNKNOWN = 0x100
}
 PowerPlay performance levels. More...
 
enum  amdsmi_event_group_t { AMDSMI_EVNT_GRP_XGMI = 0 , AMDSMI_EVNT_GRP_XGMI_DATA_OUT = 10 , AMDSMI_EVNT_GRP_INVALID = 0xFFFFFFFF }
 Event Groups Enum denoting an event group. The value of the enum is the base value for all the event enums in the group. More...
 
enum  amdsmi_event_type_t {
  AMDSMI_EVNT_FIRST = AMDSMI_EVNT_GRP_XGMI , AMDSMI_EVNT_XGMI_FIRST = AMDSMI_EVNT_GRP_XGMI , AMDSMI_EVNT_XGMI_0_NOP_TX = AMDSMI_EVNT_XGMI_FIRST , AMDSMI_EVNT_XGMI_0_REQUEST_TX ,
  AMDSMI_EVNT_XGMI_0_RESPONSE_TX , AMDSMI_EVNT_XGMI_0_BEATS_TX , AMDSMI_EVNT_XGMI_1_NOP_TX , AMDSMI_EVNT_XGMI_1_REQUEST_TX ,
  AMDSMI_EVNT_XGMI_1_RESPONSE_TX , AMDSMI_EVNT_XGMI_1_BEATS_TX , AMDSMI_EVNT_XGMI_LAST = AMDSMI_EVNT_XGMI_1_BEATS_TX , AMDSMI_EVNT_XGMI_DATA_OUT_FIRST = AMDSMI_EVNT_GRP_XGMI_DATA_OUT ,
  AMDSMI_EVNT_XGMI_DATA_OUT_0 = AMDSMI_EVNT_XGMI_DATA_OUT_FIRST , AMDSMI_EVNT_XGMI_DATA_OUT_1 , AMDSMI_EVNT_XGMI_DATA_OUT_2 , AMDSMI_EVNT_XGMI_DATA_OUT_3 ,
  AMDSMI_EVNT_XGMI_DATA_OUT_4 , AMDSMI_EVNT_XGMI_DATA_OUT_5 , AMDSMI_EVNT_XGMI_DATA_OUT_LAST = AMDSMI_EVNT_XGMI_DATA_OUT_5 , AMDSMI_EVNT_LAST = AMDSMI_EVNT_XGMI_DATA_OUT_LAST
}
 Event types Event type enum. Events belonging to a particular event group amdsmi_event_group_t should begin enumerating at the amdsmi_event_group_t value for that group. More...
 
enum  amdsmi_counter_command_t { AMDSMI_CNTR_CMD_START = 0 , AMDSMI_CNTR_CMD_STOP }
 Event counter commands. More...
 
enum  amdsmi_evt_notification_type_t {
  AMDSMI_EVT_NOTIF_NONE = 0 , AMDSMI_EVT_NOTIF_VMFAULT = 1 , AMDSMI_EVT_NOTIF_FIRST = AMDSMI_EVT_NOTIF_VMFAULT , AMDSMI_EVT_NOTIF_THERMAL_THROTTLE = 2 ,
  AMDSMI_EVT_NOTIF_GPU_PRE_RESET = 3 , AMDSMI_EVT_NOTIF_GPU_POST_RESET = 4 , AMDSMI_EVT_NOTIF_MIGRATE_START = 5 , AMDSMI_EVT_NOTIF_MIGRATE_END = 6 ,
  AMDSMI_EVT_NOTIF_PAGE_FAULT_START = 7 , AMDSMI_EVT_NOTIF_PAGE_FAULT_END = 8 , AMDSMI_EVT_NOTIF_QUEUE_EVICTION = 9 , AMDSMI_EVT_NOTIF_QUEUE_RESTORE = 10 ,
  AMDSMI_EVT_NOTIF_UNMAP_FROM_GPU = 11 , AMDSMI_EVT_NOTIF_PROCESS_START = 12 , AMDSMI_EVT_NOTIF_PROCESS_END = 13 , AMDSMI_EVT_NOTIF_LAST = AMDSMI_EVT_NOTIF_PROCESS_END
}
 Event notification event types. More...
 
enum  amdsmi_temperature_metric_t {
  AMDSMI_TEMP_CURRENT = 0x0 , AMDSMI_TEMP_FIRST = AMDSMI_TEMP_CURRENT , AMDSMI_TEMP_MAX , AMDSMI_TEMP_MIN ,
  AMDSMI_TEMP_MAX_HYST , AMDSMI_TEMP_MIN_HYST , AMDSMI_TEMP_CRITICAL , AMDSMI_TEMP_CRITICAL_HYST ,
  AMDSMI_TEMP_EMERGENCY , AMDSMI_TEMP_EMERGENCY_HYST , AMDSMI_TEMP_CRIT_MIN , AMDSMI_TEMP_CRIT_MIN_HYST ,
  AMDSMI_TEMP_OFFSET , AMDSMI_TEMP_LOWEST , AMDSMI_TEMP_HIGHEST , AMDSMI_TEMP_SHUTDOWN ,
  AMDSMI_TEMP_LAST = AMDSMI_TEMP_SHUTDOWN
}
 Temperature Metrics. This enum is used to identify various temperature metrics. Corresponding values will be in Celcius. More...
 
enum  amdsmi_voltage_metric_t {
  AMDSMI_VOLT_CURRENT = 0x0 , AMDSMI_VOLT_FIRST = AMDSMI_VOLT_CURRENT , AMDSMI_VOLT_MAX , AMDSMI_VOLT_MIN_CRIT ,
  AMDSMI_VOLT_MIN , AMDSMI_VOLT_MAX_CRIT , AMDSMI_VOLT_AVERAGE , AMDSMI_VOLT_LOWEST ,
  AMDSMI_VOLT_HIGHEST , AMDSMI_VOLT_LAST = AMDSMI_VOLT_HIGHEST
}
 Voltage Metrics. This enum is used to identify various Volatge metrics. Corresponding values will be in millivolt. More...
 
enum  amdsmi_voltage_type_t {
  AMDSMI_VOLT_TYPE_FIRST = 0 , AMDSMI_VOLT_TYPE_VDDGFX = AMDSMI_VOLT_TYPE_FIRST , AMDSMI_VOLT_TYPE_VDDBOARD , AMDSMI_VOLT_TYPE_LAST = AMDSMI_VOLT_TYPE_VDDBOARD ,
  AMDSMI_VOLT_TYPE_INVALID = 0xFFFFFFFF
}
 This ennumeration is used to indicate which type of voltage reading should be obtained. More...
 
enum  amdsmi_power_profile_preset_masks_t {
  AMDSMI_PWR_PROF_PRST_CUSTOM_MASK = 0x1 , AMDSMI_PWR_PROF_PRST_VIDEO_MASK = 0x2 , AMDSMI_PWR_PROF_PRST_POWER_SAVING_MASK = 0x4 , AMDSMI_PWR_PROF_PRST_COMPUTE_MASK = 0x8 ,
  AMDSMI_PWR_PROF_PRST_VR_MASK = 0x10 , AMDSMI_PWR_PROF_PRST_3D_FULL_SCR_MASK = 0x20 , AMDSMI_PWR_PROF_PRST_BOOTUP_DEFAULT = 0x40 , AMDSMI_PWR_PROF_PRST_LAST = AMDSMI_PWR_PROF_PRST_BOOTUP_DEFAULT ,
  AMDSMI_PWR_PROF_PRST_INVALID = 0xFFFFFFFFFFFFFFFF
}
 Pre-set Profile Selections. These bitmasks can be AND'd with the amdsmi_power_profile_status_t.available_profiles returned from :: amdsmi_get_gpu_power_profile_presets to determine which power profiles are supported by the system. More...
 
enum  amdsmi_gpu_block_t {
  AMDSMI_GPU_BLOCK_INVALID = 0 , AMDSMI_GPU_BLOCK_FIRST = (1ULL << 0) , AMDSMI_GPU_BLOCK_UMC = AMDSMI_GPU_BLOCK_FIRST , AMDSMI_GPU_BLOCK_SDMA = (1ULL << 1) ,
  AMDSMI_GPU_BLOCK_GFX = (1ULL << 2) , AMDSMI_GPU_BLOCK_MMHUB = (1ULL << 3) , AMDSMI_GPU_BLOCK_ATHUB = (1ULL << 4) , AMDSMI_GPU_BLOCK_PCIE_BIF = (1ULL << 5) ,
  AMDSMI_GPU_BLOCK_HDP = (1ULL << 6) , AMDSMI_GPU_BLOCK_XGMI_WAFL = (1ULL << 7) , AMDSMI_GPU_BLOCK_DF = (1ULL << 8) , AMDSMI_GPU_BLOCK_SMN = (1ULL << 9) ,
  AMDSMI_GPU_BLOCK_SEM = (1ULL << 10) , AMDSMI_GPU_BLOCK_MP0 = (1ULL << 11) , AMDSMI_GPU_BLOCK_MP1 = (1ULL << 12) , AMDSMI_GPU_BLOCK_FUSE = (1ULL << 13) ,
  AMDSMI_GPU_BLOCK_MCA = (1ULL << 14) , AMDSMI_GPU_BLOCK_VCN = (1ULL << 15) , AMDSMI_GPU_BLOCK_JPEG = (1ULL << 16) , AMDSMI_GPU_BLOCK_IH = (1ULL << 17) ,
  AMDSMI_GPU_BLOCK_MPIO = (1ULL << 18) , AMDSMI_GPU_BLOCK_LAST = AMDSMI_GPU_BLOCK_MPIO , AMDSMI_GPU_BLOCK_RESERVED = (1ULL << 63)
}
 This enum is used to identify different GPU blocks. More...
 
enum  amdsmi_clk_limit_type_t { CLK_LIMIT_MIN , CLK_LIMIT_MAX }
 The clk limit type. More...
 
enum  amdsmi_cper_sev_t {
  AMDSMI_CPER_SEV_NON_FATAL_UNCORRECTED = 0 , AMDSMI_CPER_SEV_FATAL = 1 , AMDSMI_CPER_SEV_NON_FATAL_CORRECTED = 2 , AMDSMI_CPER_SEV_NUM = 3 ,
  AMDSMI_CPER_SEV_UNUSED = 10
}
 Cper sev. More...
 
enum  amdsmi_cper_notify_type_t {
  AMDSMI_CPER_NOTIFY_TYPE_CMC = 0x450eBDD72DCE8BB1 , AMDSMI_CPER_NOTIFY_TYPE_CPE = 0x4a55D8434E292F96 , AMDSMI_CPER_NOTIFY_TYPE_MCE = 0x4cc5919CE8F56FFE , AMDSMI_CPER_NOTIFY_TYPE_PCIE = 0x4dfc1A16CF93C01F ,
  AMDSMI_CPER_NOTIFY_TYPE_INIT = 0x454a9308CC5263E8 , AMDSMI_CPER_NOTIFY_TYPE_NMI = 0x42c9B7E65BAD89FF , AMDSMI_CPER_NOTIFY_TYPE_BOOT = 0x409aAB403D61A466 , AMDSMI_CPER_NOTIFY_TYPE_DMAR = 0x4c27C6B3667DD791 ,
  AMDSMI_CPER_NOTIFY_TYPE_SEA = 0x11E4BBE89A78788A , AMDSMI_CPER_NOTIFY_TYPE_SEI = 0x4E87B0AE5C284C81 , AMDSMI_CPER_NOTIFY_TYPE_PEI = 0x4214520409A9D5AC , AMDSMI_CPER_NOTIFY_TYPE_CXL_COMPONENT = 0x49A341DF69293BC9
}
 Cper notify. More...
 
enum  amdsmi_ras_err_state_t {
  AMDSMI_RAS_ERR_STATE_NONE = 0 , AMDSMI_RAS_ERR_STATE_DISABLED , AMDSMI_RAS_ERR_STATE_PARITY , AMDSMI_RAS_ERR_STATE_SING_C ,
  AMDSMI_RAS_ERR_STATE_MULT_UC , AMDSMI_RAS_ERR_STATE_POISON , AMDSMI_RAS_ERR_STATE_ENABLED , AMDSMI_RAS_ERR_STATE_LAST = AMDSMI_RAS_ERR_STATE_ENABLED ,
  AMDSMI_RAS_ERR_STATE_INVALID = 0xFFFFFFFF
}
 The current ECC state. More...
 
enum  amdsmi_memory_type_t {
  AMDSMI_MEM_TYPE_FIRST = 0 , AMDSMI_MEM_TYPE_VRAM = AMDSMI_MEM_TYPE_FIRST , AMDSMI_MEM_TYPE_VIS_VRAM , AMDSMI_MEM_TYPE_GTT ,
  AMDSMI_MEM_TYPE_LAST = AMDSMI_MEM_TYPE_GTT
}
 Types of memory. More...
 
enum  amdsmi_freq_ind_t { AMDSMI_FREQ_IND_MIN = 0 , AMDSMI_FREQ_IND_MAX = 1 , AMDSMI_FREQ_IND_INVALID = 0xFFFFFFFF }
 The values of this enum are used as frequency identifiers. More...
 
enum  amdsmi_xgmi_status_t { AMDSMI_XGMI_STATUS_NO_ERRORS = 0 , AMDSMI_XGMI_STATUS_ERROR , AMDSMI_XGMI_STATUS_MULTIPLE_ERRORS }
 XGMI Status. More...
 
enum  amdsmi_memory_page_status_t { AMDSMI_MEM_PAGE_STATUS_RESERVED = 0 , AMDSMI_MEM_PAGE_STATUS_PENDING , AMDSMI_MEM_PAGE_STATUS_UNRESERVABLE }
 Reserved Memory Page States. More...
 
enum  amdsmi_utilization_counter_type_t {
  AMDSMI_UTILIZATION_COUNTER_FIRST = 0 , AMDSMI_COARSE_GRAIN_GFX_ACTIVITY = AMDSMI_UTILIZATION_COUNTER_FIRST , AMDSMI_COARSE_GRAIN_MEM_ACTIVITY , AMDSMI_COARSE_DECODER_ACTIVITY ,
  AMDSMI_FINE_GRAIN_GFX_ACTIVITY = 100 , AMDSMI_FINE_GRAIN_MEM_ACTIVITY = 101 , AMDSMI_FINE_DECODER_ACTIVITY = 102 , AMDSMI_UTILIZATION_COUNTER_LAST = AMDSMI_FINE_DECODER_ACTIVITY
}
 The utilization counter type. More...
 
enum  amdsmi_xgmi_link_status_type_t { AMDSMI_XGMI_LINK_DOWN , AMDSMI_XGMI_LINK_UP , AMDSMI_XGMI_LINK_DISABLE }
 XGMI Link Status Type. More...
 
enum  amdsmi_reg_type_t {
  AMDSMI_REG_XGMI , AMDSMI_REG_WAFL , AMDSMI_REG_PCIE , AMDSMI_REG_USR ,
  AMDSMI_REG_USR1
}
 This register type for register table. More...
 
enum  amdsmi_virtualization_mode_t {
  AMDSMI_VIRTUALIZATION_MODE_UNKNOWN = 0 , AMDSMI_VIRTUALIZATION_MODE_BAREMETAL , AMDSMI_VIRTUALIZATION_MODE_HOST , AMDSMI_VIRTUALIZATION_MODE_GUEST ,
  AMDSMI_VIRTUALIZATION_MODE_PASSTHROUGH
}
 Variant placeholder. More...
 
enum  amdsmi_affinity_scope_t { AMDSMI_AFFINITY_SCOPE_NODE = 0 , AMDSMI_AFFINITY_SCOPE_SOCKET = 1 }
 Scope for Numa affinity or Socket affinity.
 
enum  amdsmi_io_bw_encoding_t { AGG_BW0 = 1 , RD_BW0 = 2 , WR_BW0 = 4 }
 xGMI Bandwidth Encoding types More...
 

Functions

amdsmi_status_t amdsmi_init (uint64_t init_flags)
 Initialize the AMD SMI library. More...
 
amdsmi_status_t amdsmi_shut_down (void)
 Shutdown the AMD SMI library. More...
 
amdsmi_status_t amdsmi_get_socket_handles (uint32_t *socket_count, amdsmi_socket_handle *socket_handles)
 Get the list of socket handles in the system. More...
 
amdsmi_status_t amdsmi_get_cpu_handles (uint32_t *cpu_count, amdsmi_processor_handle *processor_handles)
 Get the list of cpu handles in the system. More...
 
amdsmi_status_t amdsmi_get_socket_info (amdsmi_socket_handle socket_handle, size_t len, char *name)
 Get information about the given socket. More...
 
amdsmi_status_t amdsmi_get_processor_info (amdsmi_processor_handle processor_handle, size_t len, char *name)
 Get information about the given processor. More...
 
amdsmi_status_t amdsmi_get_processor_count_from_handles (amdsmi_processor_handle *processor_handles, uint32_t *processor_count, uint32_t *nr_cpusockets, uint32_t *nr_cpucores, uint32_t *nr_gpus)
 Get respective processor counts from the processor handles. More...
 
amdsmi_status_t amdsmi_get_processor_handles_by_type (amdsmi_socket_handle socket_handle, processor_type_t processor_type, amdsmi_processor_handle *processor_handles, uint32_t *processor_count)
 Get processor list as per processor type. More...
 
amdsmi_status_t amdsmi_get_processor_handles (amdsmi_socket_handle socket_handle, uint32_t *processor_count, amdsmi_processor_handle *processor_handles)
 Get the list of the processor handles associated to a socket. More...
 
amdsmi_status_t amdsmi_get_cpucore_handles (uint32_t *cores_count, amdsmi_processor_handle *processor_handles)
 Get the list of the cpu core handles in a system. More...
 
amdsmi_status_t amdsmi_get_processor_type (amdsmi_processor_handle processor_handle, processor_type_t *processor_type)
 Get the processor type of the processor_handle. More...
 
amdsmi_status_t amdsmi_get_processor_handle_from_bdf (amdsmi_bdf_t bdf, amdsmi_processor_handle *processor_handle)
 Get processor handle with the matching bdf. More...
 
amdsmi_status_t amdsmi_get_gpu_device_bdf (amdsmi_processor_handle processor_handle, amdsmi_bdf_t *bdf)
 Returns BDF of the given device. More...
 
amdsmi_status_t amdsmi_get_gpu_device_uuid (amdsmi_processor_handle processor_handle, unsigned int *uuid_length, char *uuid)
 Returns the UUID of the device. More...
 
amdsmi_status_t amdsmi_get_gpu_enumeration_info (amdsmi_processor_handle processor_handle, amdsmi_enumeration_info_t *info)
 Returns the Enumeration information for the device. More...
 
amdsmi_status_t amdsmi_get_cpu_affinity_with_scope (amdsmi_processor_handle processor_handle, uint32_t cpu_set_size, uint64_t *cpu_set, amdsmi_affinity_scope_t scope)
 Retrieves an array of uint64_t (sized to cpu_set_size) of bitmasks with the affinity within numa node or socket for the device. More...
 
amdsmi_status_t amdsmi_get_gpu_virtualization_mode (amdsmi_processor_handle processor_handle, amdsmi_virtualization_mode_t *mode)
 Returns the virtualization mode for the target device. More...
 
amdsmi_status_t amdsmi_get_gpu_id (amdsmi_processor_handle processor_handle, uint16_t *id)
 Get the device id associated with the device with provided device handler. More...
 
amdsmi_status_t amdsmi_get_gpu_revision (amdsmi_processor_handle processor_handle, uint16_t *revision)
 Get the device revision associated with the device. More...
 
amdsmi_status_t amdsmi_get_gpu_vendor_name (amdsmi_processor_handle processor_handle, char *name, size_t len)
 Get the name string for a give vendor ID. More...
 
amdsmi_status_t amdsmi_get_gpu_vram_vendor (amdsmi_processor_handle processor_handle, char *brand, uint32_t len)
 Get the vram vendor string of a device. More...
 
amdsmi_status_t amdsmi_get_gpu_subsystem_id (amdsmi_processor_handle processor_handle, uint16_t *id)
 Get the subsystem device id associated with the device with provided processor handle. More...
 
amdsmi_status_t amdsmi_get_gpu_subsystem_name (amdsmi_processor_handle processor_handle, char *name, size_t len)
 Get the name string for the device subsytem. More...
 
amdsmi_status_t amdsmi_get_gpu_pci_bandwidth (amdsmi_processor_handle processor_handle, amdsmi_pcie_bandwidth_t *bandwidth)
 Get the list of possible PCIe bandwidths that are available. It is not supported on virtual machine guest. More...
 
amdsmi_status_t amdsmi_get_gpu_bdf_id (amdsmi_processor_handle processor_handle, uint64_t *bdfid)
 Get the unique PCI device identifier associated for a device. More...
 
amdsmi_status_t amdsmi_get_gpu_topo_numa_affinity (amdsmi_processor_handle processor_handle, int32_t *numa_node)
 Get the NUMA node associated with a device. More...
 
amdsmi_status_t amdsmi_get_gpu_pci_throughput (amdsmi_processor_handle processor_handle, uint64_t *sent, uint64_t *received, uint64_t *max_pkt_sz)
 Get PCIe traffic information. It is not supported on virtual machine guest. More...
 
amdsmi_status_t amdsmi_get_gpu_pci_replay_counter (amdsmi_processor_handle processor_handle, uint64_t *counter)
 Get PCIe replay counter. More...
 
amdsmi_status_t amdsmi_set_gpu_pci_bandwidth (amdsmi_processor_handle processor_handle, uint64_t bw_bitmask)
 Control the set of allowed PCIe bandwidths that can be used. It is not supported on virtual machine guest. More...
 
amdsmi_status_t amdsmi_get_energy_count (amdsmi_processor_handle processor_handle, uint64_t *energy_accumulator, float *counter_resolution, uint64_t *timestamp)
 Get the energy accumulator counter of the processor with provided processor handle. It is not supported on virtual machine guest. More...
 
amdsmi_status_t amdsmi_set_power_cap (amdsmi_processor_handle processor_handle, uint32_t sensor_ind, uint64_t cap)
 Set the maximum gpu power cap value. It is not supported on virtual machine guest. More...
 
amdsmi_status_t amdsmi_set_gpu_power_profile (amdsmi_processor_handle processor_handle, uint32_t reserved, amdsmi_power_profile_preset_masks_t profile)
 Set the power performance profile. It is not supported on virtual machine guest. More...
 
amdsmi_status_t amdsmi_get_cpu_socket_power (amdsmi_processor_handle processor_handle, uint32_t *ppower)
 Get the socket power. More...
 
amdsmi_status_t amdsmi_get_cpu_socket_power_cap (amdsmi_processor_handle processor_handle, uint32_t *pcap)
 Get the socket power cap. More...
 
amdsmi_status_t amdsmi_get_cpu_socket_power_cap_max (amdsmi_processor_handle processor_handle, uint32_t *pmax)
 Get the maximum power cap value for a given socket. More...
 
amdsmi_status_t amdsmi_get_cpu_pwr_svi_telemetry_all_rails (amdsmi_processor_handle processor_handle, uint32_t *power)
 Get the SVI based power telemetry for all rails. More...
 
amdsmi_status_t amdsmi_set_cpu_socket_power_cap (amdsmi_processor_handle processor_handle, uint32_t pcap)
 Set the power cap value for a given socket. More...
 
amdsmi_status_t amdsmi_set_cpu_pwr_efficiency_mode (amdsmi_processor_handle processor_handle, uint8_t mode)
 Set the power efficiency profile policy. More...
 
amdsmi_status_t amdsmi_get_gpu_memory_total (amdsmi_processor_handle processor_handle, amdsmi_memory_type_t mem_type, uint64_t *total)
 Get the total amount of memory that exists. More...
 
amdsmi_status_t amdsmi_get_gpu_memory_usage (amdsmi_processor_handle processor_handle, amdsmi_memory_type_t mem_type, uint64_t *used)
 Get the current memory usage. More...
 
amdsmi_status_t amdsmi_get_gpu_bad_page_info (amdsmi_processor_handle processor_handle, uint32_t *num_pages, amdsmi_retired_page_record_t *info)
 Get the bad pages of a processor. It is not supported on virtual machine guest. More...
 
amdsmi_status_t amdsmi_get_gpu_bad_page_threshold (amdsmi_processor_handle processor_handle, uint32_t *threshold)
 Get the bad pages threshold of a processor. It is not supported on virtual machine guest. More...
 
amdsmi_status_t amdsmi_gpu_validate_ras_eeprom (amdsmi_processor_handle processor_handle)
 Verify the checksum of RAS EEPROM. It is not supported on virtual machine guest. More...
 
amdsmi_status_t amdsmi_get_gpu_ras_feature_info (amdsmi_processor_handle processor_handle, amdsmi_ras_feature_t *ras_feature)
 Returns RAS features info. More...
 
amdsmi_status_t amdsmi_get_gpu_ras_block_features_enabled (amdsmi_processor_handle processor_handle, amdsmi_gpu_block_t block, amdsmi_ras_err_state_t *state)
 Returns if RAS features are enabled or disabled for given block. It is not supported on virtual machine guest. More...
 
amdsmi_status_t amdsmi_get_gpu_memory_reserved_pages (amdsmi_processor_handle processor_handle, uint32_t *num_pages, amdsmi_retired_page_record_t *records)
 Get information about reserved ("retired") memory pages. It is not supported on virtual machine guest. More...
 
amdsmi_status_t amdsmi_get_gpu_fan_rpms (amdsmi_processor_handle processor_handle, uint32_t sensor_ind, int64_t *speed)
 Get the fan speed in RPMs of the device with the specified processor handle and 0-based sensor index. It is not supported on virtual machine guest. More...
 
amdsmi_status_t amdsmi_get_gpu_fan_speed (amdsmi_processor_handle processor_handle, uint32_t sensor_ind, int64_t *speed)
 Get the fan speed for the specified device as a value relative to AMDSMI_MAX_FAN_SPEED. It is not supported on virtual machine guest. More...
 
amdsmi_status_t amdsmi_get_gpu_fan_speed_max (amdsmi_processor_handle processor_handle, uint32_t sensor_ind, uint64_t *max_speed)
 Get the max. fan speed of the device with provided processor handle. It is not supported on virtual machine guest. More...
 
amdsmi_status_t amdsmi_get_temp_metric (amdsmi_processor_handle processor_handle, amdsmi_temperature_type_t sensor_type, amdsmi_temperature_metric_t metric, int64_t *temperature)
 Get the temperature metric value for the specified metric, from the specified temperature sensor on the specified device. It is not supported on virtual machine guest. More...
 
amdsmi_status_t amdsmi_get_gpu_cache_info (amdsmi_processor_handle processor_handle, amdsmi_gpu_cache_info_t *info)
 Returns gpu cache info. More...
 
amdsmi_status_t amdsmi_get_gpu_volt_metric (amdsmi_processor_handle processor_handle, amdsmi_voltage_type_t sensor_type, amdsmi_voltage_metric_t metric, int64_t *voltage)
 Get the voltage metric value for the specified metric, from the specified voltage sensor on the specified device. It is not supported on virtual machine guest. More...
 
amdsmi_status_t amdsmi_reset_gpu_fan (amdsmi_processor_handle processor_handle, uint32_t sensor_ind)
 Reset the fan to automatic driver control. It is not supported on virtual machine guest. More...
 
amdsmi_status_t amdsmi_set_gpu_fan_speed (amdsmi_processor_handle processor_handle, uint32_t sensor_ind, uint64_t speed)
 Set the fan speed for the specified device with the provided speed, in RPMs. It is not supported on virtual machine guest. More...
 
amdsmi_status_t amdsmi_get_gpu_busy_percent (amdsmi_processor_handle processor_handle, uint32_t *gpu_busy_percent)
 Get GPU busy percent from gpu_busy_percent sysfs file. More...
 
amdsmi_status_t amdsmi_get_utilization_count (amdsmi_processor_handle processor_handle, amdsmi_utilization_counter_t utilization_counters[], uint32_t count, uint64_t *timestamp)
 Get coarse grain utilization counter of the specified device. More...
 
amdsmi_status_t amdsmi_get_gpu_perf_level (amdsmi_processor_handle processor_handle, amdsmi_dev_perf_level_t *perf)
 Get the performance level of the device. It is not supported on virtual machine guest. More...
 
amdsmi_status_t amdsmi_set_gpu_perf_determinism_mode (amdsmi_processor_handle processor_handle, uint64_t clkvalue)
 Enter performance determinism mode with provided processor handle. It is not supported on virtual machine guest. More...
 
amdsmi_status_t amdsmi_get_gpu_overdrive_level (amdsmi_processor_handle processor_handle, uint32_t *od)
 Get the overdrive percent associated with the device with provided processor handle. It is not supported on virtual machine guest. More...
 
amdsmi_status_t amdsmi_get_gpu_mem_overdrive_level (amdsmi_processor_handle processor_handle, uint32_t *od)
 Get the GPU memory clock overdrive percent associated with the device with provided processor handle. It is not supported on virtual machine guest. More...
 
amdsmi_status_t amdsmi_get_clk_freq (amdsmi_processor_handle processor_handle, amdsmi_clk_type_t clk_type, amdsmi_frequencies_t *f)
 Get the list of possible system clock speeds of device for a specified clock type. It is not supported on virtual machine guest. More...
 
amdsmi_status_t amdsmi_reset_gpu (amdsmi_processor_handle processor_handle)
 Reset the gpu associated with the device with provided processor handle. It is not supported on virtual machine guest. More...
 
amdsmi_status_t amdsmi_get_gpu_od_volt_info (amdsmi_processor_handle processor_handle, amdsmi_od_volt_freq_data_t *odv)
 This function retrieves the overdrive GFX & MCLK information. If valid for the GPU it will also populate the voltage curve data. It is not supported on virtual machine guest. More...
 
amdsmi_status_t amdsmi_get_gpu_metrics_header_info (amdsmi_processor_handle processor_handle, amd_metrics_table_header_t *header_value)
 Get the 'metrics_header_info' from the GPU metrics associated with the device. More...
 
amdsmi_status_t amdsmi_get_gpu_metrics_info (amdsmi_processor_handle processor_handle, amdsmi_gpu_metrics_t *pgpu_metrics)
 This function retrieves the gpu metrics information. It is not supported on virtual machine guest. More...
 
amdsmi_status_t amdsmi_get_gpu_pm_metrics_info (amdsmi_processor_handle processor_handle, amdsmi_name_value_t **pm_metrics, uint32_t *num_of_metrics)
 Get the pm metrics table with provided device index. More...
 
amdsmi_status_t amdsmi_get_gpu_reg_table_info (amdsmi_processor_handle processor_handle, amdsmi_reg_type_t reg_type, amdsmi_name_value_t **reg_metrics, uint32_t *num_of_metrics)
 Get the register metrics table with provided device index and register type. More...
 
amdsmi_status_t amdsmi_set_gpu_clk_range (amdsmi_processor_handle processor_handle, uint64_t minclkvalue, uint64_t maxclkvalue, amdsmi_clk_type_t clkType)
 This function sets the clock range information. It is not supported on virtual machine guest. More...
 
amdsmi_status_t amdsmi_set_gpu_clk_limit (amdsmi_processor_handle processor_handle, amdsmi_clk_type_t clk_type, amdsmi_clk_limit_type_t limit_type, uint64_t clk_value)
 This function sets the clock sets the clock min/max level. More...
 
amdsmi_status_t amdsmi_set_gpu_od_clk_info (amdsmi_processor_handle processor_handle, amdsmi_freq_ind_t level, uint64_t clkvalue, amdsmi_clk_type_t clkType)
 This function sets the clock frequency information. It is not supported on virtual machine guest. More...
 
amdsmi_status_t amdsmi_set_gpu_od_volt_info (amdsmi_processor_handle processor_handle, uint32_t vpoint, uint64_t clkvalue, uint64_t voltvalue)
 This function sets 1 of the 3 voltage curve points. It is not supported on virtual machine guest. More...
 
amdsmi_status_t amdsmi_get_gpu_od_volt_curve_regions (amdsmi_processor_handle processor_handle, uint32_t *num_regions, amdsmi_freq_volt_region_t *buffer)
 This function will retrieve the current valid regions in the frequency/voltage space. It is not supported on virtual machine guest. More...
 
amdsmi_status_t amdsmi_get_gpu_power_profile_presets (amdsmi_processor_handle processor_handle, uint32_t sensor_ind, amdsmi_power_profile_status_t *status)
 Get the list of available preset power profiles and an indication of which profile is currently active. It is not supported on virtual machine guest. More...
 
amdsmi_status_t amdsmi_set_gpu_perf_level (amdsmi_processor_handle processor_handle, amdsmi_dev_perf_level_t perf_lvl)
 Set the PowerPlay performance level associated with the device with provided processor handle with the provided value. It is not supported on virtual machine guest. More...
 
amdsmi_status_t amdsmi_set_gpu_overdrive_level (amdsmi_processor_handle processor_handle, uint32_t od)
 Set the overdrive percent associated with the device with provided processor handle with the provided value. See details for WARNING. It is not supported on virtual machine guest. More...
 
amdsmi_status_t amdsmi_set_clk_freq (amdsmi_processor_handle processor_handle, amdsmi_clk_type_t clk_type, uint64_t freq_bitmask)
 Control the set of allowed frequencies that can be used for the specified clock. It is not supported on virtual machine guest. More...
 
amdsmi_status_t amdsmi_get_soc_pstate (amdsmi_processor_handle processor_handle, amdsmi_dpm_policy_t *policy)
 Get the soc pstate policy for the processor. More...
 
amdsmi_status_t amdsmi_set_soc_pstate (amdsmi_processor_handle processor_handle, uint32_t policy_id)
 Set the soc pstate policy for the processor. More...
 
amdsmi_status_t amdsmi_get_xgmi_plpd (amdsmi_processor_handle processor_handle, amdsmi_dpm_policy_t *xgmi_plpd)
 Get the xgmi per-link power down policy parameter for the processor. More...
 
amdsmi_status_t amdsmi_set_xgmi_plpd (amdsmi_processor_handle processor_handle, uint32_t policy_id)
 Set the xgmi per-link power down policy parameter for the processor. More...
 
amdsmi_status_t amdsmi_get_gpu_process_isolation (amdsmi_processor_handle processor_handle, uint32_t *pisolate)
 Get the status of the Process Isolation. More...
 
amdsmi_status_t amdsmi_set_gpu_process_isolation (amdsmi_processor_handle processor_handle, uint32_t pisolate)
 Enable/disable the system Process Isolation. More...
 
amdsmi_status_t amdsmi_clean_gpu_local_data (amdsmi_processor_handle processor_handle)
 Run the cleaner shader to clean up data in LDS/GPRs. More...
 
amdsmi_status_t amdsmi_get_lib_version (amdsmi_version_t *version)
 Get the build version information for the currently running build of AMDSMI. More...
 
amdsmi_status_t amdsmi_get_gpu_ecc_count (amdsmi_processor_handle processor_handle, amdsmi_gpu_block_t block, amdsmi_error_count_t *ec)
 Retrieve the error counts for a GPU block. It is not supported on virtual machine guest. More...
 
amdsmi_status_t amdsmi_get_gpu_ecc_enabled (amdsmi_processor_handle processor_handle, uint64_t *enabled_blocks)
 Retrieve the enabled ECC bit-mask. It is not supported on virtual machine guest. More...
 
amdsmi_status_t amdsmi_get_gpu_total_ecc_count (amdsmi_processor_handle processor_handle, amdsmi_error_count_t *ec)
 Returns the total number of ECC errors (correctable, uncorrectable and deferred) in the given GPU. It is not supported on virtual machine guest. More...
 
amdsmi_status_t amdsmi_get_gpu_cper_entries (amdsmi_processor_handle processor_handle, uint32_t severity_mask, char *cper_data, uint64_t *buf_size, amdsmi_cper_hdr_t **cper_hdrs, uint64_t *entry_count, uint64_t *cursor)
 Retrieve CPER entries cached in the driver. More...
 
amdsmi_status_t amdsmi_get_afids_from_cper (char *cper_buffer, uint32_t buf_size, uint64_t *afids, uint32_t *num_afids)
 Get the AFIDs from CPER buffer. More...
 
amdsmi_status_t amdsmi_get_gpu_ecc_status (amdsmi_processor_handle processor_handle, amdsmi_gpu_block_t block, amdsmi_ras_err_state_t *state)
 Retrieve the ECC status for a GPU block. It is not supported on virtual machine guest. More...
 
amdsmi_status_t amdsmi_status_code_to_string (amdsmi_status_t status, const char **status_string)
 Get a description of a provided AMDSMI error status. More...
 
amdsmi_status_t amdsmi_gpu_counter_group_supported (amdsmi_processor_handle processor_handle, amdsmi_event_group_t group)
 Tell if an event group is supported by a given device. It is not supported on virtual machine guest. More...
 
amdsmi_status_t amdsmi_gpu_create_counter (amdsmi_processor_handle processor_handle, amdsmi_event_type_t type, amdsmi_event_handle_t *evnt_handle)
 Create a performance counter object. More...
 
amdsmi_status_t amdsmi_gpu_destroy_counter (amdsmi_event_handle_t evnt_handle)
 Deallocate a performance counter object. More...
 
amdsmi_status_t amdsmi_gpu_control_counter (amdsmi_event_handle_t evt_handle, amdsmi_counter_command_t cmd, void *cmd_args)
 Issue performance counter control commands. It is not supported on virtual machine guest. More...
 
amdsmi_status_t amdsmi_gpu_read_counter (amdsmi_event_handle_t evt_handle, amdsmi_counter_value_t *value)
 Read the current value of a performance counter. More...
 
amdsmi_status_t amdsmi_get_gpu_available_counters (amdsmi_processor_handle processor_handle, amdsmi_event_group_t grp, uint32_t *available)
 Get the number of currently available counters. It is not supported on virtual machine guest. More...
 
amdsmi_status_t amdsmi_get_gpu_compute_process_info (amdsmi_process_info_t *procs, uint32_t *num_items)
 Get process information about processes currently using GPU. More...
 
amdsmi_status_t amdsmi_get_gpu_compute_process_info_by_pid (uint32_t pid, amdsmi_process_info_t *proc)
 Get process information about a specific process. More...
 
amdsmi_status_t amdsmi_get_gpu_compute_process_gpus (uint32_t pid, uint32_t *dv_indices, uint32_t *num_devices)
 Get the device indices currently being used by a process. More...
 
amdsmi_status_t amdsmi_gpu_xgmi_error_status (amdsmi_processor_handle processor_handle, amdsmi_xgmi_status_t *status)
 Retrieve the XGMI error status for a device. It is not supported on virtual machine guest. More...
 
amdsmi_status_t amdsmi_reset_gpu_xgmi_error (amdsmi_processor_handle processor_handle)
 Reset the XGMI error status for a device. It is not supported on virtual machine guest. More...
 
amdsmi_status_t amdsmi_get_xgmi_info (amdsmi_processor_handle processor_handle, amdsmi_xgmi_info_t *info)
 Returns XGMI information for the GPU. More...
 
amdsmi_status_t amdsmi_get_gpu_xgmi_link_status (amdsmi_processor_handle processor_handle, amdsmi_xgmi_link_status_t *link_status)
 Get the XGMI link status. More...
 
amdsmi_status_t amdsmi_get_link_metrics (amdsmi_processor_handle processor_handle, amdsmi_link_metrics_t *link_metrics)
 Return link metric information. More...
 
amdsmi_status_t amdsmi_topo_get_numa_node_number (amdsmi_processor_handle processor_handle, uint32_t *numa_node)
 Retrieve the NUMA CPU node number for a device. More...
 
amdsmi_status_t amdsmi_topo_get_link_weight (amdsmi_processor_handle processor_handle_src, amdsmi_processor_handle processor_handle_dst, uint64_t *weight)
 Retrieve the weight for a connection between 2 GPUs. More...
 
amdsmi_status_t amdsmi_get_minmax_bandwidth_between_processors (amdsmi_processor_handle processor_handle_src, amdsmi_processor_handle processor_handle_dst, uint64_t *min_bandwidth, uint64_t *max_bandwidth)
 Retreive minimal and maximal io link bandwidth between 2 GPUs. More...
 
amdsmi_status_t amdsmi_topo_get_link_type (amdsmi_processor_handle processor_handle_src, amdsmi_processor_handle processor_handle_dst, uint64_t *hops, amdsmi_link_type_t *type)
 Retrieve the hops and the connection type between 2 GPUs. More...
 
amdsmi_status_t amdsmi_get_link_topology_nearest (amdsmi_processor_handle processor_handle, amdsmi_link_type_t link_type, amdsmi_topology_nearest_t *topology_nearest_info)
 Retrieve the set of GPUs that are nearest to a given device at a specific interconnectivity level. More...
 
amdsmi_status_t amdsmi_is_P2P_accessible (amdsmi_processor_handle processor_handle_src, amdsmi_processor_handle processor_handle_dst, bool *accessible)
 Return P2P availability status between 2 GPUs. More...
 
amdsmi_status_t amdsmi_topo_get_p2p_status (amdsmi_processor_handle processor_handle_src, amdsmi_processor_handle processor_handle_dst, amdsmi_link_type_t *type, amdsmi_p2p_capability_t *cap)
 Retrieve connection type and P2P capabilities between 2 GPUs. More...
 
amdsmi_status_t amdsmi_get_gpu_compute_partition (amdsmi_processor_handle processor_handle, char *compute_partition, uint32_t len)
 Retrieves the current compute partitioning for a desired device. More...
 
amdsmi_status_t amdsmi_set_gpu_compute_partition (amdsmi_processor_handle processor_handle, amdsmi_compute_partition_type_t compute_partition)
 Modifies a selected device's compute partition setting. More...
 
amdsmi_status_t amdsmi_get_gpu_memory_partition (amdsmi_processor_handle processor_handle, char *memory_partition, uint32_t len)
 Retrieves the current memory partition for a desired device. More...
 
amdsmi_status_t amdsmi_set_gpu_memory_partition (amdsmi_processor_handle processor_handle, amdsmi_memory_partition_type_t memory_partition)
 Modifies a selected device's current memory partition setting. More...
 
amdsmi_status_t amdsmi_get_gpu_memory_partition_config (amdsmi_processor_handle processor_handle, amdsmi_memory_partition_config_t *config)
 Version 2.0: Returns current gpu memory partition capabilities. More...
 
amdsmi_status_t amdsmi_set_gpu_memory_partition_mode (amdsmi_processor_handle processor_handle, amdsmi_memory_partition_type_t mode)
 Version 2.0: Set accelerator partition setting based on profile_index from amdsmi_get_gpu_accelerator_partition_profile_config. More...
 
amdsmi_status_t amdsmi_get_gpu_accelerator_partition_profile_config (amdsmi_processor_handle processor_handle, amdsmi_accelerator_partition_profile_config_t *profile_config)
 Version 2.0: Returns gpu accelerator partition caps as currently configured in the system User must use admin/sudo privledges to run this API, or API will not be able to read resources. Otherwise, API will fill in the structure with as much information as possible. More...
 
amdsmi_status_t amdsmi_get_gpu_accelerator_partition_profile (amdsmi_processor_handle processor_handle, amdsmi_accelerator_partition_profile_t *profile, uint32_t *partition_id)
 Version 2.0: Returns gpu accelerator partition caps as currently configured in the system User must use admin/sudo privledges to run this API, or API will not be able to read resources. Otherwise, API will fill in the structure with as much information as possible. More...
 
amdsmi_status_t amdsmi_set_gpu_accelerator_partition_profile (amdsmi_processor_handle processor_handle, uint32_t profile_index)
 Version 2.0: Set accelerator partition setting based on profile_index from amdsmi_get_gpu_accelerator_partition_profile_config. More...
 
amdsmi_status_t amdsmi_init_gpu_event_notification (amdsmi_processor_handle processor_handle)
 Prepare to collect event notifications for a GPU. More...
 
amdsmi_status_t amdsmi_set_gpu_event_notification_mask (amdsmi_processor_handle processor_handle, uint64_t mask)
 Specify which events to collect for a device. More...
 
amdsmi_status_t amdsmi_get_gpu_event_notification (int timeout_ms, uint32_t *num_elem, amdsmi_evt_notification_data_t *data)
 Collect event notifications, waiting a specified amount of time. More...
 
amdsmi_status_t amdsmi_stop_gpu_event_notification (amdsmi_processor_handle processor_handle)
 Close any file handles and free any resources used by event notification for a GPU. More...
 
amdsmi_status_t amdsmi_get_gpu_driver_info (amdsmi_processor_handle processor_handle, amdsmi_driver_info_t *info)
 Returns the driver version information. More...
 
amdsmi_status_t amdsmi_get_gpu_asic_info (amdsmi_processor_handle processor_handle, amdsmi_asic_info_t *info)
 Returns the ASIC information for the device. More...
 
amdsmi_status_t amdsmi_get_gpu_kfd_info (amdsmi_processor_handle processor_handle, amdsmi_kfd_info_t *info)
 Returns the KFD (Kernel Fusion Driver) information for the device. More...
 
amdsmi_status_t amdsmi_get_gpu_vram_info (amdsmi_processor_handle processor_handle, amdsmi_vram_info_t *info)
 Returns vram info. More...
 
amdsmi_status_t amdsmi_get_gpu_board_info (amdsmi_processor_handle processor_handle, amdsmi_board_info_t *info)
 Returns the board part number and board information for the requested device. More...
 
amdsmi_status_t amdsmi_get_power_cap_info (amdsmi_processor_handle processor_handle, uint32_t sensor_ind, amdsmi_power_cap_info_t *info)
 Returns the power caps as currently configured in the system. Power in units of uW. It is not supported on virtual machine guest. More...
 
amdsmi_status_t amdsmi_get_pcie_info (amdsmi_processor_handle processor_handle, amdsmi_pcie_info_t *info)
 Returns the PCIe info for the GPU. More...
 
amdsmi_status_t amdsmi_get_gpu_xcd_counter (amdsmi_processor_handle processor_handle, uint16_t *xcd_count)
 Returns the 'xcd_counter' from the GPU metrics associated with the device. More...
 
amdsmi_status_t amdsmi_get_fw_info (amdsmi_processor_handle processor_handle, amdsmi_fw_info_t *info)
 Returns the firmware versions running on the device. More...
 
amdsmi_status_t amdsmi_get_gpu_vbios_info (amdsmi_processor_handle processor_handle, amdsmi_vbios_info_t *info)
 Returns the static information for the vBIOS on the device. More...
 
amdsmi_status_t amdsmi_get_gpu_activity (amdsmi_processor_handle processor_handle, amdsmi_engine_usage_t *info)
 Returns the current usage of the GPU engines (GFX, MM and MEM). Each usage is reported as a percentage from 0-100%. It is not supported on virtual machine guest. More...
 
amdsmi_status_t amdsmi_get_power_info (amdsmi_processor_handle processor_handle, amdsmi_power_info_t *info)
 Returns the current power and voltage of the GPU. More...
 
amdsmi_status_t amdsmi_is_gpu_power_management_enabled (amdsmi_processor_handle processor_handle, bool *enabled)
 Returns is power management enabled. More...
 
amdsmi_status_t amdsmi_get_clock_info (amdsmi_processor_handle processor_handle, amdsmi_clk_type_t clk_type, amdsmi_clk_info_t *info)
 Returns the measurements of the clocks in the GPU for the GFX and multimedia engines and Memory. This call reports the averages over 1s in MHz. It is not supported on virtual machine guest. More...
 
amdsmi_status_t amdsmi_get_gpu_vram_usage (amdsmi_processor_handle processor_handle, amdsmi_vram_usage_t *info)
 Returns the VRAM usage (both total and used memory) in MegaBytes. More...
 
amdsmi_status_t amdsmi_get_violation_status (amdsmi_processor_handle processor_handle, amdsmi_violation_status_t *info)
 Returns the violations for a processor. More...
 
amdsmi_status_t amdsmi_get_gpu_process_list (amdsmi_processor_handle processor_handle, uint32_t *max_processes, amdsmi_proc_info_t *list)
 Returns the list of process information running on a given GPU. If pdh.dll is not present on the system, this API returns AMDSMI_STATUS_NOT_SUPPORTED. More...
 
amdsmi_status_t amdsmi_gpu_driver_reload (void)
 Restart the device driver (kmod module) for all AMD GPUs on the system. More...
 
amdsmi_status_t amdsmi_get_cpu_core_energy (amdsmi_processor_handle processor_handle, uint64_t *penergy)
 Get the core energy for a given core. More...
 
amdsmi_status_t amdsmi_get_cpu_socket_energy (amdsmi_processor_handle processor_handle, uint64_t *penergy)
 Get the socket energy for a given socket. More...
 
amdsmi_status_t amdsmi_get_threads_per_core (uint32_t *threads_per_core)
 Get Number of threads Per Core. More...
 
amdsmi_status_t amdsmi_get_cpu_hsmp_driver_version (amdsmi_processor_handle processor_handle, amdsmi_hsmp_driver_version_t *amdsmi_hsmp_driver_ver)
 Get HSMP Driver Version. More...
 
amdsmi_status_t amdsmi_get_cpu_smu_fw_version (amdsmi_processor_handle processor_handle, amdsmi_smu_fw_version_t *amdsmi_smu_fw)
 Get SMU Firmware Version. More...
 
amdsmi_status_t amdsmi_get_cpu_hsmp_proto_ver (amdsmi_processor_handle processor_handle, uint32_t *proto_ver)
 Get HSMP protocol Version. More...
 
amdsmi_status_t amdsmi_get_cpu_prochot_status (amdsmi_processor_handle processor_handle, uint32_t *prochot)
 Get normalized status of the processor's PROCHOT status. More...
 
amdsmi_status_t amdsmi_get_cpu_fclk_mclk (amdsmi_processor_handle processor_handle, uint32_t *fclk, uint32_t *mclk)
 Get Data fabric clock and Memory clock in MHz. More...
 
amdsmi_status_t amdsmi_get_cpu_cclk_limit (amdsmi_processor_handle processor_handle, uint32_t *cclk)
 Get core clock in MHz. More...
 
amdsmi_status_t amdsmi_get_cpu_socket_current_active_freq_limit (amdsmi_processor_handle processor_handle, uint16_t *freq, char **src_type)
 Get current active frequency limit of the socket. More...
 
amdsmi_status_t amdsmi_get_cpu_socket_freq_range (amdsmi_processor_handle processor_handle, uint16_t *fmax, uint16_t *fmin)
 Get socket frequency range. More...
 
amdsmi_status_t amdsmi_get_cpu_core_current_freq_limit (amdsmi_processor_handle processor_handle, uint32_t *freq)
 Get socket frequency limit of the core. More...
 
amdsmi_status_t amdsmi_get_cpu_core_boostlimit (amdsmi_processor_handle processor_handle, uint32_t *pboostlimit)
 Get the core boost limit. More...
 
amdsmi_status_t amdsmi_get_cpu_socket_c0_residency (amdsmi_processor_handle processor_handle, uint32_t *pc0_residency)
 Get the socket c0 residency. More...
 
amdsmi_status_t amdsmi_set_cpu_core_boostlimit (amdsmi_processor_handle processor_handle, uint32_t boostlimit)
 Set the core boostlimit value. More...
 
amdsmi_status_t amdsmi_set_cpu_socket_boostlimit (amdsmi_processor_handle processor_handle, uint32_t boostlimit)
 Set the socket boostlimit value. More...
 
amdsmi_status_t amdsmi_get_cpu_ddr_bw (amdsmi_processor_handle processor_handle, amdsmi_ddr_bw_metrics_t *ddr_bw)
 Get the DDR bandwidth data. More...
 
amdsmi_status_t amdsmi_get_cpu_socket_temperature (amdsmi_processor_handle processor_handle, uint32_t *ptmon)
 Get socket temperature. More...
 
amdsmi_status_t amdsmi_get_cpu_dimm_temp_range_and_refresh_rate (amdsmi_processor_handle processor_handle, uint8_t dimm_addr, amdsmi_temp_range_refresh_rate_t *rate)
 Get DIMM temperature range and refresh rate. More...
 
amdsmi_status_t amdsmi_get_cpu_dimm_power_consumption (amdsmi_processor_handle processor_handle, uint8_t dimm_addr, amdsmi_dimm_power_t *dimm_pow)
 Get DIMM power consumption. More...
 
amdsmi_status_t amdsmi_get_cpu_dimm_thermal_sensor (amdsmi_processor_handle processor_handle, uint8_t dimm_addr, amdsmi_dimm_thermal_t *dimm_temp)
 Get DIMM thermal sensor value. More...
 
amdsmi_status_t amdsmi_set_cpu_xgmi_width (amdsmi_processor_handle processor_handle, uint8_t min, uint8_t max)
 Set xgmi width. More...
 
amdsmi_status_t amdsmi_set_cpu_gmi3_link_width_range (amdsmi_processor_handle processor_handle, uint8_t min_link_width, uint8_t max_link_width)
 Set gmi3 link width range. More...
 
amdsmi_status_t amdsmi_cpu_apb_enable (amdsmi_processor_handle processor_handle)
 Enable APB. More...
 
amdsmi_status_t amdsmi_cpu_apb_disable (amdsmi_processor_handle processor_handle, uint8_t pstate)
 Disable APB. More...
 
amdsmi_status_t amdsmi_set_cpu_socket_lclk_dpm_level (amdsmi_processor_handle processor_handle, uint8_t nbio_id, uint8_t min, uint8_t max)
 Set NBIO lclk dpm level value. More...
 
amdsmi_status_t amdsmi_get_cpu_socket_lclk_dpm_level (amdsmi_processor_handle processor_handle, uint8_t nbio_id, amdsmi_dpm_level_t *nbio)
 Get NBIO LCLK dpm level. More...
 
amdsmi_status_t amdsmi_set_cpu_pcie_link_rate (amdsmi_processor_handle processor_handle, uint8_t rate_ctrl, uint8_t *prev_mode)
 Set pcie link rate. More...
 
amdsmi_status_t amdsmi_set_cpu_df_pstate_range (amdsmi_processor_handle processor_handle, uint8_t max_pstate, uint8_t min_pstate)
 Set df pstate range. More...
 
amdsmi_status_t amdsmi_get_cpu_current_io_bandwidth (amdsmi_processor_handle processor_handle, amdsmi_link_id_bw_type_t link, uint32_t *io_bw)
 Get current input output bandwidth. More...
 
amdsmi_status_t amdsmi_get_cpu_current_xgmi_bw (amdsmi_processor_handle processor_handle, amdsmi_link_id_bw_type_t link, uint32_t *xgmi_bw)
 Get current input output bandwidth. More...
 
amdsmi_status_t amdsmi_get_hsmp_metrics_table_version (amdsmi_processor_handle processor_handle, uint32_t *metrics_version)
 Get HSMP metrics table version. More...
 
amdsmi_status_t amdsmi_get_hsmp_metrics_table (amdsmi_processor_handle processor_handle, amdsmi_hsmp_metrics_table_t *metrics_table)
 Get HSMP metrics table. More...
 
amdsmi_status_t amdsmi_first_online_core_on_cpu_socket (amdsmi_processor_handle processor_handle, uint32_t *pcore_ind)
 Get first online core on socket. More...
 
amdsmi_status_t amdsmi_get_cpu_family (uint32_t *cpu_family)
 Get CPU family. More...
 
amdsmi_status_t amdsmi_get_cpu_model (uint32_t *cpu_model)
 Get CPU model. More...
 
amdsmi_status_t amdsmi_get_cpu_model_name (amdsmi_processor_handle processor_handle, amdsmi_cpu_info_t *cpu_info)
 Retrieve the CPU processor model name based on the processor index. More...
 
amdsmi_status_t amdsmi_get_esmi_err_msg (amdsmi_status_t status, const char **status_string)
 Get a description of provided AMDSMI error status for esmi errors. More...
 
amdsmi_status_t amdsmi_get_cpu_cores_per_socket (uint32_t sock_count, amdsmi_sock_info_t *soc_info)
 Get cpu cores per socket from sys filesystem. More...
 
amdsmi_status_t amdsmi_get_cpu_socket_count (uint32_t *sock_count)
 Get CPU socket count from sys filesystem. More...
 

Detailed Description

AMD System Management Interface API.

Macro Definition Documentation

◆ CENTRIGRADE_TO_MILLI_CENTIGRADE

#define CENTRIGRADE_TO_MILLI_CENTIGRADE   1000

The following structure holds the gpu metrics values for a device.

Unit conversion factor for HBM temperatures

◆ AMDSMI_MAX_NUM_XCC

#define AMDSMI_MAX_NUM_XCC   8

This should match AMDSMI_MAX_NUM_XCC; XCC - Accelerated Compute Core, the collection of compute units, ACE (Asynchronous Compute Engines), caches, and global resources organized as one unit.

Refer to amd.com documentation for more detail: https://www.amd.com/content/dam/amd/en/documents/instinct-tech-docs/white-papers/amd-cdna-3-white-paper.pdf

◆ AMDSMI_MAX_NUM_XCP

#define AMDSMI_MAX_NUM_XCP   8

This should match AMDSMI_MAX_NUM_XCP; XCP - Accelerated Compute Processor, also referred to as the Graphics Compute Partitions. Each physical gpu could have a maximum of 8 separate partitions associated with each (depending on ASIC support).

Refer to amd.com documentation for more detail: https://www.amd.com/content/dam/amd/en/documents/instinct-tech-docs/white-papers/amd-cdna-3-white-paper.pdf

◆ AMDSMI_LIB_VERSION_MAJOR

#define AMDSMI_LIB_VERSION_MAJOR   26

library versioning

Major version should be changed for every header change that breaks ABI Such as adding/deleting APIs, changing names, fields of structures, etc.

◆ AMDSMI_MAX_NUM_FREQUENCIES

#define AMDSMI_MAX_NUM_FREQUENCIES   33

Guaranteed maximum possible number of supported frequencies

◆ AMDSMI_MAX_FAN_SPEED

#define AMDSMI_MAX_FAN_SPEED   255

Maximum possible value for fan speed. Should be used as the denominator when determining fan speed percentage.

◆ AMDSMI_NUM_VOLTAGE_CURVE_POINTS

#define AMDSMI_NUM_VOLTAGE_CURVE_POINTS   3

The number of points that make up a voltage-frequency curve definition

Enumeration Type Documentation

◆ amdsmi_init_flags_t

Initialization flags.

Initialization flags may be OR'd together and passed to amdsmi_init().

Enumerator
AMDSMI_INIT_ALL_PROCESSORS 

Initialize all processors.

AMDSMI_INIT_AMD_CPUS 

Initialize AMD CPUS.

AMDSMI_INIT_AMD_GPUS 

Initialize AMD GPUS.

AMDSMI_INIT_NON_AMD_CPUS 

Initialize Non-AMD CPUS.

AMDSMI_INIT_NON_AMD_GPUS 

Initialize Non-AMD GPUS.

AMDSMI_INIT_AMD_APUS 

Initialize AMD CPUS and GPUS (Default option)

◆ amdsmi_mm_ip_t

GPU Capability info.

Enumerator
AMDSMI_MM_UVD 

Multi-Media Unified Video Decoder.

AMDSMI_MM_VCE 

Multi-Media Video Coding Engine.

AMDSMI_MM_VCN 

Multi-Media Video Core Next.

◆ amdsmi_container_types_t

Container.

Enumerator
AMDSMI_CONTAINER_LXC 

Linux containers.

AMDSMI_CONTAINER_DOCKER 

Docker containers.

◆ processor_type_t

Processor types detectable by AMD SMI.

AMDSMI_PROCESSOR_TYPE_AMD_CPU - CPU Socket is a physical component that holds the CPU. AMDSMI_PROCESSOR_TYPE_AMD_CPU_CORE - CPU Cores are number of individual processing units within the CPU. AMDSMI_PROCESSOR_TYPE_AMD_APU - Combination of AMDSMI_PROCESSOR_TYPE_AMD_CPU and integrated GPU on single die

Enumerator
AMDSMI_PROCESSOR_TYPE_UNKNOWN 

Unknown processor type.

AMDSMI_PROCESSOR_TYPE_AMD_GPU 

AMD Graphics processor type.

AMDSMI_PROCESSOR_TYPE_AMD_CPU 

AMD CPU processor type.

AMDSMI_PROCESSOR_TYPE_NON_AMD_GPU 

Non-AMD Graphics processor type.

AMDSMI_PROCESSOR_TYPE_NON_AMD_CPU 

Non-AMD CPU processor type.

AMDSMI_PROCESSOR_TYPE_AMD_CPU_CORE 

AMD CPU-Core processor type.

AMDSMI_PROCESSOR_TYPE_AMD_APU 

AMD Accelerated processor type (GPU and CPU)

◆ amdsmi_status_t

Error codes returned by amdsmi functions.

Please avoid status codes that are multiples of 256 (256, 512, etc..) Return values in the shell get modulo 256 applied, meaning any multiple of 256 ends up as 0

Enumerator
AMDSMI_STATUS_SUCCESS 

Call succeeded.

AMDSMI_STATUS_INVAL 

Invalid parameters.

AMDSMI_STATUS_NOT_SUPPORTED 

Command not supported.

AMDSMI_STATUS_NOT_YET_IMPLEMENTED 

Not implemented yet.

AMDSMI_STATUS_FAIL_LOAD_MODULE 

Fail to load lib.

AMDSMI_STATUS_FAIL_LOAD_SYMBOL 

Fail to load symbol.

AMDSMI_STATUS_DRM_ERROR 

Error when call libdrm.

AMDSMI_STATUS_API_FAILED 

API call failed.

AMDSMI_STATUS_TIMEOUT 

Timeout in API call.

AMDSMI_STATUS_RETRY 

Retry operation.

AMDSMI_STATUS_NO_PERM 

Permission Denied.

AMDSMI_STATUS_INTERRUPT 

An interrupt occurred during execution of function.

AMDSMI_STATUS_IO 

I/O Error.

AMDSMI_STATUS_ADDRESS_FAULT 

Bad address.

AMDSMI_STATUS_FILE_ERROR 

Problem accessing a file.

AMDSMI_STATUS_OUT_OF_RESOURCES 

Not enough memory.

AMDSMI_STATUS_INTERNAL_EXCEPTION 

An internal exception was caught.

AMDSMI_STATUS_INPUT_OUT_OF_BOUNDS 

The provided input is out of allowable or safe range.

AMDSMI_STATUS_INIT_ERROR 

An error occurred when initializing internal data structures.

AMDSMI_STATUS_REFCOUNT_OVERFLOW 

An internal reference counter exceeded INT32_MAX.

AMDSMI_STATUS_DIRECTORY_NOT_FOUND 

Error when a directory is not found, maps to ENOTDIR.

AMDSMI_STATUS_BUSY 

Processor busy.

AMDSMI_STATUS_NOT_FOUND 

Processor Not found.

AMDSMI_STATUS_NOT_INIT 

Processor not initialized.

AMDSMI_STATUS_NO_SLOT 

No more free slot.

AMDSMI_STATUS_DRIVER_NOT_LOADED 

Processor driver not loaded.

AMDSMI_STATUS_MORE_DATA 

There is more data than the buffer size the user passed.

AMDSMI_STATUS_NO_DATA 

No data was found for a given input.

AMDSMI_STATUS_INSUFFICIENT_SIZE 

Not enough resources were available for the operation.

AMDSMI_STATUS_UNEXPECTED_SIZE 

An unexpected amount of data was read.

AMDSMI_STATUS_UNEXPECTED_DATA 

The data read or provided to function is not what was expected.

AMDSMI_STATUS_NON_AMD_CPU 

System has different cpu than AMD.

AMDSMI_STATUS_NO_ENERGY_DRV 

Energy driver not found.

AMDSMI_STATUS_NO_MSR_DRV 

MSR driver not found.

AMDSMI_STATUS_NO_HSMP_DRV 

HSMP driver not found.

AMDSMI_STATUS_NO_HSMP_SUP 

HSMP not supported.

AMDSMI_STATUS_NO_HSMP_MSG_SUP 

HSMP message/feature not supported.

AMDSMI_STATUS_HSMP_TIMEOUT 

HSMP message timed out.

AMDSMI_STATUS_NO_DRV 

No Energy and HSMP driver present.

AMDSMI_STATUS_FILE_NOT_FOUND 

file or directory not found

AMDSMI_STATUS_ARG_PTR_NULL 

Parsed argument is invalid.

AMDSMI_STATUS_AMDGPU_RESTART_ERR 

AMDGPU restart failed.

AMDSMI_STATUS_SETTING_UNAVAILABLE 

Setting is not available.

AMDSMI_STATUS_CORRUPTED_EEPROM 

EEPROM is corrupted.

AMDSMI_STATUS_MAP_ERROR 

The internal library error did not map to a status code.

AMDSMI_STATUS_UNKNOWN_ERROR 

An unknown error occurred.

◆ amdsmi_clk_type_t

Clock types.

Enumerator
AMDSMI_CLK_TYPE_SYS 

Graphics clock.

AMDSMI_CLK_TYPE_GFX 

Graphics clock.

AMDSMI_CLK_TYPE_DF 

Data Fabric clock (for ASICs running on a separate clock)

AMDSMI_CLK_TYPE_DCEF 

Display Controller Engine Front clock, timing/bandwidth signals to display

AMDSMI_CLK_TYPE_SOC 

System On Chip clock, integrated circuit frequency.

AMDSMI_CLK_TYPE_MEM 

Memory clock speed, system operating frequency.

AMDSMI_CLK_TYPE_PCIE 

PCI Express clock, high bandwidth peripherals.

AMDSMI_CLK_TYPE_VCLK0 

Video 0 clock, video processing units.

AMDSMI_CLK_TYPE_VCLK1 

Video 1 clock, video processing units.

AMDSMI_CLK_TYPE_DCLK0 

Display 1 clock, timing signals for display output.

AMDSMI_CLK_TYPE_DCLK1 

Display 2 clock, timing signals for display output.

◆ amdsmi_accelerator_partition_type_t

Accelerator Partition.

Enumerator
AMDSMI_ACCELERATOR_PARTITION_SPX 

Single GPU mode (SPX)- All XCCs work together with shared memory

AMDSMI_ACCELERATOR_PARTITION_DPX 

Dual GPU mode (DPX)- Half XCCs work together with shared memory

AMDSMI_ACCELERATOR_PARTITION_TPX 

Triple GPU mode (TPX)- One-third XCCs work together with shared memory

AMDSMI_ACCELERATOR_PARTITION_QPX 

Quad GPU mode (QPX)- Quarter XCCs work together with shared memory

AMDSMI_ACCELERATOR_PARTITION_CPX 

Core mode (CPX)- Per-chip XCC with shared memory

◆ amdsmi_accelerator_partition_resource_type_t

Accelerator Partition Resource Types.

Enumerator
AMDSMI_ACCELERATOR_XCC 

Compute complex or stream processors.

AMDSMI_ACCELERATOR_ENCODER 

Video encoding.

AMDSMI_ACCELERATOR_DECODER 

Video decoding.

AMDSMI_ACCELERATOR_DMA 

Direct Memory Access, high speed data transfers.

AMDSMI_ACCELERATOR_JPEG 

Encoding and Decoding jpeg engines.

◆ amdsmi_compute_partition_type_t

Compute Partition. This enum is used to identify various compute partitioning settings.

Enumerator
AMDSMI_COMPUTE_PARTITION_INVALID 

Invalid compute partition type.

AMDSMI_COMPUTE_PARTITION_SPX 

Single GPU mode (SPX)- All XCCs work together with shared memory

AMDSMI_COMPUTE_PARTITION_DPX 

Dual GPU mode (DPX)- Half XCCs work together with shared memory

AMDSMI_COMPUTE_PARTITION_TPX 

Triple GPU mode (TPX)- One-third XCCs work together with shared memory

AMDSMI_COMPUTE_PARTITION_QPX 

Quad GPU mode (QPX)- Quarter XCCs work together with shared memory

AMDSMI_COMPUTE_PARTITION_CPX 

Core mode (CPX)- Per-chip XCC with shared memory

◆ amdsmi_memory_partition_type_t

Memory Partitions.

Enumerator
AMDSMI_MEMORY_PARTITION_NPS1 

NPS1 - All CCD & XCD data is interleaved across all 8 HBM stacks (all stacks/1)

AMDSMI_MEMORY_PARTITION_NPS2 

NPS2 - 2 sets of CCDs or 4 XCD interleaved across the 4 HBM stacks per AID pair (8 stacks/2)

AMDSMI_MEMORY_PARTITION_NPS4 

NPS4 - Each XCD data is interleaved across 2 (or single) HBM stacks (8 stacks/8 or 8 stacks/4)

AMDSMI_MEMORY_PARTITION_NPS8 

NPS8 - Each XCD uses a single HBM stack (8 stacks/8). Or each XCD uses a single HBM stack & CCDs share 2 non-interleaved HBM stacks on its AID (AID[1,2,3] = 6 stacks/6)

◆ amdsmi_temperature_type_t

This enumeration is used to indicate from which part of the processor a temperature reading should be obtained.

Enumerator
AMDSMI_TEMPERATURE_TYPE_EDGE 

Edge temperature.

AMDSMI_TEMPERATURE_TYPE_HOTSPOT 

Hottest temperature reported for entire die.

AMDSMI_TEMPERATURE_TYPE_JUNCTION 

Synonymous with HOTSPOT.

AMDSMI_TEMPERATURE_TYPE_VRAM 

VRAM temperature on graphics card.

AMDSMI_TEMPERATURE_TYPE_HBM_0 

High Bandwidth 0 temperature per stack.

AMDSMI_TEMPERATURE_TYPE_HBM_1 

High Bandwidth 1 temperature per stack.

AMDSMI_TEMPERATURE_TYPE_HBM_2 

High Bandwidth 2 temperature per stack.

AMDSMI_TEMPERATURE_TYPE_HBM_3 

High Bandwidth 3 temperature per stack.

AMDSMI_TEMPERATURE_TYPE_PLX 

PCIe switch temperature.

AMDSMI_TEMPERATURE_TYPE_GPUBOARD_NODE_RETIMER_X 

Retimer X temperature.

AMDSMI_TEMPERATURE_TYPE_GPUBOARD_NODE_OAM_X_IBC 

OAM X IBC temperature.

AMDSMI_TEMPERATURE_TYPE_GPUBOARD_NODE_OAM_X_IBC_2 

OAM X IBC 2 temperature.

AMDSMI_TEMPERATURE_TYPE_GPUBOARD_NODE_OAM_X_VDD18_VR 

OAM X VDD 1.8V voltage regulator temperature.

AMDSMI_TEMPERATURE_TYPE_GPUBOARD_NODE_OAM_X_04_HBM_B_VR 

OAM X 0.4V HBM B voltage regulator temperature.

AMDSMI_TEMPERATURE_TYPE_GPUBOARD_NODE_OAM_X_04_HBM_D_VR 

OAM X 0.4V HBM D voltage regulator temperature.

AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDCR_VDD0 

VDDCR VDD0 voltage regulator temperature.

AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDCR_VDD1 

VDDCR VDD1 voltage regulator temperature.

AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDCR_VDD2 

VDDCR VDD2 voltage regulator temperature.

AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDCR_VDD3 

VDDCR VDD3 voltage regulator temperature.

AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDCR_SOC_A 

VDDCR SOC A voltage regulator temperature.

AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDCR_SOC_C 

VDDCR SOC C voltage regulator temperature.

AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDCR_SOCIO_A 

VDDCR SOCIO A voltage regulator temperature.

AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDCR_SOCIO_C 

VDDCR SOCIO C voltage regulator temperature.

AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDD_085_HBM 

VDD 0.85V HBM voltage regulator temperature.

AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDCR_11_HBM_B 

VDDCR 1.1V HBM B voltage regulator temperature.

AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDCR_11_HBM_D 

VDDCR 1.1V HBM D voltage regulator temperature.

AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDD_USR 

VDD USR voltage regulator temperature.

AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDIO_11_E32 

VDDIO 1.1V E32 voltage regulator temperature.

AMDSMI_TEMPERATURE_TYPE_BASEBOARD_UBB_FPGA 

UBB FPGA temperature.

AMDSMI_TEMPERATURE_TYPE_BASEBOARD_UBB_FRONT 

UBB front temperature.

AMDSMI_TEMPERATURE_TYPE_BASEBOARD_UBB_BACK 

UBB back temperature.

AMDSMI_TEMPERATURE_TYPE_BASEBOARD_UBB_OAM7 

UBB OAM7 temperature.

AMDSMI_TEMPERATURE_TYPE_BASEBOARD_UBB_IBC 

UBB IBC temperature.

AMDSMI_TEMPERATURE_TYPE_BASEBOARD_UBB_UFPGA 

UBB UFPGA temperature.

AMDSMI_TEMPERATURE_TYPE_BASEBOARD_UBB_OAM1 

UBB OAM1 temperature.

AMDSMI_TEMPERATURE_TYPE_BASEBOARD_OAM_0_1_HSC 

OAM 0-1 HSC temperature.

AMDSMI_TEMPERATURE_TYPE_BASEBOARD_OAM_2_3_HSC 

OAM 2-3 HSC temperature.

AMDSMI_TEMPERATURE_TYPE_BASEBOARD_OAM_4_5_HSC 

OAM 4-5 HSC temperature.

AMDSMI_TEMPERATURE_TYPE_BASEBOARD_OAM_6_7_HSC 

OAM 6-7 HSC temperature.

AMDSMI_TEMPERATURE_TYPE_BASEBOARD_UBB_FPGA_0V72_VR 

UBB FPGA 0.72V voltage regulator temperature.

AMDSMI_TEMPERATURE_TYPE_BASEBOARD_UBB_FPGA_3V3_VR 

UBB FPGA 3.3V voltage regulator temperature.

AMDSMI_TEMPERATURE_TYPE_BASEBOARD_RETIMER_0_1_2_3_1V2_VR 

Retimer 0-1-2-3 1.2V voltage regulator temperature.

AMDSMI_TEMPERATURE_TYPE_BASEBOARD_RETIMER_4_5_6_7_1V2_VR 

Retimer 4-5-6-7 1.2V voltage regulator temperature.

AMDSMI_TEMPERATURE_TYPE_BASEBOARD_RETIMER_0_1_0V9_VR 

Retimer 0-1 0.9V voltage regulator temperature.

AMDSMI_TEMPERATURE_TYPE_BASEBOARD_RETIMER_4_5_0V9_VR 

Retimer 4-5 0.9V voltage regulator temperature.

AMDSMI_TEMPERATURE_TYPE_BASEBOARD_RETIMER_2_3_0V9_VR 

Retimer 2-3 0.9V voltage regulator temperature.

AMDSMI_TEMPERATURE_TYPE_BASEBOARD_RETIMER_6_7_0V9_VR 

Retimer 6-7 0.9V voltage regulator temperature.

AMDSMI_TEMPERATURE_TYPE_BASEBOARD_OAM_0_1_2_3_3V3_VR 

OAM 0-1-2-3 3.3V voltage regulator temperature.

AMDSMI_TEMPERATURE_TYPE_BASEBOARD_OAM_4_5_6_7_3V3_VR 

OAM 4-5-6-7 3.3V voltage regulator temperature.

AMDSMI_TEMPERATURE_TYPE_BASEBOARD_IBC_HSC 

IBC HSC temperature.

AMDSMI_TEMPERATURE_TYPE_BASEBOARD_IBC 

IBC temperature.

AMDSMI_TEMPERATURE_TYPE__MAX 

Maximum per GPU temperature type.

◆ amdsmi_fw_block_t

The values of this enum are used to identify the various firmware blocks.

Enumerator
AMDSMI_FW_ID_SMU 

System Management Unit (power management, clock control, thermal monitoring, etc...)

AMDSMI_FW_ID_CP_CE 

Compute Processor - Command_Engine (fetch, decode, dispatch)

AMDSMI_FW_ID_CP_PFP 

Compute Processor - Pixel Front End Processor (pixelating process)

AMDSMI_FW_ID_CP_ME 

Compute Processor - Micro Engine (specialize processing)

AMDSMI_FW_ID_CP_MEC_JT1 

Compute Processor - Micro Engine Controler Job Table 1 (queues, scheduling)

AMDSMI_FW_ID_CP_MEC_JT2 

Compute Processor - Micro Engine Controler Job Table 2 (queues, scheduling)

AMDSMI_FW_ID_CP_MEC1 

Compute Processor - Micro Engine Controler 1 (scheduling, managing resources)

AMDSMI_FW_ID_CP_MEC2 

Compute Processor - Micro Engine Controler 2 (scheduling, managing resources)

AMDSMI_FW_ID_RLC 

Rasterizer and L2 Cache (rasterization processs)

AMDSMI_FW_ID_SDMA0 

System Direct Memory Access 0 (high speed data transfers)

AMDSMI_FW_ID_SDMA1 

System Direct Memory Access 1 (high speed data transfers)

AMDSMI_FW_ID_SDMA2 

System Direct Memory Access 2 (high speed data transfers)

AMDSMI_FW_ID_SDMA3 

System Direct Memory Access 3 (high speed data transfers)

AMDSMI_FW_ID_SDMA4 

System Direct Memory Access 4 (high speed data transfers)

AMDSMI_FW_ID_SDMA5 

System Direct Memory Access 5 (high speed data transfers)

AMDSMI_FW_ID_SDMA6 

System Direct Memory Access 6 (high speed data transfers)

AMDSMI_FW_ID_SDMA7 

System Direct Memory Access 7 (high speed data transfers)

AMDSMI_FW_ID_VCN 

Video Core Next (encoding and decoding)

AMDSMI_FW_ID_UVD 

Unified Video Decoder (decode specific video formats)

AMDSMI_FW_ID_VCE 

Video Coding Engine (Encoding video)

AMDSMI_FW_ID_ISP 

Image Signal Processor (processing raw image data from sensors)

AMDSMI_FW_ID_DMCU_ERAM 

Digital Micro Controller Unit - Embedded RAM (memory used by DMU)

AMDSMI_FW_ID_DMCU_ISR 

Digital Micro Controller Unit - Interrupt Service Routine (interrupt handlers)

AMDSMI_FW_ID_RLC_RESTORE_LIST_GPM_MEM 

Rasterizier and L2 Cache Restore List Graphics Processor Memory.

AMDSMI_FW_ID_RLC_RESTORE_LIST_SRM_MEM 

Rasterizier and L2 Cache Restore List System RAM Memory.

AMDSMI_FW_ID_RLC_RESTORE_LIST_CNTL 

Rasterizier and L2 Cache Restore List Control.

AMDSMI_FW_ID_RLC_V 

Rasterizier and L2 Cache Virtual memory.

AMDSMI_FW_ID_MMSCH 

Multi-Media Shader Hardware Scheduler.

AMDSMI_FW_ID_PSP_SYSDRV 

Platform Security Processor System Driver.

AMDSMI_FW_ID_PSP_SOSDRV 

Platform Security Processor Secure Operating System Driver.

AMDSMI_FW_ID_PSP_TOC 

Platform Security Processor Table of Contents.

AMDSMI_FW_ID_PSP_KEYDB 

Platform Security Processor Table of Contents.

AMDSMI_FW_ID_DFC 

Data Fabric Controler (bandwidth and coherency)

AMDSMI_FW_ID_PSP_SPL 

Platform Security Processor Secure Program Loader.

AMDSMI_FW_ID_DRV_CAP 

Driver Capabilities (capabilities, features)

AMDSMI_FW_ID_MC 

Memory Contoller (RAM and VRAM)

AMDSMI_FW_ID_PSP_BL 

Platform Security Processor Bootloader (initial firmware)

AMDSMI_FW_ID_CP_PM4 

Compute Processor Packet Processor 4 (processing command packets)

AMDSMI_FW_ID_RLC_P 

Rasterizier and L2 Cache Partition.

AMDSMI_FW_ID_SEC_POLICY_STAGE2 

Security Policy Stage 2 (security features)

AMDSMI_FW_ID_REG_ACCESS_WHITELIST 

Register Access Whitelist (Prevent unathorizied access)

AMDSMI_FW_ID_IMU_DRAM 

Input/Output Memory Management Unit - Dynamic RAM.

AMDSMI_FW_ID_IMU_IRAM 

Input/Output Memory Management Unit - Instruction RAM.

AMDSMI_FW_ID_SDMA_TH0 

System Direct Memory Access - Thread Handler 0.

AMDSMI_FW_ID_SDMA_TH1 

System Direct Memory Access - Thread Handler 0.

AMDSMI_FW_ID_CP_MES 

Compute Processor - Micro Engine Scheduler.

AMDSMI_FW_ID_MES_KIQ 

Micro Engine Scheduler - Kernel Indirect Queue.

AMDSMI_FW_ID_MES_STACK 

Micro Engine Scheduler - Stack.

AMDSMI_FW_ID_MES_THREAD1 

Micro Engine Scheduler - Thread 1.

AMDSMI_FW_ID_MES_THREAD1_STACK 

Micro Engine Scheduler - Thread 1 Stack.

AMDSMI_FW_ID_RLX6 

Hardware Block RLX6.

AMDSMI_FW_ID_RLX6_DRAM_BOOT 

Hardware Block RLX6 - Dynamic Ram Boot.

AMDSMI_FW_ID_RS64_ME 

Hardware Block RS64 - Micro Engine.

AMDSMI_FW_ID_RS64_ME_P0_DATA 

Hardware Block RS64 - Micro Engine Partition 0 Data.

AMDSMI_FW_ID_RS64_ME_P1_DATA 

Hardware Block RS64 - Micro Engine Partition 1 Data.

AMDSMI_FW_ID_RS64_PFP 

Hardware Block RS64 - Pixel Front End Processor.

AMDSMI_FW_ID_RS64_PFP_P0_DATA 

Hardware Block RS64 - Pixel Front End Processor Partition 0 Data.

AMDSMI_FW_ID_RS64_PFP_P1_DATA 

Hardware Block RS64 - Pixel Front End Processor Partition 1 Data.

AMDSMI_FW_ID_RS64_MEC 

Hardware Block RS64 - Micro Engine Controller.

AMDSMI_FW_ID_RS64_MEC_P0_DATA 

Hardware Block RS64 - Micro Engine Controller Partition 0 Data.

AMDSMI_FW_ID_RS64_MEC_P1_DATA 

Hardware Block RS64 - Micro Engine Controller Partition 1 Data.

AMDSMI_FW_ID_RS64_MEC_P2_DATA 

Hardware Block RS64 - Micro Engine Controller Partition 2 Data.

AMDSMI_FW_ID_RS64_MEC_P3_DATA 

Hardware Block RS64 - Micro Engine Controller Partition 3 Data.

AMDSMI_FW_ID_PPTABLE 

Power Policy Table (power management policies)

AMDSMI_FW_ID_PSP_SOC 

Platform Security Processor - System On a Chip.

AMDSMI_FW_ID_PSP_DBG 

Platform Security Processor - Debug.

AMDSMI_FW_ID_PSP_INTF 

Platform Security Processor - Interface.

AMDSMI_FW_ID_RLX6_CORE1 

Hardware Block RLX6 - Core 1.

AMDSMI_FW_ID_RLX6_DRAM_BOOT_CORE1 

Hardware Block RLX6 Core 1 - Dynamic RAM Boot.

AMDSMI_FW_ID_RLCV_LX7 

Hardware Block RLCV - Subsystem LX7.

AMDSMI_FW_ID_RLC_SAVE_RESTORE_LIST 

Rasterizier and L2 Cache - Save Restore List.

AMDSMI_FW_ID_ASD 

Asynchronous Shader Dispatcher.

AMDSMI_FW_ID_TA_RAS 

Trusted Applications - Reliablity Availability and Serviceability.

AMDSMI_FW_ID_TA_XGMI 

Trusted Applications - Reliablity XGMI.

AMDSMI_FW_ID_RLC_SRLG 

Rasterizier and L2 Cache - Shared Resource Local Group.

AMDSMI_FW_ID_RLC_SRLS 

Rasterizier and L2 Cache - Shared Resource Local Segment.

AMDSMI_FW_ID_PM 

Power Management Firmware.

AMDSMI_FW_ID_DMCU 

Display Micro-Controller Unit.

AMDSMI_FW_ID_PLDM_BUNDLE 

Platform Level Data Model Firmware Bundle.

◆ amdsmi_vram_type_t

vRam Types. This enum is used to identify various VRam types.

Enumerator
AMDSMI_VRAM_TYPE_UNKNOWN 

Unknown memory type.

AMDSMI_VRAM_TYPE_HBM 

High Bandwidth Memory.

AMDSMI_VRAM_TYPE_HBM2 

High Bandwidth Memory, Generation 2.

AMDSMI_VRAM_TYPE_HBM2E 

High Bandwidth Memory, Generation 2 Enhanced.

AMDSMI_VRAM_TYPE_HBM3 

High Bandwidth Memory, Generation 3.

AMDSMI_VRAM_TYPE_DDR2 

Double Data Rate, Generation 2.

AMDSMI_VRAM_TYPE_DDR3 

Double Data Rate, Generation 3.

AMDSMI_VRAM_TYPE_DDR4 

Double Data Rate, Generation 4.

AMDSMI_VRAM_TYPE_GDDR1 

Graphics Double Data Rate, Generation 1.

AMDSMI_VRAM_TYPE_GDDR2 

Graphics Double Data Rate, Generation 2.

AMDSMI_VRAM_TYPE_GDDR3 

Graphics Double Data Rate, Generation 3.

AMDSMI_VRAM_TYPE_GDDR4 

Graphics Double Data Rate, Generation 4.

AMDSMI_VRAM_TYPE_GDDR5 

Graphics Double Data Rate, Generation 5.

AMDSMI_VRAM_TYPE_GDDR6 

Graphics Double Data Rate, Generation 6.

AMDSMI_VRAM_TYPE_GDDR7 

Graphics Double Data Rate, Generation 7.

◆ amdsmi_card_form_factor_t

Card Form Factor.

Enumerator
AMDSMI_CARD_FORM_FACTOR_PCIE 

PCIE card form factor.

AMDSMI_CARD_FORM_FACTOR_OAM 

OAM form factor.

AMDSMI_CARD_FORM_FACTOR_CEM 

CEM form factor.

AMDSMI_CARD_FORM_FACTOR_UNKNOWN 

Unknown Form factor.

◆ amdsmi_cache_property_type_t

cache properties

Enumerator
AMDSMI_CACHE_PROPERTY_ENABLED 

Cache enabled.

AMDSMI_CACHE_PROPERTY_DATA_CACHE 

Data cache.

AMDSMI_CACHE_PROPERTY_INST_CACHE 

Instruction cache.

AMDSMI_CACHE_PROPERTY_CPU_CACHE 

CPU cache.

AMDSMI_CACHE_PROPERTY_SIMD_CACHE 

Single Instruction, Multiple Data Cache.

◆ amdsmi_link_type_t

Link type.

Enumerator
AMDSMI_LINK_TYPE_INTERNAL 

Internal Link Type, within chip.

AMDSMI_LINK_TYPE_PCIE 

Peripheral Component Interconnect Express Link Type.

AMDSMI_LINK_TYPE_XGMI 

GPU Memory Interconnect (multi GPU communication)

AMDSMI_LINK_TYPE_NOT_APPLICABLE 

Not Applicable Link Type.

AMDSMI_LINK_TYPE_UNKNOWN 

Unknown Link Type.

◆ amdsmi_dev_perf_level_t

PowerPlay performance levels.

Enumerator
AMDSMI_DEV_PERF_LEVEL_AUTO 

Performance level is "auto".

AMDSMI_DEV_PERF_LEVEL_LOW 

Keep PowerPlay levels "low", regardless of workload.

AMDSMI_DEV_PERF_LEVEL_HIGH 

Keep PowerPlay levels "high", regardless of workload.

AMDSMI_DEV_PERF_LEVEL_MANUAL 

Only use values defined by manually setting the AMDSMI_CLK_TYPE_SYS speed

AMDSMI_DEV_PERF_LEVEL_STABLE_STD 

Stable power state with profiling clocks.

AMDSMI_DEV_PERF_LEVEL_STABLE_PEAK 

Stable power state with peak clocks.

AMDSMI_DEV_PERF_LEVEL_STABLE_MIN_MCLK 

Stable power state with minimum memory clock.

AMDSMI_DEV_PERF_LEVEL_STABLE_MIN_SCLK 

Stable power state with minimum system clock.

AMDSMI_DEV_PERF_LEVEL_DETERMINISM 

Performance determinism state.

AMDSMI_DEV_PERF_LEVEL_UNKNOWN 

Unknown performance level.

◆ amdsmi_event_group_t

Event Groups Enum denoting an event group. The value of the enum is the base value for all the event enums in the group.

Enumerator
AMDSMI_EVNT_GRP_XGMI 

Data Fabric (XGMI) related events.

AMDSMI_EVNT_GRP_XGMI_DATA_OUT 

XGMI Outbound data.

AMDSMI_EVNT_GRP_INVALID 

Unknown Event Group.

◆ amdsmi_event_type_t

Event types Event type enum. Events belonging to a particular event group amdsmi_event_group_t should begin enumerating at the amdsmi_event_group_t value for that group.

Data beats sent to neighbor 0; Each beat represents 32 bytes.

XGMI throughput can be calculated by multiplying a BEATs event such as AMDSMI_EVNT_XGMI_0_BEATS_TX by 32 and dividing by the time for which event collection occurred, amdsmi_counter_value_t.time_running (which is in nanoseconds). To get bytes per second, multiply this value by 109.

Throughput = BEATS/time_running * 109 (bytes/second)

Events in the AMDSMI_EVNT_GRP_XGMI_DATA_OUT group measure the number of beats sent on an XGMI link. Each beat represents 32 bytes. AMDSMI_EVNT_XGMI_DATA_OUT_n represents the number of outbound beats (each representing 32 bytes) on link n.

XGMI throughput can be calculated by multiplying a event such as ::AMDSMI_EVNT_XGMI_DATA_OUT_n by 32 and dividing by the time for which event collection occurred, amdsmi_counter_value_t.time_running (which is in nanoseconds). To get bytes per second, multiply this value by 109.

Enumerator
AMDSMI_EVNT_XGMI_0_NOP_TX 

NOPs sent to neighbor 0.

AMDSMI_EVNT_XGMI_0_REQUEST_TX 

Outgoing requests to neighbor 0.

AMDSMI_EVNT_XGMI_0_RESPONSE_TX 

Outgoing responses to neighbor 0.

AMDSMI_EVNT_XGMI_0_BEATS_TX 

Throughput = BEATS/time_running 10^9 bytes/sec.

AMDSMI_EVNT_XGMI_1_NOP_TX 

NOPs sent to neighbor 1.

AMDSMI_EVNT_XGMI_1_REQUEST_TX 

Outgoing requests to neighbor 1.

AMDSMI_EVNT_XGMI_1_RESPONSE_TX 

Outgoing responses to neighbor 1.

AMDSMI_EVNT_XGMI_1_BEATS_TX 

Data beats sent to neighbor 1; Each beat represents 32 bytes.

AMDSMI_EVNT_XGMI_DATA_OUT_0 

Outbound beats to neighbor 0.

AMDSMI_EVNT_XGMI_DATA_OUT_1 

Outbound beats to neighbor 1.

AMDSMI_EVNT_XGMI_DATA_OUT_2 

Outbound beats to neighbor 2.

AMDSMI_EVNT_XGMI_DATA_OUT_3 

Outbound beats to neighbor 3.

AMDSMI_EVNT_XGMI_DATA_OUT_4 

Outbound beats to neighbor 4.

AMDSMI_EVNT_XGMI_DATA_OUT_5 

Outbound beats to neighbor 5.

◆ amdsmi_counter_command_t

Event counter commands.

Enumerator
AMDSMI_CNTR_CMD_START 

Start the counter.

AMDSMI_CNTR_CMD_STOP 

Stop the counter; note that this should not be used before reading

◆ amdsmi_evt_notification_type_t

Event notification event types.

Enumerator
AMDSMI_EVT_NOTIF_NONE 

No events.

AMDSMI_EVT_NOTIF_VMFAULT 

Virtual Memory Page Fault Event.

AMDSMI_EVT_NOTIF_THERMAL_THROTTLE 

thermal throttle

AMDSMI_EVT_NOTIF_GPU_PRE_RESET 

pre-reset

AMDSMI_EVT_NOTIF_GPU_POST_RESET 

post-reset

AMDSMI_EVT_NOTIF_MIGRATE_START 

migrate start

AMDSMI_EVT_NOTIF_MIGRATE_END 

migrate end

AMDSMI_EVT_NOTIF_PAGE_FAULT_START 

page fault start

AMDSMI_EVT_NOTIF_PAGE_FAULT_END 

page fault end

AMDSMI_EVT_NOTIF_QUEUE_EVICTION 

queue eviction

AMDSMI_EVT_NOTIF_QUEUE_RESTORE 

queue restore

AMDSMI_EVT_NOTIF_UNMAP_FROM_GPU 

unmap from GPU

AMDSMI_EVT_NOTIF_PROCESS_START 

KFD process start.

AMDSMI_EVT_NOTIF_PROCESS_END 

KFD process end.

◆ amdsmi_temperature_metric_t

Temperature Metrics. This enum is used to identify various temperature metrics. Corresponding values will be in Celcius.

Enumerator
AMDSMI_TEMP_CURRENT 

Current temperature.

AMDSMI_TEMP_MAX 

Max temperature.

AMDSMI_TEMP_MIN 

Min temperature.

AMDSMI_TEMP_MAX_HYST 

Max limit hysteresis temperature (Absolute temperature, not a delta)

AMDSMI_TEMP_MIN_HYST 

Min limit hysteresis temperature (Absolute temperature, not a delta)

AMDSMI_TEMP_CRITICAL 

Critical max limit temperature, typically greater than max temperatures

AMDSMI_TEMP_CRITICAL_HYST 

Critical hysteresis limit temperature (Absolute temperature, not a delta)

AMDSMI_TEMP_EMERGENCY 

Emergency max temperature, for chips supporting more than two upper temperature limits. Must be equal or greater than corresponding temp_crit values

AMDSMI_TEMP_EMERGENCY_HYST 

Emergency hysteresis limit temperature (Absolute temperature, not a delta)

AMDSMI_TEMP_CRIT_MIN 

Critical min temperature, typically lower than minimum temperatures

AMDSMI_TEMP_CRIT_MIN_HYST 

Min Hysteresis critical limit temperature (Absolute temperature, not a delta)

AMDSMI_TEMP_OFFSET 

Temperature offset which is added to the temperature reading by the chip

AMDSMI_TEMP_LOWEST 

Historical min temperature.

AMDSMI_TEMP_HIGHEST 

Historical max temperature.

AMDSMI_TEMP_SHUTDOWN 

Shutdown temperature.

◆ amdsmi_voltage_metric_t

Voltage Metrics. This enum is used to identify various Volatge metrics. Corresponding values will be in millivolt.

Enumerator
AMDSMI_VOLT_CURRENT 

Voltage current value.

AMDSMI_VOLT_MAX 

Voltage max value.

AMDSMI_VOLT_MIN_CRIT 

Voltage critical min value.

AMDSMI_VOLT_MIN 

Voltage min value.

AMDSMI_VOLT_MAX_CRIT 

Voltage critical max value.

AMDSMI_VOLT_AVERAGE 

Average voltage.

AMDSMI_VOLT_LOWEST 

Historical minimum voltage.

AMDSMI_VOLT_HIGHEST 

Historical maximum voltage.

◆ amdsmi_voltage_type_t

This ennumeration is used to indicate which type of voltage reading should be obtained.

Enumerator
AMDSMI_VOLT_TYPE_VDDGFX 

Vddgfx GPU voltage.

AMDSMI_VOLT_TYPE_VDDBOARD 

Voltage for VDDBOARD.

AMDSMI_VOLT_TYPE_INVALID 

Invalid type.

◆ amdsmi_power_profile_preset_masks_t

Pre-set Profile Selections. These bitmasks can be AND'd with the amdsmi_power_profile_status_t.available_profiles returned from :: amdsmi_get_gpu_power_profile_presets to determine which power profiles are supported by the system.

Enumerator
AMDSMI_PWR_PROF_PRST_CUSTOM_MASK 

Custom Power Profile.

AMDSMI_PWR_PROF_PRST_VIDEO_MASK 

Video Power Profile.

AMDSMI_PWR_PROF_PRST_POWER_SAVING_MASK 

Power Saving Profile.

AMDSMI_PWR_PROF_PRST_COMPUTE_MASK 

Compute Saving Profile.

AMDSMI_PWR_PROF_PRST_VR_MASK 

VR Power Profile.

AMDSMI_PWR_PROF_PRST_3D_FULL_SCR_MASK 

3D Full Screen Profile

AMDSMI_PWR_PROF_PRST_BOOTUP_DEFAULT 

Default Boot Up Profile.

AMDSMI_PWR_PROF_PRST_INVALID 

Invalid Power Profile.

◆ amdsmi_gpu_block_t

This enum is used to identify different GPU blocks.

Enumerator
AMDSMI_GPU_BLOCK_INVALID 

Invalid block.

AMDSMI_GPU_BLOCK_UMC 

UMC block.

AMDSMI_GPU_BLOCK_SDMA 

SDMA block.

AMDSMI_GPU_BLOCK_GFX 

GFX block.

AMDSMI_GPU_BLOCK_MMHUB 

MMHUB block.

AMDSMI_GPU_BLOCK_ATHUB 

ATHUB block.

AMDSMI_GPU_BLOCK_PCIE_BIF 

PCIE_BIF block.

AMDSMI_GPU_BLOCK_HDP 

HDP block.

AMDSMI_GPU_BLOCK_XGMI_WAFL 

XGMI block.

AMDSMI_GPU_BLOCK_DF 

DF block.

AMDSMI_GPU_BLOCK_SMN 

SMN block.

AMDSMI_GPU_BLOCK_SEM 

SEM block.

AMDSMI_GPU_BLOCK_MP0 

MP0 block.

AMDSMI_GPU_BLOCK_MP1 

MP1 block.

AMDSMI_GPU_BLOCK_FUSE 

Fuse block.

AMDSMI_GPU_BLOCK_MCA 

MCA block.

AMDSMI_GPU_BLOCK_VCN 

VCN block.

AMDSMI_GPU_BLOCK_JPEG 

JPEG block.

AMDSMI_GPU_BLOCK_IH 

IH block.

AMDSMI_GPU_BLOCK_MPIO 

MPIO block.

◆ amdsmi_clk_limit_type_t

The clk limit type.

Enumerator
CLK_LIMIT_MIN 

Min Clock value in MHz.

CLK_LIMIT_MAX 

Max Clock value in MHz.

◆ amdsmi_cper_sev_t

Cper sev.

Enumerator
AMDSMI_CPER_SEV_NON_FATAL_UNCORRECTED 

CPER Non-Fatal Uncorrected severity.

AMDSMI_CPER_SEV_FATAL 

CPER Fatal severity.

AMDSMI_CPER_SEV_NON_FATAL_CORRECTED 

CPER Non-Fatal Corrected severity.

AMDSMI_CPER_SEV_NUM 

CPER severity Number.

AMDSMI_CPER_SEV_UNUSED 

CPER Unused severity.

◆ amdsmi_cper_notify_type_t

Cper notify.

Enumerator
AMDSMI_CPER_NOTIFY_TYPE_CMC 

Corrected Memory Check.

AMDSMI_CPER_NOTIFY_TYPE_CPE 

Corrected Platform Error.

AMDSMI_CPER_NOTIFY_TYPE_MCE 

Machine Check Exception.

AMDSMI_CPER_NOTIFY_TYPE_PCIE 

PCI Express Error.

AMDSMI_CPER_NOTIFY_TYPE_INIT 

Initialization Error.

AMDSMI_CPER_NOTIFY_TYPE_NMI 

Non_Maskable Interrupt.

AMDSMI_CPER_NOTIFY_TYPE_BOOT 

Boot Error.

AMDSMI_CPER_NOTIFY_TYPE_DMAR 

Direct Memory Access Remapping Error.

AMDSMI_CPER_NOTIFY_TYPE_SEA 

System Error Architecture.

AMDSMI_CPER_NOTIFY_TYPE_SEI 

System Error Interface.

AMDSMI_CPER_NOTIFY_TYPE_PEI 

Platform Error Interface.

AMDSMI_CPER_NOTIFY_TYPE_CXL_COMPONENT 

Compute Express Link Component Error.

◆ amdsmi_ras_err_state_t

The current ECC state.

Enumerator
AMDSMI_RAS_ERR_STATE_NONE 

No current errors.

AMDSMI_RAS_ERR_STATE_DISABLED 

ECC is disabled.

AMDSMI_RAS_ERR_STATE_PARITY 

ECC errors present, but type unknown.

AMDSMI_RAS_ERR_STATE_SING_C 

Single correctable error.

AMDSMI_RAS_ERR_STATE_MULT_UC 

Multiple uncorrectable errors.

AMDSMI_RAS_ERR_STATE_POISON 

Firmware detected error and isolated page. Treat as uncorrectable

AMDSMI_RAS_ERR_STATE_ENABLED 

ECC is enabled.

◆ amdsmi_memory_type_t

Types of memory.

Enumerator
AMDSMI_MEM_TYPE_VRAM 

VRAM memory.

AMDSMI_MEM_TYPE_VIS_VRAM 

VRAM memory that is visible.

AMDSMI_MEM_TYPE_GTT 

GTT memory.

◆ amdsmi_freq_ind_t

The values of this enum are used as frequency identifiers.

Enumerator
AMDSMI_FREQ_IND_MIN 

Index used for the minimum frequency value.

AMDSMI_FREQ_IND_MAX 

Index used for the maximum frequency value.

AMDSMI_FREQ_IND_INVALID 

An invalid frequency index.

◆ amdsmi_xgmi_status_t

XGMI Status.

Enumerator
AMDSMI_XGMI_STATUS_NO_ERRORS 

XGMI No Errors.

AMDSMI_XGMI_STATUS_ERROR 

XGMI Errors.

AMDSMI_XGMI_STATUS_MULTIPLE_ERRORS 

XGMI Multiple Errors.

◆ amdsmi_memory_page_status_t

Reserved Memory Page States.

Enumerator
AMDSMI_MEM_PAGE_STATUS_RESERVED 

Reserved. This gpu page is reserved and not available for use.

AMDSMI_MEM_PAGE_STATUS_PENDING 

Pending. This gpu page is marked as bad and will be marked reserved at the next window

AMDSMI_MEM_PAGE_STATUS_UNRESERVABLE 

Unable to reserve this page.

◆ amdsmi_utilization_counter_type_t

The utilization counter type.

Enumerator
AMDSMI_COARSE_GRAIN_GFX_ACTIVITY 

Course Grain Graphic Activity.

AMDSMI_COARSE_GRAIN_MEM_ACTIVITY 

Course Grain Memory Activity.

AMDSMI_COARSE_DECODER_ACTIVITY 

Course Grain Decoder Activity.

AMDSMI_FINE_GRAIN_GFX_ACTIVITY 

Fine Grain Graphic Activity.

AMDSMI_FINE_GRAIN_MEM_ACTIVITY 

Fine Grain Memory Activity.

AMDSMI_FINE_DECODER_ACTIVITY 

Fine Grain Decoder Activity.

◆ amdsmi_xgmi_link_status_type_t

XGMI Link Status Type.

Enumerator
AMDSMI_XGMI_LINK_DOWN 

XGMI link status is down.

AMDSMI_XGMI_LINK_UP 

XGMI link status is up.

AMDSMI_XGMI_LINK_DISABLE 

XGMI link status is disabled.

◆ amdsmi_reg_type_t

This register type for register table.

Enumerator
AMDSMI_REG_XGMI 

XGMI registers.

AMDSMI_REG_WAFL 

WAFL registers.

AMDSMI_REG_PCIE 

PCIe registers.

AMDSMI_REG_USR 

Usr registers.

AMDSMI_REG_USR1 

Usr1 registers.

◆ amdsmi_virtualization_mode_t

Variant placeholder.

Place-holder "variant" for functions that have don't have any variants, but do have monitors or sensors.

Enumerator
AMDSMI_VIRTUALIZATION_MODE_UNKNOWN 

Unknown Virtualization Mode.

AMDSMI_VIRTUALIZATION_MODE_BAREMETAL 

Baremetal Virtualization Mode.

AMDSMI_VIRTUALIZATION_MODE_HOST 

Host Virtualization Mode.

AMDSMI_VIRTUALIZATION_MODE_GUEST 

Guest Virtualization Mode.

AMDSMI_VIRTUALIZATION_MODE_PASSTHROUGH 

Passthrough Virtualization Mode.

◆ amdsmi_io_bw_encoding_t

xGMI Bandwidth Encoding types

Enumerator
AGG_BW0 

Aggregate Bandwidth.

RD_BW0 

Read Bandwidth.

WR_BW0 

Write Bandwdith.