amdsmi_gpu_metrics_t Struct Reference

amdsmi_gpu_metrics_t Struct Reference#

AMD SMI: amdsmi_gpu_metrics_t Struct Reference
amdsmi_gpu_metrics_t Struct Reference

Structure holds the gpu metrics values for a device. More...

#include <amdsmi.h>

Data Fields

amd_metrics_table_header_t common_header
 
uint16_t temperature_edge
 v1.0 Base
 
uint16_t temperature_hotspot
 
uint16_t temperature_mem
 
uint16_t temperature_vrgfx
 
uint16_t temperature_vrsoc
 
uint16_t temperature_vrmem
 
uint16_t average_gfx_activity
 Average Utilization (in %)
 
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)
 
uint16_t average_gfxclk_frequency
 Average clocks (MHz)
 
uint16_t average_socclk_frequency
 
uint16_t average_uclk_frequency
 
uint16_t average_vclk0_frequency
 
uint16_t average_dclk0_frequency
 
uint16_t average_vclk1_frequency
 
uint16_t average_dclk1_frequency
 
uint16_t current_gfxclk
 Current clocks (MHz)
 
uint16_t current_socclk
 
uint16_t current_uclk
 
uint16_t current_vclk0
 
uint16_t current_dclk0
 
uint16_t current_vclk1
 
uint16_t current_dclk1
 
uint32_t throttle_status
 Throttle status.
 
uint16_t current_fan_speed
 Fans (RPM)
 
uint16_t pcie_link_width
 Link width (number of lanes) /speed (0.1 GT/s)
 
uint16_t pcie_link_speed
 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.
 
uint16_t xgmi_link_width
 XGMI bus width in GB/s.
 
uint16_t xgmi_link_speed
 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)
 
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)
 
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
 
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
 
uint64_t prochot_residency_acc
 Accumulated throttler residencies.
 
uint64_t ppt_residency_acc
 Accumulated throttler residencies.
 
uint64_t socket_thm_residency_acc
 Accumulated throttler residencies.
 
uint64_t vr_thm_residency_acc
 
uint64_t hbm_thm_residency_acc
 
uint16_t num_partition
 Number of current partition.
 
amdsmi_gpu_xcp_metrics_t xcp_stats [AMDSMI_MAX_NUM_XCP]
 
uint32_t pcie_lc_perf_other_end_recovery
 PCIE other end recovery counter.
 
uint64_t vram_max_bandwidth
 v1.7 additions
 
uint16_t xgmi_link_status [AMDSMI_MAX_NUM_XGMI_LINKS]
 XGMI link status(up/down)
 
uint16_t temperature_hbm_stacks [AMDSMI_MAX_NUM_HBM_STACKS]
 v1.9 additions
 
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_tapu_metrics
 APU metrics auxiliary data.
 

Detailed Description

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

Definition at line 2230 of file amdsmi.h.

Field Documentation

◆ common_header

amd_metrics_table_header_t amdsmi_gpu_metrics_t::common_header

Definition at line 2231 of file amdsmi.h.

◆ temperature_edge

uint16_t amdsmi_gpu_metrics_t::temperature_edge

v1.0 Base

Temperature in C

Definition at line 2238 of file amdsmi.h.

◆ temperature_hotspot

uint16_t amdsmi_gpu_metrics_t::temperature_hotspot

Definition at line 2239 of file amdsmi.h.

◆ temperature_mem

uint16_t amdsmi_gpu_metrics_t::temperature_mem

Definition at line 2240 of file amdsmi.h.

◆ temperature_vrgfx

uint16_t amdsmi_gpu_metrics_t::temperature_vrgfx

Definition at line 2241 of file amdsmi.h.

◆ temperature_vrsoc

uint16_t amdsmi_gpu_metrics_t::temperature_vrsoc

Definition at line 2242 of file amdsmi.h.

◆ temperature_vrmem

uint16_t amdsmi_gpu_metrics_t::temperature_vrmem

Definition at line 2243 of file amdsmi.h.

◆ average_gfx_activity

uint16_t amdsmi_gpu_metrics_t::average_gfx_activity

Average Utilization (in %)

gfx

Definition at line 2248 of file amdsmi.h.

◆ average_umc_activity

uint16_t amdsmi_gpu_metrics_t::average_umc_activity

memory controller

Definition at line 2249 of file amdsmi.h.

◆ average_mm_activity

uint16_t amdsmi_gpu_metrics_t::average_mm_activity

UVD or VCN.

Definition at line 2250 of file amdsmi.h.

◆ average_socket_power

uint16_t amdsmi_gpu_metrics_t::average_socket_power

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

Definition at line 2255 of file amdsmi.h.

◆ energy_accumulator

uint64_t amdsmi_gpu_metrics_t::energy_accumulator

v1 mod. (32->64)

Definition at line 2256 of file amdsmi.h.

◆ system_clock_counter

uint64_t amdsmi_gpu_metrics_t::system_clock_counter

Driver attached timestamp (in ns)

v1 mod. (moved from top of struct)

Definition at line 2259 of file amdsmi.h.

◆ average_gfxclk_frequency

uint16_t amdsmi_gpu_metrics_t::average_gfxclk_frequency

Average clocks (MHz)

Definition at line 2264 of file amdsmi.h.

◆ average_socclk_frequency

uint16_t amdsmi_gpu_metrics_t::average_socclk_frequency

Definition at line 2265 of file amdsmi.h.

◆ average_uclk_frequency

uint16_t amdsmi_gpu_metrics_t::average_uclk_frequency

Definition at line 2266 of file amdsmi.h.

◆ average_vclk0_frequency

uint16_t amdsmi_gpu_metrics_t::average_vclk0_frequency

Definition at line 2267 of file amdsmi.h.

◆ average_dclk0_frequency

uint16_t amdsmi_gpu_metrics_t::average_dclk0_frequency

Definition at line 2268 of file amdsmi.h.

◆ average_vclk1_frequency

uint16_t amdsmi_gpu_metrics_t::average_vclk1_frequency

Definition at line 2269 of file amdsmi.h.

◆ average_dclk1_frequency

uint16_t amdsmi_gpu_metrics_t::average_dclk1_frequency

Definition at line 2270 of file amdsmi.h.

◆ current_gfxclk

uint16_t amdsmi_gpu_metrics_t::current_gfxclk

Current clocks (MHz)

Definition at line 2275 of file amdsmi.h.

◆ current_socclk

uint16_t amdsmi_gpu_metrics_t::current_socclk

Definition at line 2276 of file amdsmi.h.

◆ current_uclk

uint16_t amdsmi_gpu_metrics_t::current_uclk

Definition at line 2277 of file amdsmi.h.

◆ current_vclk0

uint16_t amdsmi_gpu_metrics_t::current_vclk0

Definition at line 2278 of file amdsmi.h.

◆ current_dclk0

uint16_t amdsmi_gpu_metrics_t::current_dclk0

Definition at line 2279 of file amdsmi.h.

◆ current_vclk1

uint16_t amdsmi_gpu_metrics_t::current_vclk1

Definition at line 2280 of file amdsmi.h.

◆ current_dclk1

uint16_t amdsmi_gpu_metrics_t::current_dclk1

Definition at line 2281 of file amdsmi.h.

◆ throttle_status

uint32_t amdsmi_gpu_metrics_t::throttle_status

Throttle status.

Definition at line 2283 of file amdsmi.h.

◆ current_fan_speed

uint16_t amdsmi_gpu_metrics_t::current_fan_speed

Fans (RPM)

Definition at line 2285 of file amdsmi.h.

◆ pcie_link_width

uint16_t amdsmi_gpu_metrics_t::pcie_link_width

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

v1 mod.(8->16)

Definition at line 2290 of file amdsmi.h.

◆ pcie_link_speed

uint16_t amdsmi_gpu_metrics_t::pcie_link_speed

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

Definition at line 2291 of file amdsmi.h.

◆ gfx_activity_acc

uint32_t amdsmi_gpu_metrics_t::gfx_activity_acc

new in v1

Definition at line 2296 of file amdsmi.h.

◆ mem_activity_acc

uint32_t amdsmi_gpu_metrics_t::mem_activity_acc

new in v1

Definition at line 2297 of file amdsmi.h.

◆ temperature_hbm

uint16_t amdsmi_gpu_metrics_t::temperature_hbm[AMDSMI_NUM_HBM_INSTANCES]

new in v1

Definition at line 2298 of file amdsmi.h.

◆ firmware_timestamp

uint64_t amdsmi_gpu_metrics_t::firmware_timestamp

PMFW attached timestamp (10ns resolution)

Definition at line 2303 of file amdsmi.h.

◆ voltage_soc

uint16_t amdsmi_gpu_metrics_t::voltage_soc

In mV.

Definition at line 2308 of file amdsmi.h.

◆ voltage_gfx

uint16_t amdsmi_gpu_metrics_t::voltage_gfx

In mV.

Definition at line 2309 of file amdsmi.h.

◆ voltage_mem

uint16_t amdsmi_gpu_metrics_t::voltage_mem

In mV.

Definition at line 2310 of file amdsmi.h.

◆ indep_throttle_status

uint64_t amdsmi_gpu_metrics_t::indep_throttle_status

Throttle status.

Definition at line 2312 of file amdsmi.h.

◆ current_socket_power

uint16_t amdsmi_gpu_metrics_t::current_socket_power

In Watts.

Definition at line 2317 of file amdsmi.h.

◆ vcn_activity

uint16_t amdsmi_gpu_metrics_t::vcn_activity[AMDSMI_MAX_NUM_VCN]

Utilization (%)

Definition at line 2319 of file amdsmi.h.

◆ gfxclk_lock_status

uint32_t amdsmi_gpu_metrics_t::gfxclk_lock_status

Clock Lock Status. Each bit corresponds to clock instance.

Definition at line 2321 of file amdsmi.h.

◆ xgmi_link_width

uint16_t amdsmi_gpu_metrics_t::xgmi_link_width

XGMI bus width in GB/s.

Definition at line 2323 of file amdsmi.h.

◆ xgmi_link_speed

uint16_t amdsmi_gpu_metrics_t::xgmi_link_speed

XGMI bus bitrate in GB/s.

Definition at line 2324 of file amdsmi.h.

◆ pcie_bandwidth_acc

uint64_t amdsmi_gpu_metrics_t::pcie_bandwidth_acc

PCIE accumulated bandwidth (GB/sec)

Definition at line 2326 of file amdsmi.h.

◆ pcie_bandwidth_inst

uint64_t amdsmi_gpu_metrics_t::pcie_bandwidth_inst

PCIE instantaneous bandwidth (GB/sec)

Definition at line 2327 of file amdsmi.h.

◆ pcie_l0_to_recov_count_acc

uint64_t amdsmi_gpu_metrics_t::pcie_l0_to_recov_count_acc

PCIE L0 to recovery state transition accumulated count.

Definition at line 2328 of file amdsmi.h.

◆ pcie_replay_count_acc

uint64_t amdsmi_gpu_metrics_t::pcie_replay_count_acc

PCIE replay accumulated count.

Definition at line 2329 of file amdsmi.h.

◆ pcie_replay_rover_count_acc

uint64_t amdsmi_gpu_metrics_t::pcie_replay_rover_count_acc

PCIE replay rollover accumulated count.

Definition at line 2330 of file amdsmi.h.

◆ xgmi_read_data_acc

uint64_t amdsmi_gpu_metrics_t::xgmi_read_data_acc[AMDSMI_MAX_NUM_XGMI_LINKS]

XGMI accumulated data transfer size(KiloBytes)

In KB

Definition at line 2335 of file amdsmi.h.

◆ xgmi_write_data_acc

uint64_t amdsmi_gpu_metrics_t::xgmi_write_data_acc[AMDSMI_MAX_NUM_XGMI_LINKS]

In KB.

Definition at line 2336 of file amdsmi.h.

◆ current_gfxclks

uint16_t amdsmi_gpu_metrics_t::current_gfxclks[AMDSMI_MAX_NUM_GFX_CLKS]

XGMI current data transfer size(KiloBytes)

In KB

Definition at line 2341 of file amdsmi.h.

◆ current_socclks

uint16_t amdsmi_gpu_metrics_t::current_socclks[AMDSMI_MAX_NUM_CLKS]

In KB.

Definition at line 2342 of file amdsmi.h.

◆ current_vclk0s

uint16_t amdsmi_gpu_metrics_t::current_vclk0s[AMDSMI_MAX_NUM_CLKS]

In KB.

Definition at line 2343 of file amdsmi.h.

◆ current_dclk0s

uint16_t amdsmi_gpu_metrics_t::current_dclk0s[AMDSMI_MAX_NUM_CLKS]

In KB.

Definition at line 2344 of file amdsmi.h.

◆ jpeg_activity

uint16_t amdsmi_gpu_metrics_t::jpeg_activity[AMDSMI_MAX_NUM_JPEG]

v1.5 additions

JPEG activity percent (encode/decode)

Definition at line 2349 of file amdsmi.h.

◆ pcie_nak_sent_count_acc

uint32_t amdsmi_gpu_metrics_t::pcie_nak_sent_count_acc

PCIE NAK sent accumulated count.

Definition at line 2350 of file amdsmi.h.

◆ pcie_nak_rcvd_count_acc

uint32_t amdsmi_gpu_metrics_t::pcie_nak_rcvd_count_acc

PCIE NAK received accumulated count.

Definition at line 2351 of file amdsmi.h.

◆ accumulation_counter

uint64_t amdsmi_gpu_metrics_t::accumulation_counter

v1.6 additions

Accumulation cycle counter

Definition at line 2356 of file amdsmi.h.

◆ prochot_residency_acc

uint64_t amdsmi_gpu_metrics_t::prochot_residency_acc

Accumulated throttler residencies.

Definition at line 2361 of file amdsmi.h.

◆ ppt_residency_acc

uint64_t amdsmi_gpu_metrics_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))

Definition at line 2378 of file amdsmi.h.

◆ socket_thm_residency_acc

uint64_t amdsmi_gpu_metrics_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))

Definition at line 2395 of file amdsmi.h.

◆ vr_thm_residency_acc

uint64_t amdsmi_gpu_metrics_t::vr_thm_residency_acc

Definition at line 2396 of file amdsmi.h.

◆ hbm_thm_residency_acc

uint64_t amdsmi_gpu_metrics_t::hbm_thm_residency_acc

Definition at line 2397 of file amdsmi.h.

◆ num_partition

uint16_t amdsmi_gpu_metrics_t::num_partition

Number of current partition.

Definition at line 2399 of file amdsmi.h.

◆ xcp_stats

amdsmi_gpu_xcp_metrics_t amdsmi_gpu_metrics_t::xcp_stats[AMDSMI_MAX_NUM_XCP]

XCP (Graphic Cluster Partitions) metrics stats

Definition at line 2401 of file amdsmi.h.

◆ pcie_lc_perf_other_end_recovery

uint32_t amdsmi_gpu_metrics_t::pcie_lc_perf_other_end_recovery

PCIE other end recovery counter.

Definition at line 2404 of file amdsmi.h.

◆ vram_max_bandwidth

uint64_t amdsmi_gpu_metrics_t::vram_max_bandwidth

v1.7 additions

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

Definition at line 2409 of file amdsmi.h.

◆ xgmi_link_status

uint16_t amdsmi_gpu_metrics_t::xgmi_link_status[AMDSMI_MAX_NUM_XGMI_LINKS]

XGMI link status(up/down)

Definition at line 2411 of file amdsmi.h.

◆ temperature_hbm_stacks

uint16_t amdsmi_gpu_metrics_t::temperature_hbm_stacks[AMDSMI_MAX_NUM_HBM_STACKS]

v1.9 additions

temperature of the HBM stacks in C

Definition at line 2417 of file amdsmi.h.

◆ temperature_mid

uint16_t amdsmi_gpu_metrics_t::temperature_mid[AMDSMI_MAX_NUM_MID]

temperature of the MID in C

Definition at line 2418 of file amdsmi.h.

◆ temperature_aid

uint16_t amdsmi_gpu_metrics_t::temperature_aid[AMDSMI_MAX_NUM_AID]

temperature of the AID in C

Definition at line 2419 of file amdsmi.h.

◆ current_uclk_aid

uint16_t amdsmi_gpu_metrics_t::current_uclk_aid[AMDSMI_MAX_NUM_CLKS_PER_AID]

In MHz.

Definition at line 2421 of file amdsmi.h.

◆ current_socclks_mid

uint16_t amdsmi_gpu_metrics_t::current_socclks_mid[AMDSMI_MAX_NUM_CLKS_PER_MID]

In MHz.

Definition at line 2422 of file amdsmi.h.

◆ apu_metrics

amdsmi_apu_metrics_t* amdsmi_gpu_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.

Definition at line 2454 of file amdsmi.h.


The documentation for this struct was generated from the following file: