amdsmi.h Source File

amdsmi.h Source File#

AMD SMI: amdsmi.h Source File
amdsmi.h
Go to the documentation of this file.
1/*
2 * Copyright (c) Advanced Micro Devices, Inc. All rights reserved.
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining a copy
5 * of this software and associated documentation files (the "Software"), to deal
6 * in the Software without restriction, including without limitation the rights
7 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 * copies of the Software, and to permit persons to whom the Software is
9 * furnished to do so, subject to the following conditions:
10 *
11 * The above copyright notice and this permission notice shall be included in
12 * all copies or substantial portions of the Software.
13 *
14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20 * THE SOFTWARE.
21 */
22
23#ifndef __AMDSMI_H__
24#define __AMDSMI_H__
25
31#include <stdbool.h>
32#include <time.h>
33
34#ifdef __cplusplus
35extern "C" {
36#include <cstdint>
37#else // __cplusplus
38#include <stdint.h>
39#endif // __cplusplus
40
58
64#define AMDSMI_MAX_MM_IP_COUNT 8
65#define AMDSMI_MAX_STRING_LENGTH 256
66#define AMDSMI_MAX_DEVICES 32
67#define AMDSMI_MAX_CACHE_TYPES 10
68#define AMDSMI_MAX_ACCELERATOR_PROFILE 32
69#define AMDSMI_MAX_CP_PROFILE_RESOURCES 32
70#define AMDSMI_MAX_ACCELERATOR_PARTITIONS 8
71#define AMDSMI_MAX_NUM_NUMA_NODES 32
72#define AMDSMI_GPU_UUID_SIZE 38
73
79#define AMDSMI_MAX_NUM_XGMI_PHYSICAL_LINK 64
80#define AMDSMI_MAX_CONTAINER_TYPE 2
81
91#define CENTRIGRADE_TO_MILLI_CENTIGRADE 1000
92
98#define AMDSMI_NUM_HBM_INSTANCES 4
99
105#define AMDSMI_MAX_NUM_VCN 4
106
112#define AMDSMI_MAX_NUM_CLKS 4
113
119#define AMDSMI_MAX_NUM_XGMI_LINKS 8
120
126#define AMDSMI_MAX_NUM_GFX_CLKS 8
127
133#define AMDSMI_MAX_AID 4
134
140#define AMDSMI_MAX_ENGINES 8
141
147#define AMDSMI_MAX_NUM_JPEG 32
148
155#define AMDSMI_MAX_NUM_JPEG_ENG_V1 40
156
168#define AMDSMI_MAX_NUM_XCC 8
169
182#define AMDSMI_MAX_NUM_XCP 8
183
189#define AMDSMI_APU_MAX_CORES 16
190#define AMDSMI_APU_V24_CORES 8
191#define AMDSMI_APU_MAX_L3 2
192#define AMDSMI_APU_MAX_IPU 8
193
199#define MAX_NUMBER_OF_AFIDS_PER_RECORD 12
200
206#define AMDSMI_MAX_VF_COUNT 32
207#define AMDSMI_MAX_DRIVER_NUM 2
208#define AMDSMI_DFC_FW_NUMBER_OF_ENTRIES 9
209#define AMDSMI_MAX_WHITE_LIST_ELEMENTS 16
210#define AMDSMI_MAX_BLACK_LIST_ELEMENTS 64
211#define AMDSMI_MAX_UUID_ELEMENTS 16
212#define AMDSMI_MAX_TA_WHITE_LIST_ELEMENTS 8
213#define AMDSMI_MAX_ERR_RECORDS 10
214#define AMDSMI_MAX_PROFILE_COUNT 16
215
221#define AMDSMI_MAX_NUM_HBM_STACKS 12
222#define AMDSMI_MAX_NUM_AID 2
223#define AMDSMI_MAX_NUM_MID 2
224#define AMDSMI_MAX_NUM_CLKS_PER_AID 2
225#define AMDSMI_MAX_NUM_CLKS_PER_MID 2
226
232#define AMDSMI_TIME_FORMAT "%02d:%02d:%02d.%03d"
233#define AMDSMI_DATE_FORMAT "%04d-%02d-%02d:%02d:%02d:%02d.%03d"
234
243#define AMDSMI_LIB_VERSION_MAJOR 26
244
246#define AMDSMI_LIB_VERSION_MINOR 5
247
250#define AMDSMI_LIB_VERSION_RELEASE 0
251
252#define AMDSMI_LIB_VERSION_CREATE_STRING(MAJOR, MINOR, RELEASE) (#MAJOR "." #MINOR "." #RELEASE)
253#define AMDSMI_LIB_VERSION_EXPAND_PARTS(MAJOR_STR, MINOR_STR, RELEASE_STR) \
254 AMDSMI_LIB_VERSION_CREATE_STRING(MAJOR_STR, MINOR_STR, RELEASE_STR)
255#define AMDSMI_LIB_VERSION_STRING \
256 AMDSMI_LIB_VERSION_EXPAND_PARTS(AMDSMI_LIB_VERSION_MAJOR, AMDSMI_LIB_VERSION_MINOR, \
257 AMDSMI_LIB_VERSION_RELEASE)
258
264#define AMDSMI_PF_INDEX (AMDSMI_MAX_VF_COUNT - 1)
265#define AMDSMI_MAX_DRIVER_INFO_RSVD 64
266
272typedef enum {
276 AMDSMI_MM__MAX
278
288
295typedef void* amdsmi_socket_handle;
296
302typedef void* amdsmi_node_handle;
303
304#ifdef ENABLE_ESMI_LIB
305
312
318typedef struct {
319 uint32_t major;
320 uint32_t minor;
322
328#define AMDSMI_MAX_SPD_DIMM_ADDRESS 0xFF
329#define AMDSMI_MAX_SPD_LID 0xF
330#define AMDSMI_MAX_SPD_REG_OFFSET 0x7FF
331#define AMDSMI_MAX_SPD_REG_SPACE 0x1
332#define AMDSMI_MAX_SPD_WRITE_DATA 0xFF
333#define MAX_SVI3_RAIL_INDEX 4
334#define MAX_SVI3_RAIL_SELECTION 1
335#define POWER_EFFICIENCY_MODE_4 0x4
336#define POWER_EFFICIENCY_MODE_5 0x5
337#define AMDSMI_MAX_POWER_EFFICIENCY_UTIL 0x7F
338#define AMDSMI_MAX_POWER_EFFICIENCY_PPTLIMIT 0x1FFFFF
339#define AMDSMI_RAIL_INDEX_NONE 0xFFFFFFFF
340
341#endif
342
361
372
381typedef enum {
383 // Library usage errors
405 // Processor related errors
411 // Data and size errors
417 // esmi errors
431 // General errors
433 AMDSMI_STATUS_UNKNOWN_ERROR = 0xFFFFFFFF
435
458
478
492
512
525
531typedef enum {
532 AMDSMI_MEMORY_PARTITION_UNKNOWN = 0,
547
554typedef enum {
556 AMDSMI_TEMPERATURE_TYPE_FIRST = AMDSMI_TEMPERATURE_TYPE_EDGE,
565
566 // GPU Board Node temperature
567 AMDSMI_TEMPERATURE_TYPE_GPUBOARD_NODE_FIRST = 100,
569 AMDSMI_TEMPERATURE_TYPE_GPUBOARD_NODE_FIRST,
578 AMDSMI_TEMPERATURE_TYPE_GPUBOARD_NODE_LAST = 149,
579
580 // GPU Board VR (Voltage Regulator) temperature
581 AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VR_FIRST = 150,
583 AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VR_FIRST,
623 AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VR_LAST = 199,
626
627 // Baseboard System temperature
628 AMDSMI_TEMPERATURE_TYPE_BASEBOARD_FIRST = 200,
630 AMDSMI_TEMPERATURE_TYPE_BASEBOARD_FIRST,
663 AMDSMI_TEMPERATURE_TYPE_BASEBOARD_LAST = 249,
665 AMDSMI_TEMPERATURE_TYPE_BASEBOARD_LAST
667
674typedef enum {
675 AMDSMI_FW_ID_SMU = 1,
677 AMDSMI_FW_ID_FIRST = AMDSMI_FW_ID_SMU,
769 AMDSMI_FW_ID__MAX
771
803
809typedef struct {
810 uint64_t lower_bound;
811 uint64_t upper_bound;
812 uint64_t reserved[2];
814
820typedef struct {
821 uint8_t xgmi_lanes;
822 uint64_t xgmi_hive_id;
823 uint64_t xgmi_node_id;
824 uint32_t index;
825 uint32_t reserved[9];
827
833typedef struct {
834 uint32_t vram_total;
835 uint32_t vram_used;
836 uint32_t reserved[2];
838
845typedef struct {
849 uint64_t acc_counter;
852 uint64_t acc_ppt_pwr;
856 uint64_t acc_vr_thrm;
858 uint64_t acc_hbm_thrm;
869 uint64_t per_ppt_pwr;
873 uint64_t per_vr_thrm;
875 uint64_t per_hbm_thrm;
898 // GPU metrics 1.8 violations
899 uint64_t acc_gfx_clk_below_host_limit_pwr[AMDSMI_MAX_NUM_XCP]
905 uint64_t acc_gfx_clk_below_host_limit_thm[AMDSMI_MAX_NUM_XCP]
911 uint64_t acc_low_utilization[AMDSMI_MAX_NUM_XCP]
915 uint64_t acc_gfx_clk_below_host_limit_total[AMDSMI_MAX_NUM_XCP]
922 uint64_t per_gfx_clk_below_host_limit_pwr
926 uint64_t per_gfx_clk_below_host_limit_thm
930 uint64_t per_low_utilization[AMDSMI_MAX_NUM_XCP]
934 uint64_t per_gfx_clk_below_host_limit_total
939 uint8_t active_gfx_clk_below_host_limit_pwr
943 uint8_t active_gfx_clk_below_host_limit_thm
947 uint8_t active_low_utilization[AMDSMI_MAX_NUM_XCP]
951 uint8_t active_gfx_clk_below_host_limit_total
955 uint64_t reserved[AMDSMI_MAX_NUM_XCP][AMDSMI_MAX_NUM_XCC]; // reserved for new violation info
956 uint64_t reserved2[AMDSMI_MAX_NUM_XCP][AMDSMI_MAX_NUM_XCC]; // reserved for new violation info
957 uint64_t reserved3[AMDSMI_MAX_NUM_XCP][AMDSMI_MAX_NUM_XCC]; // reserved for new violation info
959
970
976typedef union {
977 struct bdf_ {
978 uint64_t function_number : 3;
979 uint64_t device_number : 5;
980 uint64_t bus_number : 8;
981 uint64_t domain_number : 48;
982 } bdf;
983 struct {
984 uint64_t function_number : 3;
985 uint64_t device_number : 5;
986 uint64_t bus_number : 8;
987 uint64_t domain_number : 48;
988 };
989 uint64_t as_uint;
991
997typedef struct {
998 uint32_t drm_render;
999 uint32_t drm_card;
1000 uint32_t hsa_id;
1001 uint32_t hip_id;
1003 uint32_t oam_id;
1005
1017
1023typedef struct {
1030 uint64_t reserved[9];
1031 } pcie_static;
1047 uint64_t reserved[32];
1049
1055typedef struct {
1056 uint64_t power_cap;
1058 uint64_t dpm_cap;
1059 uint64_t min_power_cap;
1060 uint64_t max_power_cap;
1061 uint64_t reserved[3];
1063
1073
1079typedef struct {
1080 char name[AMDSMI_MAX_STRING_LENGTH];
1081 char build_date[AMDSMI_MAX_STRING_LENGTH];
1082 char part_number[AMDSMI_MAX_STRING_LENGTH];
1083 char version[AMDSMI_MAX_STRING_LENGTH];
1084 char boot_firmware[AMDSMI_MAX_STRING_LENGTH];
1085 uint64_t reserved[36];
1087
1100
1106typedef struct {
1107 uint32_t num_cache_types;
1108 struct cache_ {
1110 uint32_t cache_size;
1111 uint32_t cache_level;
1114 uint32_t reserved[3];
1115 } cache[AMDSMI_MAX_CACHE_TYPES];
1116 uint32_t reserved[15];
1118
1124typedef struct {
1125 uint8_t num_fw_info;
1127 amdsmi_fw_block_t fw_id;
1128 uint64_t fw_version;
1129 uint64_t reserved[2];
1130 } fw_info_list[AMDSMI_FW_ID__MAX];
1131 uint32_t reserved[7];
1133
1139typedef struct {
1140 char market_name[AMDSMI_MAX_STRING_LENGTH];
1141 uint32_t vendor_id;
1142 char vendor_name[AMDSMI_MAX_STRING_LENGTH];
1143 uint32_t subvendor_id;
1144 uint64_t device_id;
1145 uint32_t rev_id;
1146 char asic_serial[AMDSMI_MAX_STRING_LENGTH];
1148 uint32_t oam_id;
1151 uint32_t subsystem_id;
1152 uint64_t flags;
1153 uint32_t reserved[18];
1155
1161typedef struct {
1162 uint64_t kfd_id;
1163 uint32_t node_id;
1165 uint32_t reserved[12];
1167
1173typedef union {
1174 struct nps_flags_ {
1175 uint32_t nps1_cap : 1;
1176 uint32_t nps2_cap : 1;
1177 uint32_t nps4_cap : 1;
1178 uint32_t nps8_cap : 1;
1179 uint32_t reserved : 28;
1180 } nps_flags;
1181 uint32_t nps_cap_mask;
1183
1190typedef struct {
1191 amdsmi_nps_caps_t partition_caps;
1193 uint32_t num_numa_ranges;
1195 amdsmi_vram_type_t memory_type;
1196 uint64_t start;
1197 uint64_t end;
1198 } numa_range[AMDSMI_MAX_NUM_NUMA_NODES];
1199 uint64_t reserved[11];
1201
1217
1224typedef struct {
1225 uint32_t profile_index;
1229 uint64_t reserved[6];
1231
1237typedef struct {
1238 uint32_t num_profiles;
1239 uint32_t num_resource_profiles;
1241 resource_profiles[AMDSMI_MAX_CP_PROFILE_RESOURCES];
1244 uint64_t reserved[30];
1246
1263
1269typedef struct {
1270 uint32_t cpu_util_total;
1271 uint32_t cpu_util_user;
1272 uint32_t cpu_util_nice;
1273 uint32_t cpu_util_sys;
1274 uint32_t cpu_util_irq;
1276
1282typedef enum {
1283 AMDSMI_LINK_STATUS_ENABLED = 0,
1284 AMDSMI_LINK_STATUS_DISABLED = 1,
1285 AMDSMI_LINK_STATUS_INACTIVE = 2,
1286 AMDSMI_LINK_STATUS_ERROR = 3
1288
1294typedef struct {
1295 uint32_t num_links;
1306 uint64_t reserved[7];
1308
1314typedef struct {
1315 amdsmi_vram_type_t vram_type;
1316 char vram_vendor[AMDSMI_MAX_STRING_LENGTH];
1317 uint64_t vram_size;
1320 uint64_t reserved[37];
1322
1328typedef struct {
1329 char driver_version[AMDSMI_MAX_STRING_LENGTH];
1330 char driver_date[AMDSMI_MAX_STRING_LENGTH];
1331 char driver_name[AMDSMI_MAX_STRING_LENGTH];
1333
1339typedef struct {
1340 char model_number[AMDSMI_MAX_STRING_LENGTH];
1341 char product_serial[AMDSMI_MAX_STRING_LENGTH];
1342 char fru_id[AMDSMI_MAX_STRING_LENGTH];
1343 char product_name[AMDSMI_MAX_STRING_LENGTH];
1344 char manufacturer_name[AMDSMI_MAX_STRING_LENGTH];
1345 uint64_t reserved[64];
1347
1355typedef struct {
1356 uint64_t socket_power;
1361 uint64_t gfx_voltage;
1362 uint64_t soc_voltage;
1363 uint64_t mem_voltage;
1364 uint32_t power_limit;
1365 uint32_t ubb_power;
1366 uint64_t reserved[18];
1368
1374typedef struct {
1375 uint32_t clk;
1376 uint32_t min_clk;
1377 uint32_t max_clk;
1378 uint8_t clk_locked;
1380 uint32_t reserved[4];
1382
1392typedef struct {
1393 uint32_t gfx_activity;
1394 uint32_t umc_activity;
1395 uint32_t mm_activity;
1396 uint32_t reserved[13];
1398
1405
1411typedef struct {
1412 char name[AMDSMI_MAX_STRING_LENGTH];
1414 uint64_t mem;
1416 uint64_t gfx;
1417 uint64_t enc;
1418 uint32_t reserved[12];
1419 } engine_usage;
1421 uint64_t gtt_mem;
1422 uint64_t cpu_mem;
1423 uint64_t vram_mem;
1424 uint32_t reserved[10];
1425 } memory_usage;
1426 char container_name[AMDSMI_MAX_STRING_LENGTH];
1427 uint32_t cu_occupancy;
1428 uint32_t evicted_time;
1429 uint64_t sdma_usage;
1430 uint32_t reserved[8];
1432
1438typedef struct {
1439 uint32_t gpu_index;
1440 uint64_t mem;
1441 struct {
1442 uint64_t gfx;
1443 uint64_t enc;
1444 uint32_t reserved[12];
1445 } engine_usage;
1446 struct {
1447 uint64_t gtt_mem;
1448 uint64_t cpu_mem;
1449 uint64_t vram_mem;
1450 uint32_t reserved[10];
1451 } memory_usage;
1452 uint32_t cu_occupancy;
1453 uint32_t evicted_time;
1454 uint64_t sdma_usage;
1455 uint32_t reserved[8];
1457
1470
1483
1486#define AMDSMI_MAX_NUM_FREQUENCIES 33
1487
1492#define AMDSMI_MAX_FAN_SPEED 255
1493
1496#define AMDSMI_NUM_VOLTAGE_CURVE_POINTS 3
1497
1518
1524typedef uintptr_t amdsmi_event_handle_t;
1525
1538
1592
1603
1609typedef struct {
1610 uint64_t value;
1611 uint64_t time_enabled;
1612 uint64_t time_running;
1614
1638
1644#define AMDSMI_EVENT_MASK_FROM_INDEX(i) (1ULL << ((i) - 1))
1645
1656
1693
1714
1721typedef enum {
1722 AMDSMI_VOLT_TYPE_FIRST = 0,
1723
1724 AMDSMI_VOLT_TYPE_VDDGFX = AMDSMI_VOLT_TYPE_FIRST,
1726 AMDSMI_VOLT_TYPE_LAST = AMDSMI_VOLT_TYPE_VDDBOARD,
1727 AMDSMI_VOLT_TYPE_INVALID = 0xFFFFFFFF
1729
1753
1759typedef enum {
1761 AMDSMI_GPU_BLOCK_FIRST = (1ULL << 0),
1762 AMDSMI_GPU_BLOCK_UMC = AMDSMI_GPU_BLOCK_FIRST,
1764 AMDSMI_GPU_BLOCK_GFX = (1ULL << 2),
1768 AMDSMI_GPU_BLOCK_HDP = (1ULL << 6),
1770 AMDSMI_GPU_BLOCK_DF = (1ULL << 8),
1771 AMDSMI_GPU_BLOCK_SMN = (1ULL << 9),
1772 AMDSMI_GPU_BLOCK_SEM = (1ULL << 10),
1773 AMDSMI_GPU_BLOCK_MP0 = (1ULL << 11),
1774 AMDSMI_GPU_BLOCK_MP1 = (1ULL << 12),
1775 AMDSMI_GPU_BLOCK_FUSE = (1ULL << 13),
1776 AMDSMI_GPU_BLOCK_MCA = (1ULL << 14),
1777 AMDSMI_GPU_BLOCK_VCN = (1ULL << 15),
1778 AMDSMI_GPU_BLOCK_JPEG = (1ULL << 16),
1779 AMDSMI_GPU_BLOCK_IH = (1ULL << 17),
1780 AMDSMI_GPU_BLOCK_MPIO = (1ULL << 18),
1781 AMDSMI_GPU_BLOCK_LAST = AMDSMI_GPU_BLOCK_MPIO,
1782 AMDSMI_GPU_BLOCK_RESERVED = (1ULL << 63)
1784
1794
1807
1813typedef enum {
1814 AMDSMI_CPER_NOTIFY_TYPE_CMC = 0x450eBDD72DCE8BB1,
1815 AMDSMI_CPER_NOTIFY_TYPE_CPE = 0x4a55D8434E292F96,
1816 AMDSMI_CPER_NOTIFY_TYPE_MCE = 0x4cc5919CE8F56FFE,
1817 AMDSMI_CPER_NOTIFY_TYPE_PCIE = 0x4dfc1A16CF93C01F,
1818 AMDSMI_CPER_NOTIFY_TYPE_INIT = 0x454a9308CC5263E8,
1819 AMDSMI_CPER_NOTIFY_TYPE_NMI = 0x42c9B7E65BAD89FF,
1820 AMDSMI_CPER_NOTIFY_TYPE_BOOT = 0x409aAB403D61A466,
1821 AMDSMI_CPER_NOTIFY_TYPE_DMAR = 0x4c27C6B3667DD791,
1822 AMDSMI_CPER_NOTIFY_TYPE_SEA = 0x11E4BBE89A78788A,
1823 AMDSMI_CPER_NOTIFY_TYPE_SEI = 0x4E87B0AE5C284C81,
1824 AMDSMI_CPER_NOTIFY_TYPE_PEI = 0x4214520409A9D5AC,
1825 AMDSMI_CPER_NOTIFY_TYPE_CXL_COMPONENT = 0x49A341DF69293BC9
1828
1838
1845typedef struct {
1846 uint8_t major_version;
1847 uint8_t minor_version;
1850 uint64_t info[5];
1851 } policy_data;
1853
1872
1880typedef enum {
1881 AMDSMI_MEM_TYPE_FIRST = 0,
1882
1883 AMDSMI_MEM_TYPE_VRAM = AMDSMI_MEM_TYPE_FIRST,
1886
1887 AMDSMI_MEM_TYPE_LAST = AMDSMI_MEM_TYPE_GTT
1889
1900
1911
1917typedef uint64_t amdsmi_bit_field_t;
1918
1931
1949
1950#define AMDSMI_MAX_UTILIZATION_VALUES 4
1951
1959typedef struct {
1961 uint64_t value;
1962 uint64_t fine_value[AMDSMI_MAX_UTILIZATION_VALUES];
1963 uint16_t fine_value_count;
1965
1976
1989
1995typedef struct {
1997 uint32_t num_supported;
1998 uint32_t current;
2003 uint64_t frequency[AMDSMI_MAX_NUM_FREQUENCIES];
2006
2012typedef struct {
2013 uint32_t policy_id;
2014 char policy_description[AMDSMI_MAX_STRING_LENGTH];
2016
2017#define AMDSMI_MAX_NUM_PM_POLICIES 32
2018
2031
2045
2051typedef struct {
2052 uint32_t major;
2053 uint32_t minor;
2054 uint32_t release;
2055 const char* build;
2057
2063typedef struct {
2064 uint64_t frequency;
2065 uint64_t voltage;
2067
2079
2090
2106
2114typedef struct {
2115 // TODO(amd) Doxygen documents
2116 // Note: This should match: AMDGpuMetricsHeader_v1_t
2118 uint16_t structure_size;
2119 uint8_t format_revision;
2120 uint8_t content_revision;
2123
2129typedef struct {
2134 uint32_t gfx_busy_inst[AMDSMI_MAX_NUM_XCC];
2135 uint16_t jpeg_busy[AMDSMI_MAX_NUM_JPEG_ENG_V1];
2137 uint16_t vcn_busy[AMDSMI_MAX_NUM_VCN];
2138 uint64_t gfx_busy_acc[AMDSMI_MAX_NUM_XCC];
2139
2143 /* Total App Clock Counter Accumulated */
2144 uint64_t gfx_below_host_limit_acc[AMDSMI_MAX_NUM_XCC];
2145
2149 /* Total App Clock Counter Accumulated */
2150 uint64_t gfx_below_host_limit_ppt_acc[AMDSMI_MAX_NUM_XCC];
2151 uint64_t gfx_below_host_limit_thm_acc[AMDSMI_MAX_NUM_XCC];
2152 uint64_t gfx_low_utilization_acc[AMDSMI_MAX_NUM_XCC];
2153 uint64_t gfx_below_host_limit_total_acc[AMDSMI_MAX_NUM_XCC];
2154
2158 uint16_t temperature_xcd[AMDSMI_MAX_NUM_XCC];
2160
2187typedef struct {
2193 uint16_t temperature_core[AMDSMI_APU_MAX_CORES];
2194 uint16_t temperature_l3[AMDSMI_APU_MAX_L3];
2196
2203 uint16_t average_ipu_activity[AMDSMI_APU_MAX_IPU];
2204 uint16_t average_core_c0_activity[AMDSMI_APU_MAX_CORES];
2209
2221 uint16_t average_core_power[AMDSMI_APU_MAX_CORES];
2229
2242
2248 uint16_t current_uclk;
2249 uint16_t current_fclk;
2250 uint16_t current_vclk;
2251 uint16_t current_dclk;
2252 uint16_t current_coreclk[AMDSMI_APU_MAX_CORES];
2253 uint16_t current_l3clk[AMDSMI_APU_MAX_L3];
2256
2269
2273 uint16_t fan_pwm;
2274
2280 uint16_t average_temperature_core[AMDSMI_APU_MAX_CORES];
2281 uint16_t average_temperature_l3[AMDSMI_APU_MAX_L3];
2282
2292
2297
2299
2316typedef struct {
2317 amd_metrics_table_header_t common_header;
2318
2325 uint16_t temperature_hotspot;
2326 uint16_t temperature_mem;
2327 uint16_t temperature_vrgfx;
2328 uint16_t temperature_vrsoc;
2329 uint16_t temperature_vrmem;
2330
2337
2343
2346
2351 uint16_t average_socclk_frequency;
2352 uint16_t average_uclk_frequency;
2353 uint16_t average_vclk0_frequency;
2354 uint16_t average_dclk0_frequency;
2355 uint16_t average_vclk1_frequency;
2356 uint16_t average_dclk1_frequency;
2357
2362 uint16_t current_socclk;
2363 uint16_t current_uclk;
2364 uint16_t current_vclk0;
2365 uint16_t current_dclk0;
2366 uint16_t current_vclk1;
2367 uint16_t current_dclk1;
2368
2370
2372
2378
2379 /*
2380 * v1.1 additions
2381 */
2384 uint16_t temperature_hbm[AMDSMI_NUM_HBM_INSTANCES];
2385
2386 /*
2387 * v1.2 additions
2388 */
2390
2391 /*
2392 * v1.3 additions
2393 */
2394 uint16_t voltage_soc;
2395 uint16_t voltage_gfx;
2396 uint16_t voltage_mem;
2397
2399
2400 /*
2401 * v1.4 additions
2402 */
2404
2405 uint16_t vcn_activity[AMDSMI_MAX_NUM_VCN];
2406
2408
2411
2417
2421 uint64_t xgmi_read_data_acc[AMDSMI_MAX_NUM_XGMI_LINKS];
2422 uint64_t xgmi_write_data_acc[AMDSMI_MAX_NUM_XGMI_LINKS];
2423
2427 uint16_t current_gfxclks[AMDSMI_MAX_NUM_GFX_CLKS];
2428 uint16_t current_socclks[AMDSMI_MAX_NUM_CLKS];
2429 uint16_t current_vclk0s[AMDSMI_MAX_NUM_CLKS];
2430 uint16_t current_dclk0s[AMDSMI_MAX_NUM_CLKS];
2431
2435 uint16_t jpeg_activity[AMDSMI_MAX_NUM_JPEG];
2438
2443
2448
2465
2482 uint64_t vr_thm_residency_acc;
2483 uint64_t hbm_thm_residency_acc;
2484
2485 uint16_t num_partition;
2486
2491
2496
2497 uint16_t xgmi_link_status[AMDSMI_MAX_NUM_XGMI_LINKS];
2498
2502 uint16_t
2503 temperature_hbm_stacks[AMDSMI_MAX_NUM_HBM_STACKS];
2504 uint16_t temperature_mid[AMDSMI_MAX_NUM_MID];
2505 uint16_t temperature_aid[AMDSMI_MAX_NUM_AID];
2506
2507 uint16_t current_uclk_aid[AMDSMI_MAX_NUM_CLKS_PER_AID];
2508 uint16_t current_socclks_mid[AMDSMI_MAX_NUM_CLKS_PER_MID];
2509
2541
2543
2554
2560typedef struct {
2561 uint32_t total_links;
2563 uint64_t reserved[7];
2565
2571typedef struct {
2573 uint64_t value;
2575
2588
2594typedef struct {
2600 struct ras_info_ {
2601 uint32_t dram_ecc : 1;
2602 uint32_t sram_ecc : 1;
2603 uint32_t poisoning : 1;
2604 uint32_t rsvd : 29;
2605 } ras_info;
2606 bool needs_reboot;
2608
2614typedef struct {
2618 uint64_t reserved[5];
2620
2627typedef struct {
2628 uint32_t process_id;
2629 uint64_t vram_usage;
2630 uint64_t sdma_usage;
2631 uint32_t cu_occupancy;
2632 uint32_t evicted_time;
2634
2640typedef struct {
2641 uint32_t count;
2643 uint64_t reserved[15];
2645
2661
2671
2681
2687typedef struct {
2689 uint64_t limit;
2691 uint64_t reserved[5];
2693
2712
2713#ifdef ENABLE_ESMI_LIB
2714
2720typedef struct {
2721 uint8_t debug;
2722 uint8_t minor;
2723 uint8_t major;
2724 uint8_t unused;
2726
2732typedef struct {
2733 uint32_t max_bw;
2734 uint32_t utilized_bw;
2735 uint32_t utilized_pct;
2737
2743typedef struct {
2744 uint8_t range : 3;
2745 uint8_t ref_rate : 1;
2747
2753typedef struct {
2754 uint16_t power : 15;
2755 uint16_t update_rate : 9;
2756 uint8_t dimm_addr;
2758
2764typedef struct {
2765 uint16_t sensor : 11;
2766 uint16_t update_rate : 9;
2767 uint8_t dimm_addr;
2768 float temp;
2770
2781
2795
2802typedef struct {
2806
2812typedef struct __attribute__((__packed__)) {
2824
2829 uint32_t socket_power;
2830
2831 uint64_t timestamp;
2837
2844 uint32_t socclk_frequency[4];
2845 uint32_t vclk_frequency[4];
2846 uint32_t dclk_frequency[4];
2847 uint32_t lclk_frequency[4];
2848 uint64_t gfxclk_frequency_acc[8];
2849 uint64_t cclk_frequency_acc[96];
2850
2855 uint32_t fclk_frequency_table[4];
2857 uint32_t uclk_frequency_table[4];
2859 uint32_t socclk_frequency_table[4];
2861 uint32_t vclk_frequency_table[4];
2863 uint32_t dclk_frequency_table[4];
2865 uint32_t lclk_frequency_table[4];
2869
2870 uint32_t xgmi_width;
2871 uint32_t xgmi_bitrate;
2872 uint64_t xgmi_read_bandwidth_acc[8];
2874 uint64_t xgmi_write_bandwidth_acc[8];
2886 uint64_t pcie_bandwidth_acc[4];
2887
2896 uint32_t spare;
2897
2898 uint32_t gfxclk_frequency[8];
2900
2906static char* const amdsmi_hsmp_freqlimit_src_names[] = {
2907 "cHTC-Active", "PROCHOT", "TDC limit", "PPT Limit",
2908 "OPN Max", "Reliability Limit", "APML Agent", "HSMP Agent"};
2909
2915typedef struct {
2916 char model_name[AMDSMI_MAX_STRING_LENGTH];
2917 uint32_t cpu_family_id;
2918 uint32_t model_id;
2922 uint32_t vendor_id;
2923 char vendor_name[AMDSMI_MAX_STRING_LENGTH];
2924 uint32_t subvendor_id;
2925 uint64_t device_id;
2926 uint32_t rev_id;
2927 char asic_serial[AMDSMI_MAX_STRING_LENGTH];
2928 uint32_t socket_id;
2929 uint32_t core_id;
2931 uint32_t socket_count;
2932 uint32_t core_count;
2933 uint32_t reserved[17];
2935
2936#endif
2937
2943typedef struct {
2944 uint32_t socket_id;
2945 uint32_t cores_per_socket;
2947
2953#define AMDSMI_MAX_NIC_PORTS 32
2954#define AMDSMI_MAX_NIC_RDMA_DEV 32
2955#define AMDSMI_MAX_NIC_FW 16
2956
2964typedef struct {
2965 char name[AMDSMI_MAX_STRING_LENGTH];
2966 uint64_t value;
2968
2974typedef struct {
2975 uint16_t vendor_id;
2976 uint16_t subvendor_id;
2977 uint16_t device_id;
2978 uint16_t subsystem_id;
2979 uint8_t revision;
2980 char permanent_address[AMDSMI_MAX_STRING_LENGTH];
2981 char product_name[AMDSMI_MAX_STRING_LENGTH];
2982 char part_number[AMDSMI_MAX_STRING_LENGTH];
2983 char serial_number[AMDSMI_MAX_STRING_LENGTH];
2984 char vendor_name[AMDSMI_MAX_STRING_LENGTH];
2986
2992typedef struct {
2993 amdsmi_bdf_t bdf;
2994 uint8_t max_pcie_width;
2996 char pcie_interface_version[AMDSMI_MAX_STRING_LENGTH];
2997 char slot_type[AMDSMI_MAX_STRING_LENGTH];
2999
3005typedef struct {
3006 uint8_t node;
3007 char affinity[AMDSMI_MAX_STRING_LENGTH];
3009
3015typedef struct {
3016 char name[AMDSMI_MAX_STRING_LENGTH];
3017 char version[AMDSMI_MAX_STRING_LENGTH];
3019
3025typedef struct {
3026 uint32_t num_fw;
3029
3052typedef struct {
3053 amdsmi_bdf_t bdf;
3054 uint32_t port_num;
3055 char type[AMDSMI_MAX_STRING_LENGTH];
3056 char flavour[AMDSMI_MAX_STRING_LENGTH];
3057 char netdev[AMDSMI_MAX_STRING_LENGTH];
3058 uint8_t ifindex;
3059 char mac_address[AMDSMI_MAX_STRING_LENGTH];
3060 uint8_t carrier;
3061 uint16_t mtu;
3062 char link_state[AMDSMI_MAX_STRING_LENGTH];
3063 uint32_t link_speed;
3064 uint32_t active_fec;
3065 char autoneg[AMDSMI_MAX_STRING_LENGTH];
3066 char pause_autoneg[AMDSMI_MAX_STRING_LENGTH];
3067 char pause_rx[AMDSMI_MAX_STRING_LENGTH];
3068 char pause_tx[AMDSMI_MAX_STRING_LENGTH];
3070
3076typedef struct {
3077 uint32_t num_ports;
3080
3086typedef struct {
3087 char name[AMDSMI_MAX_STRING_LENGTH];
3088 char version[AMDSMI_MAX_STRING_LENGTH];
3090
3096typedef struct {
3097 char netdev[AMDSMI_MAX_STRING_LENGTH];
3098 char state[AMDSMI_MAX_STRING_LENGTH];
3099 uint8_t rdma_port;
3100 uint16_t max_mtu;
3101 uint16_t active_mtu;
3103
3109typedef struct {
3110 char rdma_dev[AMDSMI_MAX_STRING_LENGTH];
3111 char node_guid[AMDSMI_MAX_STRING_LENGTH];
3112 char node_type[AMDSMI_MAX_STRING_LENGTH];
3113 char sys_image_guid[AMDSMI_MAX_STRING_LENGTH];
3114 char fw_ver[AMDSMI_MAX_STRING_LENGTH];
3115 uint8_t num_rdma_ports;
3118
3124typedef struct {
3125 uint8_t num_rdma_dev;
3128
3129/*****************************************************************************/
3158amdsmi_status_t amdsmi_init(uint64_t init_flags);
3159
3175
3178/*****************************************************************************/
3216 amdsmi_socket_handle* socket_handles);
3217
3237amdsmi_status_t amdsmi_get_socket_info(amdsmi_socket_handle socket_handle, size_t len, char* name);
3238
3280amdsmi_status_t amdsmi_get_processor_handles(amdsmi_socket_handle socket_handle,
3281 uint32_t* processor_count,
3282 amdsmi_processor_handle* processor_handles);
3283
3305 amdsmi_node_handle* node_handle);
3306
3327 amdsmi_processor_type_t* processor_type);
3328
3351 char* name);
3352
3378 uint32_t* processor_count,
3379 uint32_t* nr_cpusockets,
3380 uint32_t* nr_cpucores, uint32_t* nr_gpus);
3381
3411 amdsmi_processor_type_t processor_type,
3412 amdsmi_processor_handle* processor_handles,
3413 uint32_t* processor_count);
3414
3433 amdsmi_processor_handle* processor_handle);
3434
3450 amdsmi_bdf_t* bdf);
3451
3472 unsigned int* uuid_length, char* uuid);
3473
3494
3523 uint32_t cpu_set_size, uint64_t* cpu_set,
3525
3545
3548/*****************************************************************************/
3581
3600 uint16_t* revision);
3601
3638 size_t len);
3639
3667 uint32_t len);
3668
3693
3730 size_t len);
3731
3734/*****************************************************************************/
3762 amdsmi_pcie_bandwidth_t* bandwidth);
3763
3811
3836 int32_t* numa_node);
3837
3865 uint64_t* sent, uint64_t* received,
3866 uint64_t* max_pkt_sz);
3867
3892 uint64_t* counter);
3893
3896/*****************************************************************************/
3937 uint64_t bw_bitmask);
3938
3941/*****************************************************************************/
3979 uint64_t* energy_accumulator, float* counter_resolution,
3980 uint64_t* timestamp);
3981
3984/*****************************************************************************/
4013 uint64_t cap);
4014
4037 uint32_t reserved,
4039
4061 uint32_t* sensor_count, uint32_t* sensor_inds,
4062 amdsmi_power_cap_type_t* sensor_types);
4063
4078 uint32_t* ppower);
4079
4094 uint32_t* pcap);
4095
4110 uint32_t* pmax);
4111
4126 uint32_t* power);
4127
4142 uint32_t pcap);
4143
4163 uint8_t power_efficiency_mode,
4164 uint32_t* utilization, uint32_t* ppt_limit);
4165
4188 uint32_t* power_efficiency_mode,
4189 uint32_t* utilization, uint32_t* ppt_limit);
4190
4207 uint32_t* power);
4208
4211/*****************************************************************************/
4245 amdsmi_memory_type_t mem_type, uint64_t* total);
4246
4274 amdsmi_memory_type_t mem_type, uint64_t* used);
4275
4301 uint32_t* num_pages,
4303
4323 uint32_t* threshold);
4324
4345
4372 amdsmi_gpu_block_t block,
4373 amdsmi_ras_err_state_t* state);
4374
4411 uint32_t* num_pages,
4413
4416/*****************************************************************************/
4450 uint32_t sensor_ind, int64_t* speed);
4451
4482 uint32_t sensor_ind, int64_t* speed);
4483
4514 uint32_t sensor_ind, uint64_t* max_speed);
4515
4532
4565 amdsmi_voltage_type_t sensor_type,
4566 amdsmi_voltage_metric_t metric, int64_t* voltage);
4567
4570/*****************************************************************************/
4595amdsmi_status_t amdsmi_reset_gpu_fan(amdsmi_processor_handle processor_handle, uint32_t sensor_ind);
4596
4624 uint32_t sensor_ind, uint64_t speed);
4625
4628/*****************************************************************************/
4652 uint32_t* gpu_busy_percent);
4653
4685 amdsmi_utilization_counter_t utilization_counters[],
4686 uint32_t count, uint64_t* timestamp);
4687
4713
4737 uint64_t clkvalue);
4738
4763 uint32_t* od);
4764
4789 uint32_t* od);
4790
4816
4836
4862
4884 amd_metrics_table_header_t* header_value);
4885
4918 amdsmi_gpu_metrics_t* pgpu_metrics);
4919
4951 amdsmi_gpu_metrics_t* pgpu_metrics);
4952
4988 amdsmi_name_value_t** pm_metrics,
4989 uint32_t* num_of_metrics);
4990
5028 amdsmi_reg_type_t reg_type,
5029 amdsmi_name_value_t** reg_metrics,
5030 uint32_t* num_of_metrics);
5031
5060 uint64_t minclkvalue, uint64_t maxclkvalue,
5061 amdsmi_clk_type_t clkType);
5062
5086 amdsmi_clk_type_t clk_type,
5087 amdsmi_clk_limit_type_t limit_type, uint64_t clk_value);
5088
5114 amdsmi_freq_ind_t level, uint64_t clkvalue,
5115 amdsmi_clk_type_t clkType);
5116
5141 uint32_t vpoint, uint64_t clkvalue, uint64_t voltvalue);
5142
5183 uint32_t* num_regions,
5185
5222 uint32_t sensor_ind,
5224
5227/*****************************************************************************/
5256 amdsmi_dev_perf_level_t perf_lvl);
5257
5299 uint32_t od);
5300
5338 amdsmi_clk_type_t clk_type, uint64_t freq_bitmask);
5339
5360 amdsmi_dpm_policy_t* policy);
5361
5384
5405 amdsmi_dpm_policy_t* xgmi_plpd);
5406
5429
5450 uint32_t* pisolate);
5451
5472 uint32_t pisolate);
5473
5492
5495/*****************************************************************************/
5515
5520typedef enum {
5521 AMDSMI_FABRIC_TELEMETRY_CATEGORY_MASK_UALOE = (1U << AMDSMI_FABRIC_TELEMETRY_CATEGORY_UALOE),
5522 AMDSMI_FABRIC_TELEMETRY_CATEGORY_MASK_SWITCH = (1U << AMDSMI_FABRIC_TELEMETRY_CATEGORY_SWITCH),
5523 AMDSMI_FABRIC_TELEMETRY_CATEGORY_MASK_CRYPTO = (1U << AMDSMI_FABRIC_TELEMETRY_CATEGORY_CRYPTO),
5524 AMDSMI_FABRIC_TELEMETRY_CATEGORY_MASK_PFC = (1U << AMDSMI_FABRIC_TELEMETRY_CATEGORY_PFC),
5525 AMDSMI_FABRIC_TELEMETRY_CATEGORY_MASK_NETPORT = (1U << AMDSMI_FABRIC_TELEMETRY_CATEGORY_NETPORT),
5526 AMDSMI_FABRIC_TELEMETRY_CATEGORY_MASK_DERIVED_UALOE =
5528 AMDSMI_FABRIC_TELEMETRY_CATEGORY_MASK_DERIVED_NETPORT =
5531 (AMDSMI_FABRIC_TELEMETRY_CATEGORY_MASK_UALOE | AMDSMI_FABRIC_TELEMETRY_CATEGORY_MASK_SWITCH |
5532 AMDSMI_FABRIC_TELEMETRY_CATEGORY_MASK_CRYPTO | AMDSMI_FABRIC_TELEMETRY_CATEGORY_MASK_PFC |
5533 AMDSMI_FABRIC_TELEMETRY_CATEGORY_MASK_NETPORT |
5534 AMDSMI_FABRIC_TELEMETRY_CATEGORY_MASK_DERIVED_UALOE |
5535 AMDSMI_FABRIC_TELEMETRY_CATEGORY_MASK_DERIVED_NETPORT)
5537
5541typedef struct {
5542 uint64_t id;
5543 uint64_t value;
5545
5551#define AMDSMI_FABRIC_LABEL_MAX_LENGTH \
5552 32
5553
5557
5569
5582
5594
5616 uint32_t category_mask,
5617 amdsmi_fabric_telemetry_t** telemetry);
5618
5636 amdsmi_fabric_telemetry_t* telemetry);
5637
5656const char* amdsmi_fabric_telem_id_to_string(uint64_t telem_id);
5657
5674 amdsmi_fabric_telemetry_t* telemetry);
5675
5686
5692typedef enum {
5693 AMDSMI_FABRIC_TYPE_UALOE,
5694 AMDSMI_FABRIC_TYPE_UALLINK,
5695 AMDSMI_FABRIC_TYPE_UNKNOWN
5697
5703typedef enum {
5704 AMDSMI_FABRIC_NPA_ADDRESS_MODE_SOURCE_ALIASING,
5705 AMDSMI_FABRIC_NPA_ADDRESS_MODE_SOURCE_IDENTIFICATION,
5706 AMDSMI_FABRIC_NPA_ADDRESS_MODE_UNKNOWN
5708
5714typedef enum {
5715 AMDSMI_FABRIC_ACCELERATOR_VPOD_STATE_UNCONFIGURED,
5716 AMDSMI_FABRIC_ACCELERATOR_VPOD_STATE_CONFIGURED,
5717 AMDSMI_FABRIC_ACCELERATOR_VPOD_STATE_READY,
5718 AMDSMI_FABRIC_ACCELERATOR_VPOD_STATE_ACTIVE,
5719 AMDSMI_FABRIC_ACCELERATOR_VPOD_STATE_ERROR,
5720 AMDSMI_FABRIC_ACCELERATOR_VPOD_STATE_UNKNOWN
5722
5744
5745typedef struct {
5746 uint32_t version;
5749 } fabric_version;
5751
5761
5793 amdsmi_fabric_info_t* info);
5794
5797/*****************************************************************************/
5820
5823/*****************************************************************************/
5859
5893 uint64_t* enabled_blocks);
5894
5917
5920#pragma pack(push, 1)
5921
5927typedef struct {
5928 unsigned char b[16];
5930
5931typedef struct {
5932 uint8_t seconds;
5933 uint8_t minutes;
5934 uint8_t hours;
5935 uint8_t flag;
5936 uint8_t day;
5937 uint8_t month;
5938 uint8_t year;
5939 uint8_t century;
5941
5942typedef union {
5944 uint32_t platform_id : 1;
5945 uint32_t timestamp : 1;
5946 uint32_t partition_id : 1;
5947 uint32_t reserved : 29;
5948 } valid_bits;
5949 uint32_t valid_mask;
5951
5952typedef struct {
5953 char signature[4];
5954 uint16_t revision;
5955 uint32_t signature_end;
5956 uint16_t sec_cnt;
5957 amdsmi_cper_sev_t error_severity;
5958 amdsmi_cper_valid_bits_t cper_valid_bits;
5959 uint32_t record_length;
5960 amdsmi_cper_timestamp_t timestamp;
5961 char platform_id[16];
5963 char creator_id[16];
5965 char record_id[8];
5966 uint32_t flags;
5968 uint8_t reserved[12];
5970
5971#pragma pack(pop)
5972
5973/*****************************************************************************/
6004amdsmi_status_t amdsmi_get_afids_from_cper(char* cper_buffer, uint32_t buf_size, uint64_t* afids,
6005 uint32_t* num_afids);
6006
6022 amdsmi_ras_feature_t* ras_feature);
6023
6063 uint32_t severity_mask, char* cper_data,
6064 uint64_t* buf_size, amdsmi_cper_hdr_t** cper_hdrs,
6065 uint64_t* entry_count, uint64_t* cursor);
6066
6069/*****************************************************************************/
6108
6128
6131/*****************************************************************************/
6252 amdsmi_event_group_t group);
6253
6284 amdsmi_event_handle_t* evnt_handle);
6285
6303
6326 amdsmi_counter_command_t cmd, void* cmd_args);
6327
6349 amdsmi_counter_value_t* value);
6350
6374 amdsmi_event_group_t grp, uint32_t* available);
6375
6378/*****************************************************************************/
6417 uint32_t* num_items);
6418
6440 amdsmi_process_info_t* proc);
6441
6475amdsmi_status_t amdsmi_get_gpu_compute_process_gpus(uint32_t pid, uint32_t* dv_indices,
6476 uint32_t* num_devices);
6477
6480/*****************************************************************************/
6511 amdsmi_xgmi_status_t* status);
6512
6530
6546 amdsmi_xgmi_info_t* info);
6547
6566 amdsmi_xgmi_link_status_t* link_status);
6567
6570/*****************************************************************************/
6591 amdsmi_link_metrics_t* link_metrics);
6592
6613 uint32_t* numa_node);
6614
6638 amdsmi_processor_handle processor_handle_dst,
6639 uint64_t* weight);
6640
6667 amdsmi_processor_handle processor_handle_src, amdsmi_processor_handle processor_handle_dst,
6668 uint64_t* min_bandwidth, uint64_t* max_bandwidth);
6669
6697 amdsmi_processor_handle processor_handle_dst,
6698 uint64_t* hops, amdsmi_link_type_t* type);
6699
6726 amdsmi_link_type_t link_type,
6727 amdsmi_topology_nearest_t* topology_nearest_info);
6728
6752 amdsmi_processor_handle processor_handle_dst,
6753 bool* accessible);
6754
6782 amdsmi_processor_handle processor_handle_dst,
6784
6787/*****************************************************************************/
6827 char* compute_partition, uint32_t len);
6828
6857 amdsmi_compute_partition_type_t compute_partition);
6858
6890
6923/*****************************************************************************/
6963 char* memory_partition, uint32_t len);
6964
6995 amdsmi_memory_partition_type_t memory_partition);
6996
7013
7042
7045/*****************************************************************************/
7070 amdsmi_processor_handle processor_handle,
7072
7095 uint32_t* partition_id);
7096
7115 amdsmi_processor_handle processor_handle, uint32_t profile_index);
7116
7119/*****************************************************************************/
7144
7176 uint64_t mask);
7177
7217amdsmi_status_t amdsmi_get_gpu_event_notification(int timeout_ms, uint32_t* num_elem,
7219
7239
7242/*****************************************************************************/
7263 amdsmi_driver_info_t* info);
7264
7267/*****************************************************************************/
7295 amdsmi_asic_info_t* info);
7296
7316 amdsmi_kfd_info_t* info);
7317
7333 amdsmi_vram_info_t* info);
7334
7350 amdsmi_board_info_t* info);
7351
7371 uint32_t sensor_ind, amdsmi_power_cap_info_t* info);
7372
7388 amdsmi_pcie_info_t* info);
7389
7407 uint16_t* xcd_count);
7408
7433
7436/*****************************************************************************/
7456 amdsmi_fw_info_t* info);
7457
7474 amdsmi_vbios_info_t* info);
7475
7478/*****************************************************************************/
7513 amdsmi_temperature_type_t sensor_type,
7514 amdsmi_temperature_metric_t metric, int64_t* temperature);
7515
7531 amdsmi_engine_usage_t* info);
7532
7551 amdsmi_power_info_t* info);
7552
7567 bool* enabled);
7568
7589 amdsmi_clk_type_t clk_type, amdsmi_clk_info_t* info);
7590
7605 amdsmi_vram_usage_t* info);
7606
7628
7631/*****************************************************************************/
7691 uint32_t* max_processes, amdsmi_proc_info_t* list);
7692
7717 uint32_t num_processors,
7719 uint32_t* max_processes);
7720
7723/*****************************************************************************/
7776
7779/*****************************************************************************/
7805
7825
7849 amdsmi_ptl_data_format_t* data_format1,
7850 amdsmi_ptl_data_format_t* data_format2);
7851
7877 amdsmi_ptl_data_format_t data_format1,
7878 amdsmi_ptl_data_format_t data_format2);
7879
7882#ifdef ENABLE_ESMI_LIB
7883
7884/*****************************************************************************/
7918 amdsmi_processor_handle* processor_handles);
7919
7947 amdsmi_processor_handle* processor_handles);
7948
7951/*****************************************************************************/
7970 uint64_t* penergy);
7971
7986 uint64_t* penergy);
7987
7990/*****************************************************************************/
8007
8021 amdsmi_processor_handle processor_handle, amdsmi_hsmp_driver_version_t* amdsmi_hsmp_driver_ver);
8022
8036 amdsmi_smu_fw_version_t* amdsmi_smu_fw);
8037
8051 uint32_t* proto_ver);
8052
8067 uint32_t* prochot);
8068
8085 uint32_t* mclk);
8086
8101
8118 amdsmi_processor_handle processor_handle, uint16_t* freq, char** src_type);
8119
8136 uint16_t* fmax, uint16_t* fmin);
8137
8152 uint32_t* freq);
8153
8182 bool* rail_isofreq_policy);
8183
8212 uint8_t* rail_isofreq_policy);
8213
8216/*****************************************************************************/
8241 uint8_t* dfc_ctrl);
8242
8262 uint8_t* dfc_ctrl);
8263
8266/*****************************************************************************/
8285 uint32_t* pboostlimit);
8286
8301 uint32_t* pc0_residency);
8302
8317 uint32_t boostlimit);
8318
8333 uint32_t boostlimit);
8334
8351 uint32_t* floor_freq);
8352
8369 uint32_t* floor_freq);
8370
8387 uint32_t* eff_floor_freq);
8388
8405 uint32_t* eff_floor_freq);
8406
8423 uint32_t floor_freq);
8424
8441 uint32_t floor_freq);
8442
8460 uint32_t msr_floor_freq);
8461
8478 uint32_t msr_floor_freq);
8479
8494amdsmi_status_t amdsmi_get_cpu_freq_range(uint32_t* fmax, uint32_t* fmin);
8495
8510 uint32_t sdps_limit);
8511
8526 uint32_t* sdps_limit);
8527
8530/*****************************************************************************/
8549 amdsmi_ddr_bw_metrics_t* ddr_bw);
8550
8553/*****************************************************************************/
8572 uint32_t* ptmon);
8573
8595
8619 uint32_t* rail_selection,
8620 uint32_t* rail_index, uint32_t* temp);
8621
8624/*****************************************************************************/
8645 amdsmi_processor_handle processor_handle, uint8_t dimm_addr,
8647
8662 uint8_t dimm_addr,
8663 amdsmi_dimm_power_t* dimm_pow);
8664
8681 uint8_t dimm_addr,
8682 amdsmi_dimm_thermal_t* dimm_temp);
8683
8709 uint32_t dimm_addr, uint32_t lid, uint32_t reg_offset,
8710 uint32_t reg_space, uint32_t* data);
8736 uint32_t dimm_addr, uint32_t lid, uint32_t reg_offset,
8737 uint32_t reg_space, uint32_t write_data);
8738
8741/*****************************************************************************/
8762 uint8_t max);
8763
8766/*****************************************************************************/
8787 uint8_t min_link_width,
8788 uint8_t max_link_width);
8789
8792/*****************************************************************************/
8809
8824
8843 uint8_t nbio_id, uint8_t min, uint8_t max);
8844
8861 uint8_t nbio_id, amdsmi_dpm_level_t* nbio);
8862
8879 uint8_t rate_ctrl, uint8_t* prev_mode);
8880
8897 uint8_t min_pstate, uint8_t max_pstate);
8898
8922 uint8_t min_pstate, uint8_t max_pstate);
8923
8948 uint8_t* min_pstate, uint8_t* max_pstate);
8949
8971 uint8_t* enabled);
8972
8993
9015 uint8_t* enabled);
9016
9039
9042/*****************************************************************************/
9063 amdsmi_link_id_bw_type_t link, uint32_t* io_bw);
9064
9081 amdsmi_link_id_bw_type_t link, uint32_t* xgmi_bw);
9082
9085/*****************************************************************************/
9104 uint32_t* metrics_version);
9105
9120 amdsmi_hsmp_metrics_table_t* metrics_table);
9121
9124/*****************************************************************************/
9143 uint32_t* pcore_ind);
9144
9157
9170
9196 amdsmi_cpu_info_t* cpu_info);
9197
9215amdsmi_status_t amdsmi_get_esmi_err_msg(amdsmi_status_t status, const char** status_string);
9216
9230
9243
9264 bool* r_mask, uint32_t* mask0, uint32_t* mask1,
9265 uint32_t* mask2);
9266
9269#endif
9270
9271/*****************************************************************************/
9292
9309
9325 amdsmi_nic_bus_info_t* info);
9326
9343
9360
9377
9401 uint32_t rdma_port_index, uint32_t* num_stats,
9402 amdsmi_nic_stat_t* stats);
9403
9450#define AMDSMI_MAX_CARVEOUT_OPTIONS 16
9457typedef struct {
9458 uint32_t index;
9459 char description[AMDSMI_MAX_STRING_LENGTH];
9461
9473
9479typedef struct {
9480 uint64_t current_pages;
9482
9506
9529 uint32_t option_index);
9530
9551
9572
9590
9593#ifdef __cplusplus
9594}
9595#endif // __cplusplus
9596
9597#endif // __AMDSMI_H__
#define AMDSMI_MAX_ACCELERATOR_PROFILE
Maximum number of accelerator profiles.
Definition amdsmi.h:68
amdsmi_npm_status_t
NPM status.
Definition amdsmi.h:2677
@ AMDSMI_NPM_STATUS_ENABLED
NPM enable flag.
Definition amdsmi.h:2679
@ AMDSMI_NPM_STATUS_DISABLED
NPM disabled flag.
Definition amdsmi.h:2678
amdsmi_link_type_t
Link type.
Definition amdsmi.h:1252
@ AMDSMI_LINK_TYPE_NOT_APPLICABLE
Not Applicable Link Type.
Definition amdsmi.h:1256
@ AMDSMI_LINK_TYPE_INTERNAL
Internal Link Type, within chip.
Definition amdsmi.h:1253
@ AMDSMI_LINK_TYPE_UNKNOWN
Unknown Link Type.
Definition amdsmi.h:1257
@ AMDSMI_LINK_TYPE_XNUMA
Two processors connect via different PCIe switches on different CPUs (NIC-to-GPU only)
Definition amdsmi.h:1260
@ AMDSMI_LINK_TYPE_NUMA
Definition amdsmi.h:1258
@ AMDSMI_LINK_TYPE_PCIE
Peripheral Component Interconnect Express Link Type.
Definition amdsmi.h:1254
@ AMDSMI_LINK_TYPE_XGMI
GPU Memory Interconnect (multi GPU communication)
Definition amdsmi.h:1255
amdsmi_evt_notification_type_t
Event notification event types.
Definition amdsmi.h:1620
@ AMDSMI_EVT_NOTIF_GPU_POST_RESET
post-reset
Definition amdsmi.h:1626
@ AMDSMI_EVT_NOTIF_PROCESS_START
KFD process start.
Definition amdsmi.h:1634
@ AMDSMI_EVT_NOTIF_UNMAP_FROM_GPU
unmap from GPU
Definition amdsmi.h:1633
@ AMDSMI_EVT_NOTIF_NONE
No events.
Definition amdsmi.h:1621
@ AMDSMI_EVT_NOTIF_VMFAULT
Virtual Memory Page Fault Event.
Definition amdsmi.h:1622
@ AMDSMI_EVT_NOTIF_MIGRATE_START
migrate start
Definition amdsmi.h:1627
@ AMDSMI_EVT_NOTIF_MIGRATE_END
migrate end
Definition amdsmi.h:1628
@ AMDSMI_EVT_NOTIF_QUEUE_EVICTION
queue eviction
Definition amdsmi.h:1631
@ AMDSMI_EVT_NOTIF_PAGE_FAULT_START
page fault start
Definition amdsmi.h:1629
@ AMDSMI_EVT_NOTIF_GPU_PRE_RESET
pre-reset
Definition amdsmi.h:1625
@ AMDSMI_EVT_NOTIF_QUEUE_RESTORE
queue restore
Definition amdsmi.h:1632
@ AMDSMI_EVT_NOTIF_THERMAL_THROTTLE
thermal throttle
Definition amdsmi.h:1624
@ AMDSMI_EVT_NOTIF_PAGE_FAULT_END
page fault end
Definition amdsmi.h:1630
@ AMDSMI_EVT_NOTIF_PROCESS_END
KFD process end.
Definition amdsmi.h:1635
#define AMDSMI_MAX_NUM_CLKS
This should match MAX_NUM_CLKS.
Definition amdsmi.h:112
amdsmi_container_types_t
Container.
Definition amdsmi.h:284
@ AMDSMI_CONTAINER_DOCKER
Docker containers.
Definition amdsmi.h:286
@ AMDSMI_CONTAINER_LXC
Linux containers.
Definition amdsmi.h:285
#define AMDSMI_MAX_NUM_XGMI_LINKS
This should match MAX_NUM_XGMI_LINKS.
Definition amdsmi.h:119
amdsmi_freq_ind_t
The values of this enum are used as frequency identifiers.
Definition amdsmi.h:1895
@ AMDSMI_FREQ_IND_INVALID
An invalid frequency index.
Definition amdsmi.h:1898
@ AMDSMI_FREQ_IND_MAX
Index used for the maximum frequency value.
Definition amdsmi.h:1897
@ AMDSMI_FREQ_IND_MIN
Index used for the minimum frequency value.
Definition amdsmi.h:1896
amdsmi_reg_type_t
This register type for register table.
Definition amdsmi.h:2581
@ AMDSMI_REG_XGMI
XGMI registers.
Definition amdsmi.h:2582
@ AMDSMI_REG_USR
Usr registers.
Definition amdsmi.h:2585
@ AMDSMI_REG_WAFL
WAFL registers.
Definition amdsmi.h:2583
@ AMDSMI_REG_USR1
Usr1 registers.
Definition amdsmi.h:2586
@ AMDSMI_REG_PCIE
PCIe registers.
Definition amdsmi.h:2584
uintptr_t amdsmi_event_handle_t
Handle to performance event counter.
Definition amdsmi.h:1524
amdsmi_memory_type_t
Types of memory.
Definition amdsmi.h:1880
@ AMDSMI_MEM_TYPE_VRAM
VRAM memory.
Definition amdsmi.h:1883
@ AMDSMI_MEM_TYPE_VIS_VRAM
VRAM memory that is visible.
Definition amdsmi.h:1884
@ AMDSMI_MEM_TYPE_GTT
GTT memory.
Definition amdsmi.h:1885
amdsmi_accelerator_partition_type_t
Accelerator Partition.
Definition amdsmi.h:464
@ AMDSMI_ACCELERATOR_PARTITION_DPX
Definition amdsmi.h:468
@ AMDSMI_ACCELERATOR_PARTITION_QPX
Definition amdsmi.h:472
@ AMDSMI_ACCELERATOR_PARTITION_INVALID
Invalid accelerator partition type.
Definition amdsmi.h:465
@ AMDSMI_ACCELERATOR_PARTITION_SPX
Definition amdsmi.h:466
@ AMDSMI_ACCELERATOR_PARTITION_TPX
Definition amdsmi.h:470
@ AMDSMI_ACCELERATOR_PARTITION_CPX
Definition amdsmi.h:474
#define AMDSMI_MAX_NUM_HBM_STACKS
Introduced in gpu metrics v1.9+.
Definition amdsmi.h:221
amdsmi_power_cap_type_t
Power Cap Package Power Tracking (PPT) type.
Definition amdsmi.h:1069
@ AMDSMI_POWER_CAP_TYPE_PPT1
PPT1 power cap; higher limit, raw input.
Definition amdsmi.h:1071
@ AMDSMI_POWER_CAP_TYPE_PPT0
PPT0 power cap; lower limit, filtered input.
Definition amdsmi.h:1070
amdsmi_clk_type_t
Clock types.
Definition amdsmi.h:441
@ AMDSMI_CLK_TYPE_DCLK1
Display 2 clock, timing signals for display output.
Definition amdsmi.h:455
@ AMDSMI_CLK_TYPE_MEM
Memory clock speed, system operating frequency.
Definition amdsmi.h:450
@ AMDSMI_CLK_TYPE_SYS
System clock.
Definition amdsmi.h:442
@ AMDSMI_CLK_TYPE_SOC
System On Chip clock, integrated circuit frequency.
Definition amdsmi.h:449
@ AMDSMI_CLK_TYPE_GFX
Graphics clock.
Definition amdsmi.h:444
@ AMDSMI_CLK_TYPE_DCLK0
Display 1 clock, timing signals for display output.
Definition amdsmi.h:454
@ AMDSMI_CLK_TYPE_DCEF
Definition amdsmi.h:447
@ AMDSMI_CLK_TYPE_VCLK1
Video 1 clock, video processing units.
Definition amdsmi.h:453
@ AMDSMI_CLK_TYPE_DF
Definition amdsmi.h:445
@ AMDSMI_CLK_TYPE_VCLK0
Video 0 clock, video processing units.
Definition amdsmi.h:452
@ AMDSMI_CLK_TYPE_PCIE
PCI Express clock, high bandwidth peripherals.
Definition amdsmi.h:451
amdsmi_accelerator_partition_resource_type_t
Accelerator Partition Resource Types.
Definition amdsmi.h:484
@ AMDSMI_ACCELERATOR_DMA
Direct Memory Access, high speed data transfers.
Definition amdsmi.h:488
@ AMDSMI_ACCELERATOR_XCC
Compute complex or stream processors.
Definition amdsmi.h:485
@ AMDSMI_ACCELERATOR_DECODER
Video decoding.
Definition amdsmi.h:487
@ AMDSMI_ACCELERATOR_JPEG
Encoding and Decoding jpeg engines.
Definition amdsmi.h:489
@ AMDSMI_ACCELERATOR_ENCODER
Video encoding.
Definition amdsmi.h:486
amdsmi_card_form_factor_t
Card Form Factor.
Definition amdsmi.h:1011
@ AMDSMI_CARD_FORM_FACTOR_OAM
OAM form factor.
Definition amdsmi.h:1013
@ AMDSMI_CARD_FORM_FACTOR_UNKNOWN
Unknown Form factor.
Definition amdsmi.h:1015
@ AMDSMI_CARD_FORM_FACTOR_PCIE
PCIE card form factor.
Definition amdsmi.h:1012
@ AMDSMI_CARD_FORM_FACTOR_CEM
CEM form factor.
Definition amdsmi.h:1014
void * amdsmi_node_handle
opaque handler point to underlying implementation
Definition amdsmi.h:302
#define AMDSMI_MAX_NUM_XGMI_PHYSICAL_LINK
Common defines.
Definition amdsmi.h:79
#define AMDSMI_MAX_NUM_XCP
This should match AMDSMI_MAX_NUM_XCP; XCP - Accelerated Compute Processor, also referred to as the Gr...
Definition amdsmi.h:182
amdsmi_init_flags_t
Initialization flags.
Definition amdsmi.h:48
@ AMDSMI_INIT_AMD_GPUS
Initialize AMD GPUS.
Definition amdsmi.h:51
@ AMDSMI_INIT_ALL_PROCESSORS
Initialize all processors.
Definition amdsmi.h:49
@ AMDSMI_INIT_AMD_CPUS
Initialize AMD CPUS.
Definition amdsmi.h:50
@ AMDSMI_INIT_NON_AMD_GPUS
Initialize Non-AMD GPUS.
Definition amdsmi.h:53
@ AMDSMI_INIT_AMD_NICS
Initialize NIC's.
Definition amdsmi.h:56
@ AMDSMI_INIT_NON_AMD_CPUS
Initialize Non-AMD CPUS.
Definition amdsmi.h:52
@ AMDSMI_INIT_AMD_APUS
Definition amdsmi.h:54
#define AMDSMI_MAX_NIC_FW
Maximum number of NIC firmwares.
Definition amdsmi.h:2955
#define AMDSMI_MAX_NUM_XCC
This should match AMDSMI_MAX_NUM_XCC; XCC - Accelerated Compute Core, the collection of compute units...
Definition amdsmi.h:168
#define AMDSMI_NUM_HBM_INSTANCES
This should match NUM_HBM_INSTANCES.
Definition amdsmi.h:98
amdsmi_vram_type_t
vRam Types. This enum is used to identify various VRam types.
Definition amdsmi.h:777
@ AMDSMI_VRAM_TYPE_GDDR2
Graphics Double Data Rate, Generation 2.
Definition amdsmi.h:792
@ AMDSMI_VRAM_TYPE_HBM2E
High Bandwidth Memory, Generation 2 Enhanced.
Definition amdsmi.h:782
@ AMDSMI_VRAM_TYPE_GDDR6
Graphics Double Data Rate, Generation 6.
Definition amdsmi.h:796
@ AMDSMI_VRAM_TYPE_HBM
High Bandwidth Memory.
Definition amdsmi.h:780
@ AMDSMI_VRAM_TYPE_GDDR3
Graphics Double Data Rate, Generation 3.
Definition amdsmi.h:793
@ AMDSMI_VRAM_TYPE_GDDR1
Graphics Double Data Rate, Generation 1.
Definition amdsmi.h:791
@ AMDSMI_VRAM_TYPE_HBM3
High Bandwidth Memory, Generation 3.
Definition amdsmi.h:783
@ AMDSMI_VRAM_TYPE_LPDDR5
Low Power Double Data Rate, Generation 5.
Definition amdsmi.h:800
@ AMDSMI_VRAM_TYPE_HBM3E
High Bandwidth Memory, Generation 3 Enhanced.
Definition amdsmi.h:784
@ AMDSMI_VRAM_TYPE_GDDR5
Graphics Double Data Rate, Generation 5.
Definition amdsmi.h:795
@ AMDSMI_VRAM_TYPE_DDR3
Double Data Rate, Generation 3.
Definition amdsmi.h:787
@ AMDSMI_VRAM_TYPE_GDDR4
Graphics Double Data Rate, Generation 4.
Definition amdsmi.h:794
@ AMDSMI_VRAM_TYPE_DDR2
Double Data Rate, Generation 2.
Definition amdsmi.h:786
@ AMDSMI_VRAM_TYPE_GDDR7
Graphics Double Data Rate, Generation 7.
Definition amdsmi.h:797
@ AMDSMI_VRAM_TYPE_HBM2
High Bandwidth Memory, Generation 2.
Definition amdsmi.h:781
@ AMDSMI_VRAM_TYPE_LPDDR4
Low Power Double Data Rate, Generation 4.
Definition amdsmi.h:799
@ AMDSMI_VRAM_TYPE_DDR5
Double Data Rate, Generation 5.
Definition amdsmi.h:789
@ AMDSMI_VRAM_TYPE_DDR4
Double Data Rate, Generation 4.
Definition amdsmi.h:788
@ AMDSMI_VRAM_TYPE_UNKNOWN
Unknown memory type.
Definition amdsmi.h:778
amdsmi_event_group_t
Event Groups Enum denoting an event group. The value of the enum is the base value for all the event ...
Definition amdsmi.h:1533
@ AMDSMI_EVNT_GRP_XGMI
Data Fabric (XGMI) related events.
Definition amdsmi.h:1534
@ AMDSMI_EVNT_GRP_XGMI_DATA_OUT
XGMI Outbound data.
Definition amdsmi.h:1535
@ AMDSMI_EVNT_GRP_INVALID
Unknown Event Group.
Definition amdsmi.h:1536
amdsmi_ras_err_state_t
The current ECC state.
Definition amdsmi.h:1859
@ AMDSMI_RAS_ERR_STATE_PARITY
ECC errors present, but type unknown.
Definition amdsmi.h:1862
@ AMDSMI_RAS_ERR_STATE_SING_C
Single correctable error.
Definition amdsmi.h:1863
@ AMDSMI_RAS_ERR_STATE_MULT_UC
Multiple uncorrectable errors.
Definition amdsmi.h:1864
@ AMDSMI_RAS_ERR_STATE_POISON
Definition amdsmi.h:1865
@ AMDSMI_RAS_ERR_STATE_ENABLED
ECC is enabled.
Definition amdsmi.h:1867
@ AMDSMI_RAS_ERR_STATE_NONE
No current errors.
Definition amdsmi.h:1860
@ AMDSMI_RAS_ERR_STATE_DISABLED
ECC is disabled.
Definition amdsmi.h:1861
#define AMDSMI_APU_MAX_L3
v2_4
Definition amdsmi.h:191
#define AMDSMI_MAX_NUM_AID
Maximum number of AID supported.
Definition amdsmi.h:222
amdsmi_io_bw_encoding_t
xGMI Bandwidth Encoding types
Definition amdsmi.h:2776
@ AGG_BW0
Aggregate Bandwidth.
Definition amdsmi.h:2777
@ RD_BW0
Read Bandwidth.
Definition amdsmi.h:2778
@ WR_BW0
Write Bandwidth.
Definition amdsmi.h:2779
#define AMDSMI_MAX_ACCELERATOR_PARTITIONS
Maximum number of accelerator partitions.
Definition amdsmi.h:70
amdsmi_cper_notify_type_t
Cper notify.
Definition amdsmi.h:1813
@ AMDSMI_CPER_NOTIFY_TYPE_DMAR
Direct Memory Access Remapping Error.
Definition amdsmi.h:1821
@ AMDSMI_CPER_NOTIFY_TYPE_NMI
Non_Maskable Interrupt.
Definition amdsmi.h:1819
@ AMDSMI_CPER_NOTIFY_TYPE_SEI
System Error Interface.
Definition amdsmi.h:1823
@ AMDSMI_CPER_NOTIFY_TYPE_CMC
Corrected Memory Check.
Definition amdsmi.h:1814
@ AMDSMI_CPER_NOTIFY_TYPE_CPE
Corrected Platform Error.
Definition amdsmi.h:1815
@ AMDSMI_CPER_NOTIFY_TYPE_CXL_COMPONENT
Definition amdsmi.h:1825
@ AMDSMI_CPER_NOTIFY_TYPE_SEA
System Error Architecture.
Definition amdsmi.h:1822
@ AMDSMI_CPER_NOTIFY_TYPE_PEI
Platform Error Interface.
Definition amdsmi.h:1824
@ AMDSMI_CPER_NOTIFY_TYPE_MCE
Machine Check Exception.
Definition amdsmi.h:1816
@ AMDSMI_CPER_NOTIFY_TYPE_BOOT
Boot Error.
Definition amdsmi.h:1820
@ AMDSMI_CPER_NOTIFY_TYPE_PCIE
PCI Express Error.
Definition amdsmi.h:1817
@ AMDSMI_CPER_NOTIFY_TYPE_INIT
Initialization Error.
Definition amdsmi.h:1818
amdsmi_event_type_t
Event types Event type enum. Events belonging to a particular event group amdsmi_event_group_t should...
Definition amdsmi.h:1569
@ AMDSMI_EVNT_XGMI_0_BEATS_TX
Throughput = BEATS/time_running 10^9 bytes/sec.
Definition amdsmi.h:1576
@ AMDSMI_EVNT_XGMI_DATA_OUT_3
Outbound beats to neighbor 3.
Definition amdsmi.h:1586
@ AMDSMI_EVNT_XGMI_0_NOP_TX
NOPs sent to neighbor 0.
Definition amdsmi.h:1573
@ AMDSMI_EVNT_XGMI_1_NOP_TX
NOPs sent to neighbor 1.
Definition amdsmi.h:1577
@ AMDSMI_EVNT_XGMI_0_RESPONSE_TX
Outgoing responses to neighbor 0.
Definition amdsmi.h:1575
@ AMDSMI_EVNT_XGMI_1_BEATS_TX
Data beats sent to neighbor 1; Each beat represents 32 bytes.
Definition amdsmi.h:1580
@ AMDSMI_EVNT_XGMI_DATA_OUT_4
Outbound beats to neighbor 4.
Definition amdsmi.h:1587
@ AMDSMI_EVNT_XGMI_DATA_OUT_1
Outbound beats to neighbor 1.
Definition amdsmi.h:1584
@ AMDSMI_EVNT_XGMI_DATA_OUT_2
Outbound beats to neighbor 2.
Definition amdsmi.h:1585
@ AMDSMI_EVNT_XGMI_1_REQUEST_TX
Outgoing requests to neighbor 1.
Definition amdsmi.h:1578
@ AMDSMI_EVNT_XGMI_DATA_OUT_5
Outbound beats to neighbor 5.
Definition amdsmi.h:1588
@ AMDSMI_EVNT_XGMI_DATA_OUT_0
Outbound beats to neighbor 0.
Definition amdsmi.h:1583
@ AMDSMI_EVNT_XGMI_0_REQUEST_TX
Outgoing requests to neighbor 0.
Definition amdsmi.h:1574
@ AMDSMI_EVNT_XGMI_1_RESPONSE_TX
Outgoing responses to neighbor 1.
Definition amdsmi.h:1579
#define AMDSMI_MAX_CP_PROFILE_RESOURCES
Maximum number of compute profile resources.
Definition amdsmi.h:69
#define AMDSMI_MAX_UTILIZATION_VALUES
The max number of values per counter type.
Definition amdsmi.h:1950
amdsmi_fw_block_t
The values of this enum are used to identify the various firmware blocks.
Definition amdsmi.h:674
@ AMDSMI_FW_ID_ASD
Asynchronous Shader Dispatcher.
Definition amdsmi.h:761
@ AMDSMI_FW_ID_RS64_ME_P0_DATA
Hardware Block RS64 - Micro Engine Partition 0 Data.
Definition amdsmi.h:737
@ AMDSMI_FW_ID_RLC_RESTORE_LIST_SRM_MEM
Definition amdsmi.h:707
@ AMDSMI_FW_ID_SDMA7
System Direct Memory Access 7 (high speed data transfers)
Definition amdsmi.h:697
@ AMDSMI_FW_ID_PSP_BL
Platform Security Processor Bootloader (initial firmware)
Definition amdsmi.h:720
@ AMDSMI_FW_ID_RLC
Rasterizer and L2 Cache (rasterization process)
Definition amdsmi.h:689
@ AMDSMI_FW_ID_RS64_PFP
Hardware Block RS64 - Pixel Front End Processor.
Definition amdsmi.h:739
@ AMDSMI_FW_ID_SDMA_TH1
System Direct Memory Access - Thread Handler 1.
Definition amdsmi.h:728
@ AMDSMI_FW_ID_MMSCH
Multi-Media Shader Hardware Scheduler.
Definition amdsmi.h:711
@ AMDSMI_FW_ID_RLX6
Hardware Block RLX6.
Definition amdsmi.h:734
@ AMDSMI_FW_ID_PSP_SOSDRV
Platform Security Processor Secure Operating System Driver.
Definition amdsmi.h:713
@ AMDSMI_FW_ID_TA_RAS
Trusted Applications - Reliability Availability and Serviceability.
Definition amdsmi.h:762
@ AMDSMI_FW_ID_PSP_KEYDB
Platform Security Processor Table of Contents.
Definition amdsmi.h:715
@ AMDSMI_FW_ID_RLC_SRLS
Rasterizier and L2 Cache - Shared Resource Local Segment.
Definition amdsmi.h:765
@ AMDSMI_FW_ID_VCE
Video Coding Engine (Encoding video)
Definition amdsmi.h:700
@ AMDSMI_FW_ID_DMCU_ISR
Definition amdsmi.h:703
@ AMDSMI_FW_ID_SDMA6
System Direct Memory Access 6 (high speed data transfers)
Definition amdsmi.h:696
@ AMDSMI_FW_ID_PSP_DBG
Platform Security Processor - Debug.
Definition amdsmi.h:755
@ AMDSMI_FW_ID_CP_CE
Compute Processor - Command_Engine (fetch, decode, dispatch)
Definition amdsmi.h:678
@ AMDSMI_FW_ID_DRV_CAP
Driver Capabilities (capabilities, features)
Definition amdsmi.h:718
@ AMDSMI_FW_ID_RS64_ME_P1_DATA
Hardware Block RS64 - Micro Engine Partition 1 Data.
Definition amdsmi.h:738
@ AMDSMI_FW_ID_MES_THREAD1
Micro Engine Scheduler - Thread 1.
Definition amdsmi.h:732
@ AMDSMI_FW_ID_PM
Power Management Firmware.
Definition amdsmi.h:766
@ AMDSMI_FW_ID_SDMA0
System Direct Memory Access 0 (high speed data transfers)
Definition amdsmi.h:690
@ AMDSMI_FW_ID_ISP
Image Signal Processor (processing raw image data from sensors)
Definition amdsmi.h:701
@ AMDSMI_FW_ID_PSP_SOC
Platform Security Processor - System On a Chip.
Definition amdsmi.h:754
@ AMDSMI_FW_ID_CP_PM4
Compute Processor Packet Processor 4 (processing command packets)
Definition amdsmi.h:721
@ AMDSMI_FW_ID_RLC_P
Rasterizier and L2 Cache Partition.
Definition amdsmi.h:722
@ AMDSMI_FW_ID_SDMA_TH0
System Direct Memory Access - Thread Handler 0.
Definition amdsmi.h:727
@ AMDSMI_FW_ID_MC
Memory Controller (RAM and VRAM)
Definition amdsmi.h:719
@ AMDSMI_FW_ID_VCN
Video Core Next (encoding and decoding)
Definition amdsmi.h:698
@ AMDSMI_FW_ID_RLX6_DRAM_BOOT_CORE1
Hardware Block RLX6 Core 1 - Dynamic RAM Boot.
Definition amdsmi.h:758
@ AMDSMI_FW_ID_MES_STACK
Micro Engine Scheduler - Stack.
Definition amdsmi.h:731
@ AMDSMI_FW_ID_PSP_TOC
Platform Security Processor Table of Contents.
Definition amdsmi.h:714
@ AMDSMI_FW_ID_IMU_IRAM
Input/Output Memory Management Unit - Instruction RAM.
Definition amdsmi.h:726
@ AMDSMI_FW_ID_SEC_POLICY_STAGE2
Security Policy Stage 2 (security features)
Definition amdsmi.h:723
@ AMDSMI_FW_ID_RS64_MEC_P2_DATA
Definition amdsmi.h:749
@ AMDSMI_FW_ID_PLDM_BUNDLE
Platform Level Data Model Firmware Bundle.
Definition amdsmi.h:768
@ AMDSMI_FW_ID_TA_XGMI
Trusted Applications - Reliability XGMI.
Definition amdsmi.h:763
@ AMDSMI_FW_ID_RS64_ME
Hardware Block RS64 - Micro Engine.
Definition amdsmi.h:736
@ AMDSMI_FW_ID_SDMA3
System Direct Memory Access 3 (high speed data transfers)
Definition amdsmi.h:693
@ AMDSMI_FW_ID_SDMA1
System Direct Memory Access 1 (high speed data transfers)
Definition amdsmi.h:691
@ AMDSMI_FW_ID_CP_ME
Compute Processor - Micro Engine (specialize processing)
Definition amdsmi.h:680
@ AMDSMI_FW_ID_RS64_MEC_P3_DATA
Definition amdsmi.h:751
@ AMDSMI_FW_ID_CP_MEC_JT1
Definition amdsmi.h:681
@ AMDSMI_FW_ID_UVD
Unified Video Decoder (decode specific video formats)
Definition amdsmi.h:699
@ AMDSMI_FW_ID_RLC_V
Rasterizier and L2 Cache Virtual memory.
Definition amdsmi.h:710
@ AMDSMI_FW_ID_SDMA4
System Direct Memory Access 4 (high speed data transfers)
Definition amdsmi.h:694
@ AMDSMI_FW_ID_MES_KIQ
Micro Engine Scheduler - Kernel Indirect Queue.
Definition amdsmi.h:730
@ AMDSMI_FW_ID_DMCU
Display Micro-Controller Unit.
Definition amdsmi.h:767
@ AMDSMI_FW_ID_RLC_SRLG
Rasterizier and L2 Cache - Shared Resource Local Group.
Definition amdsmi.h:764
@ AMDSMI_FW_ID_RS64_PFP_P1_DATA
Definition amdsmi.h:742
@ AMDSMI_FW_ID_RLX6_DRAM_BOOT
Hardware Block RLX6 - Dynamic Ram Boot.
Definition amdsmi.h:735
@ AMDSMI_FW_ID_IMU_DRAM
Input/Output Memory Management Unit - Dynamic RAM.
Definition amdsmi.h:725
@ AMDSMI_FW_ID_CP_MEC1
Definition amdsmi.h:685
@ AMDSMI_FW_ID_RLC_RESTORE_LIST_CNTL
Rasterizier and L2 Cache Restore List Control.
Definition amdsmi.h:709
@ AMDSMI_FW_ID_RS64_MEC_P0_DATA
Definition amdsmi.h:745
@ AMDSMI_FW_ID_RLX6_CORE1
Hardware Block RLX6 - Core 1.
Definition amdsmi.h:757
@ AMDSMI_FW_ID_RS64_MEC_P1_DATA
Definition amdsmi.h:747
@ AMDSMI_FW_ID_RLC_RESTORE_LIST_GPM_MEM
Definition amdsmi.h:705
@ AMDSMI_FW_ID_PSP_INTF
Platform Security Processor - Interface.
Definition amdsmi.h:756
@ AMDSMI_FW_ID_CP_MEC_JT2
Definition amdsmi.h:683
@ AMDSMI_FW_ID_RLC_SAVE_RESTORE_LIST
Rasterizier and L2 Cache - Save Restore List.
Definition amdsmi.h:760
@ AMDSMI_FW_ID_CP_PFP
Compute Processor - Pixel Front End Processor (pixelating process)
Definition amdsmi.h:679
@ AMDSMI_FW_ID_MES_THREAD1_STACK
Micro Engine Scheduler - Thread 1 Stack.
Definition amdsmi.h:733
@ AMDSMI_FW_ID_SMU
Definition amdsmi.h:675
@ AMDSMI_FW_ID_PPTABLE
Power Policy Table (power management policies)
Definition amdsmi.h:753
@ AMDSMI_FW_ID_PSP_SPL
Platform Security Processor Secure Program Loader.
Definition amdsmi.h:717
@ AMDSMI_FW_ID_REG_ACCESS_WHITELIST
Register Access Whitelist (Prevent unathorizied access)
Definition amdsmi.h:724
@ AMDSMI_FW_ID_PSP_SYSDRV
Platform Security Processor System Driver.
Definition amdsmi.h:712
@ AMDSMI_FW_ID_RS64_PFP_P0_DATA
Definition amdsmi.h:740
@ AMDSMI_FW_ID_SDMA5
System Direct Memory Access 5 (high speed data transfers)
Definition amdsmi.h:695
@ AMDSMI_FW_ID_SDMA2
System Direct Memory Access 2 (high speed data transfers)
Definition amdsmi.h:692
@ AMDSMI_FW_ID_CP_MES
Compute Processor - Micro Engine Scheduler.
Definition amdsmi.h:729
@ AMDSMI_FW_ID_DMCU_ERAM
Digital Micro Controller Unit - Embedded RAM (memory used by DMU)
Definition amdsmi.h:702
@ AMDSMI_FW_ID_RLCV_LX7
Hardware Block RLCV - Subsystem LX7.
Definition amdsmi.h:759
@ AMDSMI_FW_ID_RS64_MEC
Hardware Block RS64 - Micro Engine Controller.
Definition amdsmi.h:744
@ AMDSMI_FW_ID_DFC
Data Fabric Controller (bandwidth and coherency)
Definition amdsmi.h:716
@ AMDSMI_FW_ID_CP_MEC2
Definition amdsmi.h:687
#define AMDSMI_MAX_NIC_PORTS
Maximum size definitions AMDSMI NIC.
Definition amdsmi.h:2953
amdsmi_mm_ip_t
GPU Capability info.
Definition amdsmi.h:272
@ AMDSMI_MM_UVD
Multi-Media Unified Video Decoder.
Definition amdsmi.h:273
@ AMDSMI_MM_VCE
Multi-Media Video Coding Engine.
Definition amdsmi.h:274
@ AMDSMI_MM_VCN
Multi-Media Video Core Next.
Definition amdsmi.h:275
amdsmi_memory_page_status_t
Reserved Memory Page States.
Definition amdsmi.h:1924
@ AMDSMI_MEM_PAGE_STATUS_UNRESERVABLE
Unable to reserve this page.
Definition amdsmi.h:1929
@ AMDSMI_MEM_PAGE_STATUS_RESERVED
Definition amdsmi.h:1925
@ AMDSMI_MEM_PAGE_STATUS_PENDING
Definition amdsmi.h:1927
amdsmi_xgmi_status_t
XGMI Status.
Definition amdsmi.h:1906
@ AMDSMI_XGMI_STATUS_MULTIPLE_ERRORS
XGMI Multiple Errors.
Definition amdsmi.h:1909
@ AMDSMI_XGMI_STATUS_NO_ERRORS
XGMI No Errors.
Definition amdsmi.h:1907
@ AMDSMI_XGMI_STATUS_ERROR
XGMI Errors.
Definition amdsmi.h:1908
amdsmi_dev_perf_level_t
PowerPlay performance levels.
Definition amdsmi.h:1503
@ AMDSMI_DEV_PERF_LEVEL_STABLE_STD
Stable power state with profiling clocks.
Definition amdsmi.h:1510
@ AMDSMI_DEV_PERF_LEVEL_STABLE_PEAK
Stable power state with peak clocks.
Definition amdsmi.h:1511
@ AMDSMI_DEV_PERF_LEVEL_AUTO
Performance level is "auto".
Definition amdsmi.h:1504
@ AMDSMI_DEV_PERF_LEVEL_STABLE_MIN_SCLK
Stable power state with minimum system clock.
Definition amdsmi.h:1513
@ AMDSMI_DEV_PERF_LEVEL_STABLE_MIN_MCLK
Stable power state with minimum memory clock.
Definition amdsmi.h:1512
@ AMDSMI_DEV_PERF_LEVEL_DETERMINISM
Performance determinism state.
Definition amdsmi.h:1514
@ AMDSMI_DEV_PERF_LEVEL_LOW
Keep PowerPlay levels "low", regardless of workload.
Definition amdsmi.h:1506
@ AMDSMI_DEV_PERF_LEVEL_HIGH
Keep PowerPlay levels "high", regardless of workload.
Definition amdsmi.h:1507
@ AMDSMI_DEV_PERF_LEVEL_MANUAL
Definition amdsmi.h:1508
@ AMDSMI_DEV_PERF_LEVEL_UNKNOWN
Unknown performance level.
Definition amdsmi.h:1516
amdsmi_virtualization_mode_t
Variant placeholder.
Definition amdsmi.h:2654
@ AMDSMI_VIRTUALIZATION_MODE_BAREMETAL
Baremetal Virtualization Mode.
Definition amdsmi.h:2656
@ AMDSMI_VIRTUALIZATION_MODE_UNKNOWN
Unknown Virtualization Mode.
Definition amdsmi.h:2655
@ AMDSMI_VIRTUALIZATION_MODE_HOST
Host Virtualization Mode.
Definition amdsmi.h:2657
@ AMDSMI_VIRTUALIZATION_MODE_GUEST
Guest Virtualization Mode.
Definition amdsmi.h:2658
@ AMDSMI_VIRTUALIZATION_MODE_PASSTHROUGH
Passthrough Virtualization Mode.
Definition amdsmi.h:2659
#define AMDSMI_MAX_STRING_LENGTH
Maximum length for string buffers.
Definition amdsmi.h:65
uint32_t amdsmi_process_handle_t
Process Handle.
Definition amdsmi.h:1404
amdsmi_link_status_t
Link Status.
Definition amdsmi.h:1282
amdsmi_processor_type_t
Processor types detectable by AMD SMI.
Definition amdsmi.h:348
@ AMDSMI_PROCESSOR_TYPE_AMD_APU
AMD Accelerated processor type, GPU and CPU on a single die.
Definition amdsmi.h:356
@ AMDSMI_PROCESSOR_TYPE_UNKNOWN
Unknown processor type.
Definition amdsmi.h:349
@ AMDSMI_PROCESSOR_TYPE_NON_AMD_CPU
Non-AMD CPU processor type.
Definition amdsmi.h:353
@ AMDSMI_PROCESSOR_TYPE_AMD_CPU
AMD CPU processor type, physical component that holds the CPU.
Definition amdsmi.h:351
@ AMDSMI_PROCESSOR_TYPE_AMD_CPU_CORE
Definition amdsmi.h:354
@ AMDSMI_PROCESSOR_TYPE_AMD_GPU
AMD Graphics processor type.
Definition amdsmi.h:350
@ AMDSMI_PROCESSOR_TYPE_BRCM_NIC
Broadcom Network Interface Card type.
Definition amdsmi.h:358
@ AMDSMI_PROCESSOR_TYPE_NON_AMD_GPU
Non-AMD Graphics processor type.
Definition amdsmi.h:352
@ AMDSMI_PROCESSOR_TYPE_AMD_NIC
AMD Network Interface Card processor type.
Definition amdsmi.h:357
@ AMDSMI_PROCESSOR_TYPE_BRCM_SWITCH
Broadcom Switch type.
Definition amdsmi.h:359
amdsmi_processor_type_t processor_type_t
Backward-compatibility alias for amdsmi_processor_type_t.
Definition amdsmi.h:371
amdsmi_utilization_counter_type_t
The utilization counter type.
Definition amdsmi.h:1937
@ AMDSMI_FINE_GRAIN_MEM_ACTIVITY
Fine Grain Memory Activity.
Definition amdsmi.h:1945
@ AMDSMI_COARSE_GRAIN_MEM_ACTIVITY
Course Grain Memory Activity.
Definition amdsmi.h:1941
@ AMDSMI_COARSE_GRAIN_GFX_ACTIVITY
Definition amdsmi.h:1939
@ AMDSMI_FINE_GRAIN_GFX_ACTIVITY
Fine Grain Graphic Activity.
Definition amdsmi.h:1944
@ AMDSMI_UTILIZATION_COUNTER_FIRST
Course grain activity counters.
Definition amdsmi.h:1938
@ AMDSMI_FINE_DECODER_ACTIVITY
Fine Grain Decoder Activity.
Definition amdsmi.h:1946
@ AMDSMI_COARSE_DECODER_ACTIVITY
Course Grain Decoder Activity.
Definition amdsmi.h:1942
amdsmi_memory_partition_type_t
Memory Partitions.
Definition amdsmi.h:531
@ AMDSMI_MEMORY_PARTITION_NPS8
Definition amdsmi.h:541
@ AMDSMI_MEMORY_PARTITION_NPS1
Definition amdsmi.h:533
@ AMDSMI_MEMORY_PARTITION_NPS2
Definition amdsmi.h:535
@ AMDSMI_MEMORY_PARTITION_NPS4
Definition amdsmi.h:538
#define AMDSMI_MAX_NIC_RDMA_DEV
Maximum number of NIC RDMA devices.
Definition amdsmi.h:2954
amdsmi_voltage_metric_t
Voltage Metrics. This enum is used to identify various Voltage metrics. Corresponding values will be ...
Definition amdsmi.h:1700
@ AMDSMI_VOLT_LOWEST
Historical minimum voltage.
Definition amdsmi.h:1709
@ AMDSMI_VOLT_MAX_CRIT
Voltage critical max value.
Definition amdsmi.h:1707
@ AMDSMI_VOLT_HIGHEST
Historical maximum voltage.
Definition amdsmi.h:1710
@ AMDSMI_VOLT_MIN
Voltage min value.
Definition amdsmi.h:1706
@ AMDSMI_VOLT_AVERAGE
Average voltage.
Definition amdsmi.h:1708
@ AMDSMI_VOLT_CURRENT
Voltage current value.
Definition amdsmi.h:1701
@ AMDSMI_VOLT_MAX
Voltage max value.
Definition amdsmi.h:1704
@ AMDSMI_VOLT_MIN_CRIT
Voltage critical min value.
Definition amdsmi.h:1705
amdsmi_compute_partition_mem_alloc_mode_t
Compute Partition Memory Allocation Mode. Controls how GPU memory is allocated across XCPs within a m...
Definition amdsmi.h:519
@ AMDSMI_COMPUTE_PARTITION_MEM_ALLOC_INVALID
Invalid mode.
Definition amdsmi.h:520
@ AMDSMI_COMPUTE_PARTITION_MEM_ALLOC_ALL
Definition amdsmi.h:522
@ AMDSMI_COMPUTE_PARTITION_MEM_ALLOC_CAPPING
Memory is evenly capped per XCP.
Definition amdsmi.h:521
#define AMDSMI_MAX_NUM_JPEG_ENG_V1
Introduced in gpu metrics v1.8, document presents NUM_JPEG_ENG_V1 but will change to AMDSMI_MAX_NUM_J...
Definition amdsmi.h:155
uint64_t amdsmi_bit_field_t
Bitfield used in various AMDSMI calls.
Definition amdsmi.h:1917
amdsmi_voltage_type_t
This ennumeration is used to indicate which type of voltage reading should be obtained.
Definition amdsmi.h:1721
@ AMDSMI_VOLT_TYPE_VDDBOARD
Voltage for VDDBOARD.
Definition amdsmi.h:1725
@ AMDSMI_VOLT_TYPE_INVALID
Invalid type.
Definition amdsmi.h:1727
@ AMDSMI_VOLT_TYPE_VDDGFX
Vddgfx GPU voltage.
Definition amdsmi.h:1724
amdsmi_clk_limit_type_t
The clk limit type.
Definition amdsmi.h:1790
@ CLK_LIMIT_MAX
Max Clock value in MHz.
Definition amdsmi.h:1792
@ CLK_LIMIT_MIN
Min Clock value in MHz.
Definition amdsmi.h:1791
#define AMDSMI_MAX_NUM_CLKS_PER_MID
Maximum number of clocks per MID supported.
Definition amdsmi.h:225
void * amdsmi_processor_handle
opaque handler point to underlying implementation
Definition amdsmi.h:294
amdsmi_cache_property_type_t
cache properties
Definition amdsmi.h:1093
@ AMDSMI_CACHE_PROPERTY_ENABLED
Cache enabled.
Definition amdsmi.h:1094
@ AMDSMI_CACHE_PROPERTY_INST_CACHE
Instruction cache.
Definition amdsmi.h:1096
@ AMDSMI_CACHE_PROPERTY_DATA_CACHE
Data cache.
Definition amdsmi.h:1095
@ AMDSMI_CACHE_PROPERTY_SIMD_CACHE
Single Instruction, Multiple Data Cache.
Definition amdsmi.h:1098
@ AMDSMI_CACHE_PROPERTY_CPU_CACHE
CPU cache.
Definition amdsmi.h:1097
#define AMDSMI_MAX_DEVICES
Maximum number of devices supported.
Definition amdsmi.h:66
amdsmi_status_t
Error codes returned by amdsmi functions.
Definition amdsmi.h:381
@ AMDSMI_STATUS_NOT_INIT
Processor not initialized.
Definition amdsmi.h:408
@ AMDSMI_STATUS_NON_AMD_CPU
System has different cpu than AMD.
Definition amdsmi.h:418
@ AMDSMI_STATUS_DIRECTORY_NOT_FOUND
Error when a directory is not found, maps to ENOTDIR.
Definition amdsmi.h:403
@ AMDSMI_STATUS_INVAL
Invalid parameters.
Definition amdsmi.h:384
@ AMDSMI_STATUS_BUSY
Processor busy.
Definition amdsmi.h:406
@ AMDSMI_STATUS_UNKNOWN_ERROR
An unknown error occurred.
Definition amdsmi.h:433
@ AMDSMI_STATUS_DRIVER_NOT_LOADED
Processor driver not loaded.
Definition amdsmi.h:410
@ AMDSMI_STATUS_FILE_ERROR
Problem accessing a file.
Definition amdsmi.h:397
@ AMDSMI_STATUS_DRM_ERROR
Error when call libdrm.
Definition amdsmi.h:389
@ AMDSMI_STATUS_CORRUPTED_EEPROM
EEPROM is corrupted.
Definition amdsmi.h:430
@ AMDSMI_STATUS_ARG_PTR_NULL
Parsed argument is invalid.
Definition amdsmi.h:427
@ AMDSMI_STATUS_IO
I/O Error.
Definition amdsmi.h:395
@ AMDSMI_STATUS_NO_HSMP_DRV
HSMP driver not found.
Definition amdsmi.h:421
@ AMDSMI_STATUS_HSMP_TIMEOUT
HSMP message timed out.
Definition amdsmi.h:424
@ AMDSMI_STATUS_NO_DATA
No data was found for a given input.
Definition amdsmi.h:413
@ AMDSMI_STATUS_RETRY
Retry operation.
Definition amdsmi.h:392
@ AMDSMI_STATUS_UNEXPECTED_SIZE
An unexpected amount of data was read.
Definition amdsmi.h:415
@ AMDSMI_STATUS_SETTING_UNAVAILABLE
Setting is not available.
Definition amdsmi.h:429
@ AMDSMI_STATUS_FILE_NOT_FOUND
file or directory not found
Definition amdsmi.h:426
@ AMDSMI_STATUS_INTERNAL_EXCEPTION
An internal exception was caught.
Definition amdsmi.h:399
@ AMDSMI_STATUS_NO_HSMP_SUP
HSMP not supported.
Definition amdsmi.h:422
@ AMDSMI_STATUS_MAP_ERROR
Library error did not map to a status code.
Definition amdsmi.h:432
@ AMDSMI_STATUS_FAIL_LOAD_SYMBOL
Fail to load symbol.
Definition amdsmi.h:388
@ AMDSMI_STATUS_INSUFFICIENT_SIZE
Not enough resources were available for the operation.
Definition amdsmi.h:414
@ AMDSMI_STATUS_INIT_ERROR
An error occurred when initializing internal data structures.
Definition amdsmi.h:401
@ AMDSMI_STATUS_OUT_OF_RESOURCES
Not enough memory.
Definition amdsmi.h:398
@ AMDSMI_STATUS_NO_SLOT
No more free slot.
Definition amdsmi.h:409
@ AMDSMI_STATUS_NO_MSR_DRV
MSR driver not found.
Definition amdsmi.h:420
@ AMDSMI_STATUS_INTERRUPT
An interrupt occurred during execution of function.
Definition amdsmi.h:394
@ AMDSMI_STATUS_SUCCESS
Call succeeded.
Definition amdsmi.h:382
@ AMDSMI_STATUS_NO_ENERGY_DRV
Energy driver not found.
Definition amdsmi.h:419
@ AMDSMI_STATUS_ADDRESS_FAULT
Bad address.
Definition amdsmi.h:396
@ AMDSMI_STATUS_MORE_DATA
There is more data than the buffer size the user passed.
Definition amdsmi.h:412
@ AMDSMI_STATUS_NOT_YET_IMPLEMENTED
Not implemented yet.
Definition amdsmi.h:386
@ AMDSMI_STATUS_NO_DRV
No Energy and HSMP driver present.
Definition amdsmi.h:425
@ AMDSMI_STATUS_IPC_ERROR
IPC communication error occurred.
Definition amdsmi.h:404
@ AMDSMI_STATUS_NO_PERM
Permission Denied.
Definition amdsmi.h:393
@ AMDSMI_STATUS_NOT_FOUND
Processor Not found.
Definition amdsmi.h:407
@ AMDSMI_STATUS_FAIL_LOAD_MODULE
Fail to load lib.
Definition amdsmi.h:387
@ AMDSMI_STATUS_AMDGPU_RESTART_ERR
AMDGPU restart failed.
Definition amdsmi.h:428
@ AMDSMI_STATUS_NOT_SUPPORTED
Command not supported.
Definition amdsmi.h:385
@ AMDSMI_STATUS_UNEXPECTED_DATA
The data read or provided is not what was expected.
Definition amdsmi.h:416
@ AMDSMI_STATUS_API_FAILED
API call failed.
Definition amdsmi.h:390
@ AMDSMI_STATUS_TIMEOUT
Timeout in API call.
Definition amdsmi.h:391
@ AMDSMI_STATUS_NO_HSMP_MSG_SUP
HSMP message/feature not supported.
Definition amdsmi.h:423
@ AMDSMI_STATUS_INPUT_OUT_OF_BOUNDS
The provided input is out of allowable or safe range.
Definition amdsmi.h:400
@ AMDSMI_STATUS_REFCOUNT_OVERFLOW
An internal reference counter exceeded INT32_MAX.
Definition amdsmi.h:402
#define AMDSMI_MAX_NUM_JPEG
This should match AMDSMI_MAX_NUM_JPEG (8*4=32)
Definition amdsmi.h:147
#define AMDSMI_MAX_NUM_CLKS_PER_AID
Maximum number of clocks per AID supported.
Definition amdsmi.h:224
#define AMDSMI_MAX_NUM_PM_POLICIES
Maximum number of power management policies.
Definition amdsmi.h:2017
#define AMDSMI_MAX_NUM_MID
Maximum number of MID supported.
Definition amdsmi.h:223
amdsmi_ptl_data_format_t
PTL (Peak Tops Limiter) data format types These correspond to the hardware data types used in matrix ...
Definition amdsmi.h:2702
@ AMDSMI_PTL_DATA_FORMAT_INVALID
Invalid format.
Definition amdsmi.h:2710
@ AMDSMI_PTL_DATA_FORMAT_I8
Integer 8-bit format.
Definition amdsmi.h:2703
@ AMDSMI_PTL_DATA_FORMAT_F64
Float 64-bit format.
Definition amdsmi.h:2707
@ AMDSMI_PTL_DATA_FORMAT_F8
Float 8-bit format.
Definition amdsmi.h:2708
@ AMDSMI_PTL_DATA_FORMAT_BF16
Brain Float 16-bit format.
Definition amdsmi.h:2705
@ AMDSMI_PTL_DATA_FORMAT_F32
Float 32-bit format.
Definition amdsmi.h:2706
@ AMDSMI_PTL_DATA_FORMAT_F16
Float 16-bit format.
Definition amdsmi.h:2704
@ AMDSMI_PTL_DATA_FORMAT_VECTOR
Vector format.
Definition amdsmi.h:2709
void * amdsmi_cpusocket_handle
opaque handler point to underlying implementation
Definition amdsmi.h:311
amdsmi_affinity_scope_t
Scope for Numa affinity or Socket affinity.
Definition amdsmi.h:2667
@ AMDSMI_AFFINITY_SCOPE_NODE
Memory affinity as numa node.
Definition amdsmi.h:2668
@ AMDSMI_AFFINITY_SCOPE_SOCKET
socket affinity
Definition amdsmi.h:2669
amdsmi_temperature_metric_t
Temperature Metrics. This enum is used to identify various temperature metrics. Corresponding values ...
Definition amdsmi.h:1663
@ AMDSMI_TEMP_CRITICAL_HYST
Definition amdsmi.h:1674
@ AMDSMI_TEMP_CRITICAL
Definition amdsmi.h:1672
@ AMDSMI_TEMP_OFFSET
Definition amdsmi.h:1686
@ AMDSMI_TEMP_EMERGENCY
Definition amdsmi.h:1676
@ AMDSMI_TEMP_LOWEST
Historical min temperature.
Definition amdsmi.h:1688
@ AMDSMI_TEMP_CRIT_MIN
Definition amdsmi.h:1682
@ AMDSMI_TEMP_SHUTDOWN
Shutdown temperature.
Definition amdsmi.h:1690
@ AMDSMI_TEMP_EMERGENCY_HYST
Definition amdsmi.h:1680
@ AMDSMI_TEMP_CURRENT
Current temperature.
Definition amdsmi.h:1664
@ AMDSMI_TEMP_MIN
Min temperature.
Definition amdsmi.h:1667
@ AMDSMI_TEMP_HIGHEST
Historical max temperature.
Definition amdsmi.h:1689
@ AMDSMI_TEMP_CRIT_MIN_HYST
Definition amdsmi.h:1684
@ AMDSMI_TEMP_MIN_HYST
Definition amdsmi.h:1670
@ AMDSMI_TEMP_MAX_HYST
Definition amdsmi.h:1668
@ AMDSMI_TEMP_MAX
Max temperature.
Definition amdsmi.h:1666
amdsmi_cper_sev_t
Cper sev.
Definition amdsmi.h:1800
@ AMDSMI_CPER_SEV_NUM
CPER severity Number.
Definition amdsmi.h:1804
@ AMDSMI_CPER_SEV_NON_FATAL_CORRECTED
CPER Non-Fatal Corrected severity.
Definition amdsmi.h:1803
@ AMDSMI_CPER_SEV_NON_FATAL_UNCORRECTED
CPER Non-Fatal Uncorrected severity.
Definition amdsmi.h:1801
@ AMDSMI_CPER_SEV_FATAL
CPER Fatal severity.
Definition amdsmi.h:1802
@ AMDSMI_CPER_SEV_UNUSED
CPER Unused severity.
Definition amdsmi.h:1805
amdsmi_gpu_block_t
This enum is used to identify different GPU blocks.
Definition amdsmi.h:1759
@ AMDSMI_GPU_BLOCK_XGMI_WAFL
XGMI block.
Definition amdsmi.h:1769
@ AMDSMI_GPU_BLOCK_GFX
GFX block.
Definition amdsmi.h:1764
@ AMDSMI_GPU_BLOCK_IH
IH block.
Definition amdsmi.h:1779
@ AMDSMI_GPU_BLOCK_VCN
VCN block.
Definition amdsmi.h:1777
@ AMDSMI_GPU_BLOCK_INVALID
Invalid block.
Definition amdsmi.h:1760
@ AMDSMI_GPU_BLOCK_MP0
MP0 block.
Definition amdsmi.h:1773
@ AMDSMI_GPU_BLOCK_HDP
HDP block.
Definition amdsmi.h:1768
@ AMDSMI_GPU_BLOCK_MPIO
MPIO block.
Definition amdsmi.h:1780
@ AMDSMI_GPU_BLOCK_ATHUB
ATHUB block.
Definition amdsmi.h:1766
@ AMDSMI_GPU_BLOCK_MP1
MP1 block.
Definition amdsmi.h:1774
@ AMDSMI_GPU_BLOCK_PCIE_BIF
PCIE_BIF block.
Definition amdsmi.h:1767
@ AMDSMI_GPU_BLOCK_SDMA
SDMA block.
Definition amdsmi.h:1763
@ AMDSMI_GPU_BLOCK_JPEG
JPEG block.
Definition amdsmi.h:1778
@ AMDSMI_GPU_BLOCK_UMC
UMC block.
Definition amdsmi.h:1762
@ AMDSMI_GPU_BLOCK_FUSE
Fuse block.
Definition amdsmi.h:1775
@ AMDSMI_GPU_BLOCK_DF
DF block.
Definition amdsmi.h:1770
@ AMDSMI_GPU_BLOCK_MMHUB
MMHUB block.
Definition amdsmi.h:1765
@ AMDSMI_GPU_BLOCK_SMN
SMN block.
Definition amdsmi.h:1771
@ AMDSMI_GPU_BLOCK_SEM
SEM block.
Definition amdsmi.h:1772
@ AMDSMI_GPU_BLOCK_MCA
MCA block.
Definition amdsmi.h:1776
amdsmi_temperature_type_t
This enumeration is used to indicate from which part of the processor a temperature reading should be...
Definition amdsmi.h:554
@ AMDSMI_TEMPERATURE_TYPE_GPUBOARD_NODE_OAM_X_04_HBM_D_VR
Definition amdsmi.h:576
@ AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDCR_VDD3
VDDCR VDD3 voltage regulator temperature.
Definition amdsmi.h:586
@ AMDSMI_TEMPERATURE_TYPE_BASEBOARD_OAM_0_1_HSC
OAM 0-1 HSC temperature.
Definition amdsmi.h:637
@ AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDCR_SOC_A
VDDCR SOC A voltage regulator temperature.
Definition amdsmi.h:587
@ AMDSMI_TEMPERATURE_TYPE_BASEBOARD_OAM_6_7_HSC
OAM 6-7 HSC temperature.
Definition amdsmi.h:640
@ AMDSMI_TEMPERATURE_TYPE_HBM_2
High Bandwidth 2 temperature per stack.
Definition amdsmi.h:562
@ AMDSMI_TEMPERATURE_TYPE_GPUBOARD_NODE_OAM_X_IBC_2
OAM X IBC 2 temperature.
Definition amdsmi.h:571
@ AMDSMI_TEMPERATURE_TYPE_BASEBOARD_RETIMER_4_5_0V9_VR
Definition amdsmi.h:651
@ AMDSMI_TEMPERATURE_TYPE_HOTSPOT
Hottest temperature reported for entire die.
Definition amdsmi.h:557
@ AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDD_085_HBM
VDD 0.85V HBM voltage regulator temperature.
Definition amdsmi.h:591
@ AMDSMI_TEMPERATURE_TYPE_HBM_0
High Bandwidth 0 temperature per stack.
Definition amdsmi.h:560
@ AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDCR_VDD2
VDDCR VDD2 voltage regulator temperature.
Definition amdsmi.h:585
@ AMDSMI_TEMPERATURE_TYPE_BASEBOARD_UBB_IBC
UBB IBC temperature.
Definition amdsmi.h:634
@ AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDCR_11_HBM_D
Definition amdsmi.h:594
@ AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDIO_04_HBM_D
Definition amdsmi.h:600
@ AMDSMI_TEMPERATURE_TYPE_JUNCTION
Synonymous with HOTSPOT.
Definition amdsmi.h:558
@ AMDSMI_TEMPERATURE_TYPE_BASEBOARD_RETIMER_4_5_6_7_1V2_VR
Definition amdsmi.h:647
@ AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDCR_075_HBM_D
Definition amdsmi.h:604
@ AMDSMI_TEMPERATURE_TYPE_HBM_3
High Bandwidth 3 temperature per stack.
Definition amdsmi.h:563
@ AMDSMI_TEMPERATURE_TYPE_VRAM
VRAM temperature on graphics card.
Definition amdsmi.h:559
@ AMDSMI_TEMPERATURE_TYPE_BASEBOARD_OAM_2_3_HSC
OAM 2-3 HSC temperature.
Definition amdsmi.h:638
@ AMDSMI_TEMPERATURE_TYPE_EDGE
Edge temperature.
Definition amdsmi.h:555
@ AMDSMI_TEMPERATURE_TYPE_BASEBOARD_UBB_UFPGA
UBB UFPGA temperature.
Definition amdsmi.h:635
@ AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDD_USR
VDD USR voltage regulator temperature.
Definition amdsmi.h:596
@ AMDSMI_TEMPERATURE_TYPE_GPUBOARD_NODE_OAM_X_04_HBM_B_VR
Definition amdsmi.h:574
@ AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDCR_SOC_C
VDDCR SOC C voltage regulator temperature.
Definition amdsmi.h:588
@ AMDSMI_TEMPERATURE_TYPE_GPUBOARD_LAST
Last GPU board temperature type.
Definition amdsmi.h:624
@ AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDCR_SOCIO_A
VDDCR SOCIO A voltage regulator temperature.
Definition amdsmi.h:589
@ AMDSMI_TEMPERATURE_TYPE_BASEBOARD_IBC_HSC
IBC HSC temperature.
Definition amdsmi.h:661
@ AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDAN_075_GTA_C
Definition amdsmi.h:612
@ AMDSMI_TEMPERATURE_TYPE_BASEBOARD_OAM_4_5_HSC
OAM 4-5 HSC temperature.
Definition amdsmi.h:639
@ AMDSMI_TEMPERATURE_TYPE_BASEBOARD_RETIMER_2_3_0V9_VR
Definition amdsmi.h:653
@ AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDCR_VDD1
VDDCR VDD1 voltage regulator temperature.
Definition amdsmi.h:584
@ AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDCR_SOCIO_C
VDDCR SOCIO C voltage regulator temperature.
Definition amdsmi.h:590
@ AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDCR_075_HBM_B
Definition amdsmi.h:602
@ AMDSMI_TEMPERATURE_TYPE_BASEBOARD_RETIMER_0_1_0V9_VR
Definition amdsmi.h:649
@ AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDIO_065_UCIEAM_A
Definition amdsmi.h:618
@ AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDCR_VDD0
VDDCR VDD0 voltage regulator temperature.
Definition amdsmi.h:582
@ AMDSMI_TEMPERATURE_TYPE_BASEBOARD_UBB_FPGA_0V72_VR
Definition amdsmi.h:641
@ AMDSMI_TEMPERATURE_TYPE_BASEBOARD_UBB_FPGA_3V3_VR
Definition amdsmi.h:643
@ AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDIO_11_E32
VDDIO 1.1V E32 voltage regulator temperature.
Definition amdsmi.h:597
@ AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDCR_075_UCIE
Definition amdsmi.h:614
@ AMDSMI_TEMPERATURE_TYPE_PLX
PCIe switch temperature.
Definition amdsmi.h:564
@ AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDIO_065_UCIEAA
Definition amdsmi.h:616
@ AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDAN_075
VDDAN 0.75V voltage regulator temperature.
Definition amdsmi.h:622
@ AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDIO_04_HBM_B
Definition amdsmi.h:598
@ AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDAN_075_GTA_A
Definition amdsmi.h:610
@ AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDIO_065_UCIEAM_C
Definition amdsmi.h:620
@ AMDSMI_TEMPERATURE_TYPE_HBM_1
High Bandwidth 1 temperature per stack.
Definition amdsmi.h:561
@ AMDSMI_TEMPERATURE_TYPE_BASEBOARD_UBB_OAM7
UBB OAM7 temperature.
Definition amdsmi.h:633
@ AMDSMI_TEMPERATURE_TYPE_BASEBOARD_OAM_0_1_2_3_3V3_VR
Definition amdsmi.h:657
@ AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDCR_11_HBM_B
Definition amdsmi.h:592
@ AMDSMI_TEMPERATURE_TYPE_BASEBOARD_UBB_BACK
UBB back temperature.
Definition amdsmi.h:632
@ AMDSMI_TEMPERATURE_TYPE_BASEBOARD_UBB_FPGA
UBB FPGA temperature.
Definition amdsmi.h:629
@ AMDSMI_TEMPERATURE_TYPE_GPUBOARD_NODE_RETIMER_X
Retimer X temperature.
Definition amdsmi.h:568
@ AMDSMI_TEMPERATURE_TYPE_BASEBOARD_IBC
IBC temperature.
Definition amdsmi.h:662
@ AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDIO_11_GTA_C
Definition amdsmi.h:608
@ AMDSMI_TEMPERATURE_TYPE_GPUBOARD_NODE_OAM_X_VDD18_VR
Definition amdsmi.h:572
@ AMDSMI_TEMPERATURE_TYPE_GPUBOARD_NODE_OAM_X_IBC
OAM X IBC temperature.
Definition amdsmi.h:570
@ AMDSMI_TEMPERATURE_TYPE_BASEBOARD_RETIMER_0_1_2_3_1V2_VR
Definition amdsmi.h:645
@ AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDIO_11_GTA_A
Definition amdsmi.h:606
@ AMDSMI_TEMPERATURE_TYPE_BASEBOARD_UBB_FRONT
UBB front temperature.
Definition amdsmi.h:631
@ AMDSMI_TEMPERATURE_TYPE_BASEBOARD_RETIMER_6_7_0V9_VR
Definition amdsmi.h:655
@ AMDSMI_TEMPERATURE_TYPE_BASEBOARD_OAM_4_5_6_7_3V3_VR
Definition amdsmi.h:659
@ AMDSMI_TEMPERATURE_TYPE__MAX
Maximum per GPU temperature type.
Definition amdsmi.h:664
@ AMDSMI_TEMPERATURE_TYPE_BASEBOARD_UBB_OAM1
UBB OAM1 temperature.
Definition amdsmi.h:636
#define AMDSMI_MAX_UUID_ELEMENTS
Max UUID elements supported.
Definition amdsmi.h:211
#define AMDSMI_MAX_NUM_FREQUENCIES
Definition amdsmi.h:1486
#define AMDSMI_APU_MAX_CORES
APU metrics: max number of cores, L3, and IPUs.
Definition amdsmi.h:189
amdsmi_counter_command_t
Event counter commands.
Definition amdsmi.h:1598
@ AMDSMI_CNTR_CMD_STOP
Definition amdsmi.h:1600
@ AMDSMI_CNTR_CMD_START
Start the counter.
Definition amdsmi.h:1599
#define AMDSMI_MAX_CACHE_TYPES
Maximum number of cache types.
Definition amdsmi.h:67
amdsmi_xgmi_link_status_type_t
XGMI Link Status Type.
Definition amdsmi.h:2549
@ AMDSMI_XGMI_LINK_UP
XGMI link status is up.
Definition amdsmi.h:2551
@ AMDSMI_XGMI_LINK_DOWN
XGMI link status is down.
Definition amdsmi.h:2550
@ AMDSMI_XGMI_LINK_DISABLE
XGMI link status is disabled.
Definition amdsmi.h:2552
#define AMDSMI_APU_MAX_IPU
v3_0, average_ipu_activity[]
Definition amdsmi.h:192
amdsmi_power_profile_preset_masks_t
Pre-set Profile Selections. These bitmasks can be AND'd with the amdsmi_power_profile_status_t....
Definition amdsmi.h:1738
@ AMDSMI_PWR_PROF_PRST_COMPUTE_MASK
Compute Saving Profile.
Definition amdsmi.h:1742
@ AMDSMI_PWR_PROF_PRST_POWER_SAVING_MASK
Power Saving Profile.
Definition amdsmi.h:1741
@ AMDSMI_PWR_PROF_PRST_VIDEO_MASK
Video Power Profile.
Definition amdsmi.h:1740
@ AMDSMI_PWR_PROF_PRST_BOOTUP_DEFAULT
Default Boot Up Profile.
Definition amdsmi.h:1747
@ AMDSMI_PWR_PROF_PRST_INVALID
Invalid Power Profile.
Definition amdsmi.h:1751
@ AMDSMI_PWR_PROF_PRST_CUSTOM_MASK
Custom Power Profile.
Definition amdsmi.h:1739
@ AMDSMI_PWR_PROF_PRST_3D_FULL_SCR_MASK
3D Full Screen Profile
Definition amdsmi.h:1746
@ AMDSMI_PWR_PROF_PRST_VR_MASK
VR Power Profile.
Definition amdsmi.h:1743
#define AMDSMI_MAX_NUM_GFX_CLKS
This should match MAX_NUM_GFX_CLKS.
Definition amdsmi.h:126
#define AMDSMI_MAX_NUM_NUMA_NODES
Maximum number of NUMA nodes.
Definition amdsmi.h:71
#define AMDSMI_NUM_VOLTAGE_CURVE_POINTS
Definition amdsmi.h:1496
amdsmi_compute_partition_type_t
Compute Partition. This enum is used to identify various compute partitioning settings.
Definition amdsmi.h:499
@ AMDSMI_COMPUTE_PARTITION_QPX
Definition amdsmi.h:507
@ AMDSMI_COMPUTE_PARTITION_TPX
Definition amdsmi.h:505
@ AMDSMI_COMPUTE_PARTITION_CPX
Definition amdsmi.h:509
@ AMDSMI_COMPUTE_PARTITION_SPX
Definition amdsmi.h:501
@ AMDSMI_COMPUTE_PARTITION_DPX
Definition amdsmi.h:503
@ AMDSMI_COMPUTE_PARTITION_INVALID
Invalid compute partition type.
Definition amdsmi.h:500
#define AMDSMI_MAX_NUM_VCN
This should match MAX_NUM_VCN.
Definition amdsmi.h:105
amdsmi_status_t amdsmi_set_gpu_accelerator_partition_profile(amdsmi_processor_handle processor_handle, uint32_t profile_index)
Set accelerator partition setting based on profile_index from amdsmi_get_gpu_accelerator_partition_pr...
amdsmi_status_t amdsmi_get_gpu_accelerator_partition_profile_config(amdsmi_processor_handle processor_handle, amdsmi_accelerator_partition_profile_config_t *profile_config)
Returns gpu accelerator partition caps as currently configured in the system.
amdsmi_status_t amdsmi_get_gpu_accelerator_partition_profile(amdsmi_processor_handle processor_handle, amdsmi_accelerator_partition_profile_t *profile, uint32_t *partition_id)
Returns current gpu accelerator partition cap.
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.
amdsmi_status_t amdsmi_get_pcie_info(amdsmi_processor_handle processor_handle, amdsmi_pcie_info_t *info)
Returns the PCIe info for the GPU.
amdsmi_status_t amdsmi_get_gpu_vram_info(amdsmi_processor_handle processor_handle, amdsmi_vram_info_t *info)
Returns vram info.
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.
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.
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.
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.
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.
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.
amdsmi_status_t amdsmi_clean_gpu_local_data(amdsmi_processor_handle processor_handle)
Run the cleaner shader to clean up data in LDS/GPRs.
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 th...
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.
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...
amdsmi_status_t amdsmi_set_gpu_process_isolation(amdsmi_processor_handle processor_handle, uint32_t pisolate)
Enable/disable the system Process Isolation.
amdsmi_status_t amdsmi_set_soc_pstate(amdsmi_processor_handle processor_handle, uint32_t policy_id)
Set the soc pstate policy for the processor.
amdsmi_status_t amdsmi_get_gpu_process_isolation(amdsmi_processor_handle processor_handle, uint32_t *pisolate)
Get the status of the Process Isolation.
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 ...
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.
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 activ...
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.
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.
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.
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.
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.
amdsmi_status_t amdsmi_reset_gpu(amdsmi_processor_handle processor_handle)
Triggers a chain that resets all GPUs. It is not supported on virtual machine guest.
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.
amdsmi_status_t amdsmi_get_gpu_partition_metrics_info(amdsmi_processor_handle processor_handle, amdsmi_gpu_metrics_t *pgpu_metrics)
This function retrieves the partition metrics information.
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.
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....
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....
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.
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 mac...
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 popul...
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....
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.
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....
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.
amdsmi_status_t amdsmi_get_gpu_compute_partition_mem_alloc_mode(amdsmi_processor_handle processor_handle, amdsmi_compute_partition_mem_alloc_mode_t *mode)
Retrieves the current compute partition memory allocation mode for a desired device.
amdsmi_status_t amdsmi_set_gpu_compute_partition_mem_alloc_mode(amdsmi_processor_handle processor_handle, amdsmi_compute_partition_mem_alloc_mode_t mode)
Modifies a selected device's compute partition memory allocation mode.
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.
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.
amdsmi_status_t amdsmi_gpu_driver_reload(void)
Restart the device driver (kmod module) for all AMD GPUs on the system.
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....
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.
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.
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.
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.
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.
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.
amdsmi_status_t amdsmi_get_cpu_family(uint32_t *cpu_family)
Get CPU family.
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.
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.
amdsmi_status_t amdsmi_get_cpu_socket_count(uint32_t *sock_count)
Get CPU socket count from sys filesystem.
amdsmi_status_t amdsmi_get_cpu_enabled_commands(amdsmi_processor_handle processor_handle, bool *r_mask, uint32_t *mask0, uint32_t *mask1, uint32_t *mask2)
Get HSMP Enabled Commands information for a given CPU socket.
amdsmi_status_t amdsmi_get_cpu_model(uint32_t *cpu_model)
Get CPU model.
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.
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.
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.
amdsmi_status_t amdsmi_set_cpu_dfc_ctrl(amdsmi_processor_handle processor_handle, uint8_t *dfc_ctrl)
Set the DFCState enabling control.
amdsmi_status_t amdsmi_get_cpu_dfc_ctrl(amdsmi_processor_handle processor_handle, uint8_t *dfc_ctrl)
Get the current DFCState enabling control status.
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.
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.
amdsmi_status_t amdsmi_get_cpu_dimm_sb_reg(amdsmi_processor_handle processor_handle, uint32_t dimm_addr, uint32_t lid, uint32_t reg_offset, uint32_t reg_space, uint32_t *data)
Read DIMM sideband register data.
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.
amdsmi_status_t amdsmi_set_cpu_dimm_sb_reg(amdsmi_processor_handle processor_handle, uint32_t dimm_addr, uint32_t lid, uint32_t reg_offset, uint32_t reg_space, uint32_t write_data)
Write Data to DIMM Sideband Register.
amdsmi_status_t amdsmi_get_cpu_socket_energy(amdsmi_processor_handle processor_handle, uint64_t *penergy)
Get the socket energy for a given socket.
amdsmi_status_t amdsmi_get_cpu_core_energy(amdsmi_processor_handle processor_handle, uint64_t *penergy)
Get the core energy for a given core.
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.
amdsmi_status_t amdsmi_get_hsmp_metrics_table(amdsmi_processor_handle processor_handle, amdsmi_hsmp_metrics_table_t *metrics_table)
Get HSMP metrics table.
amdsmi_status_t amdsmi_get_hsmp_metrics_table_version(amdsmi_processor_handle processor_handle, uint32_t *metrics_version)
Get HSMP metrics table version.
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.
amdsmi_status_t amdsmi_get_cpu_rail_isofreq_policy(amdsmi_processor_handle processor_handle, uint8_t *rail_isofreq_policy)
Get CPU rail isolated frequency policy status for independent core clock control per power rail.
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.
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.
amdsmi_status_t amdsmi_get_cpu_hsmp_proto_ver(amdsmi_processor_handle processor_handle, uint32_t *proto_ver)
Get HSMP protocol Version.
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.
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.
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.
amdsmi_status_t amdsmi_get_threads_per_core(uint32_t *threads_per_core)
Get Number of threads Per Core.
amdsmi_status_t amdsmi_get_cpu_socket_freq_range(amdsmi_processor_handle processor_handle, uint16_t *fmax, uint16_t *fmin)
Get socket frequency range.
amdsmi_status_t amdsmi_get_cpu_cclk_limit(amdsmi_processor_handle processor_handle, uint32_t *cclk)
Get core clock in MHz.
amdsmi_status_t amdsmi_set_cpu_rail_isofreq_policy(amdsmi_processor_handle processor_handle, bool *rail_isofreq_policy)
Set CPU rail isolated frequency policy for independent core clock control per power rail.
amdsmi_status_t amdsmi_get_cpu_freq_range(uint32_t *fmax, uint32_t *fmin)
Get the CPU socket frequency range.
amdsmi_status_t amdsmi_set_cpu_sdps_limit(amdsmi_processor_handle processor_handle, uint32_t sdps_limit)
Set the SDPS(Socket DIMM Power Sloshing) limit for a given processor socket.
amdsmi_status_t amdsmi_set_cpu_core_boostlimit(amdsmi_processor_handle processor_handle, uint32_t boostlimit)
Set the core boostlimit value.
amdsmi_status_t amdsmi_get_cpu_sdps_limit(amdsmi_processor_handle processor_handle, uint32_t *sdps_limit)
Get the current SDPS limit for a given processor socket.
amdsmi_status_t amdsmi_get_cpu_socket_c0_residency(amdsmi_processor_handle processor_handle, uint32_t *pc0_residency)
Get the socket c0 residency.
amdsmi_status_t amdsmi_set_cpu_msr_floor_freq_limit(amdsmi_processor_handle processor_handle, uint32_t msr_floor_freq)
Set CPU floor limit frequency via MSR(Model Specific Register).
amdsmi_status_t amdsmi_set_cpu_socket_boostlimit(amdsmi_processor_handle processor_handle, uint32_t boostlimit)
Set the socket boostlimit value.
amdsmi_status_t amdsmi_get_cpu_core_floor_freq_limit(amdsmi_processor_handle processor_handle, uint32_t *floor_freq)
Get the CPU core floor limit frequency.
amdsmi_status_t amdsmi_get_cpu_floor_freq_limit(amdsmi_processor_handle processor_handle, uint32_t *floor_freq)
Get the CPU floor limit frequency.
amdsmi_status_t amdsmi_get_cpu_core_eff_floor_freq_limit(amdsmi_processor_handle processor_handle, uint32_t *eff_floor_freq)
Get the CPU core effective floor limit frequency.
amdsmi_status_t amdsmi_set_cpu_floor_freq_limit(amdsmi_processor_handle processor_handle, uint32_t floor_freq)
Set the CPU socket floor limit frequency.
amdsmi_status_t amdsmi_set_cpu_core_msr_floor_freq_limit(amdsmi_processor_handle processor_handle, uint32_t msr_floor_freq)
Set CPU core MSR floor limit frequency.
amdsmi_status_t amdsmi_get_cpu_core_boostlimit(amdsmi_processor_handle processor_handle, uint32_t *pboostlimit)
Get the core boost limit.
amdsmi_status_t amdsmi_get_cpu_eff_floor_freq_limit(amdsmi_processor_handle processor_handle, uint32_t *eff_floor_freq)
Get the CPU effective floor limit frequency.
amdsmi_status_t amdsmi_set_cpu_core_floor_freq_limit(amdsmi_processor_handle processor_handle, uint32_t floor_freq)
Set the CPU core floor limit frequency.
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.
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.
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.
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.
amdsmi_status_t amdsmi_get_cpu_socket_power(amdsmi_processor_handle processor_handle, uint32_t *ppower)
Get the socket power.
amdsmi_status_t amdsmi_get_cpu_core_ccd_power(amdsmi_processor_handle processor_handle, uint32_t *power)
Read CCD (Core Complex Die) power consumption.
amdsmi_status_t amdsmi_get_supported_power_cap(amdsmi_processor_handle processor_handle, uint32_t *sensor_count, uint32_t *sensor_inds, amdsmi_power_cap_type_t *sensor_types)
Query the supported power cap sensors and their types for a device.
amdsmi_status_t amdsmi_get_cpu_socket_power_cap(amdsmi_processor_handle processor_handle, uint32_t *pcap)
Get the socket power cap.
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.
amdsmi_status_t amdsmi_set_cpu_pwr_efficiency_mode(amdsmi_processor_handle processor_handle, uint8_t power_efficiency_mode, uint32_t *utilization, uint32_t *ppt_limit)
Set the power efficiency profile policy.
amdsmi_status_t amdsmi_get_cpu_pwr_efficiency_mode(amdsmi_processor_handle processor_handle, uint32_t *power_efficiency_mode, uint32_t *utilization, uint32_t *ppt_limit)
Get the power efficiency profile policy.
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.
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.
amdsmi_status_t amdsmi_cpu_apb_disable(amdsmi_processor_handle processor_handle, uint8_t pstate)
Disable APB.
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.
amdsmi_status_t amdsmi_set_cpu_xgmi_pstate_range(amdsmi_processor_handle processor_handle, uint8_t min_pstate, uint8_t max_pstate)
Set the Min and Max XGMI PState Range.
amdsmi_status_t amdsmi_get_cpu_pc6_enable(amdsmi_processor_handle processor_handle, uint8_t *enabled)
Get the PC6 Enable State.
amdsmi_status_t amdsmi_get_cpu_xgmi_pstate_range(amdsmi_processor_handle processor_handle, uint8_t *min_pstate, uint8_t *max_pstate)
Get the Max and Min XGMI PState Range.
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.
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.
amdsmi_status_t amdsmi_set_cpu_cc6_enable(amdsmi_processor_handle processor_handle, uint8_t enable)
Set the Core C6 Enable State.
amdsmi_status_t amdsmi_set_cpu_pc6_enable(amdsmi_processor_handle processor_handle, uint8_t enable)
Set the PC6 Enable State.
amdsmi_status_t amdsmi_set_cpu_df_pstate_range(amdsmi_processor_handle processor_handle, uint8_t min_pstate, uint8_t max_pstate)
Set df pstate range.
amdsmi_status_t amdsmi_get_cpu_cc6_enable(amdsmi_processor_handle processor_handle, uint8_t *enabled)
Get the Core C6 Enable State.
amdsmi_status_t amdsmi_cpu_apb_enable(amdsmi_processor_handle processor_handle)
Enable APB.
amdsmi_status_t amdsmi_get_cpu_tdelta(amdsmi_processor_handle processor_handle, uint8_t *tdelta)
Read Thermal Delta (TDELTA) Behavior.
amdsmi_status_t amdsmi_get_cpu_svi3_vr_controller_temp(amdsmi_processor_handle processor_handle, uint32_t *rail_selection, uint32_t *rail_index, uint32_t *temp)
Get Temperature of SVI3 VR(Voltage Rail)
amdsmi_status_t amdsmi_get_cpu_socket_temperature(amdsmi_processor_handle processor_handle, uint32_t *ptmon)
Get socket temperature.
amdsmi_status_t amdsmi_set_cpu_xgmi_width(amdsmi_processor_handle processor_handle, uint8_t min, uint8_t max)
Set xgmi width.
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.
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.
amdsmi_status_t amdsmi_init_gpu_event_notification(amdsmi_processor_handle processor_handle)
Prepare to collect event notifications for a GPU.
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.
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.
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.
amdsmi_fabric_telemetry_category_t
Fabric telemetry categories.
Definition amdsmi.h:5504
amdsmi_status_t amdsmi_get_gpu_fabric_info(amdsmi_processor_handle processor_handle, amdsmi_fabric_info_t *info)
Get Fabric device information.
amdsmi_status_t amdsmi_alloc_fabric_telemetry(amdsmi_processor_handle processor_handle, uint32_t category_mask, amdsmi_fabric_telemetry_t **telemetry)
Allocate storage for Fabric telemetry data.
const char * amdsmi_fabric_telem_id_to_string(uint64_t telem_id)
Get string name for a telemetry item ID.
amdsmi_fabric_telemetry_category_mask_t
Fabric telemetry category bitmask values.
Definition amdsmi.h:5520
#define AMDSMI_FABRIC_LABEL_MAX_LENGTH
Fabric textual label structure.
Definition amdsmi.h:5551
amdsmi_fabric_type_t
Fabric type.
Definition amdsmi.h:5692
amdsmi_status_t amdsmi_free_fabric_telemetry(amdsmi_processor_handle processor_handle, amdsmi_fabric_telemetry_t *telemetry)
Free Fabric telemetry storage.
amdsmi_status_t amdsmi_get_fabric_telemetry_data(amdsmi_processor_handle processor_handle, amdsmi_fabric_telemetry_t *telemetry)
Get Fabric telemetry data.
amdsmi_fabric_size_constants_t
Fabric size constants.
Definition amdsmi.h:5681
amdsmi_fabric_accelerator_vpod_state_t
Fabric accelerator vPoD state.
Definition amdsmi.h:5714
amdsmi_fabric_npa_address_mode_t
Fabric NPA address mode.
Definition amdsmi.h:5703
@ AMDSMI_FABRIC_TELEMETRY_CATEGORY_MAX
Maximum number of categories.
Definition amdsmi.h:5513
@ AMDSMI_FABRIC_TELEMETRY_CATEGORY_UALOE
UALOE telemetry.
Definition amdsmi.h:5506
@ AMDSMI_FABRIC_TELEMETRY_CATEGORY_DERIVED_UALOE
Derived UALOE telemetry.
Definition amdsmi.h:5511
@ AMDSMI_FABRIC_TELEMETRY_CATEGORY_NETPORT
Network Port telemetry.
Definition amdsmi.h:5510
@ AMDSMI_FABRIC_TELEMETRY_CATEGORY_SWITCH
Switch telemetry.
Definition amdsmi.h:5507
@ AMDSMI_FABRIC_TELEMETRY_CATEGORY_PFC
PFC telemetry.
Definition amdsmi.h:5509
@ AMDSMI_FABRIC_TELEMETRY_CATEGORY_UNKNOWN
Unknown telemetry.
Definition amdsmi.h:5505
@ AMDSMI_FABRIC_TELEMETRY_CATEGORY_DERIVED_NETPORT
Derived Network Port telemetry.
Definition amdsmi.h:5512
@ AMDSMI_FABRIC_TELEMETRY_CATEGORY_CRYPTO
Crypto telemetry.
Definition amdsmi.h:5508
@ AMDSMI_FABRIC_TELEMETRY_CATEGORY_MASK_ALL_KNOWN
All known categories.
Definition amdsmi.h:5530
@ AMDSMI_FABRIC_MAX_LOCAL_GPUS
Maximum local GPUs in fabric.
Definition amdsmi.h:5684
@ AMDSMI_FABRIC_ACTIVE_ACCELERATORS_BITMAP_SIZE
Active accelerators bitmap size (32 x 32-bit words = 1024 bits)
Definition amdsmi.h:5682
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.
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.
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 t...
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 percentag...
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....
amdsmi_status_t amdsmi_get_violation_status(amdsmi_processor_handle processor_handle, amdsmi_violation_status_t *info)
Returns the violations for a processor.
amdsmi_status_t amdsmi_is_gpu_power_management_enabled(amdsmi_processor_handle processor_handle, bool *enabled)
Returns is power management enabled.
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.
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.
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)
Retrieve minimal and maximal io link bandwidth between 2 GPUs.
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.
amdsmi_status_t amdsmi_get_link_metrics(amdsmi_processor_handle processor_handle, amdsmi_link_metrics_t *link_metrics)
Return link metric information.
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.
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.
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.
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 subsystem.
amdsmi_status_t amdsmi_get_gpu_revision(amdsmi_processor_handle processor_handle, uint16_t *revision)
Get the device revision associated with the device.
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.
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.
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.
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.
amdsmi_status_t amdsmi_shut_down(void)
Shutdown the AMD SMI library.
amdsmi_status_t amdsmi_init(uint64_t init_flags)
Initialize the AMD SMI library.
amdsmi_status_t amdsmi_get_gpu_uma_carveout_info(amdsmi_processor_handle processor_handle, amdsmi_uma_carveout_info_t *info)
Get UMA carveout configuration information.
amdsmi_status_t amdsmi_set_ttm_pages_limit(uint64_t pages)
Set TTM pages limit.
#define AMDSMI_MAX_CARVEOUT_OPTIONS
Maximum carveout options.
Definition amdsmi.h:9450
amdsmi_status_t amdsmi_get_ttm_info(amdsmi_ttm_info_t *info)
Get TTM configuration information.
amdsmi_status_t amdsmi_reset_ttm_pages_limit(void)
Reset TTM pages limit to system default.
amdsmi_status_t amdsmi_set_gpu_uma_carveout(amdsmi_processor_handle processor_handle, uint32_t option_index)
Set UMA carveout configuration.
amdsmi_status_t amdsmi_get_gpu_memory_partition_config(amdsmi_processor_handle processor_handle, amdsmi_memory_partition_config_t *config)
Returns current gpu memory partition capabilities.
amdsmi_status_t amdsmi_set_gpu_memory_partition_mode(amdsmi_processor_handle processor_handle, amdsmi_memory_partition_type_t mode)
Sets memory partition mode Set memory partition setting based on memory_partition mode from amdsmi_ge...
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.
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.
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.
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.
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 machi...
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.
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...
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.
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.
amdsmi_status_t amdsmi_get_nic_rdma_dev_info(amdsmi_processor_handle processor_handle, amdsmi_nic_rdma_devices_info_t *info)
Retrieves RDMA devices information for the NIC.
amdsmi_status_t amdsmi_get_nic_rdma_port_statistics(amdsmi_processor_handle processor_handle, uint32_t rdma_port_index, uint32_t *num_stats, amdsmi_nic_stat_t *stats)
Retrieve RDMA port statistics for the NIC.
amdsmi_status_t amdsmi_get_nic_port_info(amdsmi_processor_handle processor_handle, amdsmi_nic_port_info_t *info)
Retrieves PORT information for the NIC.
amdsmi_status_t amdsmi_get_nic_driver_info(amdsmi_processor_handle processor_handle, amdsmi_nic_driver_info_t *info)
Retrieves information about the NIC driver.
amdsmi_status_t amdsmi_get_nic_bus_info(amdsmi_processor_handle processor_handle, amdsmi_nic_bus_info_t *info)
Retrieves BUS information for the NIC.
amdsmi_status_t amdsmi_get_nic_asic_info(amdsmi_processor_handle processor_handle, amdsmi_nic_asic_info_t *info)
Retrieves ASIC information for the NIC.
amdsmi_status_t amdsmi_get_nic_numa_info(amdsmi_processor_handle processor_handle, amdsmi_nic_numa_info_t *info)
Retrieves NUMA information for the NIC.
amdsmi_status_t amdsmi_get_npm_info(amdsmi_node_handle node_handle, amdsmi_npm_info_t *info)
Retrieves node power management (NPM) status and power limit for the specified node.
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 g...
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.
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.
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 g...
amdsmi_status_t amdsmi_get_gpu_pci_replay_counter(amdsmi_processor_handle processor_handle, uint64_t *counter)
Get PCIe replay counter.
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.
amdsmi_status_t amdsmi_get_gpu_ptl_state(amdsmi_processor_handle processor_handle, bool *enabled)
Get PTL enable/disable state.
amdsmi_status_t amdsmi_set_gpu_ptl_state(amdsmi_processor_handle processor_handle, bool enable)
Set PTL enable/disable state.
amdsmi_status_t amdsmi_set_gpu_ptl_formats(amdsmi_processor_handle processor_handle, amdsmi_ptl_data_format_t data_format1, amdsmi_ptl_data_format_t data_format2)
Set PTL with specified preferred data formats.
amdsmi_status_t amdsmi_get_gpu_ptl_formats(amdsmi_processor_handle processor_handle, amdsmi_ptl_data_format_t *data_format1, amdsmi_ptl_data_format_t *data_format2)
Get PTL (Peak Tops Limiter) formats for the processor.
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.
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.
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.
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.
amdsmi_status_t amdsmi_gpu_destroy_counter(amdsmi_event_handle_t evnt_handle)
Deallocate a performance counter object.
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.
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 v...
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.
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 the maximum fan speed....
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 m...
amdsmi_status_t amdsmi_get_gpu_cache_info(amdsmi_processor_handle processor_handle, amdsmi_gpu_cache_info_t *info)
Returns gpu cache info.
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....
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 speci...
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....
amdsmi_status_t amdsmi_get_processor_info(amdsmi_processor_handle processor_handle, size_t len, char *name)
Get information about the given processor.
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.
amdsmi_status_t amdsmi_get_processor_type(amdsmi_processor_handle processor_handle, amdsmi_processor_type_t *processor_type)
Get the processor type of the processor_handle.
amdsmi_status_t amdsmi_get_processor_handles_by_type(amdsmi_socket_handle socket_handle, amdsmi_processor_type_t processor_type, amdsmi_processor_handle *processor_handles, uint32_t *processor_count)
Returns a list of processor handles of the specified type in the system.
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.
amdsmi_status_t amdsmi_get_socket_info(amdsmi_socket_handle socket_handle, size_t len, char *name)
Get information about the given socket.
amdsmi_status_t amdsmi_get_node_handle(amdsmi_processor_handle processor_handle, amdsmi_node_handle *node_handle)
Get the node handle associated with processor handle.
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.
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.
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.
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.
amdsmi_status_t amdsmi_get_gpu_device_bdf(amdsmi_processor_handle processor_handle, amdsmi_bdf_t *bdf)
Returns BDF of the given GPU device.
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...
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.
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 syst...
amdsmi_status_t amdsmi_get_gpu_process_list_by_pid(amdsmi_processor_handle *processor_handles, uint32_t num_processors, amdsmi_proc_info_by_pid_t *procs, uint32_t *max_processes)
Get the list of processes running on one or more GPUs, grouped by PID.
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.
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.
amdsmi_status_t amdsmi_get_gpu_ras_feature_info(amdsmi_processor_handle processor_handle, amdsmi_ras_feature_t *ras_feature)
Returns RAS features info.
amdsmi_status_t amdsmi_get_gpu_driver_info(amdsmi_processor_handle processor_handle, amdsmi_driver_info_t *info)
Returns the driver version information.
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.
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.
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.
amdsmi_status_t amdsmi_get_lib_version(amdsmi_version_t *version)
Get the build version information for the currently running build of AMDSMI.
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.
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.
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.
amdsmi_status_t amdsmi_get_xgmi_info(amdsmi_processor_handle processor_handle, amdsmi_xgmi_info_t *info)
Returns XGMI information for the GPU.
Structure holds the gpu metrics table header for a device.
Definition amdsmi.h:2114
Accelerator Partition Profile Configurations.
Definition amdsmi.h:1237
uint32_t default_profile_index
The index of the default profile in the profiles array.
Definition amdsmi.h:1242
uint32_t num_profiles
The length of profiles array.
Definition amdsmi.h:1238
Accelerator Partition Resource Profile.
Definition amdsmi.h:1207
uint32_t num_partitions
On MI300X: SPX=>1, DPX=>2, QPX=>4, CPX=>8; length of resources.
Definition amdsmi.h:1209
amdsmi_nps_caps_t memory_caps
Possible memory partition capabilities.
Definition amdsmi.h:1210
amdsmi_accelerator_partition_type_t profile_type
SPX, DPX, QPX, CPX and so on.
Definition amdsmi.h:1208
uint32_t num_resources
length of index_of_resources_profile
Definition amdsmi.h:1213
Accelerator Partition Resources. This struct is used to identify various partition resource profiles.
Definition amdsmi.h:1224
uint32_t partition_resource
Resources a partition can use, which may be shared.
Definition amdsmi.h:1227
uint32_t num_partitions_share_resource
If it is greater than 1, then resource is shared.
Definition amdsmi.h:1228
APU metrics auxiliary data.
Definition amdsmi.h:2187
uint32_t average_gfx_power
v2_4[uint16_t], v3_0[uint32_t]
Definition amdsmi.h:2220
uint16_t average_fclk_frequency
v2_4, v3_0
Definition amdsmi.h:2236
uint16_t current_vclk
v2_4
Definition amdsmi.h:2250
uint16_t average_cpu_power
v2_4
Definition amdsmi.h:2218
uint16_t average_gfx_voltage
v2_4
Definition amdsmi.h:2288
uint16_t average_gfx_current
v2_4
Definition amdsmi.h:2291
uint16_t average_dram_writes
v3_0
Definition amdsmi.h:2206
uint32_t average_all_core_power
v3_0
Definition amdsmi.h:2225
uint16_t average_socclk_frequency
v2_4, v3_0
Definition amdsmi.h:2234
uint32_t throttle_residency_spl
v3_0
Definition amdsmi.h:2263
uint32_t throttle_residency_thm_core
v3_0
Definition amdsmi.h:2266
uint16_t current_fclk
v2_4
Definition amdsmi.h:2249
uint16_t fan_pwm
Fan.
Definition amdsmi.h:2273
uint16_t average_temperature_soc
v2_4
Definition amdsmi.h:2279
uint16_t current_uclk
v2_4
Definition amdsmi.h:2248
uint16_t current_gfxclk
Current clocks [MHz].
Definition amdsmi.h:2246
uint32_t time_filter_alphavalue
Other (v3_0)
Definition amdsmi.h:2296
uint16_t average_vcn_activity
v3_0
Definition amdsmi.h:2202
uint16_t average_gfxclk_frequency
Average clocks [MHz].
Definition amdsmi.h:2233
uint16_t current_core_maxfreq
v3_0
Definition amdsmi.h:2254
uint16_t average_mm_activity
v2_4
Definition amdsmi.h:2201
uint16_t temperature_skin
v3_0
Definition amdsmi.h:2195
uint32_t average_apu_power
v3_0
Definition amdsmi.h:2223
uint16_t average_dram_reads
v3_0 [MB/s]
Definition amdsmi.h:2205
uint32_t average_socket_power
Power [mW].
Definition amdsmi.h:2217
uint32_t throttle_residency_prochot
v3_0
Definition amdsmi.h:2262
uint16_t average_ipu_reads
v3_0
Definition amdsmi.h:2207
uint32_t throttle_residency_sppt
v3_0
Definition amdsmi.h:2265
uint16_t stapm_power_limit
v3_0
Definition amdsmi.h:2227
uint16_t average_sys_power
v3_0
Definition amdsmi.h:2226
uint16_t average_ipu_writes
v3_0
Definition amdsmi.h:2208
uint16_t current_gfx_maxfreq
v3_0
Definition amdsmi.h:2255
uint16_t average_soc_current
v2_4
Definition amdsmi.h:2290
uint16_t average_cpu_voltage
Voltage [mV] / Current [mA].
Definition amdsmi.h:2286
uint64_t indep_throttle_status
v2_4
Definition amdsmi.h:2261
uint32_t throttle_residency_thm_soc
v3_0
Definition amdsmi.h:2268
uint16_t average_uclk_frequency
v2_4, v3_0
Definition amdsmi.h:2235
uint16_t current_stapm_power_limit
v3_0
Definition amdsmi.h:2228
uint16_t average_ipuclk_frequency
v3_0
Definition amdsmi.h:2240
uint16_t temperature_soc
v2_4, v3_0
Definition amdsmi.h:2192
uint16_t average_cpu_current
v2_4
Definition amdsmi.h:2289
uint32_t throttle_residency_thm_gfx
v3_0
Definition amdsmi.h:2267
uint32_t throttle_status
Throttle.
Definition amdsmi.h:2260
uint16_t average_soc_voltage
v2_4
Definition amdsmi.h:2287
uint16_t average_temperature_gfx
Average temperature.
Definition amdsmi.h:2278
uint16_t average_dclk_frequency
v2_4
Definition amdsmi.h:2238
uint16_t average_soc_power
v2_4
Definition amdsmi.h:2219
uint16_t average_ipu_power
v3_0
Definition amdsmi.h:2222
uint32_t average_dgpu_power
v3_0
Definition amdsmi.h:2224
uint16_t average_gfx_activity
Utilization.
Definition amdsmi.h:2200
uint16_t average_vclk_frequency
v2_4, v3_0
Definition amdsmi.h:2237
uint32_t throttle_residency_fppt
v3_0
Definition amdsmi.h:2264
uint16_t current_dclk
v2_4
Definition amdsmi.h:2251
uint16_t temperature_gfx
Temperature (instant)
Definition amdsmi.h:2191
uint16_t average_mpipu_frequency
v3_0
Definition amdsmi.h:2241
uint16_t current_socclk
v2_4
Definition amdsmi.h:2247
uint16_t average_vpeclk_frequency
v3_0
Definition amdsmi.h:2239
ASIC Information.
Definition amdsmi.h:1139
uint64_t target_graphics_version
0xFFFFFFFFFFFFFFFF if not supported
Definition amdsmi.h:1150
uint32_t vendor_id
Use 32 bit to be compatible with other platform.
Definition amdsmi.h:1141
uint64_t device_id
The device ID of a GPU.
Definition amdsmi.h:1144
uint32_t oam_id
Corresponds to socket number, 0xFFFFFFFF if not supported.
Definition amdsmi.h:1148
uint32_t num_of_compute_units
0xFFFFFFFF if not supported
Definition amdsmi.h:1149
uint32_t subvendor_id
The subsystem vendor ID.
Definition amdsmi.h:1143
uint64_t flags
‍The subsystem ID
Definition amdsmi.h:1152
uint32_t rev_id
The revision ID of a GPU.
Definition amdsmi.h:1145
Board Information.
Definition amdsmi.h:1339
Clock Information.
Definition amdsmi.h:1374
uint32_t clk
In MHz.
Definition amdsmi.h:1375
uint8_t clk_locked
True/False.
Definition amdsmi.h:1378
uint8_t clk_deep_sleep
True/False.
Definition amdsmi.h:1379
uint32_t min_clk
In MHz.
Definition amdsmi.h:1376
uint32_t max_clk
In MHz.
Definition amdsmi.h:1377
Counter value.
Definition amdsmi.h:1609
uint64_t time_enabled
Time that the counter was enabled in nanoseconds.
Definition amdsmi.h:1611
uint64_t time_running
Time that the counter was running in nanoseconds.
Definition amdsmi.h:1612
uint64_t value
Counter value.
Definition amdsmi.h:1610
amdsmi_cper_guid_t notify_type
CMC, MCE, can use amdsmi_cper_notifiy_type_t to decode.
Definition amdsmi.h:5964
uint64_t persistence_info
Reserved.
Definition amdsmi.h:5967
uint32_t signature_end
0xFFFFFFFF
Definition amdsmi.h:5955
uint32_t flags
Reserved.
Definition amdsmi.h:5966
amdsmi_cper_guid_t partition_id
Reserved.
Definition amdsmi.h:5962
uint32_t record_length
Total size of CPER Entry.
Definition amdsmi.h:5959
cpu info data
Definition amdsmi.h:2915
bool frequency_boost
boost frequency
Definition amdsmi.h:2921
uint32_t socket_count
count of cpu sockets
Definition amdsmi.h:2931
uint32_t num_of_cpu_cores
0xFFFFFFFF if not supported
Definition amdsmi.h:2930
uint64_t device_id
The device id of a GPU.
Definition amdsmi.h:2925
uint32_t socket_id
0xFFFF if not supported
Definition amdsmi.h:2928
uint32_t threads_per_core
virtual processing units per cpu core
Definition amdsmi.h:2919
uint32_t core_id
cpu core id
Definition amdsmi.h:2929
uint32_t vendor_id
Use 32 bit to be compatible with other platform.
Definition amdsmi.h:2922
uint32_t cpu_family_id
cpu family id
Definition amdsmi.h:2917
uint32_t model_id
cpu model id
Definition amdsmi.h:2918
uint32_t subvendor_id
The subsystem vendor id.
Definition amdsmi.h:2924
uint32_t cores_per_socket
cpu cores per socket
Definition amdsmi.h:2920
uint32_t rev_id
Revision.
Definition amdsmi.h:2926
uint32_t core_count
cpu core count
Definition amdsmi.h:2932
This structure holds CPU utilization information.
Definition amdsmi.h:1269
DDR bandwidth metrics.
Definition amdsmi.h:2732
uint32_t max_bw
DDR Maximum theoretical bandwidth in GB/s.
Definition amdsmi.h:2733
uint32_t utilized_bw
DDR bandwidth utilization in GB/s.
Definition amdsmi.h:2734
uint32_t utilized_pct
DDR bandwidth utilization in % of theoretical max.
Definition amdsmi.h:2735
DIMM Power(mW), power update rate(ms) and dimm address.
Definition amdsmi.h:2753
uint8_t dimm_addr
Dimm address[7:0](8 bit data)
Definition amdsmi.h:2756
uint16_t update_rate
Time since last update[16:8](9 bit data)
Definition amdsmi.h:2755
uint16_t power
Dimm power consumption[31:17](15 bits data)
Definition amdsmi.h:2754
DIMM temperature(°C) and update rate(ms) and dimm address.
Definition amdsmi.h:2764
uint16_t sensor
Dimm thermal sensor[31:21](11 bit data)
Definition amdsmi.h:2765
float temp
temperature in degree celsius
Definition amdsmi.h:2768
uint16_t update_rate
Time since last update[16:8](9 bit data)
Definition amdsmi.h:2766
uint8_t dimm_addr
Dimm address[7:0](8 bit data)
Definition amdsmi.h:2767
max and min LCLK DPM level on a given NBIO ID. Valid max and min DPM level values are 0 - 1.
Definition amdsmi.h:2802
uint8_t min_dpm_level
Min LCLK DPM level[7:0](8 bit data)
Definition amdsmi.h:2804
uint8_t max_dpm_level
Max LCLK DPM level[15:8](8 bit data)
Definition amdsmi.h:2803
The dpm policy.
Definition amdsmi.h:2012
DPM Policy.
Definition amdsmi.h:2026
uint32_t num_supported
The number of supported policies.
Definition amdsmi.h:2027
uint32_t current
The current policy index.
Definition amdsmi.h:2028
Driver Information.
Definition amdsmi.h:1328
Engine Usage amdsmi_engine_usage_t: This structure holds common GPU activity values seen in both BM o...
Definition amdsmi.h:1392
uint32_t gfx_activity
In %.
Definition amdsmi.h:1393
uint32_t umc_activity
In %.
Definition amdsmi.h:1394
uint32_t mm_activity
In %.
Definition amdsmi.h:1395
Structure holds enumeration information.
Definition amdsmi.h:997
uint32_t hip_id
the HIP enumeration ID
Definition amdsmi.h:1001
uint32_t oam_id
Physical XGMI ID / OAM ID (0xFFFFFFFF if N/A)
Definition amdsmi.h:1003
uint32_t drm_render
the render node under /sys/class/drm/renderD*
Definition amdsmi.h:998
uint32_t hsa_id
the HSA enumeration ID
Definition amdsmi.h:1000
uint32_t drm_card
the graphic card device under /sys/class/drm/card*
Definition amdsmi.h:999
This structure holds error counts.
Definition amdsmi.h:2614
uint64_t uncorrectable_count
Accumulated uncorrectable errors.
Definition amdsmi.h:2616
uint64_t correctable_count
Accumulated correctable errors.
Definition amdsmi.h:2615
uint64_t deferred_count
Accumulated deferred errors.
Definition amdsmi.h:2617
Event notification data returned from event notification API.
Definition amdsmi.h:1651
amdsmi_processor_handle processor_handle
Handler of device that corresponds to the event.
Definition amdsmi.h:1652
amdsmi_evt_notification_type_t event
Event type.
Definition amdsmi.h:1653
Fabric device information structure.
Definition amdsmi.h:5756
amdsmi_bdf_t bdf
BDF (Bus, Device, Function) of the Fabric device.
Definition amdsmi.h:5757
amdsmi_fabric_info_ver_t fabric_info
Fabric information structure (version 1)
Definition amdsmi.h:5758
Fabric device configuration information (version 1)
Definition amdsmi.h:5728
uint32_t vpod_size
Virtual PoD size.
Definition amdsmi.h:5736
amdsmi_fabric_npa_address_mode_t addr_mode
Source aliasing or identification mode.
Definition amdsmi.h:5741
amdsmi_fabric_accelerator_vpod_state_t accel_state
Accelerator vPoD State.
Definition amdsmi.h:5742
uint32_t vpod_id
Virtual PoD Identifier.
Definition amdsmi.h:5735
amdsmi_fabric_type_t fabric_type
UALOE or UALLINK.
Definition amdsmi.h:5730
uint32_t ppod_size
Physical PoD size.
Definition amdsmi.h:5734
uint32_t accelerator_id
Accelerator identifier (range 0 to 1023)
Definition amdsmi.h:5729
uint32_t bandwidth
Station bandwidth share in Mb/s.
Definition amdsmi.h:5731
uint32_t latency
Latency in nanoseconds (depends on switch presence and type)
Definition amdsmi.h:5732
Fabric telemetry dataset structure.
Definition amdsmi.h:5575
amdsmi_fabric_telemetry_category_t category
Telemetry category.
Definition amdsmi.h:5576
unsigned instance_count
Number of instances for this category.
Definition amdsmi.h:5579
amdsmi_fabric_telemetry_instance_t * instances
Array of pointers to instances.
Definition amdsmi.h:5580
uint64_t generation_count
Sequence number incremented each time telemetry is written.
Definition amdsmi.h:5577
Fabric telemetry instance structure.
Definition amdsmi.h:5563
amdsmi_fabric_label_t name
Name for this instance.
Definition amdsmi.h:5564
amdsmi_fabric_telemetry_item_t * items
Pointer to array of telemetry items.
Definition amdsmi.h:5567
unsigned logical_idx
Logical index for this instance.
Definition amdsmi.h:5565
unsigned item_count
Number of telemetry items in the set.
Definition amdsmi.h:5566
Fabric telemetry item structure.
Definition amdsmi.h:5541
uint64_t value
Value of the telemetry item.
Definition amdsmi.h:5543
uint64_t id
Identifier of the telemetry item.
Definition amdsmi.h:5542
Fabric telemetry structure.
Definition amdsmi.h:5590
This structure holds 2 amdsmi_range_t's, one for frequency and one for voltage. These 2 ranges indica...
Definition amdsmi.h:2075
amdsmi_range_t freq_range
The frequency range for this VDDC Curve point.
Definition amdsmi.h:2076
amdsmi_range_t volt_range
The voltage range for this VDDC Curve point.
Definition amdsmi.h:2077
This structure holds information about clock frequencies.
Definition amdsmi.h:1995
uint32_t num_supported
The number of supported frequencies.
Definition amdsmi.h:1997
bool has_deep_sleep
Deep Sleep frequency is only supported by some GPUs.
Definition amdsmi.h:1996
Frequency Range.
Definition amdsmi.h:965
amdsmi_range_t supported_freq_range
In MHz.
Definition amdsmi.h:966
amdsmi_range_t current_freq_range
In MHz.
Definition amdsmi.h:967
Firmware Information.
Definition amdsmi.h:1124
uint32_t num_cache_instance
total number of instance of this cache type
Definition amdsmi.h:1113
uint32_t max_num_cu_shared
Indicates how many Compute Units share this cache instance.
Definition amdsmi.h:1112
uint32_t cache_properties
amdsmi_cache_property_type_t which is a bitmask
Definition amdsmi.h:1109
GPU Cache Information.
Definition amdsmi.h:1106
Structure holds the gpu metrics values for a device.
Definition amdsmi.h:2316
uint64_t indep_throttle_status
Throttle status.
Definition amdsmi.h:2398
uint64_t vram_max_bandwidth
v1.7 additions
Definition amdsmi.h:2495
uint32_t gfx_activity_acc
new in v1
Definition amdsmi.h:2382
uint16_t average_socket_power
Power (W) /Energy (15.259uJ per 1ns)
Definition amdsmi.h:2341
uint32_t gfxclk_lock_status
Clock Lock Status. Each bit corresponds to clock instance.
Definition amdsmi.h:2407
uint16_t temperature_edge
v1.0 Base
Definition amdsmi.h:2324
uint16_t average_mm_activity
UVD or VCN.
Definition amdsmi.h:2336
uint16_t current_fan_speed
Fans (RPM)
Definition amdsmi.h:2371
uint64_t firmware_timestamp
PMFW attached timestamp (10ns resolution)
Definition amdsmi.h:2389
uint32_t pcie_lc_perf_other_end_recovery
PCIE other end recovery counter.
Definition amdsmi.h:2490
uint16_t current_socket_power
In Watts.
Definition amdsmi.h:2403
uint64_t system_clock_counter
Driver attached timestamp (in ns)
Definition amdsmi.h:2345
uint64_t ppt_residency_acc
Accumulated throttler residencies.
Definition amdsmi.h:2464
uint16_t average_umc_activity
memory controller
Definition amdsmi.h:2335
uint64_t pcie_l0_to_recov_count_acc
PCIE L0 to recovery state transition accumulated count.
Definition amdsmi.h:2414
uint16_t pcie_link_width
Link width (number of lanes) /speed (0.1 GT/s)
Definition amdsmi.h:2376
amdsmi_apu_metrics_t * apu_metrics
APU metrics auxiliary data.
Definition amdsmi.h:2540
uint16_t average_gfxclk_frequency
Average clocks (MHz)
Definition amdsmi.h:2350
uint16_t voltage_soc
In mV.
Definition amdsmi.h:2394
uint32_t mem_activity_acc
new in v1
Definition amdsmi.h:2383
uint16_t xgmi_link_speed
XGMI bus bitrate in GB/s.
Definition amdsmi.h:2410
uint16_t voltage_gfx
In mV.
Definition amdsmi.h:2395
uint64_t socket_thm_residency_acc
Accumulated throttler residencies.
Definition amdsmi.h:2481
uint32_t throttle_status
Throttle status.
Definition amdsmi.h:2369
uint16_t voltage_mem
In mV.
Definition amdsmi.h:2396
uint16_t pcie_link_speed
in 0.1 GT/s; v1 mod. (8->16)
Definition amdsmi.h:2377
uint16_t num_partition
Number of current partition.
Definition amdsmi.h:2485
uint64_t pcie_bandwidth_acc
PCIE accumulated bandwidth (GB/sec)
Definition amdsmi.h:2412
uint64_t accumulation_counter
v1.6 additions
Definition amdsmi.h:2442
uint16_t xgmi_link_width
XGMI bus width in GB/s.
Definition amdsmi.h:2409
uint64_t prochot_residency_acc
Accumulated throttler residencies.
Definition amdsmi.h:2447
uint64_t pcie_replay_rover_count_acc
PCIE replay rollover accumulated count.
Definition amdsmi.h:2416
uint64_t pcie_replay_count_acc
PCIE replay accumulated count.
Definition amdsmi.h:2415
uint16_t current_gfxclk
Current clocks (MHz)
Definition amdsmi.h:2361
uint16_t average_gfx_activity
Average Utilization (in %)
Definition amdsmi.h:2334
uint32_t pcie_nak_sent_count_acc
PCIE NAK sent accumulated count.
Definition amdsmi.h:2436
uint64_t energy_accumulator
v1 mod. (32->64)
Definition amdsmi.h:2342
uint32_t pcie_nak_rcvd_count_acc
PCIE NAK received accumulated count.
Definition amdsmi.h:2437
uint64_t pcie_bandwidth_inst
PCIE instantaneous bandwidth (GB/sec)
Definition amdsmi.h:2413
Ras policy info structure for storing version and different ras policy version structures.
Definition amdsmi.h:1845
uint16_t dram_critical_region_threshold
Critical region UCE threshold.
Definition amdsmi.h:1836
uint16_t dram_non_critical_region_threshold
Non-critical region UCE threshold.
Definition amdsmi.h:1835
The following structures hold the gpu statistics for a device.
Definition amdsmi.h:2129
This structure holds HSMP Driver version information.
Definition amdsmi.h:318
uint32_t major
Major version number.
Definition amdsmi.h:319
uint32_t minor
Minor version number.
Definition amdsmi.h:320
HSMP Metrics table (supported only with hsmp proto version 6).
Definition amdsmi.h:2812
uint32_t max_lclk_dpm_range
Maximum LCLK DPM state constraint defined by the user.
Definition amdsmi.h:2867
uint32_t xgmi_width
Current operating XGMI link width.
Definition amdsmi.h:2870
uint32_t max_cclk_frequency
Maximum CCLK frequency supported by the CPU.
Definition amdsmi.h:2851
uint64_t timestamp
Timestamp corresponding to the energy accumulators in 10ns units.
Definition amdsmi.h:2831
uint32_t socket_c0_residency
Average CPU C0 residency of all enabled cores in the socket.
Definition amdsmi.h:2877
uint32_t prochot_residency_acc
Incremented every iteration PROCHOT is active.
Definition amdsmi.h:2888
uint64_t ccd_energy_acc
Energy accumulator of VDDCR_VDD rails powering CCDs.
Definition amdsmi.h:2833
uint64_t socket_gfx_busy_acc
Accumulated value of "socket_gfx_busy".
Definition amdsmi.h:2881
uint64_t hbm_energy_acc
Energy accumulator of all HBM stacks in the socket.
Definition amdsmi.h:2836
uint32_t max_hbm_temperature
Maximum temperature reported by all HBM stacks in the socket.
Definition amdsmi.h:2820
uint32_t min_lclk_dpm_range
Minimum LCLK DPM state constraint defined by the user.
Definition amdsmi.h:2868
uint64_t max_hbm_temperature_acc
Accumulated version of "max_hbm_temperature".
Definition amdsmi.h:2823
uint32_t socket_power
Power consumption of all die in the socket (AID+CCD+XCD+HBM)
Definition amdsmi.h:2829
uint32_t fclk_frequency
Effective FCLK frequency.
Definition amdsmi.h:2842
uint64_t socket_c0_residency_acc
Accumulated value of "socket_c0_residency".
Definition amdsmi.h:2880
uint64_t xcd_energy_acc
Energy accumulator of VDDCR_VDD rails powering XCDs.
Definition amdsmi.h:2834
uint32_t min_cclk_frequency
Minimum CCLK frequency supported by the CPU.
Definition amdsmi.h:2852
uint64_t dram_bandwidth_utilization_acc
Accumulated value of "dram_bandwidth_utilization".
Definition amdsmi.h:2885
uint32_t max_gfxclk_frequency
Maximum GFXCLK frequency supported by the accelerator.
Definition amdsmi.h:2853
uint64_t socket_energy_acc
Energy accumulator of all die in the socket (AID+CCD+XCD+HBM)
Definition amdsmi.h:2832
uint32_t socket_thm_residency_acc
Definition amdsmi.h:2890
uint64_t aid_energy_acc
Energy accumulator of rails powering the AIDs.
Definition amdsmi.h:2835
uint32_t dram_bandwidth_utilization
HBM bandwidth utilization for all socket HBM stacks.
Definition amdsmi.h:2879
uint64_t max_vr_temperature_acc
Accumulated version of "max_vr_temperature".
Definition amdsmi.h:2822
uint64_t max_socket_temperature_acc
Accumulated version of "max_socket_temperature".
Definition amdsmi.h:2821
uint32_t xgmi_bitrate
Current operating XGMI link bitrate.
Definition amdsmi.h:2871
uint32_t uclk_frequency
Effective UCLK frequency.
Definition amdsmi.h:2843
uint32_t socket_gfx_busy
Average XCC busy for all enabled XCCs in the socket.
Definition amdsmi.h:2878
uint32_t ppt_residency_acc
Incremented every iteration the PPT controller is active.
Definition amdsmi.h:2889
uint64_t dram_bandwidth_acc
HBM bandwidth for all HBM stacks in the socket.
Definition amdsmi.h:2882
uint32_t min_gfxclk_frequency
Minimum GFXCLK frequency supported by the accelerator.
Definition amdsmi.h:2854
Structure holds kfd information.
Definition amdsmi.h:1161
uint32_t current_partition_id
0xFFFFFFFF if not supported
Definition amdsmi.h:1164
uint32_t node_id
0xFFFFFFFF if not supported
Definition amdsmi.h:1163
uint64_t kfd_id
0xFFFFFFFFFFFFFFFF if not supported
Definition amdsmi.h:1162
Memory Partition Configuration. This structure is used to identify various memory partition configura...
Definition amdsmi.h:1190
This structure holds the name value pairs.
Definition amdsmi.h:2571
uint64_t value
Use uint64_t to make it universal.
Definition amdsmi.h:2573
NIC asic information.
Definition amdsmi.h:2974
NIC bus information.
Definition amdsmi.h:2992
uint32_t max_pcie_speed
maximum PCIe speed in GT/s
Definition amdsmi.h:2995
NIC driver information.
Definition amdsmi.h:3086
NIC firmware information collection.
Definition amdsmi.h:3025
NIC firmware information.
Definition amdsmi.h:3015
NIC NUMA information.
Definition amdsmi.h:3005
NIC port information collection.
Definition amdsmi.h:3076
NIC port information.
Definition amdsmi.h:3052
uint32_t active_fec
Active FEC modes bitmask (see about FEC modes in the description)
Definition amdsmi.h:3064
NIC RDMA device information.
Definition amdsmi.h:3109
NIC RDMA devices information collection.
Definition amdsmi.h:3124
NIC RDMA port information.
Definition amdsmi.h:3096
Structure for NIC statistic name-value pairs.
Definition amdsmi.h:2964
NPM info.
Definition amdsmi.h:2687
uint32_t ubb_power_threshold
The UBB node power threshold in Watts.
Definition amdsmi.h:2690
amdsmi_npm_status_t status
NPM status (enabled/disabled).
Definition amdsmi.h:2688
uint64_t limit
Node-level power limit in Watts.
Definition amdsmi.h:2689
uint32_t nps8_cap
bool 1 = true; 0 = false
Definition amdsmi.h:1178
uint32_t nps4_cap
bool 1 = true; 0 = false
Definition amdsmi.h:1177
uint32_t nps2_cap
bool 1 = true; 0 = false
Definition amdsmi.h:1176
uint32_t nps1_cap
bool 1 = true; 0 = false
Definition amdsmi.h:1175
This structure represents a point on the frequency-voltage plane.
Definition amdsmi.h:2063
uint64_t frequency
Frequency coordinate (in Hz)
Definition amdsmi.h:2064
uint64_t voltage
Voltage coordinate (in mV)
Definition amdsmi.h:2065
OD Vold Curve AMDSMI_NUM_VOLTAGE_CURVE_POINTS number of amdsmi_od_vddc_point_t's.
Definition amdsmi.h:2086
This structure holds the frequency-voltage values for a device.
Definition amdsmi.h:2096
amdsmi_range_t curr_mclk_range
The current MCLK frequency range, upper bound only in MHz.
Definition amdsmi.h:2098
amdsmi_range_t mclk_freq_limits
The range possible of MCLK values in MHz.
Definition amdsmi.h:2101
uint32_t num_regions
The number of voltage curve regions.
Definition amdsmi.h:2104
amdsmi_range_t curr_fclk_range
The current FCLK frequency range in MHz.
Definition amdsmi.h:2099
amdsmi_range_t curr_sclk_range
The current SCLK frequency range in MHz.
Definition amdsmi.h:2097
amdsmi_range_t sclk_freq_limits
The range possible of SCLK values in MHz.
Definition amdsmi.h:2100
amdsmi_od_volt_curve_t curve
The current voltage curve.
Definition amdsmi.h:2103
amdsmi_range_t fclk_freq_limits
The range possible of FCLK values in MHz.
Definition amdsmi.h:2102
IO Link P2P Capability.
Definition amdsmi.h:1476
uint8_t is_iolink_atomics_64bit
1 = true, 0 = false, UINT8_MAX = Not defined
Definition amdsmi.h:1479
uint8_t is_iolink_atomics_32bit
1 = true, 0 = false, UINT8_MAX = Not defined
Definition amdsmi.h:1478
uint8_t is_iolink_bi_directional
1 = true, 0 = false, UINT8_MAX = Not defined
Definition amdsmi.h:1481
uint8_t is_iolink_coherent
1 = true, 0 = false, UINT8_MAX = Not defined
Definition amdsmi.h:1477
uint8_t is_iolink_dma
1 = true, 0 = false, UINT8_MAX = Not defined
Definition amdsmi.h:1480
This structure holds information about the possible PCIe bandwidths. Specifically,...
Definition amdsmi.h:2041
amdsmi_frequencies_t transfer_rate
Transfer rates (T/s) that are possible.
Definition amdsmi.h:2042
uint64_t pcie_replay_count
total number of the replays issued on the PCIe link
Definition amdsmi.h:1036
uint16_t pcie_width
current PCIe width
Definition amdsmi.h:1033
uint32_t pcie_speed
current PCIe speed in MT/s
Definition amdsmi.h:1034
uint32_t pcie_bandwidth
current instantaneous PCIe bandwidth in Mb/s
Definition amdsmi.h:1035
uint64_t pcie_nak_sent_count
total number of NAKs issued on the PCIe link by the device
Definition amdsmi.h:1041
uint32_t pcie_lc_perf_other_end_recovery_count
PCIe other end recovery counter.
Definition amdsmi.h:1044
uint16_t max_pcie_width
maximum number of PCIe lanes
Definition amdsmi.h:1025
uint32_t max_pcie_interface_version
maximum PCIe link generation
Definition amdsmi.h:1029
amdsmi_card_form_factor_t slot_type
card form factor
Definition amdsmi.h:1028
uint32_t max_pcie_speed
maximum PCIe speed in MT/s (e.g. 16000 for PCIe Gen4)
Definition amdsmi.h:1026
uint32_t pcie_interface_version
PCIe interface version.
Definition amdsmi.h:1027
pcie information
Definition amdsmi.h:1023
Power Cap Information.
Definition amdsmi.h:1055
uint64_t power_cap
current power cap Units uW {@linux_bm} or W {@host}
Definition amdsmi.h:1056
uint64_t dpm_cap
dpm power cap Units MHz {@linux_bm} or Hz {@host}
Definition amdsmi.h:1058
uint64_t max_power_cap
maximum power cap Units uW {@linux_bm} or W {@host}
Definition amdsmi.h:1060
uint64_t default_power_cap
default power cap Units uW {@linux_bm} or W {@host}
Definition amdsmi.h:1057
uint64_t min_power_cap
minimum power cap Units uW {@linux_bm} or W {@host}
Definition amdsmi.h:1059
Power Information.
Definition amdsmi.h:1355
uint64_t soc_voltage
SOC voltage measurement in mV {@linux_bm} or V {@host}.
Definition amdsmi.h:1362
uint64_t socket_power
Current power usage in W {@linux_bm}, uW {@host}.
Definition amdsmi.h:1356
uint32_t power_limit
The power limit in uW {@linux_bm}, Linux only.
Definition amdsmi.h:1364
uint64_t mem_voltage
MEM voltage measurement in mV {@linux_bm} or V {@host}.
Definition amdsmi.h:1363
uint32_t current_socket_power
Definition amdsmi.h:1357
uint32_t average_socket_power
Definition amdsmi.h:1359
uint64_t gfx_voltage
GFX voltage measurement in mV {@linux_bm} or V {@host}.
Definition amdsmi.h:1361
uint32_t ubb_power
The UBB node power in W {@linux_bm}, MI350X+.
Definition amdsmi.h:1365
This structure contains information about which power profiles are supported by the system for a give...
Definition amdsmi.h:1984
amdsmi_bit_field_t available_profiles
Which profiles are supported by this system.
Definition amdsmi.h:1985
amdsmi_power_profile_preset_masks_t current
Which power profile is currently active.
Definition amdsmi.h:1986
uint32_t num_profiles
How many power profiles are available.
Definition amdsmi.h:1987
Per-GPU process entry within a PID-grouped result.
Definition amdsmi.h:1438
uint64_t cpu_mem
CPU memory in bytes.
Definition amdsmi.h:1448
uint64_t mem
Total memory in bytes.
Definition amdsmi.h:1440
uint64_t vram_mem
VRAM memory in bytes.
Definition amdsmi.h:1449
uint64_t enc
ENC engine usage in nanoseconds.
Definition amdsmi.h:1443
uint64_t gfx
GFX engine usage in nanoseconds.
Definition amdsmi.h:1442
uint32_t evicted_time
Queue eviction time in milliseconds.
Definition amdsmi.h:1453
uint64_t sdma_usage
SDMA usage in microseconds.
Definition amdsmi.h:1454
uint32_t cu_occupancy
Number of CUs utilized.
Definition amdsmi.h:1452
uint32_t gpu_index
GPU index.
Definition amdsmi.h:1439
uint64_t gtt_mem
GTT memory in bytes.
Definition amdsmi.h:1447
Process info aggregated across all GPUs, keyed by PID.
Definition amdsmi.h:1463
uint32_t num_gpus
Number of GPU entries populated.
Definition amdsmi.h:1467
uint64_t enc
In nano-secs.
Definition amdsmi.h:1417
uint64_t gfx
In nano-secs.
Definition amdsmi.h:1416
Process Information.
Definition amdsmi.h:1411
uint32_t cu_occupancy
Num CUs utilized.
Definition amdsmi.h:1427
uint64_t mem
In Bytes.
Definition amdsmi.h:1414
uint32_t evicted_time
Time that queues are evicted on a GPU in milliseconds.
Definition amdsmi.h:1428
uint64_t sdma_usage
SDMA usage in microseconds.
Definition amdsmi.h:1429
This structure contains information specific to a process. Sum of the process memory is not expected ...
Definition amdsmi.h:2627
uint64_t sdma_usage
SDMA usage in microseconds.
Definition amdsmi.h:2630
uint32_t process_id
Process ID.
Definition amdsmi.h:2628
uint32_t evicted_time
Time that queues are evicted on a GPU in milliseconds.
Definition amdsmi.h:2632
uint32_t cu_occupancy
Compute Unit usage in percent.
Definition amdsmi.h:2631
uint64_t vram_usage
VRAM usage in MB.
Definition amdsmi.h:2629
This structure represents a range (e.g., frequencies or voltages).
Definition amdsmi.h:809
uint64_t lower_bound
Lower bound of range.
Definition amdsmi.h:810
uint64_t upper_bound
Upper bound of range.
Definition amdsmi.h:811
This structure holds ras feature information.
Definition amdsmi.h:2594
uint32_t ras_eeprom_version
Definition amdsmi.h:2595
uint32_t ecc_correction_schema_flag
Definition amdsmi.h:2597
Reserved Memory Page Record.
Definition amdsmi.h:1971
uint64_t page_size
Page size.
Definition amdsmi.h:1973
amdsmi_memory_page_status_t status
Page "reserved" status.
Definition amdsmi.h:1974
uint64_t page_address
Start address of page.
Definition amdsmi.h:1972
This structure holds SMU Firmware version information.
Definition amdsmi.h:2720
uint8_t debug
SMU fw Debug version number.
Definition amdsmi.h:2721
uint8_t major
SMU fw Major version number.
Definition amdsmi.h:2723
uint8_t unused
reserved fields
Definition amdsmi.h:2724
uint8_t minor
SMU fw Minor version number.
Definition amdsmi.h:2722
cpu socket info data
Definition amdsmi.h:2943
temperature range and refresh rate metrics of a DIMM
Definition amdsmi.h:2743
uint8_t range
temp range[2:0](3 bit data)
Definition amdsmi.h:2744
uint8_t ref_rate
DDR refresh rate mode[3](1 bit data)
Definition amdsmi.h:2745
Topology Nearest.
Definition amdsmi.h:2640
uint64_t current_pages
Definition amdsmi.h:9480
The utilization counter data.
Definition amdsmi.h:1959
amdsmi_utilization_counter_type_t type
Utilization counter type.
Definition amdsmi.h:1960
uint64_t value
Coarse grain activity counter value (average)
Definition amdsmi.h:1961
VBios Information.
Definition amdsmi.h:1079
This structure holds version information.
Definition amdsmi.h:2051
uint32_t minor
Minor version.
Definition amdsmi.h:2053
uint32_t major
Major version.
Definition amdsmi.h:2052
const char * build
Full Build version string.
Definition amdsmi.h:2055
uint32_t release
Patch, build or stepping version.
Definition amdsmi.h:2054
This structure hold violation status information. Note: for MI3x asics and higher,...
Definition amdsmi.h:845
uint64_t acc_gfx_clk_below_host_limit
Definition amdsmi.h:860
uint8_t active_gfx_clk_below_host_limit
Definition amdsmi.h:894
uint64_t per_gfx_clk_below_host_limit
Definition amdsmi.h:877
uint64_t acc_counter
Current accumulated counter; Max uint64 means unsupported.
Definition amdsmi.h:849
uint64_t reference_timestamp
Represents CPU timestamp in microseconds (uS)
Definition amdsmi.h:846
uint64_t violation_timestamp
Definition amdsmi.h:847
VRam Information.
Definition amdsmi.h:1314
uint32_t vram_bit_width
In bits.
Definition amdsmi.h:1318
uint64_t vram_size
vram size in MB
Definition amdsmi.h:1317
uint64_t vram_max_bandwidth
The VRAM max bandwidth at current memory clock (GB/s)
Definition amdsmi.h:1319
VRam Usage.
Definition amdsmi.h:833
uint32_t vram_total
In MB.
Definition amdsmi.h:834
uint32_t vram_used
In MB.
Definition amdsmi.h:835
XGMI Information.
Definition amdsmi.h:820
bdf types
Definition amdsmi.h:976
This union holds memory partition bitmask.
Definition amdsmi.h:1173