#define NUM_HBM_INSTANCES 4
#define NUM_XGMI_LINKS 8
#define MAX_GFX_CLKS 8
#define MAX_CLKS 4
#define NUM_VCN 4
#define NUM_JPEG_ENG 32
struct metrics_table_header {
uint16_t structure_size;
uint8_t format_revision;
uint8_t content_revision;
};
struct gpu_metrics_v1_0 {
struct metrics_table_header common_header;
uint64_t system_clock_counter;
uint16_t temperature_edge;
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;
uint16_t average_umc_activity; uint16_t average_mm_activity;
uint16_t average_socket_power;
uint32_t energy_accumulator;
uint16_t average_gfxclk_frequency;
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;
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;
uint16_t current_fan_speed;
uint8_t pcie_link_width;
uint8_t pcie_link_speed; };
struct gpu_metrics_v1_1 {
struct metrics_table_header common_header;
uint16_t temperature_edge;
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;
uint16_t average_umc_activity; uint16_t average_mm_activity;
uint16_t average_socket_power;
uint64_t energy_accumulator;
uint64_t system_clock_counter;
uint16_t average_gfxclk_frequency;
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;
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;
uint16_t current_fan_speed;
uint16_t pcie_link_width;
uint16_t pcie_link_speed;
uint16_t padding;
uint32_t gfx_activity_acc;
uint32_t mem_activity_acc;
uint16_t temperature_hbm[NUM_HBM_INSTANCES];
};
struct gpu_metrics_v1_2 {
struct metrics_table_header common_header;
uint16_t temperature_edge;
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;
uint16_t average_umc_activity; uint16_t average_mm_activity;
uint16_t average_socket_power;
uint64_t energy_accumulator;
uint64_t system_clock_counter;
uint16_t average_gfxclk_frequency;
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;
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;
uint16_t current_fan_speed;
uint16_t pcie_link_width;
uint16_t pcie_link_speed;
uint16_t padding;
uint32_t gfx_activity_acc;
uint32_t mem_activity_acc;
uint16_t temperature_hbm[NUM_HBM_INSTANCES];
uint64_t firmware_timestamp;
};
struct gpu_metrics_v1_3 {
struct metrics_table_header common_header;
uint16_t temperature_edge;
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;
uint16_t average_umc_activity; uint16_t average_mm_activity;
uint16_t average_socket_power;
uint64_t energy_accumulator;
uint64_t system_clock_counter;
uint16_t average_gfxclk_frequency;
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;
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;
uint16_t current_fan_speed;
uint16_t pcie_link_width;
uint16_t pcie_link_speed;
uint16_t padding;
uint32_t gfx_activity_acc;
uint32_t mem_activity_acc;
uint16_t temperature_hbm[NUM_HBM_INSTANCES];
uint64_t firmware_timestamp;
uint16_t voltage_soc;
uint16_t voltage_gfx;
uint16_t voltage_mem;
uint16_t padding1;
uint64_t indep_throttle_status;
};
struct gpu_metrics_v1_4 {
struct metrics_table_header common_header;
uint16_t temperature_hotspot;
uint16_t temperature_mem;
uint16_t temperature_vrsoc;
uint16_t curr_socket_power;
uint16_t average_gfx_activity;
uint16_t average_umc_activity; uint16_t vcn_activity[NUM_VCN];
uint64_t energy_accumulator;
uint64_t system_clock_counter;
uint32_t throttle_status;
uint32_t gfxclk_lock_status;
uint16_t pcie_link_width;
uint16_t pcie_link_speed;
uint16_t xgmi_link_width;
uint16_t xgmi_link_speed;
uint32_t gfx_activity_acc;
uint32_t mem_activity_acc;
uint64_t pcie_bandwidth_acc;
uint64_t pcie_bandwidth_inst;
uint64_t pcie_l0_to_recov_count_acc;
uint64_t pcie_replay_count_acc;
uint64_t pcie_replay_rover_count_acc;
uint64_t xgmi_read_data_acc[NUM_XGMI_LINKS];
uint64_t xgmi_write_data_acc[NUM_XGMI_LINKS];
uint64_t firmware_timestamp;
uint16_t current_gfxclk[MAX_GFX_CLKS];
uint16_t current_socclk[MAX_CLKS];
uint16_t current_vclk0[MAX_CLKS];
uint16_t current_dclk0[MAX_CLKS];
uint16_t current_uclk;
uint16_t padding;
};
struct gpu_metrics_v1_5 {
struct metrics_table_header common_header;
uint16_t temperature_hotspot;
uint16_t temperature_mem;
uint16_t temperature_vrsoc;
uint16_t curr_socket_power;
uint16_t average_gfx_activity;
uint16_t average_umc_activity; uint16_t vcn_activity[NUM_VCN];
uint16_t jpeg_activity[NUM_JPEG_ENG];
uint64_t energy_accumulator;
uint64_t system_clock_counter;
uint32_t throttle_status;
uint32_t gfxclk_lock_status;
uint16_t pcie_link_width;
uint16_t pcie_link_speed;
uint16_t xgmi_link_width;
uint16_t xgmi_link_speed;
uint32_t gfx_activity_acc;
uint32_t mem_activity_acc;
uint64_t pcie_bandwidth_acc;
uint64_t pcie_bandwidth_inst;
uint64_t pcie_l0_to_recov_count_acc;
uint64_t pcie_replay_count_acc;
uint64_t pcie_replay_rover_count_acc;
uint32_t pcie_nak_sent_count_acc;
uint32_t pcie_nak_rcvd_count_acc;
uint64_t xgmi_read_data_acc[NUM_XGMI_LINKS];
uint64_t xgmi_write_data_acc[NUM_XGMI_LINKS];
uint64_t firmware_timestamp;
uint16_t current_gfxclk[MAX_GFX_CLKS];
uint16_t current_socclk[MAX_CLKS];
uint16_t current_vclk0[MAX_CLKS];
uint16_t current_dclk0[MAX_CLKS];
uint16_t current_uclk;
uint16_t padding;
};
struct gpu_metrics_v2_0 {
struct metrics_table_header common_header;
uint64_t system_clock_counter;
uint16_t temperature_gfx; uint16_t temperature_soc; uint16_t temperature_core[8]; uint16_t temperature_l3[2];
uint16_t average_gfx_activity;
uint16_t average_mm_activity;
uint16_t average_socket_power; uint16_t average_cpu_power;
uint16_t average_soc_power;
uint16_t average_gfx_power;
uint16_t average_core_power[8];
uint16_t average_gfxclk_frequency;
uint16_t average_socclk_frequency;
uint16_t average_uclk_frequency;
uint16_t average_fclk_frequency;
uint16_t average_vclk_frequency;
uint16_t average_dclk_frequency;
uint16_t current_gfxclk;
uint16_t current_socclk;
uint16_t current_uclk;
uint16_t current_fclk;
uint16_t current_vclk;
uint16_t current_dclk;
uint16_t current_coreclk[8]; uint16_t current_l3clk[2];
uint32_t throttle_status;
uint16_t fan_pwm;
uint16_t padding;
};
struct gpu_metrics_v2_1 {
struct metrics_table_header common_header;
uint16_t temperature_gfx; uint16_t temperature_soc; uint16_t temperature_core[8]; uint16_t temperature_l3[2];
uint16_t average_gfx_activity;
uint16_t average_mm_activity;
uint64_t system_clock_counter;
uint16_t average_socket_power; uint16_t average_cpu_power;
uint16_t average_soc_power;
uint16_t average_gfx_power;
uint16_t average_core_power[8];
uint16_t average_gfxclk_frequency;
uint16_t average_socclk_frequency;
uint16_t average_uclk_frequency;
uint16_t average_fclk_frequency;
uint16_t average_vclk_frequency;
uint16_t average_dclk_frequency;
uint16_t current_gfxclk;
uint16_t current_socclk;
uint16_t current_uclk;
uint16_t current_fclk;
uint16_t current_vclk;
uint16_t current_dclk;
uint16_t current_coreclk[8]; uint16_t current_l3clk[2];
uint32_t throttle_status;
uint16_t fan_pwm;
uint16_t padding[3];
};
struct gpu_metrics_v2_2 {
struct metrics_table_header common_header;
uint16_t temperature_gfx; uint16_t temperature_soc; uint16_t temperature_core[8]; uint16_t temperature_l3[2];
uint16_t average_gfx_activity;
uint16_t average_mm_activity;
uint64_t system_clock_counter;
uint16_t average_socket_power; uint16_t average_cpu_power;
uint16_t average_soc_power;
uint16_t average_gfx_power;
uint16_t average_core_power[8];
uint16_t average_gfxclk_frequency;
uint16_t average_socclk_frequency;
uint16_t average_uclk_frequency;
uint16_t average_fclk_frequency;
uint16_t average_vclk_frequency;
uint16_t average_dclk_frequency;
uint16_t current_gfxclk;
uint16_t current_socclk;
uint16_t current_uclk;
uint16_t current_fclk;
uint16_t current_vclk;
uint16_t current_dclk;
uint16_t current_coreclk[8]; uint16_t current_l3clk[2];
uint32_t throttle_status;
uint16_t fan_pwm;
uint16_t padding[3];
uint64_t indep_throttle_status;
};
struct gpu_metrics_v2_3 {
struct metrics_table_header common_header;
uint16_t temperature_gfx; uint16_t temperature_soc; uint16_t temperature_core[8]; uint16_t temperature_l3[2];
uint16_t average_gfx_activity;
uint16_t average_mm_activity;
uint64_t system_clock_counter;
uint16_t average_socket_power; uint16_t average_cpu_power;
uint16_t average_soc_power;
uint16_t average_gfx_power;
uint16_t average_core_power[8];
uint16_t average_gfxclk_frequency;
uint16_t average_socclk_frequency;
uint16_t average_uclk_frequency;
uint16_t average_fclk_frequency;
uint16_t average_vclk_frequency;
uint16_t average_dclk_frequency;
uint16_t current_gfxclk;
uint16_t current_socclk;
uint16_t current_uclk;
uint16_t current_fclk;
uint16_t current_vclk;
uint16_t current_dclk;
uint16_t current_coreclk[8]; uint16_t current_l3clk[2];
uint32_t throttle_status;
uint16_t fan_pwm;
uint16_t padding[3];
uint64_t indep_throttle_status;
uint16_t average_temperature_gfx; uint16_t average_temperature_soc; uint16_t average_temperature_core[8]; uint16_t average_temperature_l3[2];
};
struct gpu_metrics_v2_4 {
struct metrics_table_header common_header;
uint16_t temperature_gfx;
uint16_t temperature_soc;
uint16_t temperature_core[8];
uint16_t temperature_l3[2];
uint16_t average_gfx_activity;
uint16_t average_mm_activity;
uint64_t system_clock_counter;
uint16_t average_socket_power;
uint16_t average_cpu_power;
uint16_t average_soc_power;
uint16_t average_gfx_power;
uint16_t average_core_power[8];
uint16_t average_gfxclk_frequency;
uint16_t average_socclk_frequency;
uint16_t average_uclk_frequency;
uint16_t average_fclk_frequency;
uint16_t average_vclk_frequency;
uint16_t average_dclk_frequency;
uint16_t current_gfxclk;
uint16_t current_socclk;
uint16_t current_uclk;
uint16_t current_fclk;
uint16_t current_vclk;
uint16_t current_dclk;
uint16_t current_coreclk[8];
uint16_t current_l3clk[2];
uint32_t throttle_status;
uint16_t fan_pwm;
uint16_t padding[3];
uint64_t indep_throttle_status;
uint16_t average_temperature_gfx;
uint16_t average_temperature_soc;
uint16_t average_temperature_core[8];
uint16_t average_temperature_l3[2];
uint16_t average_cpu_voltage;
uint16_t average_soc_voltage;
uint16_t average_gfx_voltage;
uint16_t average_cpu_current;
uint16_t average_soc_current;
uint16_t average_gfx_current;
};
struct gpu_metrics_v3_0 {
struct metrics_table_header common_header;
uint16_t temperature_gfx;
uint16_t temperature_soc;
uint16_t temperature_core[16];
uint16_t temperature_skin;
uint16_t average_gfx_activity;
uint16_t average_vcn_activity;
uint16_t average_ipu_activity[8];
uint16_t average_core_c0_activity[16];
uint16_t average_dram_reads;
uint16_t average_dram_writes;
uint16_t average_ipu_reads;
uint16_t average_ipu_writes;
uint64_t system_clock_counter;
uint32_t average_socket_power;
uint16_t average_ipu_power;
uint32_t average_apu_power;
uint32_t average_gfx_power;
uint32_t average_dgpu_power;
uint32_t average_all_core_power;
uint16_t average_core_power[16];
uint16_t average_sys_power;
uint16_t stapm_power_limit;
uint16_t current_stapm_power_limit;
uint16_t average_gfxclk_frequency;
uint16_t average_socclk_frequency;
uint16_t average_vpeclk_frequency;
uint16_t average_ipuclk_frequency;
uint16_t average_fclk_frequency;
uint16_t average_vclk_frequency;
uint16_t average_uclk_frequency;
uint16_t average_mpipu_frequency;
uint16_t current_coreclk[16];
uint16_t current_core_maxfreq;
uint16_t current_gfx_maxfreq;
uint32_t throttle_residency_prochot;
uint32_t throttle_residency_spl;
uint32_t throttle_residency_fppt;
uint32_t throttle_residency_sppt;
uint32_t throttle_residency_thm_core;
uint32_t throttle_residency_thm_gfx;
uint32_t throttle_residency_thm_soc;
uint32_t time_filter_alphavalue;
};