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_range_t |
This structure represents a range (e.g., frequencies or voltages). More... | |
struct | amdsmi_xgmi_info_t |
struct | amdsmi_vram_usage_t |
struct | amdsmi_violation_status_t |
This structure hold violation status information. More... | |
struct | amdsmi_frequency_range_t |
union | amdsmi_bdf_t |
struct | amdsmi_pcie_info_t |
struct | amdsmi_pcie_info_t::pcie_static_ |
struct | amdsmi_pcie_info_t::pcie_metric_ |
struct | amdsmi_power_cap_info_t |
struct | amdsmi_vbios_info_t |
struct | amdsmi_gpu_cache_info_t |
struct | amdsmi_gpu_cache_info_t::cache_ |
struct | amdsmi_fw_info_t |
struct | amdsmi_fw_info_t::fw_info_list_ |
struct | amdsmi_asic_info_t |
struct | amdsmi_kfd_info_t |
union | amdsmi_nps_caps_t |
Possible Memory Partition Modes. This union is used to identify various memory partitioning settings. More... | |
struct | amdsmi_nps_caps_t::nps_flags_ |
struct | amdsmi_accelerator_partition_profile_t |
Possible Memory Partition Modes. This union is used to identify various memory partitioning settings. More... | |
struct | amdsmi_link_metrics_t |
struct | amdsmi_link_metrics_t::_links |
struct | amdsmi_vram_info_t |
struct | amdsmi_driver_info_t |
struct | amdsmi_board_info_t |
struct | amdsmi_power_info_t |
struct | amdsmi_clk_info_t |
struct | amdsmi_engine_usage_t |
struct | amdsmi_proc_info_t |
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 |
struct | amdsmi_evt_notification_data_t |
struct | amdsmi_utilization_counter_t |
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 |
This structure holds information about dpm policies. 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 |
struct | amdsmi_od_volt_freq_data_t |
This structure holds the frequency-voltage values for a device. More... | |
struct | amd_metrics_table_header_t |
The following structures hold the gpu metrics values 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 |
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 |
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... | |
Macros | |
#define | AMDSMI_MAX_MM_IP_COUNT 8 |
#define | AMDSMI_MAX_DATE_LENGTH 32 |
#define | AMDSMI_MAX_STRING_LENGTH 64 |
#define | AMDSMI_NORMAL_STRING_LENGTH 32 |
#define | AMDSMI_MAX_DEVICES 32 |
#define | AMDSMI_MAX_NAME 32 |
#define | AMDSMI_MAX_DRIVER_VERSION_LENGTH 80 |
#define | AMDSMI_256_LENGTH 256 |
#define | AMDSMI_MAX_CONTAINER_TYPE 2 |
#define | AMDSMI_MAX_CACHE_TYPES 10 |
#define | AMDSMI_MAX_NUM_XGMI_PHYSICAL_LINK 64 |
#define | AMDSMI_MAX_ACCELERATOR_PROFILE 32 |
#define | AMDSMI_MAX_CP_PROFILE_RESOURCES 32 |
#define | AMDSMI_MAX_ACCELERATOR_PARTITIONS 8 |
#define | AMDSMI_GPU_UUID_SIZE 38 |
#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_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 | AMDSMI_TIME_FORMAT "%02d:%02d:%02d.%03d" |
#define | AMDSMI_DATE_FORMAT "%04d-%02d-%02d:%02d:%02d:%02d.%03d" |
#define | AMDSMI_LIB_VERSION_YEAR 24 |
library versioning More... | |
#define | AMDSMI_LIB_VERSION_MAJOR 7 |
Major version should be changed for every header change (adding/deleting APIs, changing names, fields of structures, etc.) | |
#define | AMDSMI_LIB_VERSION_MINOR 1 |
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(YEAR, MAJOR, MINOR, RELEASE) (#YEAR "." #MAJOR "." #MINOR "." #RELEASE) |
#define | AMDSMI_LIB_VERSION_EXPAND_PARTS(YEAR_STR, MAJOR_STR, MINOR_STR, RELEASE_STR) AMDSMI_LIB_VERSION_CREATE_STRING(YEAR_STR, MAJOR_STR, MINOR_STR, RELEASE_STR) |
#define | AMDSMI_LIB_VERSION_STRING AMDSMI_LIB_VERSION_EXPAND_PARTS(AMDSMI_LIB_VERSION_YEAR, AMDSMI_LIB_VERSION_MAJOR, AMDSMI_LIB_VERSION_MINOR, AMDSMI_LIB_VERSION_RELEASE) |
#define | AMDSMI_MAX_NUM_FREQUENCIES 33 |
Guaranteed maximum possible number of supported frequencies. | |
#define | AMDSMI_MAX_FAN_SPEED 255 |
#define | AMDSMI_NUM_VOLTAGE_CURVE_POINTS 3 |
The number of points that make up a voltage-frequency curve definition. | |
#define | AMDSMI_EVENT_MASK_FROM_INDEX(i) (1ULL << ((i) - 1)) |
#define | MAX_EVENT_NOTIFICATION_MSG_SIZE 96 |
Maximum number of characters an event notification message will be. | |
#define | AMDSMI_MAX_UTILIZATION_VALUES 4 |
The utilization counter data. More... | |
#define | AMDSMI_MAX_NUM_POWER_PROFILES (sizeof(amdsmi_bit_field_t) * 8) |
Number of possible power profiles that a system could support. | |
#define | AMDSMI_MAX_NUM_PM_POLICIES 32 |
#define | MAX_AMDSMI_NAME_LENGTH 64 |
#define | AMDSMI_DEFAULT_VARIANT 0xFFFFFFFFFFFFFFFF |
Typedefs | |
typedef void * | amdsmi_processor_handle |
opaque handler point to underlying implementation | |
typedef void * | amdsmi_socket_handle |
typedef void * | amdsmi_cpusocket_handle |
typedef uint32_t | amdsmi_process_handle_t |
typedef uintptr_t | amdsmi_event_handle_t |
Available clock types. More... | |
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 } |
enum | amdsmi_container_types_t { AMDSMI_CONTAINER_LXC , AMDSMI_CONTAINER_DOCKER } |
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 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. | |
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_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_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_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 } |
Accelerator Partition. This enum is used to identify various accelerator partitioning settings. 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 , AMDSMI_MEMORY_PARTITION_NPS2 , AMDSMI_MEMORY_PARTITION_NPS4 , AMDSMI_MEMORY_PARTITION_NPS8 } |
Memory Partitions. This enum is used to identify various memory partition types. 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__MAX = AMDSMI_TEMPERATURE_TYPE_PLX } |
This enumeration is used to indicate from which part of the device a temperature reading should be obtained. | |
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__MAX } |
The values of this enum are used to identify the various firmware blocks. | |
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 } |
enum | amdsmi_vram_vendor_type_t { AMDSMI_VRAM_VENDOR__PLACEHOLDER0 , AMDSMI_VRAM_VENDOR__SAMSUNG , AMDSMI_VRAM_VENDOR__INFINEON , AMDSMI_VRAM_VENDOR__ELPIDA , AMDSMI_VRAM_VENDOR__ETRON , AMDSMI_VRAM_VENDOR__NANYA , AMDSMI_VRAM_VENDOR__HYNIX , AMDSMI_VRAM_VENDOR__MOSEL , AMDSMI_VRAM_VENDOR__WINBOND , AMDSMI_VRAM_VENDOR__ESMT , AMDSMI_VRAM_VENDOR__PLACEHOLDER1 , AMDSMI_VRAM_VENDOR__PLACEHOLDER2 , AMDSMI_VRAM_VENDOR__PLACEHOLDER3 , AMDSMI_VRAM_VENDOR__PLACEHOLDER4 , AMDSMI_VRAM_VENDOR__PLACEHOLDER5 , AMDSMI_VRAM_VENDOR__MICRON } |
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 } |
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 | |
enum | amdsmi_link_type_t { AMDSMI_LINK_TYPE_INTERNAL , AMDSMI_LINK_TYPE_XGMI , AMDSMI_LINK_TYPE_PCIE , AMDSMI_LINK_TYPE_NOT_APPLICABLE , AMDSMI_LINK_TYPE_UNKNOWN } |
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 } |
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 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 } |
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_RING_HANG = 5 , AMDSMI_EVT_NOTIF_LAST = AMDSMI_EVT_NOTIF_RING_HANG } |
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_LAST = AMDSMI_TEMP_HIGHEST } |
Temperature Metrics. This enum is used to identify various temperature metrics. Corresponding values will be in millidegress 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_LAST = AMDSMI_VOLT_TYPE_VDDGFX , 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 = 0x0000000000000000 , AMDSMI_GPU_BLOCK_FIRST = 0x0000000000000001 , AMDSMI_GPU_BLOCK_UMC = AMDSMI_GPU_BLOCK_FIRST , AMDSMI_GPU_BLOCK_SDMA = 0x0000000000000002 , AMDSMI_GPU_BLOCK_GFX = 0x0000000000000004 , AMDSMI_GPU_BLOCK_MMHUB = 0x0000000000000008 , AMDSMI_GPU_BLOCK_ATHUB = 0x0000000000000010 , AMDSMI_GPU_BLOCK_PCIE_BIF = 0x0000000000000020 , AMDSMI_GPU_BLOCK_HDP = 0x0000000000000040 , AMDSMI_GPU_BLOCK_XGMI_WAFL = 0x0000000000000080 , AMDSMI_GPU_BLOCK_DF = 0x0000000000000100 , AMDSMI_GPU_BLOCK_SMN = 0x0000000000000200 , AMDSMI_GPU_BLOCK_SEM = 0x0000000000000400 , AMDSMI_GPU_BLOCK_MP0 = 0x0000000000000800 , AMDSMI_GPU_BLOCK_MP1 = 0x0000000000001000 , AMDSMI_GPU_BLOCK_FUSE = 0x0000000000002000 , AMDSMI_GPU_BLOCK_MCA = 0x0000000000004000 , AMDSMI_GPU_BLOCK_VCN = 0x0000000000008000 , AMDSMI_GPU_BLOCK_JPEG = 0x0000000000010000 , AMDSMI_GPU_BLOCK_IH = 0x0000000000020000 , AMDSMI_GPU_BLOCK_MPIO = 0x0000000000040000 , AMDSMI_GPU_BLOCK_LAST = AMDSMI_GPU_BLOCK_MPIO , AMDSMI_GPU_BLOCK_RESERVED = 0x8000000000000000 } |
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. | |
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. | |
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_io_link_type_t { AMDSMI_IOLINK_TYPE_UNDEFINED = 0 , AMDSMI_IOLINK_TYPE_PCIEXPRESS = 1 , AMDSMI_IOLINK_TYPE_XGMI = 2 , AMDSMI_IOLINK_TYPE_NUMIOLINKTYPES , AMDSMI_IOLINK_TYPE_SIZE = 0xFFFFFFFF } |
Types for IO Link. 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_power_type_t { AMDSMI_AVERAGE_POWER = 0 , AMDSMI_CURRENT_POWER , AMDSMI_INVALID_POWER = 0xFFFFFFFF } |
Power types. 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. | |
enum | amdsmi_io_bw_encoding_t { AGG_BW0 = 1 , RD_BW0 = 2 , WR_BW0 = 4 } |
xGMI Bandwidth Encoding types More... | |
Functions | |
struct | __attribute__ ((__packed__)) |
HSMP Metrics table (supported only with hsmp proto version 6). | |
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_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_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_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_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... | |
void | amdsmi_free_name_value_pairs (void *p) |
Frees heap memory allocated by reg_table and pm_metrics. 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 plpd_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) |
Clean up local 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_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_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_io_link_type_t *type) |
Retrieve the hops and the connection type between 2 GPUs. 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_io_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_accelerator_partition_profile (amdsmi_processor_handle processor_handle, amdsmi_accelerator_partition_profile_t *profile, uint32_t *partition_id) |
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_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_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_xgmi_info (amdsmi_processor_handle processor_handle, amdsmi_xgmi_info_t *info) |
Returns XGMI information for the GPU. 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. The voltage is in units of mV and the power in units of W. It is not supported on virtual machine guest. 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 processes running on a given GPU including itself. 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_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_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_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_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_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_esmi_err_msg (amdsmi_status_t status, const char **status_string) |
Get a description of provided AMDSMI error status for esmi errors. More... | |
Variables | |
amdsmi_hsmp_metrics_table_t | |
Detailed Description
AMD System Management Interface API.
Macro Definition Documentation
◆ AMDSMI_MAX_DATE_LENGTH
#define AMDSMI_MAX_DATE_LENGTH 32 |
YYYY-MM-DD:HH:MM:SS.MSC
◆ 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_YEAR
#define AMDSMI_LIB_VERSION_YEAR 24 |
library versioning
Year should follow the IP driver package version: 22.40/23.10 and similar
◆ 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_EVENT_MASK_FROM_INDEX
#define AMDSMI_EVENT_MASK_FROM_INDEX | ( | i | ) | (1ULL << ((i) - 1)) |
Macro to generate event bitmask from event id
◆ AMDSMI_MAX_UTILIZATION_VALUES
#define AMDSMI_MAX_UTILIZATION_VALUES 4 |
The utilization counter data.
The max number of values per counter type
◆ AMDSMI_DEFAULT_VARIANT
#define AMDSMI_DEFAULT_VARIANT 0xFFFFFFFFFFFFFFFF |
Place-holder "variant" for functions that have don't have any variants, but do have monitors or sensors.
Typedef Documentation
◆ amdsmi_event_handle_t
typedef uintptr_t amdsmi_event_handle_t |
Available clock types.
Event counter types
Handle to performance event counter
Enumeration Type Documentation
◆ amdsmi_init_flags_t
enum 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_status_t
enum amdsmi_status_t |
Error codes returned by amdsmi functions.
◆ amdsmi_clk_type_t
enum amdsmi_clk_type_t |
◆ amdsmi_accelerator_partition_type_t
Accelerator Partition. This enum is used to identify various accelerator partitioning settings.
◆ amdsmi_compute_partition_type_t
Compute Partition. This enum is used to identify various compute partitioning settings.
◆ amdsmi_memory_partition_type_t
Memory Partitions. This enum is used to identify various memory partition types.
◆ amdsmi_dev_perf_level_t
PowerPlay performance levels.
◆ amdsmi_event_group_t
enum amdsmi_event_group_t |
◆ amdsmi_event_type_t
enum amdsmi_event_type_t |
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.
Event types
Enumerator | |
---|---|
AMDSMI_EVNT_XGMI_0_NOP_TX | NOPs sent to neighbor 0. |
AMDSMI_EVNT_XGMI_0_REQUEST_TX | neighbor 0 Outgoing requests to |
AMDSMI_EVNT_XGMI_0_RESPONSE_TX | neighbor 0 Outgoing responses to |
AMDSMI_EVNT_XGMI_0_BEATS_TX | 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. |
AMDSMI_EVNT_XGMI_1_NOP_TX | NOPs sent to neighbor 1. |
AMDSMI_EVNT_XGMI_1_REQUEST_TX | neighbor 1 Outgoing requests to |
AMDSMI_EVNT_XGMI_1_RESPONSE_TX | neighbor 1 Outgoing responses to |
AMDSMI_EVNT_XGMI_1_BEATS_TX | Data beats sent to neighbor 1; Each beat represents 32 bytes |
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
◆ amdsmi_evt_notification_type_t
◆ amdsmi_temperature_metric_t
Temperature Metrics. This enum is used to identify various temperature metrics. Corresponding values will be in millidegress Celcius.
◆ amdsmi_voltage_metric_t
Voltage Metrics. This enum is used to identify various Volatge metrics. Corresponding values will be in millivolt.
◆ amdsmi_voltage_type_t
◆ 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.
◆ amdsmi_gpu_block_t
enum amdsmi_gpu_block_t |
This enum is used to identify different GPU blocks.
◆ amdsmi_ras_err_state_t
The current ECC state.
◆ amdsmi_memory_type_t
enum amdsmi_memory_type_t |
◆ amdsmi_freq_ind_t
enum amdsmi_freq_ind_t |
◆ amdsmi_memory_page_status_t
Reserved Memory Page States.
◆ amdsmi_io_link_type_t
◆ amdsmi_utilization_counter_type_t
◆ amdsmi_power_type_t
enum amdsmi_power_type_t |
◆ amdsmi_io_bw_encoding_t
Function Documentation
◆ amdsmi_get_gpu_device_bdf()
amdsmi_status_t amdsmi_get_gpu_device_bdf | ( | amdsmi_processor_handle | processor_handle, |
amdsmi_bdf_t * | bdf | ||
) |
Returns BDF of the given device.
- Platform:
gpu_bm_linux
host
guest_1vf
guest_mvf
guest_windows
- Parameters
-
[in] processor_handle Device which to query [out] bdf Reference to BDF. Must be allocated by user.
- Returns
- amdsmi_status_t | AMDSMI_STATUS_SUCCESS on success, non-zero on fail
◆ amdsmi_get_gpu_device_uuid()
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.
- Platform:
gpu_bm_linux
host
guest_1vf
guest_mvf
- Parameters
-
[in] processor_handle Device which to query [in,out] uuid_length Length of the uuid string. As input, must be equal or greater than SMI_GPU_UUID_SIZE and be allocated by user. As output it is the length of the uuid string. [out] uuid Pointer to string to store the UUID. Must be allocated by user.
- Returns
- amdsmi_status_t | AMDSMI_STATUS_SUCCESS on success, non-zero on fail
◆ amdsmi_get_link_topology_nearest()
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.
- Platform:
gpu_bm_linux
host
Once called topology_nearest_info will get populated with a list of all nearest devices for a given link_type. The list has a count of the number of devices found and their respective handles/identifiers.
- Parameters
-
[in] processor_handle The identifier of the given device. [in] link_type The amdsmi_link_type_t level to search for nearest GPUs. [in,out] topology_nearest_info .count; - When zero, is set to the number of matching GPUs such that .device_list can be malloc'd.
- When non-zero, .device_list will be filled with count number of processor_handle.
[out] .device_list An array of processor_handle for GPUs found at level.
- Returns
- amdsmi_status_t | AMDSMI_STATUS_SUCCESS on success, non-zero on fail.