AMD SMI C/C++ types

Contents

AMD SMI C/C++ types#

Data types used across the AMD SMI API, including enums for statuses, library initialization flags, device states, and device capabilities. This reference includes:

Enumerations#

enum amdsmi_init_flags_t#

Initialization flags.

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

Values:

enumerator AMDSMI_INIT_ALL_PROCESSORS#

Initialize all processors.

enumerator AMDSMI_INIT_AMD_CPUS#

Initialize AMD CPUS.

enumerator AMDSMI_INIT_AMD_GPUS#

Initialize AMD GPUS.

enumerator AMDSMI_INIT_NON_AMD_CPUS#

Initialize Non-AMD CPUS.

enumerator AMDSMI_INIT_NON_AMD_GPUS#

Initialize Non-AMD GPUS.

enumerator AMDSMI_INIT_AMD_APUS#

Initialize AMD CPUS and GPUS (Default option)

enumerator AMDSMI_INIT_AMD_NICS#

Initialize NIC’s.

enum amdsmi_mm_ip_t#

GPU Capability info.

Values:

enumerator AMDSMI_MM_UVD#

Multi-Media Unified Video Decoder.

enumerator AMDSMI_MM_VCE#

Multi-Media Video Coding Engine.

enumerator AMDSMI_MM_VCN#

Multi-Media Video Core Next.

enumerator AMDSMI_MM__MAX#
enum amdsmi_container_types_t#

Container.

Values:

enumerator AMDSMI_CONTAINER_LXC#

Linux containers.

enumerator AMDSMI_CONTAINER_DOCKER#

Docker containers.

enum amdsmi_processor_type_t#

Processor types detectable by AMD SMI.

Values:

enumerator AMDSMI_PROCESSOR_TYPE_UNKNOWN#

Unknown processor type.

enumerator AMDSMI_PROCESSOR_TYPE_AMD_GPU#

AMD Graphics processor type.

enumerator AMDSMI_PROCESSOR_TYPE_AMD_CPU#

AMD CPU processor type, physical component that holds the CPU.

enumerator AMDSMI_PROCESSOR_TYPE_NON_AMD_GPU#

Non-AMD Graphics processor type.

enumerator AMDSMI_PROCESSOR_TYPE_NON_AMD_CPU#

Non-AMD CPU processor type.

enumerator AMDSMI_PROCESSOR_TYPE_AMD_CPU_CORE#

AMD CPU-Core processor type, individual processing units within the CPU

enumerator AMDSMI_PROCESSOR_TYPE_AMD_APU#

AMD Accelerated processor type, GPU and CPU on a single die.

enumerator AMDSMI_PROCESSOR_TYPE_AMD_NIC#

AMD Network Interface Card processor type.

enumerator AMDSMI_PROCESSOR_TYPE_BRCM_NIC#

Broadcom Network Interface Card type.

enumerator AMDSMI_PROCESSOR_TYPE_BRCM_SWITCH#

Broadcom Switch type.

enum amdsmi_status_t#

Error codes returned by amdsmi functions.

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

Values:

enumerator AMDSMI_STATUS_SUCCESS#

Call succeeded.

enumerator AMDSMI_STATUS_INVAL#

Invalid parameters.

enumerator AMDSMI_STATUS_NOT_SUPPORTED#

Command not supported.

enumerator AMDSMI_STATUS_NOT_YET_IMPLEMENTED#

Not implemented yet.

enumerator AMDSMI_STATUS_FAIL_LOAD_MODULE#

Fail to load lib.

enumerator AMDSMI_STATUS_FAIL_LOAD_SYMBOL#

Fail to load symbol.

enumerator AMDSMI_STATUS_DRM_ERROR#

Error when call libdrm.

enumerator AMDSMI_STATUS_API_FAILED#

API call failed.

enumerator AMDSMI_STATUS_TIMEOUT#

Timeout in API call.

enumerator AMDSMI_STATUS_RETRY#

Retry operation.

enumerator AMDSMI_STATUS_NO_PERM#

Permission Denied.

enumerator AMDSMI_STATUS_INTERRUPT#

An interrupt occurred during execution of function.

enumerator AMDSMI_STATUS_IO#

I/O Error.

enumerator AMDSMI_STATUS_ADDRESS_FAULT#

Bad address.

enumerator AMDSMI_STATUS_FILE_ERROR#

Problem accessing a file.

enumerator AMDSMI_STATUS_OUT_OF_RESOURCES#

Not enough memory.

enumerator AMDSMI_STATUS_INTERNAL_EXCEPTION#

An internal exception was caught.

enumerator AMDSMI_STATUS_INPUT_OUT_OF_BOUNDS#

The provided input is out of allowable or safe range.

enumerator AMDSMI_STATUS_INIT_ERROR#

An error occurred when initializing internal data structures.

enumerator AMDSMI_STATUS_REFCOUNT_OVERFLOW#

An internal reference counter exceeded INT32_MAX.

enumerator AMDSMI_STATUS_DIRECTORY_NOT_FOUND#

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

enumerator AMDSMI_STATUS_IPC_ERROR#

IPC communication error occurred.

enumerator AMDSMI_STATUS_BUSY#

Processor busy.

enumerator AMDSMI_STATUS_NOT_FOUND#

Processor Not found.

enumerator AMDSMI_STATUS_NOT_INIT#

Processor not initialized.

enumerator AMDSMI_STATUS_NO_SLOT#

No more free slot.

enumerator AMDSMI_STATUS_DRIVER_NOT_LOADED#

Processor driver not loaded.

enumerator AMDSMI_STATUS_MORE_DATA#

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

enumerator AMDSMI_STATUS_NO_DATA#

No data was found for a given input.

enumerator AMDSMI_STATUS_INSUFFICIENT_SIZE#

Not enough resources were available for the operation.

enumerator AMDSMI_STATUS_UNEXPECTED_SIZE#

An unexpected amount of data was read.

enumerator AMDSMI_STATUS_UNEXPECTED_DATA#

The data read or provided is not what was expected.

enumerator AMDSMI_STATUS_NON_AMD_CPU#

System has different cpu than AMD.

enumerator AMDSMI_STATUS_NO_ENERGY_DRV#

Energy driver not found.

enumerator AMDSMI_STATUS_NO_MSR_DRV#

MSR driver not found.

enumerator AMDSMI_STATUS_NO_HSMP_DRV#

HSMP driver not found.

enumerator AMDSMI_STATUS_NO_HSMP_SUP#

HSMP not supported.

enumerator AMDSMI_STATUS_NO_HSMP_MSG_SUP#

HSMP message/feature not supported.

enumerator AMDSMI_STATUS_HSMP_TIMEOUT#

HSMP message timed out.

enumerator AMDSMI_STATUS_NO_DRV#

No Energy and HSMP driver present.

enumerator AMDSMI_STATUS_FILE_NOT_FOUND#

file or directory not found

enumerator AMDSMI_STATUS_ARG_PTR_NULL#

Parsed argument is invalid.

enumerator AMDSMI_STATUS_AMDGPU_RESTART_ERR#

AMDGPU restart failed.

enumerator AMDSMI_STATUS_SETTING_UNAVAILABLE#

Setting is not available.

enumerator AMDSMI_STATUS_CORRUPTED_EEPROM#

EEPROM is corrupted.

enumerator AMDSMI_STATUS_MAP_ERROR#

Library error did not map to a status code.

enumerator AMDSMI_STATUS_UNKNOWN_ERROR#

An unknown error occurred.

enum amdsmi_clk_type_t#

Clock types.

Values:

enumerator AMDSMI_CLK_TYPE_SYS#

System clock.

enumerator AMDSMI_CLK_TYPE_FIRST#
enumerator AMDSMI_CLK_TYPE_GFX#

Graphics clock.

enumerator AMDSMI_CLK_TYPE_DF#

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

enumerator AMDSMI_CLK_TYPE_DCEF#

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

enumerator AMDSMI_CLK_TYPE_SOC#

System On Chip clock, integrated circuit frequency.

enumerator AMDSMI_CLK_TYPE_MEM#

Memory clock speed, system operating frequency.

enumerator AMDSMI_CLK_TYPE_PCIE#

PCI Express clock, high bandwidth peripherals.

enumerator AMDSMI_CLK_TYPE_VCLK0#

Video 0 clock, video processing units.

enumerator AMDSMI_CLK_TYPE_VCLK1#

Video 1 clock, video processing units.

enumerator AMDSMI_CLK_TYPE_DCLK0#

Display 1 clock, timing signals for display output.

enumerator AMDSMI_CLK_TYPE_DCLK1#

Display 2 clock, timing signals for display output.

enumerator AMDSMI_CLK_TYPE__MAX#
enum amdsmi_accelerator_partition_type_t#

Accelerator Partition.

Values:

enumerator AMDSMI_ACCELERATOR_PARTITION_INVALID#

Invalid accelerator partition type.

enumerator AMDSMI_ACCELERATOR_PARTITION_SPX#

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

enumerator AMDSMI_ACCELERATOR_PARTITION_DPX#

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

enumerator AMDSMI_ACCELERATOR_PARTITION_TPX#

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

enumerator AMDSMI_ACCELERATOR_PARTITION_QPX#

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

enumerator AMDSMI_ACCELERATOR_PARTITION_CPX#

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

enumerator AMDSMI_ACCELERATOR_PARTITION_MAX#
enum amdsmi_accelerator_partition_resource_type_t#

Accelerator Partition Resource Types.

Values:

enumerator AMDSMI_ACCELERATOR_XCC#

Compute complex or stream processors.

enumerator AMDSMI_ACCELERATOR_ENCODER#

Video encoding.

enumerator AMDSMI_ACCELERATOR_DECODER#

Video decoding.

enumerator AMDSMI_ACCELERATOR_DMA#

Direct Memory Access, high speed data transfers.

enumerator AMDSMI_ACCELERATOR_JPEG#

Encoding and Decoding jpeg engines.

enumerator AMDSMI_ACCELERATOR_MAX#
enum amdsmi_compute_partition_type_t#

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

Values:

enumerator AMDSMI_COMPUTE_PARTITION_INVALID#

Invalid compute partition type.

enumerator AMDSMI_COMPUTE_PARTITION_SPX#

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

enumerator AMDSMI_COMPUTE_PARTITION_DPX#

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

enumerator AMDSMI_COMPUTE_PARTITION_TPX#

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

enumerator AMDSMI_COMPUTE_PARTITION_QPX#

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

enumerator AMDSMI_COMPUTE_PARTITION_CPX#

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

enum amdsmi_compute_partition_mem_alloc_mode_t#

Compute Partition Memory Allocation Mode. Controls how GPU memory is allocated across XCPs within a memory partition.

Values:

enumerator AMDSMI_COMPUTE_PARTITION_MEM_ALLOC_INVALID#

Invalid mode.

enumerator AMDSMI_COMPUTE_PARTITION_MEM_ALLOC_CAPPING#

Memory is evenly capped per XCP.

enumerator AMDSMI_COMPUTE_PARTITION_MEM_ALLOC_ALL#

Each XCP in the partition may use the full partition memory

enum amdsmi_memory_partition_type_t#

Memory Partitions.

Values:

enumerator AMDSMI_MEMORY_PARTITION_UNKNOWN#
enumerator AMDSMI_MEMORY_PARTITION_NPS1#

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

enumerator AMDSMI_MEMORY_PARTITION_NPS2#

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

enumerator AMDSMI_MEMORY_PARTITION_NPS4#

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

enumerator AMDSMI_MEMORY_PARTITION_NPS8#

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

enum amdsmi_temperature_type_t#

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

Values:

enumerator AMDSMI_TEMPERATURE_TYPE_EDGE#

Edge temperature.

enumerator AMDSMI_TEMPERATURE_TYPE_FIRST#
enumerator AMDSMI_TEMPERATURE_TYPE_HOTSPOT#

Hottest temperature reported for entire die.

enumerator AMDSMI_TEMPERATURE_TYPE_JUNCTION#

Synonymous with HOTSPOT.

enumerator AMDSMI_TEMPERATURE_TYPE_VRAM#

VRAM temperature on graphics card.

enumerator AMDSMI_TEMPERATURE_TYPE_HBM_0#

High Bandwidth 0 temperature per stack.

enumerator AMDSMI_TEMPERATURE_TYPE_HBM_1#

High Bandwidth 1 temperature per stack.

enumerator AMDSMI_TEMPERATURE_TYPE_HBM_2#

High Bandwidth 2 temperature per stack.

enumerator AMDSMI_TEMPERATURE_TYPE_HBM_3#

High Bandwidth 3 temperature per stack.

enumerator AMDSMI_TEMPERATURE_TYPE_PLX#

PCIe switch temperature.

enumerator AMDSMI_TEMPERATURE_TYPE_GPUBOARD_NODE_FIRST#
enumerator AMDSMI_TEMPERATURE_TYPE_GPUBOARD_NODE_RETIMER_X#

Retimer X temperature.

enumerator AMDSMI_TEMPERATURE_TYPE_GPUBOARD_NODE_OAM_X_IBC#

OAM X IBC temperature.

enumerator AMDSMI_TEMPERATURE_TYPE_GPUBOARD_NODE_OAM_X_IBC_2#

OAM X IBC 2 temperature.

enumerator AMDSMI_TEMPERATURE_TYPE_GPUBOARD_NODE_OAM_X_VDD18_VR#

OAM X VDD 1.8V voltage regulator temperature

enumerator AMDSMI_TEMPERATURE_TYPE_GPUBOARD_NODE_OAM_X_04_HBM_B_VR#

OAM X 0.4V HBM B voltage regulator temperature

enumerator AMDSMI_TEMPERATURE_TYPE_GPUBOARD_NODE_OAM_X_04_HBM_D_VR#

OAM X 0.4V HBM D voltage regulator temperature

enumerator AMDSMI_TEMPERATURE_TYPE_GPUBOARD_NODE_LAST#
enumerator AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VR_FIRST#
enumerator AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDCR_VDD0#

VDDCR VDD0 voltage regulator temperature.

enumerator AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDCR_VDD1#

VDDCR VDD1 voltage regulator temperature.

enumerator AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDCR_VDD2#

VDDCR VDD2 voltage regulator temperature.

enumerator AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDCR_VDD3#

VDDCR VDD3 voltage regulator temperature.

enumerator AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDCR_SOC_A#

VDDCR SOC A voltage regulator temperature.

enumerator AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDCR_SOC_C#

VDDCR SOC C voltage regulator temperature.

enumerator AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDCR_SOCIO_A#

VDDCR SOCIO A voltage regulator temperature.

enumerator AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDCR_SOCIO_C#

VDDCR SOCIO C voltage regulator temperature.

enumerator AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDD_085_HBM#

VDD 0.85V HBM voltage regulator temperature.

enumerator AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDCR_11_HBM_B#

VDDCR 1.1V HBM B voltage regulator temperature

enumerator AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDCR_11_HBM_D#

VDDCR 1.1V HBM D voltage regulator temperature

enumerator AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDD_USR#

VDD USR voltage regulator temperature.

enumerator AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDIO_11_E32#

VDDIO 1.1V E32 voltage regulator temperature.

enumerator AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDIO_04_HBM_B#

VDDIO 0.4V HBM B voltage regulator temperature

enumerator AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDIO_04_HBM_D#

VDDIO 0.4V HBM D voltage regulator temperature

enumerator AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDCR_075_HBM_B#

VDDCR 0.75V HBM B voltage regulator temperature

enumerator AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDCR_075_HBM_D#

VDDCR 0.75V HBM D voltage regulator temperature

enumerator AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDIO_11_GTA_A#

VDDIO 1.1V GTA A voltage regulator temperature

enumerator AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDIO_11_GTA_C#

VDDIO 1.1V GTA C voltage regulator temperature

enumerator AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDAN_075_GTA_A#

VDDAN 0.75V GTA A voltage regulator temperature

enumerator AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDAN_075_GTA_C#

VDDAN 0.75V GTA C voltage regulator temperature

enumerator AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDCR_075_UCIE#

VDDCR 0.75V UCIE voltage regulator temperature

enumerator AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDIO_065_UCIEAA#

VDDIO 0.65V UCIEAA voltage regulator temperature

enumerator AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDIO_065_UCIEAM_A#

VDDIO 0.65V UCIEAM A voltage regulator temperature

enumerator AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDIO_065_UCIEAM_C#

VDDIO 0.65V UCIEAM C voltage regulator temperature

enumerator AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VDDAN_075#

VDDAN 0.75V voltage regulator temperature.

enumerator AMDSMI_TEMPERATURE_TYPE_GPUBOARD_VR_LAST#
enumerator AMDSMI_TEMPERATURE_TYPE_GPUBOARD_LAST#

Last GPU board temperature type.

enumerator AMDSMI_TEMPERATURE_TYPE_BASEBOARD_FIRST#
enumerator AMDSMI_TEMPERATURE_TYPE_BASEBOARD_UBB_FPGA#

UBB FPGA temperature.

enumerator AMDSMI_TEMPERATURE_TYPE_BASEBOARD_UBB_FRONT#

UBB front temperature.

enumerator AMDSMI_TEMPERATURE_TYPE_BASEBOARD_UBB_BACK#

UBB back temperature.

enumerator AMDSMI_TEMPERATURE_TYPE_BASEBOARD_UBB_OAM7#

UBB OAM7 temperature.

enumerator AMDSMI_TEMPERATURE_TYPE_BASEBOARD_UBB_IBC#

UBB IBC temperature.

enumerator AMDSMI_TEMPERATURE_TYPE_BASEBOARD_UBB_UFPGA#

UBB UFPGA temperature.

enumerator AMDSMI_TEMPERATURE_TYPE_BASEBOARD_UBB_OAM1#

UBB OAM1 temperature.

enumerator AMDSMI_TEMPERATURE_TYPE_BASEBOARD_OAM_0_1_HSC#

OAM 0-1 HSC temperature.

enumerator AMDSMI_TEMPERATURE_TYPE_BASEBOARD_OAM_2_3_HSC#

OAM 2-3 HSC temperature.

enumerator AMDSMI_TEMPERATURE_TYPE_BASEBOARD_OAM_4_5_HSC#

OAM 4-5 HSC temperature.

enumerator AMDSMI_TEMPERATURE_TYPE_BASEBOARD_OAM_6_7_HSC#

OAM 6-7 HSC temperature.

enumerator AMDSMI_TEMPERATURE_TYPE_BASEBOARD_UBB_FPGA_0V72_VR#

UBB FPGA 0.72V voltage regulator temperature

enumerator AMDSMI_TEMPERATURE_TYPE_BASEBOARD_UBB_FPGA_3V3_VR#

UBB FPGA 3.3V voltage regulator temperature

enumerator AMDSMI_TEMPERATURE_TYPE_BASEBOARD_RETIMER_0_1_2_3_1V2_VR#

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

enumerator AMDSMI_TEMPERATURE_TYPE_BASEBOARD_RETIMER_4_5_6_7_1V2_VR#

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

enumerator AMDSMI_TEMPERATURE_TYPE_BASEBOARD_RETIMER_0_1_0V9_VR#

Retimer 0-1 0.9V voltage regulator temperature

enumerator AMDSMI_TEMPERATURE_TYPE_BASEBOARD_RETIMER_4_5_0V9_VR#

Retimer 4-5 0.9V voltage regulator temperature

enumerator AMDSMI_TEMPERATURE_TYPE_BASEBOARD_RETIMER_2_3_0V9_VR#

Retimer 2-3 0.9V voltage regulator temperature

enumerator AMDSMI_TEMPERATURE_TYPE_BASEBOARD_RETIMER_6_7_0V9_VR#

Retimer 6-7 0.9V voltage regulator temperature

enumerator AMDSMI_TEMPERATURE_TYPE_BASEBOARD_OAM_0_1_2_3_3V3_VR#

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

enumerator AMDSMI_TEMPERATURE_TYPE_BASEBOARD_OAM_4_5_6_7_3V3_VR#

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

enumerator AMDSMI_TEMPERATURE_TYPE_BASEBOARD_IBC_HSC#

IBC HSC temperature.

enumerator AMDSMI_TEMPERATURE_TYPE_BASEBOARD_IBC#

IBC temperature.

enumerator AMDSMI_TEMPERATURE_TYPE_BASEBOARD_LAST#
enumerator AMDSMI_TEMPERATURE_TYPE__MAX#

Maximum per GPU temperature type.

enum amdsmi_fw_block_t#

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

Values:

enumerator AMDSMI_FW_ID_SMU#

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

enumerator AMDSMI_FW_ID_FIRST#
enumerator AMDSMI_FW_ID_CP_CE#

Compute Processor - Command_Engine (fetch, decode, dispatch).

enumerator AMDSMI_FW_ID_CP_PFP#

Compute Processor - Pixel Front End Processor (pixelating process).

enumerator AMDSMI_FW_ID_CP_ME#

Compute Processor - Micro Engine (specialize processing).

enumerator AMDSMI_FW_ID_CP_MEC_JT1#

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

enumerator AMDSMI_FW_ID_CP_MEC_JT2#

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

enumerator AMDSMI_FW_ID_CP_MEC1#

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

enumerator AMDSMI_FW_ID_CP_MEC2#

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

enumerator AMDSMI_FW_ID_RLC#

Rasterizer and L2 Cache (rasterization process).

enumerator AMDSMI_FW_ID_SDMA0#

System Direct Memory Access 0 (high speed data transfers).

enumerator AMDSMI_FW_ID_SDMA1#

System Direct Memory Access 1 (high speed data transfers).

enumerator AMDSMI_FW_ID_SDMA2#

System Direct Memory Access 2 (high speed data transfers).

enumerator AMDSMI_FW_ID_SDMA3#

System Direct Memory Access 3 (high speed data transfers).

enumerator AMDSMI_FW_ID_SDMA4#

System Direct Memory Access 4 (high speed data transfers).

enumerator AMDSMI_FW_ID_SDMA5#

System Direct Memory Access 5 (high speed data transfers).

enumerator AMDSMI_FW_ID_SDMA6#

System Direct Memory Access 6 (high speed data transfers).

enumerator AMDSMI_FW_ID_SDMA7#

System Direct Memory Access 7 (high speed data transfers).

enumerator AMDSMI_FW_ID_VCN#

Video Core Next (encoding and decoding).

enumerator AMDSMI_FW_ID_UVD#

Unified Video Decoder (decode specific video formats).

enumerator AMDSMI_FW_ID_VCE#

Video Coding Engine (Encoding video).

enumerator AMDSMI_FW_ID_ISP#

Image Signal Processor (processing raw image data from sensors).

enumerator AMDSMI_FW_ID_DMCU_ERAM#

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

enumerator AMDSMI_FW_ID_DMCU_ISR#

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

enumerator AMDSMI_FW_ID_RLC_RESTORE_LIST_GPM_MEM#

Rasterizier and L2 Cache Restore List Graphics Processor Memory

enumerator AMDSMI_FW_ID_RLC_RESTORE_LIST_SRM_MEM#

Rasterizier and L2 Cache Restore List System RAM Memory

enumerator AMDSMI_FW_ID_RLC_RESTORE_LIST_CNTL#

Rasterizier and L2 Cache Restore List Control.

enumerator AMDSMI_FW_ID_RLC_V#

Rasterizier and L2 Cache Virtual memory.

enumerator AMDSMI_FW_ID_MMSCH#

Multi-Media Shader Hardware Scheduler.

enumerator AMDSMI_FW_ID_PSP_SYSDRV#

Platform Security Processor System Driver.

enumerator AMDSMI_FW_ID_PSP_SOSDRV#

Platform Security Processor Secure Operating System Driver.

enumerator AMDSMI_FW_ID_PSP_TOC#

Platform Security Processor Table of Contents.

enumerator AMDSMI_FW_ID_PSP_KEYDB#

Platform Security Processor Table of Contents.

enumerator AMDSMI_FW_ID_DFC#

Data Fabric Controller (bandwidth and coherency).

enumerator AMDSMI_FW_ID_PSP_SPL#

Platform Security Processor Secure Program Loader.

enumerator AMDSMI_FW_ID_DRV_CAP#

Driver Capabilities (capabilities, features).

enumerator AMDSMI_FW_ID_MC#

Memory Controller (RAM and VRAM).

enumerator AMDSMI_FW_ID_PSP_BL#

Platform Security Processor Bootloader (initial firmware).

enumerator AMDSMI_FW_ID_CP_PM4#

Compute Processor Packet Processor 4 (processing command packets).

enumerator AMDSMI_FW_ID_RLC_P#

Rasterizier and L2 Cache Partition.

enumerator AMDSMI_FW_ID_SEC_POLICY_STAGE2#

Security Policy Stage 2 (security features).

enumerator AMDSMI_FW_ID_REG_ACCESS_WHITELIST#

Register Access Whitelist (Prevent unathorizied access).

enumerator AMDSMI_FW_ID_IMU_DRAM#

Input/Output Memory Management Unit - Dynamic RAM.

enumerator AMDSMI_FW_ID_IMU_IRAM#

Input/Output Memory Management Unit - Instruction RAM.

enumerator AMDSMI_FW_ID_SDMA_TH0#

System Direct Memory Access - Thread Handler 0.

enumerator AMDSMI_FW_ID_SDMA_TH1#

System Direct Memory Access - Thread Handler 1.

enumerator AMDSMI_FW_ID_CP_MES#

Compute Processor - Micro Engine Scheduler.

enumerator AMDSMI_FW_ID_MES_KIQ#

Micro Engine Scheduler - Kernel Indirect Queue.

enumerator AMDSMI_FW_ID_MES_STACK#

Micro Engine Scheduler - Stack.

enumerator AMDSMI_FW_ID_MES_THREAD1#

Micro Engine Scheduler - Thread 1.

enumerator AMDSMI_FW_ID_MES_THREAD1_STACK#

Micro Engine Scheduler - Thread 1 Stack.

enumerator AMDSMI_FW_ID_RLX6#

Hardware Block RLX6.

enumerator AMDSMI_FW_ID_RLX6_DRAM_BOOT#

Hardware Block RLX6 - Dynamic Ram Boot.

enumerator AMDSMI_FW_ID_RS64_ME#

Hardware Block RS64 - Micro Engine.

enumerator AMDSMI_FW_ID_RS64_ME_P0_DATA#

Hardware Block RS64 - Micro Engine Partition 0 Data.

enumerator AMDSMI_FW_ID_RS64_ME_P1_DATA#

Hardware Block RS64 - Micro Engine Partition 1 Data.

enumerator AMDSMI_FW_ID_RS64_PFP#

Hardware Block RS64 - Pixel Front End Processor.

enumerator AMDSMI_FW_ID_RS64_PFP_P0_DATA#

Hardware Block RS64 - Pixel Front End Processor Partition 0 Data

enumerator AMDSMI_FW_ID_RS64_PFP_P1_DATA#

Hardware Block RS64 - Pixel Front End Processor Partition 1 Data

enumerator AMDSMI_FW_ID_RS64_MEC#

Hardware Block RS64 - Micro Engine Controller.

enumerator AMDSMI_FW_ID_RS64_MEC_P0_DATA#

Hardware Block RS64 - Micro Engine Controller Partition 0 Data

enumerator AMDSMI_FW_ID_RS64_MEC_P1_DATA#

Hardware Block RS64 - Micro Engine Controller Partition 1 Data

enumerator AMDSMI_FW_ID_RS64_MEC_P2_DATA#

Hardware Block RS64 - Micro Engine Controller Partition 2 Data

enumerator AMDSMI_FW_ID_RS64_MEC_P3_DATA#

Hardware Block RS64 - Micro Engine Controller Partition 3 Data

enumerator AMDSMI_FW_ID_PPTABLE#

Power Policy Table (power management policies).

enumerator AMDSMI_FW_ID_PSP_SOC#

Platform Security Processor - System On a Chip.

enumerator AMDSMI_FW_ID_PSP_DBG#

Platform Security Processor - Debug.

enumerator AMDSMI_FW_ID_PSP_INTF#

Platform Security Processor - Interface.

enumerator AMDSMI_FW_ID_RLX6_CORE1#

Hardware Block RLX6 - Core 1.

enumerator AMDSMI_FW_ID_RLX6_DRAM_BOOT_CORE1#

Hardware Block RLX6 Core 1 - Dynamic RAM Boot.

enumerator AMDSMI_FW_ID_RLCV_LX7#

Hardware Block RLCV - Subsystem LX7.

enumerator AMDSMI_FW_ID_RLC_SAVE_RESTORE_LIST#

Rasterizier and L2 Cache - Save Restore List.

enumerator AMDSMI_FW_ID_ASD#

Asynchronous Shader Dispatcher.

enumerator AMDSMI_FW_ID_TA_RAS#

Trusted Applications - Reliability Availability and Serviceability.

enumerator AMDSMI_FW_ID_TA_XGMI#

Trusted Applications - Reliability XGMI.

enumerator AMDSMI_FW_ID_RLC_SRLG#

Rasterizier and L2 Cache - Shared Resource Local Group.

enumerator AMDSMI_FW_ID_RLC_SRLS#

Rasterizier and L2 Cache - Shared Resource Local Segment.

enumerator AMDSMI_FW_ID_PM#

Power Management Firmware.

enumerator AMDSMI_FW_ID_DMCU#

Display Micro-Controller Unit.

enumerator AMDSMI_FW_ID_PLDM_BUNDLE#

Platform Level Data Model Firmware Bundle.

enumerator AMDSMI_FW_ID__MAX#
enum amdsmi_vram_type_t#

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

Values:

enumerator AMDSMI_VRAM_TYPE_UNKNOWN#

Unknown memory type.

enumerator AMDSMI_VRAM_TYPE_HBM#

High Bandwidth Memory.

enumerator AMDSMI_VRAM_TYPE_HBM2#

High Bandwidth Memory, Generation 2.

enumerator AMDSMI_VRAM_TYPE_HBM2E#

High Bandwidth Memory, Generation 2 Enhanced.

enumerator AMDSMI_VRAM_TYPE_HBM3#

High Bandwidth Memory, Generation 3.

enumerator AMDSMI_VRAM_TYPE_HBM3E#

High Bandwidth Memory, Generation 3 Enhanced.

enumerator AMDSMI_VRAM_TYPE_DDR2#

Double Data Rate, Generation 2.

enumerator AMDSMI_VRAM_TYPE_DDR3#

Double Data Rate, Generation 3.

enumerator AMDSMI_VRAM_TYPE_DDR4#

Double Data Rate, Generation 4.

enumerator AMDSMI_VRAM_TYPE_DDR5#

Double Data Rate, Generation 5.

enumerator AMDSMI_VRAM_TYPE_GDDR1#

Graphics Double Data Rate, Generation 1.

enumerator AMDSMI_VRAM_TYPE_GDDR2#

Graphics Double Data Rate, Generation 2.

enumerator AMDSMI_VRAM_TYPE_GDDR3#

Graphics Double Data Rate, Generation 3.

enumerator AMDSMI_VRAM_TYPE_GDDR4#

Graphics Double Data Rate, Generation 4.

enumerator AMDSMI_VRAM_TYPE_GDDR5#

Graphics Double Data Rate, Generation 5.

enumerator AMDSMI_VRAM_TYPE_GDDR6#

Graphics Double Data Rate, Generation 6.

enumerator AMDSMI_VRAM_TYPE_GDDR7#

Graphics Double Data Rate, Generation 7.

enumerator AMDSMI_VRAM_TYPE_LPDDR4#

Low Power Double Data Rate, Generation 4.

enumerator AMDSMI_VRAM_TYPE_LPDDR5#

Low Power Double Data Rate, Generation 5.

enumerator AMDSMI_VRAM_TYPE__MAX#
enum amdsmi_card_form_factor_t#

Card Form Factor.

Values:

enumerator AMDSMI_CARD_FORM_FACTOR_PCIE#

PCIE card form factor.

enumerator AMDSMI_CARD_FORM_FACTOR_OAM#

OAM form factor.

enumerator AMDSMI_CARD_FORM_FACTOR_CEM#

CEM form factor.

enumerator AMDSMI_CARD_FORM_FACTOR_UNKNOWN#

Unknown Form factor.

enum amdsmi_power_cap_type_t#

Power Cap Package Power Tracking (PPT) type.

Values:

enumerator AMDSMI_POWER_CAP_TYPE_PPT0#

PPT0 power cap; lower limit, filtered input.

enumerator AMDSMI_POWER_CAP_TYPE_PPT1#

PPT1 power cap; higher limit, raw input.

enum amdsmi_cache_property_type_t#

cache properties

Values:

enumerator AMDSMI_CACHE_PROPERTY_ENABLED#

Cache enabled.

enumerator AMDSMI_CACHE_PROPERTY_DATA_CACHE#

Data cache.

enumerator AMDSMI_CACHE_PROPERTY_INST_CACHE#

Instruction cache.

enumerator AMDSMI_CACHE_PROPERTY_CPU_CACHE#

CPU cache.

enumerator AMDSMI_CACHE_PROPERTY_SIMD_CACHE#

Single Instruction, Multiple Data Cache.

enum amdsmi_dev_perf_level_t#

PowerPlay performance levels.

Values:

enumerator AMDSMI_DEV_PERF_LEVEL_AUTO#

Performance level is “auto”.

enumerator AMDSMI_DEV_PERF_LEVEL_FIRST#
enumerator AMDSMI_DEV_PERF_LEVEL_LOW#

Keep PowerPlay levels “low”, regardless of workload.

enumerator AMDSMI_DEV_PERF_LEVEL_HIGH#

Keep PowerPlay levels “high”, regardless of workload.

enumerator AMDSMI_DEV_PERF_LEVEL_MANUAL#

Only use values defined by manually setting the AMDSMI_CLK_TYPE_SYS speed

enumerator AMDSMI_DEV_PERF_LEVEL_STABLE_STD#

Stable power state with profiling clocks.

enumerator AMDSMI_DEV_PERF_LEVEL_STABLE_PEAK#

Stable power state with peak clocks.

enumerator AMDSMI_DEV_PERF_LEVEL_STABLE_MIN_MCLK#

Stable power state with minimum memory clock.

enumerator AMDSMI_DEV_PERF_LEVEL_STABLE_MIN_SCLK#

Stable power state with minimum system clock.

enumerator AMDSMI_DEV_PERF_LEVEL_DETERMINISM#

Performance determinism state.

enumerator AMDSMI_DEV_PERF_LEVEL_LAST#
enumerator AMDSMI_DEV_PERF_LEVEL_UNKNOWN#

Unknown performance level.

enum amdsmi_event_group_t#

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

Values:

enumerator AMDSMI_EVNT_GRP_XGMI#

Data Fabric (XGMI) related events.

enumerator AMDSMI_EVNT_GRP_XGMI_DATA_OUT#

XGMI Outbound data.

enumerator AMDSMI_EVNT_GRP_INVALID#

Unknown Event Group.

enum amdsmi_event_type_t#

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

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

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

.

Throughput = BEATS/time_running * 10

9 (bytes/second)

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

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

Values:

enumerator AMDSMI_EVNT_FIRST#
enumerator AMDSMI_EVNT_XGMI_FIRST#
enumerator AMDSMI_EVNT_XGMI_0_NOP_TX#

NOPs sent to neighbor 0.

enumerator AMDSMI_EVNT_XGMI_0_REQUEST_TX#

Outgoing requests to neighbor 0.

enumerator AMDSMI_EVNT_XGMI_0_RESPONSE_TX#

Outgoing responses to neighbor 0.

enumerator AMDSMI_EVNT_XGMI_0_BEATS_TX#

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

enumerator AMDSMI_EVNT_XGMI_1_NOP_TX#

NOPs sent to neighbor 1.

enumerator AMDSMI_EVNT_XGMI_1_REQUEST_TX#

Outgoing requests to neighbor 1.

enumerator AMDSMI_EVNT_XGMI_1_RESPONSE_TX#

Outgoing responses to neighbor 1.

enumerator AMDSMI_EVNT_XGMI_1_BEATS_TX#

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

enumerator AMDSMI_EVNT_XGMI_LAST#
enumerator AMDSMI_EVNT_XGMI_DATA_OUT_FIRST#
enumerator AMDSMI_EVNT_XGMI_DATA_OUT_0#

Outbound beats to neighbor 0.

enumerator AMDSMI_EVNT_XGMI_DATA_OUT_1#

Outbound beats to neighbor 1.

enumerator AMDSMI_EVNT_XGMI_DATA_OUT_2#

Outbound beats to neighbor 2.

enumerator AMDSMI_EVNT_XGMI_DATA_OUT_3#

Outbound beats to neighbor 3.

enumerator AMDSMI_EVNT_XGMI_DATA_OUT_4#

Outbound beats to neighbor 4.

enumerator AMDSMI_EVNT_XGMI_DATA_OUT_5#

Outbound beats to neighbor 5.

enumerator AMDSMI_EVNT_XGMI_DATA_OUT_LAST#
enumerator AMDSMI_EVNT_LAST#
enum amdsmi_counter_command_t#

Event counter commands.

Values:

enumerator AMDSMI_CNTR_CMD_START#

Start the counter.

enumerator AMDSMI_CNTR_CMD_STOP#

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

enum amdsmi_evt_notification_type_t#

Event notification event types.

Values:

enumerator AMDSMI_EVT_NOTIF_NONE#

No events.

enumerator AMDSMI_EVT_NOTIF_VMFAULT#

Virtual Memory Page Fault Event.

enumerator AMDSMI_EVT_NOTIF_FIRST#
enumerator AMDSMI_EVT_NOTIF_THERMAL_THROTTLE#

thermal throttle

enumerator AMDSMI_EVT_NOTIF_GPU_PRE_RESET#

pre-reset

enumerator AMDSMI_EVT_NOTIF_GPU_POST_RESET#

post-reset

enumerator AMDSMI_EVT_NOTIF_MIGRATE_START#

migrate start

enumerator AMDSMI_EVT_NOTIF_MIGRATE_END#

migrate end

enumerator AMDSMI_EVT_NOTIF_PAGE_FAULT_START#

page fault start

enumerator AMDSMI_EVT_NOTIF_PAGE_FAULT_END#

page fault end

enumerator AMDSMI_EVT_NOTIF_QUEUE_EVICTION#

queue eviction

enumerator AMDSMI_EVT_NOTIF_QUEUE_RESTORE#

queue restore

enumerator AMDSMI_EVT_NOTIF_UNMAP_FROM_GPU#

unmap from GPU

enumerator AMDSMI_EVT_NOTIF_PROCESS_START#

KFD process start.

enumerator AMDSMI_EVT_NOTIF_PROCESS_END#

KFD process end.

enumerator AMDSMI_EVT_NOTIF_LAST#
enum amdsmi_temperature_metric_t#

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

Values:

enumerator AMDSMI_TEMP_CURRENT#

Current temperature.

enumerator AMDSMI_TEMP_FIRST#
enumerator AMDSMI_TEMP_MAX#

Max temperature.

enumerator AMDSMI_TEMP_MIN#

Min temperature.

enumerator AMDSMI_TEMP_MAX_HYST#

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

enumerator AMDSMI_TEMP_MIN_HYST#

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

enumerator AMDSMI_TEMP_CRITICAL#

Critical max limit temperature, typically greater than max temperatures

enumerator AMDSMI_TEMP_CRITICAL_HYST#

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

enumerator AMDSMI_TEMP_EMERGENCY#

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

enumerator AMDSMI_TEMP_EMERGENCY_HYST#

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

enumerator AMDSMI_TEMP_CRIT_MIN#

Critical min temperature, typically lower than minimum temperatures

enumerator AMDSMI_TEMP_CRIT_MIN_HYST#

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

enumerator AMDSMI_TEMP_OFFSET#

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

enumerator AMDSMI_TEMP_LOWEST#

Historical min temperature.

enumerator AMDSMI_TEMP_HIGHEST#

Historical max temperature.

enumerator AMDSMI_TEMP_SHUTDOWN#

Shutdown temperature.

enumerator AMDSMI_TEMP_LAST#
enum amdsmi_voltage_metric_t#

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

Values:

enumerator AMDSMI_VOLT_CURRENT#

Voltage current value.

enumerator AMDSMI_VOLT_FIRST#
enumerator AMDSMI_VOLT_MAX#

Voltage max value.

enumerator AMDSMI_VOLT_MIN_CRIT#

Voltage critical min value.

enumerator AMDSMI_VOLT_MIN#

Voltage min value.

enumerator AMDSMI_VOLT_MAX_CRIT#

Voltage critical max value.

enumerator AMDSMI_VOLT_AVERAGE#

Average voltage.

enumerator AMDSMI_VOLT_LOWEST#

Historical minimum voltage.

enumerator AMDSMI_VOLT_HIGHEST#

Historical maximum voltage.

enumerator AMDSMI_VOLT_LAST#
enum amdsmi_voltage_type_t#

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

Values:

enumerator AMDSMI_VOLT_TYPE_FIRST#
enumerator AMDSMI_VOLT_TYPE_VDDGFX#

Vddgfx GPU voltage.

enumerator AMDSMI_VOLT_TYPE_VDDBOARD#

Voltage for VDDBOARD.

enumerator AMDSMI_VOLT_TYPE_LAST#
enumerator AMDSMI_VOLT_TYPE_INVALID#

Invalid type.

enum amdsmi_power_profile_preset_masks_t#

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

Values:

enumerator AMDSMI_PWR_PROF_PRST_CUSTOM_MASK#

Custom Power Profile.

enumerator AMDSMI_PWR_PROF_PRST_VIDEO_MASK#

Video Power Profile.

enumerator AMDSMI_PWR_PROF_PRST_POWER_SAVING_MASK#

Power Saving Profile.

enumerator AMDSMI_PWR_PROF_PRST_COMPUTE_MASK#

Compute Saving Profile.

enumerator AMDSMI_PWR_PROF_PRST_VR_MASK#

VR Power Profile.

enumerator AMDSMI_PWR_PROF_PRST_3D_FULL_SCR_MASK#

3D Full Screen Profile

enumerator AMDSMI_PWR_PROF_PRST_BOOTUP_DEFAULT#

Default Boot Up Profile.

enumerator AMDSMI_PWR_PROF_PRST_LAST#
enumerator AMDSMI_PWR_PROF_PRST_INVALID#

Invalid Power Profile.

enum amdsmi_gpu_block_t#

This enum is used to identify different GPU blocks.

Values:

enumerator AMDSMI_GPU_BLOCK_INVALID#

Invalid block.

enumerator AMDSMI_GPU_BLOCK_FIRST#
enumerator AMDSMI_GPU_BLOCK_UMC#

UMC block.

enumerator AMDSMI_GPU_BLOCK_SDMA#

SDMA block.

enumerator AMDSMI_GPU_BLOCK_GFX#

GFX block.

enumerator AMDSMI_GPU_BLOCK_MMHUB#

MMHUB block.

enumerator AMDSMI_GPU_BLOCK_ATHUB#

ATHUB block.

enumerator AMDSMI_GPU_BLOCK_PCIE_BIF#

PCIE_BIF block.

enumerator AMDSMI_GPU_BLOCK_HDP#

HDP block.

enumerator AMDSMI_GPU_BLOCK_XGMI_WAFL#

XGMI block.

enumerator AMDSMI_GPU_BLOCK_DF#

DF block.

enumerator AMDSMI_GPU_BLOCK_SMN#

SMN block.

enumerator AMDSMI_GPU_BLOCK_SEM#

SEM block.

enumerator AMDSMI_GPU_BLOCK_MP0#

MP0 block.

enumerator AMDSMI_GPU_BLOCK_MP1#

MP1 block.

enumerator AMDSMI_GPU_BLOCK_FUSE#

Fuse block.

enumerator AMDSMI_GPU_BLOCK_MCA#

MCA block.

enumerator AMDSMI_GPU_BLOCK_VCN#

VCN block.

enumerator AMDSMI_GPU_BLOCK_JPEG#

JPEG block.

enumerator AMDSMI_GPU_BLOCK_IH#

IH block.

enumerator AMDSMI_GPU_BLOCK_MPIO#

MPIO block.

enumerator AMDSMI_GPU_BLOCK_LAST#
enumerator AMDSMI_GPU_BLOCK_RESERVED#
enum amdsmi_clk_limit_type_t#

The clk limit type.

Values:

enumerator CLK_LIMIT_MIN#

Min Clock value in MHz.

enumerator CLK_LIMIT_MAX#

Max Clock value in MHz.

enum amdsmi_cper_sev_t#

Cper sev.

Values:

enumerator AMDSMI_CPER_SEV_NON_FATAL_UNCORRECTED#

CPER Non-Fatal Uncorrected severity.

enumerator AMDSMI_CPER_SEV_FATAL#

CPER Fatal severity.

enumerator AMDSMI_CPER_SEV_NON_FATAL_CORRECTED#

CPER Non-Fatal Corrected severity.

enumerator AMDSMI_CPER_SEV_NUM#

CPER severity Number.

enumerator AMDSMI_CPER_SEV_UNUSED#

CPER Unused severity.

enum amdsmi_cper_notify_type_t#

Cper notify.

Values:

enumerator AMDSMI_CPER_NOTIFY_TYPE_CMC#

Corrected Memory Check.

enumerator AMDSMI_CPER_NOTIFY_TYPE_CPE#

Corrected Platform Error.

enumerator AMDSMI_CPER_NOTIFY_TYPE_MCE#

Machine Check Exception.

enumerator AMDSMI_CPER_NOTIFY_TYPE_PCIE#

PCI Express Error.

enumerator AMDSMI_CPER_NOTIFY_TYPE_INIT#

Initialization Error.

enumerator AMDSMI_CPER_NOTIFY_TYPE_NMI#

Non_Maskable Interrupt.

enumerator AMDSMI_CPER_NOTIFY_TYPE_BOOT#

Boot Error.

enumerator AMDSMI_CPER_NOTIFY_TYPE_DMAR#

Direct Memory Access Remapping Error.

enumerator AMDSMI_CPER_NOTIFY_TYPE_SEA#

System Error Architecture.

enumerator AMDSMI_CPER_NOTIFY_TYPE_SEI#

System Error Interface.

enumerator AMDSMI_CPER_NOTIFY_TYPE_PEI#

Platform Error Interface.

enumerator AMDSMI_CPER_NOTIFY_TYPE_CXL_COMPONENT#

Compute Express Link Component Error

enum amdsmi_ras_err_state_t#

The current ECC state.

Values:

enumerator AMDSMI_RAS_ERR_STATE_NONE#

No current errors.

enumerator AMDSMI_RAS_ERR_STATE_DISABLED#

ECC is disabled.

enumerator AMDSMI_RAS_ERR_STATE_PARITY#

ECC errors present, but type unknown.

enumerator AMDSMI_RAS_ERR_STATE_SING_C#

Single correctable error.

enumerator AMDSMI_RAS_ERR_STATE_MULT_UC#

Multiple uncorrectable errors.

enumerator AMDSMI_RAS_ERR_STATE_POISON#

Firmware detected error and isolated page. Treat as uncorrectable

enumerator AMDSMI_RAS_ERR_STATE_ENABLED#

ECC is enabled.

enumerator AMDSMI_RAS_ERR_STATE_LAST#
enumerator AMDSMI_RAS_ERR_STATE_INVALID#
enum amdsmi_memory_type_t#

Types of memory.

Note

Sum of the process memory is not expected to be the total memory usage.

Values:

enumerator AMDSMI_MEM_TYPE_FIRST#
enumerator AMDSMI_MEM_TYPE_VRAM#

VRAM memory.

enumerator AMDSMI_MEM_TYPE_VIS_VRAM#

VRAM memory that is visible.

enumerator AMDSMI_MEM_TYPE_GTT#

GTT memory.

enumerator AMDSMI_MEM_TYPE_LAST#
enum amdsmi_freq_ind_t#

The values of this enum are used as frequency identifiers.

Values:

enumerator AMDSMI_FREQ_IND_MIN#

Index used for the minimum frequency value.

enumerator AMDSMI_FREQ_IND_MAX#

Index used for the maximum frequency value.

enumerator AMDSMI_FREQ_IND_INVALID#

An invalid frequency index.

enum amdsmi_xgmi_status_t#

XGMI Status.

Values:

enumerator AMDSMI_XGMI_STATUS_NO_ERRORS#

XGMI No Errors.

enumerator AMDSMI_XGMI_STATUS_ERROR#

XGMI Errors.

enumerator AMDSMI_XGMI_STATUS_MULTIPLE_ERRORS#

XGMI Multiple Errors.

enum amdsmi_memory_page_status_t#

Reserved Memory Page States.

Values:

enumerator AMDSMI_MEM_PAGE_STATUS_RESERVED#

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

enumerator AMDSMI_MEM_PAGE_STATUS_PENDING#

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

enumerator AMDSMI_MEM_PAGE_STATUS_UNRESERVABLE#

Unable to reserve this page.

enum amdsmi_utilization_counter_type_t#

The utilization counter type.

Values:

enumerator AMDSMI_UTILIZATION_COUNTER_FIRST#

Course grain activity counters.

enumerator AMDSMI_COARSE_GRAIN_GFX_ACTIVITY#

Course Grain Graphic Activity

enumerator AMDSMI_COARSE_GRAIN_MEM_ACTIVITY#

Course Grain Memory Activity.

enumerator AMDSMI_COARSE_DECODER_ACTIVITY#

Course Grain Decoder Activity.

enumerator AMDSMI_FINE_GRAIN_GFX_ACTIVITY#

Fine Grain Graphic Activity.

enumerator AMDSMI_FINE_GRAIN_MEM_ACTIVITY#

Fine Grain Memory Activity.

enumerator AMDSMI_FINE_DECODER_ACTIVITY#

Fine Grain Decoder Activity.

enumerator AMDSMI_UTILIZATION_COUNTER_LAST#
enum amdsmi_reg_type_t#

This register type for register table.

Values:

enumerator AMDSMI_REG_XGMI#

XGMI registers.

enumerator AMDSMI_REG_WAFL#

WAFL registers.

enumerator AMDSMI_REG_PCIE#

PCIe registers.

enumerator AMDSMI_REG_USR#

Usr registers.

enumerator AMDSMI_REG_USR1#

Usr1 registers.

enum amdsmi_virtualization_mode_t#

Variant placeholder.

Place-holder “variant” for functions that have don’t have any variants, but do have monitors or sensors.

Values:

enumerator AMDSMI_VIRTUALIZATION_MODE_UNKNOWN#

Unknown Virtualization Mode.

enumerator AMDSMI_VIRTUALIZATION_MODE_BAREMETAL#

Baremetal Virtualization Mode.

enumerator AMDSMI_VIRTUALIZATION_MODE_HOST#

Host Virtualization Mode.

enumerator AMDSMI_VIRTUALIZATION_MODE_GUEST#

Guest Virtualization Mode.

enumerator AMDSMI_VIRTUALIZATION_MODE_PASSTHROUGH#

Passthrough Virtualization Mode.

enum amdsmi_affinity_scope_t#

Scope for Numa affinity or Socket affinity.

Values:

enumerator AMDSMI_AFFINITY_SCOPE_NODE#

Memory affinity as numa node.

enumerator AMDSMI_AFFINITY_SCOPE_SOCKET#

socket affinity

enum amdsmi_npm_status_t#

NPM status.

Values:

enumerator AMDSMI_NPM_STATUS_DISABLED#

NPM disabled flag.

enumerator AMDSMI_NPM_STATUS_ENABLED#

NPM enable flag.

enum amdsmi_ptl_data_format_t#

PTL (Peak Tops Limiter) data format types These correspond to the hardware data types used in matrix operations. Only F8 and XF32 are always supported at full performance. From the remaining five types, only two can be supported at peak performance simultaneously.

Values:

enumerator AMDSMI_PTL_DATA_FORMAT_I8#

Integer 8-bit format.

enumerator AMDSMI_PTL_DATA_FORMAT_F16#

Float 16-bit format.

enumerator AMDSMI_PTL_DATA_FORMAT_BF16#

Brain Float 16-bit format.

enumerator AMDSMI_PTL_DATA_FORMAT_F32#

Float 32-bit format.

enumerator AMDSMI_PTL_DATA_FORMAT_F64#

Float 64-bit format.

enumerator AMDSMI_PTL_DATA_FORMAT_F8#

Float 8-bit format.

enumerator AMDSMI_PTL_DATA_FORMAT_VECTOR#

Vector format.

enumerator AMDSMI_PTL_DATA_FORMAT_INVALID#

Invalid format.

enum amdsmi_io_bw_encoding_t#

xGMI Bandwidth Encoding types

Values:

enumerator AGG_BW0#

Aggregate Bandwidth.

enumerator RD_BW0#

Read Bandwidth.

enumerator WR_BW0#

Write Bandwidth.

enum amdsmi_fabric_telemetry_category_t

Fabric telemetry categories.

Values:

enumerator AMDSMI_FABRIC_TELEMETRY_CATEGORY_UNKNOWN

Unknown telemetry.

enumerator AMDSMI_FABRIC_TELEMETRY_CATEGORY_UALOE

UALOE telemetry.

enumerator AMDSMI_FABRIC_TELEMETRY_CATEGORY_SWITCH

Switch telemetry.

enumerator AMDSMI_FABRIC_TELEMETRY_CATEGORY_CRYPTO

Crypto telemetry.

enumerator AMDSMI_FABRIC_TELEMETRY_CATEGORY_PFC

PFC telemetry.

enumerator AMDSMI_FABRIC_TELEMETRY_CATEGORY_NETPORT

Network Port telemetry.

enumerator AMDSMI_FABRIC_TELEMETRY_CATEGORY_DERIVED_UALOE

Derived UALOE telemetry.

enumerator AMDSMI_FABRIC_TELEMETRY_CATEGORY_DERIVED_NETPORT

Derived Network Port telemetry.

enumerator AMDSMI_FABRIC_TELEMETRY_CATEGORY_MAX

Maximum number of categories.

enumerator AMDSMI_FABRIC_TELEMETRY_CATEGORY_INVALID

Unknown telemetry.

enum amdsmi_fabric_telemetry_category_mask_t

Fabric telemetry category bitmask values.

Values:

enumerator AMDSMI_FABRIC_TELEMETRY_CATEGORY_MASK_UALOE
enumerator AMDSMI_FABRIC_TELEMETRY_CATEGORY_MASK_SWITCH
enumerator AMDSMI_FABRIC_TELEMETRY_CATEGORY_MASK_CRYPTO
enumerator AMDSMI_FABRIC_TELEMETRY_CATEGORY_MASK_PFC
enumerator AMDSMI_FABRIC_TELEMETRY_CATEGORY_MASK_NETPORT
enumerator AMDSMI_FABRIC_TELEMETRY_CATEGORY_MASK_DERIVED_UALOE
enumerator AMDSMI_FABRIC_TELEMETRY_CATEGORY_MASK_DERIVED_NETPORT
enumerator AMDSMI_FABRIC_TELEMETRY_CATEGORY_MASK_ALL_KNOWN

All known categories.

enum amdsmi_fabric_size_constants_t

Fabric size constants.

Values:

enumerator AMDSMI_FABRIC_ACTIVE_ACCELERATORS_BITMAP_SIZE

Active accelerators bitmap size (32 x 32-bit words = 1024 bits).

enumerator AMDSMI_FABRIC_MAX_LOCAL_GPUS

Maximum local GPUs in fabric.

enum amdsmi_fabric_type_t

Fabric type.

Values:

enumerator AMDSMI_FABRIC_TYPE_UALOE
enumerator AMDSMI_FABRIC_TYPE_UNKNOWN
enum amdsmi_fabric_npa_address_mode_t

Fabric NPA address mode.

Values:

enumerator AMDSMI_FABRIC_NPA_ADDRESS_MODE_SOURCE_ALIASING
enumerator AMDSMI_FABRIC_NPA_ADDRESS_MODE_SOURCE_IDENTIFICATION
enumerator AMDSMI_FABRIC_NPA_ADDRESS_MODE_UNKNOWN
enum amdsmi_fabric_accelerator_vpod_state_t

Fabric accelerator vPoD state.

Values:

enumerator AMDSMI_FABRIC_ACCELERATOR_VPOD_STATE_UNCONFIGURED
enumerator AMDSMI_FABRIC_ACCELERATOR_VPOD_STATE_CONFIGURED
enumerator AMDSMI_FABRIC_ACCELERATOR_VPOD_STATE_READY
enumerator AMDSMI_FABRIC_ACCELERATOR_VPOD_STATE_ACTIVE
enumerator AMDSMI_FABRIC_ACCELERATOR_VPOD_STATE_ERROR
enumerator AMDSMI_FABRIC_ACCELERATOR_VPOD_STATE_UNKNOWN

Structs#

struct amd_metrics_table_header_t#

Structure holds the gpu metrics table header for a device.

Size and version information of metrics data

struct amdsmi_accelerator_partition_profile_config_t#

Accelerator Partition Profile Configurations.

Public Members

uint32_t num_profiles#

The length of profiles array.

uint32_t default_profile_index#

The index of the default profile in the profiles array.

struct amdsmi_accelerator_partition_profile_t#

Accelerator Partition Resource Profile.

Public Members

amdsmi_accelerator_partition_type_t profile_type#

SPX, DPX, QPX, CPX and so on.

uint32_t num_partitions#

On MI300X: SPX=>1, DPX=>2, QPX=>4, CPX=>8; length of resources.

amdsmi_nps_caps_t memory_caps#

Possible memory partition capabilities.

uint32_t profile_index#

Index in the profiles array in amdsmi_accelerator_partition_profile_t

uint32_t num_resources#

length of index_of_resources_profile

struct amdsmi_accelerator_partition_resource_profile_t#

Accelerator Partition Resources. This struct is used to identify various partition resource profiles.

Public Members

uint32_t partition_resource#

Resources a partition can use, which may be shared.

uint32_t num_partitions_share_resource#

If it is greater than 1, then resource is shared.

struct amdsmi_apu_metrics_t#

APU metrics auxiliary data.

This structure holds unified APU-specific metrics data derived from the underlying driver metrics table. It is attached via amdsmi_gpu_metrics_t.apu_metrics when APU-specific metrics are available.

Version Support:

  • v2.4: format_revision == 2 && content_revision == 4

  • v3.0: format_revision == 3 && content_revision == 0 Use ::amdsmi_gpu_metrics_t.common_header to identify which version populated the fields.

Sentinel Values: Fields not applicable to the current version are initialized to the maximum value of their respective type: 0xFFFF for uint16_t fields, 0xFFFFFFFF for uint32_t fields, and UINT64_MAX for uint64_t fields. For example, on v3.0 hardware, v2.4-only fields like average_mm_activity and temperature_l3 will contain 0xFFFF. Similarly, array elements beyond the version-specific count (e.g., elements 8-15 of temperature_core on v2.4) will contain 0xFFFF. However, uint32_t elements such as ‘throttle_status’ will contain 0xFFFFFFFF and UINT64_MAX for uint64_t elements such as ‘indep_throttle_status’. Callers should check the version and treat maximum values as invalid/not applicable.

Public Members

uint16_t temperature_gfx#

Temperature (instant).

v2_4, v3_0

uint16_t temperature_soc#

v2_4, v3_0

uint16_t temperature_core[AMDSMI_APU_MAX_CORES]#

v2_4[8], v3_0[16]

uint16_t temperature_l3[AMDSMI_APU_MAX_L3]#

v2_4

uint16_t temperature_skin#

v3_0

uint16_t average_gfx_activity#

Utilization.

v2_4, v3_0

uint16_t average_mm_activity#

v2_4

uint16_t average_vcn_activity#

v3_0

uint16_t average_ipu_activity[AMDSMI_APU_MAX_IPU]#

v3_0

uint16_t average_core_c0_activity[AMDSMI_APU_MAX_CORES]#

v3_0

uint16_t average_dram_reads#

v3_0 [MB/s]

uint16_t average_dram_writes#

v3_0

uint16_t average_ipu_reads#

v3_0

uint16_t average_ipu_writes#

v3_0

uint32_t average_socket_power#

Power [mW].

All power fields in this struct are in milliwatts (mW) as reported by the APU firmware. Note: the top-level gpu_metrics_t.average_socket_power is converted to Watts; these APU sub-struct fields are NOT converted. v2_4[uint16_t], v3_0[uint32_t]

uint16_t average_cpu_power#

v2_4

uint16_t average_soc_power#

v2_4

uint32_t average_gfx_power#

v2_4[uint16_t], v3_0[uint32_t]

uint16_t average_core_power[AMDSMI_APU_MAX_CORES]#

v2_4[8], v3_0[16]

uint16_t average_ipu_power#

v3_0

uint32_t average_apu_power#

v3_0

uint32_t average_dgpu_power#

v3_0

uint32_t average_all_core_power#

v3_0

uint16_t average_sys_power#

v3_0

uint16_t stapm_power_limit#

v3_0

uint16_t current_stapm_power_limit#

v3_0

uint16_t average_gfxclk_frequency#

Average clocks [MHz].

v2_4, v3_0

uint16_t average_socclk_frequency#

v2_4, v3_0

uint16_t average_uclk_frequency#

v2_4, v3_0

uint16_t average_fclk_frequency#

v2_4, v3_0

uint16_t average_vclk_frequency#

v2_4, v3_0

uint16_t average_dclk_frequency#

v2_4

uint16_t average_vpeclk_frequency#

v3_0

uint16_t average_ipuclk_frequency#

v3_0

uint16_t average_mpipu_frequency#

v3_0

uint16_t current_gfxclk#

Current clocks [MHz].

v2_4

uint16_t current_socclk#

v2_4

uint16_t current_uclk#

v2_4

uint16_t current_fclk#

v2_4

uint16_t current_vclk#

v2_4

uint16_t current_dclk#

v2_4

uint16_t current_coreclk[AMDSMI_APU_MAX_CORES]#

v2_4[8], v3_0[16]

uint16_t current_l3clk[AMDSMI_APU_MAX_L3]#

v2_4

uint16_t current_core_maxfreq#

v3_0

uint16_t current_gfx_maxfreq#

v3_0

uint32_t throttle_status#

Throttle.

v2_4

uint64_t indep_throttle_status#

v2_4

uint32_t throttle_residency_prochot#

v3_0

uint32_t throttle_residency_spl#

v3_0

uint32_t throttle_residency_fppt#

v3_0

uint32_t throttle_residency_sppt#

v3_0

uint32_t throttle_residency_thm_core#

v3_0

uint32_t throttle_residency_thm_gfx#

v3_0

uint32_t throttle_residency_thm_soc#

v3_0

uint16_t fan_pwm#

Fan.

v2_4

uint16_t average_temperature_gfx#

Average temperature.

v2_4

uint16_t average_temperature_soc#

v2_4

uint16_t average_temperature_core[AMDSMI_APU_MAX_CORES]#

v2_4

uint16_t average_temperature_l3[AMDSMI_APU_MAX_L3]#

v2_4

uint16_t average_cpu_voltage#

Voltage [mV] / Current [mA].

v2_4

uint16_t average_soc_voltage#

v2_4

uint16_t average_gfx_voltage#

v2_4

uint16_t average_cpu_current#

v2_4

uint16_t average_soc_current#

v2_4

uint16_t average_gfx_current#

v2_4

uint32_t time_filter_alphavalue#

Other (v3_0).

v3_0; alpha filter time constant [us]

struct amdsmi_asic_info_t#

ASIC Information.

Public Members

uint32_t vendor_id#

Use 32 bit to be compatible with other platform.

uint32_t subvendor_id#

The subsystem vendor ID.

uint64_t device_id#

The device ID of a GPU.

uint32_t rev_id#

The revision ID of a GPU.

char asic_serial[AMDSMI_MAX_STRING_LENGTH]#

The socket’s unique serial number, 0xFFFFFFFF if not supported

uint32_t oam_id#

Corresponds to socket number, 0xFFFFFFFF if not supported.

uint32_t num_of_compute_units#

0xFFFFFFFF if not supported

uint64_t target_graphics_version#

0xFFFFFFFFFFFFFFFF if not supported

uint64_t flags#

Chip flags.

The subsystem ID

struct amdsmi_board_info_t#

Board Information.

struct amdsmi_clk_info_t#

Clock Information.

Public Members

uint32_t clk#

In MHz.

uint32_t min_clk#

In MHz.

uint32_t max_clk#

In MHz.

uint8_t clk_locked#

True/False.

uint8_t clk_deep_sleep#

True/False.

struct amdsmi_counter_value_t#

Counter value.

Public Members

uint64_t value#

Counter value.

uint64_t time_enabled#

Time that the counter was enabled in nanoseconds.

uint64_t time_running#

Time that the counter was running in nanoseconds.

struct amdsmi_cper_guid_t#

Cper.

struct amdsmi_cper_hdr_t#

Public Members

char signature[4]#

“CPER”

uint32_t signature_end#

0xFFFFFFFF

uint32_t record_length#

Total size of CPER Entry.

amdsmi_cper_guid_t partition_id#

Reserved.

amdsmi_cper_guid_t notify_type#

CMC, MCE, can use amdsmi_cper_notifiy_type_t to decode.

char record_id[8]#

Unique CPER Entry ID.

uint32_t flags#

Reserved.

uint64_t persistence_info#

Reserved.

uint8_t reserved[12]#

Reserved.

struct amdsmi_cper_timestamp_t#
struct amdsmi_cpu_info_t#

cpu info data

Public Members

char model_name[AMDSMI_MAX_STRING_LENGTH]#

cpu model name

uint32_t cpu_family_id#

cpu family id

uint32_t model_id#

cpu model id

uint32_t threads_per_core#

virtual processing units per cpu core

uint32_t cores_per_socket#

cpu cores per socket

bool frequency_boost#

boost frequency

uint32_t vendor_id#

Use 32 bit to be compatible with other platform.

char vendor_name[AMDSMI_MAX_STRING_LENGTH]#

vendor name

uint32_t subvendor_id#

The subsystem vendor id.

uint64_t device_id#

The device id of a GPU.

uint32_t rev_id#

Revision.

char asic_serial[AMDSMI_MAX_STRING_LENGTH]#

Asic serial id.

uint32_t socket_id#

0xFFFF if not supported

uint32_t core_id#

cpu core id

uint32_t num_of_cpu_cores#

0xFFFFFFFF if not supported

uint32_t socket_count#

count of cpu sockets

uint32_t core_count#

cpu core count

uint32_t reserved[17]#

reserved

struct amdsmi_cpu_util_t#

This structure holds CPU utilization information.

struct amdsmi_ddr_bw_metrics_t#

DDR bandwidth metrics.

Public Members

uint32_t max_bw#

DDR Maximum theoretical bandwidth in GB/s.

uint32_t utilized_bw#

DDR bandwidth utilization in GB/s.

uint32_t utilized_pct#

DDR bandwidth utilization in % of theoretical max.

struct amdsmi_dimm_power_t#

DIMM Power(mW), power update rate(ms) and dimm address.

Public Members

uint16_t power#

Dimm power consumption[31:17](15 bits data).

uint16_t update_rate#

Time since last update[16:8](9 bit data).

uint8_t dimm_addr#

Dimm address[7:0](8 bit data).

struct amdsmi_dimm_thermal_t#

DIMM temperature(°C) and update rate(ms) and dimm address.

Public Members

uint16_t sensor#

Dimm thermal sensor[31:21](11 bit data).

uint16_t update_rate#

Time since last update[16:8](9 bit data).

uint8_t dimm_addr#

Dimm address[7:0](8 bit data).

float temp#

temperature in degree celsius

struct amdsmi_dpm_level_t#

max and min LCLK DPM level on a given NBIO ID. Valid max and min DPM level values are 0 - 1.

Public Members

uint8_t max_dpm_level#

Max LCLK DPM level[15:8](8 bit data).

uint8_t min_dpm_level#

Min LCLK DPM level[7:0](8 bit data).

struct amdsmi_dpm_policy_entry_t#

The dpm policy.

struct amdsmi_dpm_policy_t#

DPM Policy.

Only the first num_supported policies are valid.

Public Members

uint32_t num_supported#

The number of supported policies.

uint32_t current#

The current policy index.

amdsmi_dpm_policy_entry_t policies[AMDSMI_MAX_NUM_PM_POLICIES]#

List of policies.

struct amdsmi_driver_info_t#

Driver Information.

struct amdsmi_engine_usage_t#

Engine Usage amdsmi_engine_usage_t: This structure holds common GPU activity values seen in both BM or SRIOV.

Public Members

uint32_t gfx_activity#

In %.

uint32_t umc_activity#

In %.

uint32_t mm_activity#

In %.

struct amdsmi_enumeration_info_t#

Structure holds enumeration information.

Public Members

uint32_t drm_render#

the render node under /sys/class/drm/renderD*

uint32_t drm_card#

the graphic card device under /sys/class/drm/card*

uint32_t hsa_id#

the HSA enumeration ID

uint32_t hip_id#

the HIP enumeration ID

char hip_uuid[AMDSMI_MAX_STRING_LENGTH]#

the HIP unique identifier

uint32_t oam_id#

Physical XGMI ID / OAM ID (0xFFFFFFFF if N/A).

struct amdsmi_error_count_t#

This structure holds error counts.

Public Members

uint64_t correctable_count#

Accumulated correctable errors.

uint64_t uncorrectable_count#

Accumulated uncorrectable errors.

uint64_t deferred_count#

Accumulated deferred errors.

struct amdsmi_evt_notification_data_t#

Event notification data returned from event notification API.

Public Members

amdsmi_processor_handle processor_handle#

Handler of device that corresponds to the event.

amdsmi_evt_notification_type_t event#

Event type.

char message[AMDSMI_MAX_STRING_LENGTH]#

Event message.

struct amdsmi_fabric_info_t

Fabric device information structure.

Public Members

amdsmi_bdf_t bdf#

BDF (Bus, Device, Function) of the Fabric device.

amdsmi_fabric_info_ver_t fabric_info#

Fabric information structure (version 1).

uint32_t reserved[15]#

Reserved for future use.

struct amdsmi_fabric_info_v1_t

Fabric device configuration information (version 1).

Public Members

uint32_t accelerator_id#

Accelerator identifier (range 0 to 1023).

amdsmi_fabric_type_t fabric_type#

UALOE or UALLINK.

uint32_t bandwidth#

Station bandwidth share in Mb/s.

uint32_t latency#

Latency in nanoseconds (depends on switch presence and type).

uint8_t ppod_id[AMDSMI_MAX_UUID_ELEMENTS]#

Physical PoD Identifier (16 bytes).

uint32_t ppod_size#

Physical PoD size.

uint32_t vpod_id#

Virtual PoD Identifier.

uint32_t vpod_size#

Virtual PoD size.

uint32_t vpod_active_accelerators[AMDSMI_FABRIC_ACTIVE_ACCELERATORS_BITMAP_SIZE]#

1024-bit list (32 x 32-bit words): bit N set = accelerator ID N is active

uint32_t local_accelerators[AMDSMI_FABRIC_MAX_LOCAL_GPUS]#

Local Accelerator IDs.

amdsmi_fabric_npa_address_mode_t addr_mode#

Source aliasing or identification mode.

amdsmi_fabric_accelerator_vpod_state_t accel_state#

Accelerator vPoD State.

struct amdsmi_fabric_info_ver_t
union fabric_info_#
struct amdsmi_fabric_label_t

Public Members

char text[AMDSMI_FABRIC_LABEL_MAX_LENGTH]#

Textual label content.

struct amdsmi_fabric_telemetry_dataset_t

Fabric telemetry dataset structure.

Contains all telemetry for one category

Public Members

amdsmi_fabric_telemetry_category_t category#

Telemetry category.

uint64_t generation_count#

Sequence number incremented each time telemetry is written.

struct timespec timestamp#

UTC timestamp seconds since epoch.

unsigned instance_count#

Number of instances for this category.

amdsmi_fabric_telemetry_instance_t *instances#

Array of pointers to instances.

struct amdsmi_fabric_telemetry_instance_t

Fabric telemetry instance structure.

Collection of telemetry data items for an instance of a category of telemetry

Public Members

amdsmi_fabric_label_t name#

Name for this instance.

unsigned logical_idx#

Logical index for this instance.

unsigned item_count#

Number of telemetry items in the set.

amdsmi_fabric_telemetry_item_t *items#

Pointer to array of telemetry items.

struct amdsmi_fabric_telemetry_item_t

Fabric telemetry item structure.

Public Members

uint64_t id#

Identifier of the telemetry item.

uint64_t value#

Value of the telemetry item.

struct amdsmi_fabric_telemetry_t

Fabric telemetry structure.

Top level structure defining telemetry data for Fabric. Contains datasets for each category of telemetry. A null pointer means no telemetry is available for that category.

Public Members

amdsmi_fabric_telemetry_dataset_t *datasets[AMDSMI_FABRIC_TELEMETRY_CATEGORY_MAX]#

Dataset for each telemetry category.

struct amdsmi_freq_volt_region_t#

This structure holds 2 amdsmi_range_t’s, one for frequency and one for voltage. These 2 ranges indicate the range of possible values for the corresponding amdsmi_od_vddc_point_t.

Public Members

amdsmi_range_t freq_range#

The frequency range for this VDDC Curve point.

amdsmi_range_t volt_range#

The voltage range for this VDDC Curve point.

struct amdsmi_frequencies_t#

This structure holds information about clock frequencies.

Public Members

bool has_deep_sleep#

Deep Sleep frequency is only supported by some GPUs.

uint32_t num_supported#

The number of supported frequencies.

uint32_t current#

The current frequency index. May be (uint32_t)-1 when the clock domain is power-gated / in sleep mode and no current level is reported by the kernel (e.g. SYS/MEM/DF/SOC/DCEF at idle on some APUs).

uint64_t frequency[AMDSMI_MAX_NUM_FREQUENCIES]#

List of frequencies in Hz. Only the first num_supported frequencies are valid

struct amdsmi_frequency_range_t#

Frequency Range.

Public Members

amdsmi_range_t supported_freq_range#

In MHz.

amdsmi_range_t current_freq_range#

In MHz.

struct amdsmi_fw_info_t#

Firmware Information.

struct fw_info_list_#
struct amdsmi_gpu_cache_info_t#

GPU Cache Information.

struct cache_#

Public Members

uint32_t cache_properties#

amdsmi_cache_property_type_t which is a bitmask

uint32_t cache_size#

In KB.

uint32_t max_num_cu_shared#

Indicates how many Compute Units share this cache instance.

uint32_t num_cache_instance#

total number of instance of this cache type

struct amdsmi_gpu_metrics_t#

Structure holds the gpu metrics values for a device.

This structure is extended to fit the needs of different GPU metric versions when exposing data through the structure. Depending on the version, some data members will hold data, and some will not. A good example is the set of ‘current clocks’: current_gfxclk, current_socclk, current_vclk0, current_dclk0. These are single-valued data members, up to version 1.3. For version 1.4 and up these are multi-valued data members (arrays) and their counterparts; current_gfxclks[], current_socclks[], current_vclk0s[], current_dclk0s[], will hold the data

Public Members

uint16_t temperature_edge#

v1.0 Base

Temperature in C

uint16_t average_gfx_activity#

Average Utilization (in %).

gfx

uint16_t average_umc_activity#

memory controller

uint16_t average_mm_activity#

UVD or VCN.

uint16_t average_socket_power#

Power (W) /Energy (15.259uJ per 1ns).

uint64_t energy_accumulator#

v1 mod. (32->64)

uint64_t system_clock_counter#

Driver attached timestamp (in ns).

v1 mod. (moved from top of struct)

uint16_t average_gfxclk_frequency#

Average clocks (MHz).

uint16_t current_gfxclk#

Current clocks (MHz).

uint32_t throttle_status#

Throttle status.

uint16_t current_fan_speed#

Fans (RPM).

Link width (number of lanes) /speed (0.1 GT/s).

v1 mod.(8->16)

in 0.1 GT/s; v1 mod. (8->16)

uint32_t gfx_activity_acc#

new in v1

uint32_t mem_activity_acc#

new in v1

uint16_t temperature_hbm[AMDSMI_NUM_HBM_INSTANCES]#

new in v1

uint64_t firmware_timestamp#

PMFW attached timestamp (10ns resolution).

uint16_t voltage_soc#

In mV.

uint16_t voltage_gfx#

In mV.

uint16_t voltage_mem#

In mV.

uint64_t indep_throttle_status#

Throttle status.

uint16_t current_socket_power#

In Watts.

uint16_t vcn_activity[AMDSMI_MAX_NUM_VCN]#

Utilization (%).

uint32_t gfxclk_lock_status#

Clock Lock Status. Each bit corresponds to clock instance.

XGMI bus width in GB/s.

XGMI bus bitrate in GB/s.

uint64_t pcie_bandwidth_acc#

PCIE accumulated bandwidth (GB/sec).

uint64_t pcie_bandwidth_inst#

PCIE instantaneous bandwidth (GB/sec).

uint64_t pcie_l0_to_recov_count_acc#

PCIE L0 to recovery state transition accumulated count.

uint64_t pcie_replay_count_acc#

PCIE replay accumulated count.

uint64_t pcie_replay_rover_count_acc#

PCIE replay rollover accumulated count.

uint64_t xgmi_read_data_acc[AMDSMI_MAX_NUM_XGMI_LINKS]#

XGMI accumulated data transfer size(KiloBytes).

In KB

uint64_t xgmi_write_data_acc[AMDSMI_MAX_NUM_XGMI_LINKS]#

In KB.

uint16_t current_gfxclks[AMDSMI_MAX_NUM_GFX_CLKS]#

XGMI current data transfer size(KiloBytes).

In KB

uint16_t current_socclks[AMDSMI_MAX_NUM_CLKS]#

In KB.

uint16_t current_vclk0s[AMDSMI_MAX_NUM_CLKS]#

In KB.

uint16_t current_dclk0s[AMDSMI_MAX_NUM_CLKS]#

In KB.

uint16_t jpeg_activity[AMDSMI_MAX_NUM_JPEG]#

v1.5 additions

JPEG activity percent (encode/decode)

uint32_t pcie_nak_sent_count_acc#

PCIE NAK sent accumulated count.

uint32_t pcie_nak_rcvd_count_acc#

PCIE NAK received accumulated count.

uint64_t accumulation_counter#

v1.6 additions

Accumulation cycle counter

uint64_t prochot_residency_acc#

Accumulated throttler residencies.

uint64_t ppt_residency_acc#

Accumulated throttler residencies.

Prochot (thermal) - PPT (power) Package Power Tracking (PPT) violation % (greater than 0% is a violation); aka PVIOL

Ex. PVIOL/TVIOL calculations Where A and B are measurements recorded at prior points in time. Typically A is the earlier measured value and B is the latest measured value.

PVIOL % = (PptResidencyAcc (B) - PptResidencyAcc (A)) * 100/ (AccumulationCounter (B) - AccumulationCounter (A)) TVIOL % = (SocketThmResidencyAcc (B) - SocketThmResidencyAcc (A)) * 100 / (AccumulationCounter (B) - AccumulationCounter (A))

uint64_t socket_thm_residency_acc#

Accumulated throttler residencies.

Socket (thermal) - Socket thermal violation % (greater than 0% is a violation); aka TVIOL

Ex. PVIOL/TVIOL calculations Where A and B are measurements recorded at prior points in time. Typically A is the earlier measured value and B is the latest measured value.

PVIOL % = (PptResidencyAcc (B) - PptResidencyAcc (A)) * 100/ (AccumulationCounter (B) - AccumulationCounter (A)) TVIOL % = (SocketThmResidencyAcc (B) - SocketThmResidencyAcc (A)) * 100 / (AccumulationCounter (B) - AccumulationCounter (A))

uint16_t num_partition#

Number of current partition.

amdsmi_gpu_xcp_metrics_t xcp_stats[AMDSMI_MAX_NUM_XCP]#

XCP (Graphic Cluster Partitions) metrics stats

uint32_t pcie_lc_perf_other_end_recovery#

PCIE other end recovery counter.

uint64_t vram_max_bandwidth#

v1.7 additions

VRAM max bandwidth at max memory clock (GB/s)

XGMI link status(up/down).

uint16_t temperature_hbm_stacks[AMDSMI_MAX_NUM_HBM_STACKS]#

v1.9 additions

temperature of the HBM stacks in C

uint16_t temperature_mid[AMDSMI_MAX_NUM_MID]#

temperature of the MID in C

uint16_t temperature_aid[AMDSMI_MAX_NUM_AID]#

temperature of the AID in C

uint16_t current_uclk_aid[AMDSMI_MAX_NUM_CLKS_PER_AID]#

In MHz.

uint16_t current_socclks_mid[AMDSMI_MAX_NUM_CLKS_PER_MID]#

In MHz.

amdsmi_apu_metrics_t *apu_metrics#

APU metrics auxiliary data.

This pointer is non-null only when the queried device reports APU-specific metrics (currently APU metrics table versions 2.4 or 3.0). Callers must validate it before dereferencing. For GPU (discrete) devices, this pointer will be nullptr.

Thread Safety and Lifetime: The pointed-to storage uses thread-local storage and is invalidated by ANY subsequent call to amdsmi_get_gpu_metrics_info() or amdsmi_get_gpu_partition_metrics_info() made on the same thread, regardless of which device is queried. This means:

  • Querying device B invalidates the apu_metrics pointer from device A on the same thread

  • Callers that need to retain APU metrics data across multiple queries MUST copy the entire amdsmi_apu_metrics_t structure contents immediately after the query

Version Detection: Use ::common_header.format_revision and ::common_header.content_revision to determine which APU metrics version is active:

  • v2.4: format_revision == 2 && content_revision == 4

  • v3.0: format_revision == 3 && content_revision == 0

Field Validity: Not all fields are valid for all versions. Fields contain sentinel value 0xFFFF (65535) when not populated for the current version. Refer to inline comments in amdsmi_apu_metrics_t for per-field version availability.

struct amdsmi_gpu_ras_policy_info_t#

Ras policy info structure for storing version and different ras policy version structures.

union policy_data_#

Public Members

uint64_t info[5]#

total size of the EEPROM that can be used by the policy is 40bytes

struct amdsmi_gpu_ras_policy_v4_0_t#

Ras policy v4.0.

Public Members

uint16_t dram_non_critical_region_threshold#

Non-critical region UCE threshold.

uint16_t dram_critical_region_threshold#

Critical region UCE threshold.

struct amdsmi_gpu_xcp_metrics_t#

The following structures hold the gpu statistics for a device.

Public Members

uint32_t gfx_busy_inst[AMDSMI_MAX_NUM_XCC]#

v1.6 additions The max uint32_t will be used if that information is N/A

Utilization Instantaneous in %

uint16_t jpeg_busy[AMDSMI_MAX_NUM_JPEG_ENG_V1]#

Utilization Instantaneous in % (UPDATED: to 40 in v1.8)

uint16_t vcn_busy[AMDSMI_MAX_NUM_VCN]#

Utilization Instantaneous in %.

uint64_t gfx_busy_acc[AMDSMI_MAX_NUM_XCC]#

Utilization Accumulated in %.

uint64_t gfx_below_host_limit_acc[AMDSMI_MAX_NUM_XCC]#

v1.7 additions

Total App Clock Counter Accumulated

uint64_t gfx_below_host_limit_ppt_acc[AMDSMI_MAX_NUM_XCC]#

v1.8 additions

uint16_t temperature_xcd[AMDSMI_MAX_NUM_XCC]#

v1.9 additions

struct amdsmi_hsmp_driver_version_t#

This structure holds HSMP Driver version information.

Public Members

uint32_t major#

Major version number.

uint32_t minor#

Minor version number.

struct amdsmi_hsmp_metrics_table_t#

HSMP Metrics table (supported only with hsmp proto version 6).

Public Members

uint32_t accumulation_counter#

Incremented every time the accumulator values are updated in this table

uint32_t max_socket_temperature#

Maximum temperature reported by all on-die thermal sensors on all AIDs, CCDs, and XCDs in the socket

uint32_t max_vr_temperature#

Maximum temperature reported by SVI3 telemetry for all slave addresses

uint32_t max_hbm_temperature#

Maximum temperature reported by all HBM stacks in the socket.

uint64_t max_socket_temperature_acc#

Accumulated version of “max_socket_temperature”.

uint64_t max_vr_temperature_acc#

Accumulated version of “max_vr_temperature”.

uint64_t max_hbm_temperature_acc#

Accumulated version of “max_hbm_temperature”.

uint32_t socket_power_limit#

Power limit currently being enforced by the power throttling controller

uint32_t max_socket_power_limit#

Maximum power limit the power throttling controller is allowed to be configured to

uint32_t socket_power#

Power consumption of all die in the socket (AID+CCD+XCD+HBM).

uint64_t timestamp#

Timestamp corresponding to the energy accumulators in 10ns units.

uint64_t socket_energy_acc#

Energy accumulator of all die in the socket (AID+CCD+XCD+HBM).

uint64_t ccd_energy_acc#

Energy accumulator of VDDCR_VDD rails powering CCDs.

uint64_t xcd_energy_acc#

Energy accumulator of VDDCR_VDD rails powering XCDs.

uint64_t aid_energy_acc#

Energy accumulator of rails powering the AIDs.

uint64_t hbm_energy_acc#

Energy accumulator of all HBM stacks in the socket.

uint32_t cclk_frequency_limit#

Minimum CCLK frequency limit enforced from the infrastructure controllers

uint32_t gfxclk_frequency_limit#

Minimum GFXCLK frequency limit enforced from the infrastructure controllers

uint32_t fclk_frequency#

Effective FCLK frequency.

uint32_t uclk_frequency#

Effective UCLK frequency.

uint32_t socclk_frequency[4]#

Effective SOCCLK frequency per AID.

uint32_t vclk_frequency[4]#

Effective VCLK frequency per AID.

uint32_t dclk_frequency[4]#

Effective DCLK frequency per AID.

uint32_t lclk_frequency[4]#

Effective LCLK frequency per AID.

uint64_t gfxclk_frequency_acc[8]#

GFXCLK frequency for the target XCC.

uint64_t cclk_frequency_acc[96]#

CCLK frequency for the target CPU.

uint32_t max_cclk_frequency#

Maximum CCLK frequency supported by the CPU.

uint32_t min_cclk_frequency#

Minimum CCLK frequency supported by the CPU.

uint32_t max_gfxclk_frequency#

Maximum GFXCLK frequency supported by the accelerator.

uint32_t min_gfxclk_frequency#

Minimum GFXCLK frequency supported by the accelerator.

uint32_t fclk_frequency_table[4]#

List of supported FCLK frequencies (0 means that state is not supported)

uint32_t uclk_frequency_table[4]#

List of supported UCLK frequencies (0 means that state is not supported)

uint32_t socclk_frequency_table[4]#

List of supported SOCCLK frequencies (0 means that state is not supported)

uint32_t vclk_frequency_table[4]#

List of supported VCLK frequencies (0 means that state is not supported)

uint32_t dclk_frequency_table[4]#

List of supported DCLK frequencies (0 means that state is not supported)

uint32_t lclk_frequency_table[4]#

List of supported LCLK frequencies (0 means that state is not supported)

uint32_t max_lclk_dpm_range#

Maximum LCLK DPM state constraint defined by the user.

uint32_t min_lclk_dpm_range#

Minimum LCLK DPM state constraint defined by the user.

uint32_t xgmi_width#

Current operating XGMI link width.

uint32_t xgmi_bitrate#

Current operating XGMI link bitrate.

uint64_t xgmi_read_bandwidth_acc[8]#

XGMI read bandwidth for the target XGMI link in the local socket

uint64_t xgmi_write_bandwidth_acc[8]#

XGMI write bandwidth for the target XGMI link in the local socket

uint32_t socket_c0_residency#

Average CPU C0 residency of all enabled cores in the socket.

uint32_t socket_gfx_busy#

Average XCC busy for all enabled XCCs in the socket.

uint32_t dram_bandwidth_utilization#

HBM bandwidth utilization for all socket HBM stacks.

uint64_t socket_c0_residency_acc#

Accumulated value of “socket_c0_residency”.

uint64_t socket_gfx_busy_acc#

Accumulated value of “socket_gfx_busy”.

uint64_t dram_bandwidth_acc#

HBM bandwidth for all HBM stacks in the socket.

uint32_t max_dram_bandwidth#

Maximum supported HBM bandwidth for all HBM stacks running at the maximum supported UCLK frequency

uint64_t dram_bandwidth_utilization_acc#

Accumulated value of “dram_bandwidth_utilization”.

uint64_t pcie_bandwidth_acc[4]#

PCIe bandwidth for all PCIe devices connected to target AID.

uint32_t prochot_residency_acc#

Incremented every iteration PROCHOT is active.

uint32_t ppt_residency_acc#

Incremented every iteration the PPT controller is active.

uint32_t socket_thm_residency_acc#

Incremented every iteration the socket thermal throttling controller is active

uint32_t vr_thm_residency_acc#

Incremented every iteration the VR thermal throttling controller is active

uint32_t hbm_thm_residency_acc#

Incremented every iteration the HBM thermal throttling controller is active

uint32_t spare#

spare

uint32_t gfxclk_frequency[8]#

Effective GFXCLK frequency per XCD.

struct amdsmi_kfd_info_t#

Structure holds kfd information.

Public Members

uint64_t kfd_id#

0xFFFFFFFFFFFFFFFF if not supported

uint32_t node_id#

0xFFFFFFFF if not supported

uint32_t current_partition_id#

0xFFFFFFFF if not supported

struct amdsmi_memory_partition_config_t#

Memory Partition Configuration. This structure is used to identify various memory partition configurations.

struct numa_range_#
struct amdsmi_name_value_t#

This structure holds the name value pairs.

Public Members

char name[AMDSMI_MAX_STRING_LENGTH]#

Name.

uint64_t value#

Use uint64_t to make it universal.

struct amdsmi_nic_asic_info_t#

NIC asic information.

struct amdsmi_nic_bus_info_t#

NIC bus information.

Public Members

uint32_t max_pcie_speed#

maximum PCIe speed in GT/s

struct amdsmi_nic_driver_info_t#

NIC driver information.

struct amdsmi_nic_fw_info_t#

NIC firmware information collection.

struct amdsmi_nic_fw_t#

NIC firmware information.

struct amdsmi_nic_numa_info_t#

NIC NUMA information.

struct amdsmi_nic_port_info_t#

NIC port information collection.

struct amdsmi_nic_port_t#

NIC port information.

Active FEC Modes: The active_fec field provides a bitmask representation of Active FEC (Active Forward Error Correction) modes. The bitmask values are derived from the ethtool_fecparam structure, specifically the active_fec field. Below are examples of the defined FEC modes:

Examples:

  • ETHTOOL_FEC_NONE (0x01)

  • ETHTOOL_FEC_AUTO (0x02)

  • ETHTOOL_FEC_RS (0x04)

  • ETHTOOL_FEC_BASER (0x08)

  • ETHTOOL_FEC_LLRS (0x10)

  • ETHTOOL_FEC_OFF (0x20)

Note: These definitions are based on the latest available ethtool information. Users should verify if there are any updates or changes to these definitions in the relevant ethtool structure or field before implementing them in their code.

Public Members

uint32_t active_fec#

Active FEC modes bitmask (see about FEC modes in the description).

struct amdsmi_nic_rdma_dev_info_t#

NIC RDMA device information.

struct amdsmi_nic_rdma_devices_info_t#

NIC RDMA devices information collection.

struct amdsmi_nic_rdma_port_info_t#

NIC RDMA port information.

struct amdsmi_nic_stat_t#

Structure for NIC statistic name-value pairs.

This structure represents a single NIC statistic with its name and value.

struct amdsmi_npm_info_t#

NPM info.

Public Members

amdsmi_npm_status_t status#

NPM status (enabled/disabled).

uint64_t limit#

Node-level power limit in Watts.

uint32_t ubb_power_threshold#

The UBB node power threshold in Watts.

struct amdsmi_od_vddc_point_t#

This structure represents a point on the frequency-voltage plane.

Public Members

uint64_t frequency#

Frequency coordinate (in Hz).

uint64_t voltage#

Voltage coordinate (in mV).

struct amdsmi_od_volt_curve_t#

OD Vold Curve AMDSMI_NUM_VOLTAGE_CURVE_POINTS number of amdsmi_od_vddc_point_t’s.

Public Members

amdsmi_od_vddc_point_t vc_points[AMDSMI_NUM_VOLTAGE_CURVE_POINTS]#

make up the voltage frequency curve points

struct amdsmi_od_volt_freq_data_t#

This structure holds the frequency-voltage values for a device.

Public Members

amdsmi_range_t curr_sclk_range#

The current SCLK frequency range in MHz.

amdsmi_range_t curr_mclk_range#

The current MCLK frequency range, upper bound only in MHz.

amdsmi_range_t curr_fclk_range#

The current FCLK frequency range in MHz.

amdsmi_range_t sclk_freq_limits#

The range possible of SCLK values in MHz.

amdsmi_range_t mclk_freq_limits#

The range possible of MCLK values in MHz.

amdsmi_range_t fclk_freq_limits#

The range possible of FCLK values in MHz.

amdsmi_od_volt_curve_t curve#

The current voltage curve.

uint32_t num_regions#

The number of voltage curve regions.

struct amdsmi_p2p_capability_t#

IO Link P2P Capability.

Public Members

1 = true, 0 = false, UINT8_MAX = Not defined

1 = true, 0 = false, UINT8_MAX = Not defined

1 = true, 0 = false, UINT8_MAX = Not defined

1 = true, 0 = false, UINT8_MAX = Not defined

1 = true, 0 = false, UINT8_MAX = Not defined

struct amdsmi_pcie_bandwidth_t#

This structure holds information about the possible PCIe bandwidths. Specifically, the possible transfer rates and their associated numbers of lanes are stored here.

Only the first num_supported bandwidths are valid.

Public Members

amdsmi_frequencies_t transfer_rate#

Transfer rates (T/s) that are possible.

uint32_t lanes[AMDSMI_MAX_NUM_FREQUENCIES]#

List of lanes for corresponding transfer rate.

struct amdsmi_pcie_info_t#

pcie information

struct pcie_static_#

Public Members

uint16_t max_pcie_width#

maximum number of PCIe lanes

uint32_t max_pcie_speed#

maximum PCIe speed in MT/s (e.g. 16000 for PCIe Gen4)

uint32_t pcie_interface_version#

PCIe interface version.

amdsmi_card_form_factor_t slot_type#

card form factor

uint32_t max_pcie_interface_version#

maximum PCIe link generation

struct pcie_metric_#

Public Members

uint16_t pcie_width#

current PCIe width

uint32_t pcie_speed#

current PCIe speed in MT/s

uint32_t pcie_bandwidth#

current instantaneous PCIe bandwidth in Mb/s

uint64_t pcie_replay_count#

total number of the replays issued on the PCIe link

uint64_t pcie_l0_to_recovery_count#

total number of times the PCIe link transitioned from L0 to the recovery state

uint64_t pcie_replay_roll_over_count#

total replay rollover numbers issued on the PCIe link

uint64_t pcie_nak_sent_count#

total number of NAKs issued on the PCIe link by the device

uint64_t pcie_nak_received_count#

total number of NAKs issued on the PCIe link by the receiver

uint32_t pcie_lc_perf_other_end_recovery_count#

PCIe other end recovery counter.

struct amdsmi_power_cap_info_t#

Power Cap Information.

Public Members

uint64_t power_cap#

current power cap Units uW {@linux_bm} or W {@host}

uint64_t default_power_cap#

default power cap Units uW {@linux_bm} or W {@host}

uint64_t dpm_cap#

dpm power cap Units MHz {@linux_bm} or Hz {@host}

uint64_t min_power_cap#

minimum power cap Units uW {@linux_bm} or W {@host}

uint64_t max_power_cap#

maximum power cap Units uW {@linux_bm} or W {@host}

struct amdsmi_power_info_t#

Power Information.

Note

Unsupported struct members are set to UINT32_MAX

Public Members

uint64_t socket_power#

Current power usage in W {@linux_bm}, uW {@host}.

uint32_t current_socket_power#

Current socket power in W {@linux_bm}, Linux only, Mi 300+ Series cards

uint32_t average_socket_power#

Average socket power in W {@linux_bm}, Linux only, Navi + Mi 200 and earlier Series cards

uint64_t gfx_voltage#

GFX voltage measurement in mV {@linux_bm} or V {@host}.

uint64_t soc_voltage#

SOC voltage measurement in mV {@linux_bm} or V {@host}.

uint64_t mem_voltage#

MEM voltage measurement in mV {@linux_bm} or V {@host}.

uint32_t power_limit#

The power limit in uW {@linux_bm}, Linux only.

uint32_t ubb_power#

The UBB node power in W {@linux_bm}, MI350X+.

struct amdsmi_power_profile_status_t#

This structure contains information about which power profiles are supported by the system for a given device, and which power profile is currently active.

Public Members

amdsmi_bit_field_t available_profiles#

Which profiles are supported by this system.

amdsmi_power_profile_preset_masks_t current#

Which power profile is currently active.

uint32_t num_profiles#

How many power profiles are available.

struct amdsmi_proc_gpu_entry_t#

Per-GPU process entry within a PID-grouped result.

Public Members

uint32_t gpu_index#

GPU index.

uint64_t mem#

Total memory in bytes.

uint64_t gfx#

GFX engine usage in nanoseconds.

uint64_t enc#

ENC engine usage in nanoseconds.

uint64_t gtt_mem#

GTT memory in bytes.

uint64_t cpu_mem#

CPU memory in bytes.

uint64_t vram_mem#

VRAM memory in bytes.

uint32_t cu_occupancy#

Number of CUs utilized.

uint32_t evicted_time#

Queue eviction time in milliseconds.

uint64_t sdma_usage#

SDMA usage in microseconds.

struct amdsmi_proc_info_by_pid_t#

Process info aggregated across all GPUs, keyed by PID.

Public Members

uint32_t num_gpus#

Number of GPU entries populated.

amdsmi_proc_gpu_entry_t gpus[AMDSMI_MAX_DEVICES]#

Per-GPU data, num_gpus entries valid.

struct amdsmi_proc_info_t#

Process Information.

Public Members

uint64_t mem#

In Bytes.

struct amdsmi_proc_info_t.engine_usage_ engine_usage#

time the process spends using these engines in ns

struct amdsmi_proc_info_t.memory_usage_ memory_usage#

In Bytes.

uint32_t cu_occupancy#

Num CUs utilized.

uint32_t evicted_time#

Time that queues are evicted on a GPU in milliseconds.

uint64_t sdma_usage#

SDMA usage in microseconds.

struct engine_usage_#

Public Members

uint64_t gfx#

In nano-secs.

uint64_t enc#

In nano-secs.

struct memory_usage_#

Public Members

uint64_t gtt_mem#

In Bytes.

uint64_t cpu_mem#

In Bytes.

uint64_t vram_mem#

In Bytes.

struct amdsmi_process_info_t#

This structure contains information specific to a process. Sum of the process memory is not expected to be the total memory usage.

Public Members

uint32_t process_id#

Process ID.

uint64_t vram_usage#

VRAM usage in MB.

uint64_t sdma_usage#

SDMA usage in microseconds.

uint32_t cu_occupancy#

Compute Unit usage in percent.

uint32_t evicted_time#

Time that queues are evicted on a GPU in milliseconds.

struct amdsmi_range_t#

This structure represents a range (e.g., frequencies or voltages).

Public Members

uint64_t lower_bound#

Lower bound of range.

uint64_t upper_bound#

Upper bound of range.

struct amdsmi_ras_feature_t#

This structure holds ras feature information.

Public Members

uint32_t ras_eeprom_version#

PARITY error(bit 0), Single Bit correctable (bit1), Double bit error detection (bit2), Poison (bit 3).

uint32_t ecc_correction_schema_flag#

ecc_correction_schema mask. PARITY error(bit 0), Single Bit correctable (bit1), Double bit error detection (bit2), Poison (bit 3)

struct ras_info_#
struct amdsmi_retired_page_record_t#

Reserved Memory Page Record.

Public Members

uint64_t page_address#

Start address of page.

uint64_t page_size#

Page size.

amdsmi_memory_page_status_t status#

Page “reserved” status.

struct amdsmi_smu_fw_version_t#

This structure holds SMU Firmware version information.

Public Members

uint8_t debug#

SMU fw Debug version number.

uint8_t minor#

SMU fw Minor version number.

uint8_t major#

SMU fw Major version number.

uint8_t unused#

reserved fields

struct amdsmi_sock_info_t#

cpu socket info data

struct amdsmi_temp_range_refresh_rate_t#

temperature range and refresh rate metrics of a DIMM

Public Members

uint8_t range#

temp range[2:0](3 bit data)

uint8_t ref_rate#

DDR refresh rate mode[3](1 bit data).

struct amdsmi_topology_nearest_t#

Topology Nearest.

struct amdsmi_ttm_info_t

TTM (Translation Table Manager) configuration information

Public Members

uint64_t current_pages#

Current TTM pages limit

struct amdsmi_uma_carveout_info_t

UMA carveout configuration information

Public Members

uint32_t current_index#

Currently active carveout index

uint32_t num_options#

Number of available options

amdsmi_uma_carveout_option_t options[AMDSMI_MAX_CARVEOUT_OPTIONS]#

Available carveout options

struct amdsmi_uma_carveout_option_t

UMA carveout option descriptor

Public Members

uint32_t index#

Option index

char description[AMDSMI_MAX_STRING_LENGTH]#

Human-readable description

struct amdsmi_utilization_counter_t#

The utilization counter data.

The max number of values per counter type

Public Members

amdsmi_utilization_counter_type_t type#

Utilization counter type.

uint64_t value#

Coarse grain activity counter value (average).

uint64_t fine_value[AMDSMI_MAX_UTILIZATION_VALUES]#

Utilization counter value.

struct amdsmi_vbios_info_t#

VBios Information.

Public Members

char boot_firmware[AMDSMI_MAX_STRING_LENGTH]#

UBL (Unified BootLoader) Version information.

struct amdsmi_version_t#

This structure holds version information.

Public Members

uint32_t major#

Major version.

uint32_t minor#

Minor version.

uint32_t release#

Patch, build or stepping version.

const char *build#

Full Build version string.

struct amdsmi_violation_status_t#

This structure hold violation status information. Note: for MI3x asics and higher, older ASICs will show unsupported.

Public Members

uint64_t reference_timestamp#

Represents CPU timestamp in microseconds (uS).

uint64_t violation_timestamp#

Violation time. Units in nanoseconds (ns) {@linux_bm}, in milliseconds (ms) {@host}

uint64_t acc_counter#

Current accumulated counter; Max uint64 means unsupported.

uint64_t acc_prochot_thrm#

Current accumulated processor hot violation count; Max uint64 means unsupported

uint64_t acc_ppt_pwr#

PVIOL; Current accumulated Package Power Tracking (PPT) count; Max uint64 means unsupported

uint64_t acc_socket_thrm#

TVIOL; Current accumulated Socket thermal count; Max uint64 means unsupported

uint64_t acc_vr_thrm#

Current accumulated voltage regulator count; Max uint64 means unsupported

uint64_t acc_hbm_thrm#

Current accumulated High Bandwidth Memory (HBM) thermal count; Max uint64 means unsupported

uint64_t acc_gfx_clk_below_host_limit#

UPDATED in new driver 1.8: use new _gfx_clk_below_host_limit_pwr, _gfx_clk_below_host_limit_thm, _gfx_clk_below_host_limit_total values! Current gfx clock below host limit count; Max uint64 means unsupported.

uint64_t per_prochot_thrm#

Processor hot violation % (greater than 0% is a violation); Max uint64 means unsupported

uint64_t per_ppt_pwr#

PVIOL; Package Power Tracking (PPT) violation % (greater than 0% is a violation); Max uint64 means unsupported

uint64_t per_socket_thrm#

TVIOL; Socket thermal violation % (greater than 0% is a violation); Max uint64 means unsupported

uint64_t per_vr_thrm#

Voltage regulator violation % (greater than 0% is a violation); Max uint64 means unsupported

uint64_t per_hbm_thrm#

High Bandwidth Memory (HBM) thermal violation % (greater than 0% is a violation); Max uint64 means unsupported

uint64_t per_gfx_clk_below_host_limit#

UPDATED in new driver 1.8: use new _gfx_clk_below_host_limit_pwr, _gfx_clk_below_host_limit_thm, _gfx_clk_below_host_limit_total values! Gfx clock below host limit violation % (greater than 0% is a violation); Max uint64 means unsupported.

uint8_t active_prochot_thrm#

Processor hot violation; 1 = active 0 = not active; Max uint8 means unsupported

uint8_t active_ppt_pwr#

Package Power Tracking (PPT) violation; 1 = active 0 = not active; Max uint8 means unsupported

uint8_t active_socket_thrm#

Socket thermal violation; 1 = active 0 = not active; Max uint8 means unsupported

uint8_t active_vr_thrm#

Voltage regulator violation; 1 = active 0 = not active; Max uint8 means unsupported

uint8_t active_hbm_thrm#

High Bandwidth Memory (HBM) thermal violation; 1 = active 0 = not active; Max uint8 means unsupported

uint8_t active_gfx_clk_below_host_limit#

UPDATED in new driver 1.8: use new _gfx_clk_below_host_limit_total values! Gfx clock below host limit violation; 1 = active 0 = not active; Max uint8 means unsupported.

uint64_t acc_gfx_clk_below_host_limit_pwr[AMDSMI_MAX_NUM_XCP][AMDSMI_MAX_NUM_XCC]#

New Driver 1.8 fields: Current gfx clock below host limit power count; Max uint64 means unsupported

uint64_t acc_gfx_clk_below_host_limit_thm[AMDSMI_MAX_NUM_XCP][AMDSMI_MAX_NUM_XCC]#

New Driver 1.8 fields: Current gfx clock below host limit thermal count; Max uint64 means unsupported

uint64_t acc_low_utilization[AMDSMI_MAX_NUM_XCP][AMDSMI_MAX_NUM_XCC]#

New Driver 1.8 fields: Current low utilization count; Max uint64 means unsupported

uint64_t acc_gfx_clk_below_host_limit_total[AMDSMI_MAX_NUM_XCP][AMDSMI_MAX_NUM_XCC]#

New Driver 1.8 fields: Current gfx clock below host limit total count; Max uint64 means unsupported

uint64_t per_gfx_clk_below_host_limit_pwr[AMDSMI_MAX_NUM_XCP][AMDSMI_MAX_NUM_XCC]#

New Driver 1.8 fields: Gfx clock below host limit power violation % (greater than 0% is a violation); Max uint64 means unsupported

uint64_t per_gfx_clk_below_host_limit_thm[AMDSMI_MAX_NUM_XCP][AMDSMI_MAX_NUM_XCC]#

New Driver 1.8 fields: Gfx clock below host limit violation % (greater than 0% is a violation); Max uint64 means unsupported

uint64_t per_low_utilization[AMDSMI_MAX_NUM_XCP][AMDSMI_MAX_NUM_XCC]#

New Driver 1.8 fields: Low utilization violation % (greater than 0% is a violation); Max uint64 means unsupported

uint64_t per_gfx_clk_below_host_limit_total[AMDSMI_MAX_NUM_XCP][AMDSMI_MAX_NUM_XCC]#

New Driver 1.8 fields: Any Gfx clock below host limit violation % (greater than 0% is a violation); Max uint64 means unsupported

uint8_t active_gfx_clk_below_host_limit_pwr[AMDSMI_MAX_NUM_XCP][AMDSMI_MAX_NUM_XCC]#

New Driver 1.8 fields: Gfx clock below host limit power violation; 1 = active, 0 = not active; Max uint8 means unsupported

uint8_t active_gfx_clk_below_host_limit_thm[AMDSMI_MAX_NUM_XCP][AMDSMI_MAX_NUM_XCC]#

New Driver 1.8 fields: Gfx clock below host limit thermal violation; 1 = active, 0 = not active; Max uint8 means unsupported

uint8_t active_low_utilization[AMDSMI_MAX_NUM_XCP][AMDSMI_MAX_NUM_XCC]#

New Driver 1.8 fields: Low utilization violation; 1 = active, 0 = not active; Max uint8 means unsupported

uint8_t active_gfx_clk_below_host_limit_total[AMDSMI_MAX_NUM_XCP][AMDSMI_MAX_NUM_XCC]#

New Driver 1.8 fields: Any Gfx clock host limit violation; 1 = active, 0 = not active; Max uint8 means unsupported

struct amdsmi_vram_info_t#

VRam Information.

Public Members

uint64_t vram_size#

vram size in MB

uint32_t vram_bit_width#

In bits.

uint64_t vram_max_bandwidth#

The VRAM max bandwidth at current memory clock (GB/s).

struct amdsmi_vram_usage_t#

VRam Usage.

Public Members

uint32_t vram_total#

In MB.

uint32_t vram_used#

In MB.

struct amdsmi_xgmi_info_t#

XGMI Information.

struct bdf_#
struct cache_

Public Members

uint32_t cache_properties

amdsmi_cache_property_type_t which is a bitmask

uint32_t cache_size

In KB.

uint32_t max_num_cu_shared

Indicates how many Compute Units share this cache instance.

uint32_t num_cache_instance

total number of instance of this cache type

struct engine_usage_

Public Members

uint64_t gfx

In nano-secs.

uint64_t enc

In nano-secs.

struct fw_info_list_
struct memory_usage_

Public Members

uint64_t gtt_mem

In Bytes.

uint64_t cpu_mem

In Bytes.

uint64_t vram_mem

In Bytes.

struct nps_flags_#

Public Members

uint32_t nps1_cap#

bool 1 = true; 0 = false

uint32_t nps2_cap#

bool 1 = true; 0 = false

uint32_t nps4_cap#

bool 1 = true; 0 = false

uint32_t nps8_cap#

bool 1 = true; 0 = false

struct numa_range_
struct pcie_metric_

Public Members

uint16_t pcie_width

current PCIe width

uint32_t pcie_speed

current PCIe speed in MT/s

uint32_t pcie_bandwidth

current instantaneous PCIe bandwidth in Mb/s

uint64_t pcie_replay_count

total number of the replays issued on the PCIe link

uint64_t pcie_l0_to_recovery_count

total number of times the PCIe link transitioned from L0 to the recovery state

uint64_t pcie_replay_roll_over_count

total replay rollover numbers issued on the PCIe link

uint64_t pcie_nak_sent_count

total number of NAKs issued on the PCIe link by the device

uint64_t pcie_nak_received_count

total number of NAKs issued on the PCIe link by the receiver

uint32_t pcie_lc_perf_other_end_recovery_count

PCIe other end recovery counter.

struct pcie_static_

Public Members

uint16_t max_pcie_width

maximum number of PCIe lanes

uint32_t max_pcie_speed

maximum PCIe speed in MT/s (e.g. 16000 for PCIe Gen4)

uint32_t pcie_interface_version

PCIe interface version.

amdsmi_card_form_factor_t slot_type

card form factor

uint32_t max_pcie_interface_version

maximum PCIe link generation

struct ras_info_
struct valid_bits_#

Unions#

union amdsmi_bdf_t#
#include <amdsmi.h>

bdf types

Public Members

struct amdsmi_bdf_t.bdf_ bdf#
uint64_t function_number#
uint64_t device_number#
uint64_t bus_number#
uint64_t domain_number#
struct amdsmi_bdf_t
uint64_t as_uint#
struct bdf_

Public Members

uint64_t function_number#
uint64_t device_number#
uint64_t bus_number#
uint64_t domain_number#
union amdsmi_cper_valid_bits_t#

Public Members

struct amdsmi_cper_valid_bits_t.valid_bits_ valid_bits#
uint32_t valid_mask#
struct valid_bits_

Public Members

uint32_t platform_id#
uint32_t timestamp#
uint32_t partition_id#
uint32_t reserved#
union amdsmi_nps_caps_t#
#include <amdsmi.h>

This union holds memory partition bitmask.

Public Members

struct amdsmi_nps_caps_t.nps_flags_ nps_flags#
uint32_t nps_cap_mask#
struct nps_flags_

Public Members

uint32_t nps1_cap

bool 1 = true; 0 = false

uint32_t nps2_cap

bool 1 = true; 0 = false

uint32_t nps4_cap

bool 1 = true; 0 = false

uint32_t nps8_cap

bool 1 = true; 0 = false

uint32_t reserved#
union fabric_info_

Public Members

amdsmi_fabric_info_v1_t v1#
union policy_data_

Public Members

amdsmi_gpu_ras_policy_v4_0_t v4_0#
uint64_t info[5]

total size of the EEPROM that can be used by the policy is 40bytes

Typedefs#

typedef void *amdsmi_processor_handle#

opaque handler point to underlying implementation

typedef void *amdsmi_node_handle#

opaque handler point to underlying implementation

typedef void *amdsmi_cpusocket_handle#

opaque handler point to underlying implementation

typedef amdsmi_processor_type_t processor_type_t#

Backward-compatibility alias for amdsmi_processor_type_t.

The unprefixed processor_type_t name is preserved for source-compatibility with callers written before the type was renamed. New code should use amdsmi_processor_type_t, which follows the amdsmi_ typedef prefix convention used throughout this header and is less likely to collide with identifiers defined by other system-management libraries.

typedef uint32_t amdsmi_process_handle_t#

Process Handle.

typedef uintptr_t amdsmi_event_handle_t#

Handle to performance event counter.

typedef uint64_t amdsmi_bit_field_t#

Bitfield used in various AMDSMI calls.