#[repr(C)]pub struct gpu_metrics_v1_3 {Show 41 fields
pub common_header: metrics_table_header,
pub temperature_edge: u16,
pub temperature_hotspot: u16,
pub temperature_mem: u16,
pub temperature_vrgfx: u16,
pub temperature_vrsoc: u16,
pub temperature_vrmem: u16,
pub average_gfx_activity: u16,
pub average_umc_activity: u16,
pub average_mm_activity: u16,
pub average_socket_power: u16,
pub energy_accumulator: u64,
pub system_clock_counter: u64,
pub average_gfxclk_frequency: u16,
pub average_socclk_frequency: u16,
pub average_uclk_frequency: u16,
pub average_vclk0_frequency: u16,
pub average_dclk0_frequency: u16,
pub average_vclk1_frequency: u16,
pub average_dclk1_frequency: u16,
pub current_gfxclk: u16,
pub current_socclk: u16,
pub current_uclk: u16,
pub current_vclk0: u16,
pub current_dclk0: u16,
pub current_vclk1: u16,
pub current_dclk1: u16,
pub throttle_status: u32,
pub current_fan_speed: u16,
pub pcie_link_width: u16,
pub pcie_link_speed: u16,
pub padding: u16,
pub gfx_activity_acc: u32,
pub mem_activity_acc: u32,
pub temperature_hbm: [u16; 4],
pub firmware_timestamp: u64,
pub voltage_soc: u16,
pub voltage_gfx: u16,
pub voltage_mem: u16,
pub padding1: u16,
pub indep_throttle_status: u64,
}
Fields§
§common_header: metrics_table_header
§temperature_edge: u16
§temperature_hotspot: u16
§temperature_mem: u16
§temperature_vrgfx: u16
§temperature_vrsoc: u16
§temperature_vrmem: u16
§average_gfx_activity: u16
§average_umc_activity: u16
§average_mm_activity: u16
§average_socket_power: u16
§energy_accumulator: u64
§system_clock_counter: u64
§average_gfxclk_frequency: u16
§average_socclk_frequency: u16
§average_uclk_frequency: u16
§average_vclk0_frequency: u16
§average_dclk0_frequency: u16
§average_vclk1_frequency: u16
§average_dclk1_frequency: u16
§current_gfxclk: u16
§current_socclk: u16
§current_uclk: u16
§current_vclk0: u16
§current_dclk0: u16
§current_vclk1: u16
§current_dclk1: u16
§throttle_status: u32
§current_fan_speed: u16
§pcie_link_width: u16
§pcie_link_speed: u16
§padding: u16
§gfx_activity_acc: u32
§mem_activity_acc: u32
§temperature_hbm: [u16; 4]
§firmware_timestamp: u64
§voltage_soc: u16
§voltage_gfx: u16
§voltage_mem: u16
§padding1: u16
§indep_throttle_status: u64
Trait Implementations§
Source§impl Clone for gpu_metrics_v1_3
impl Clone for gpu_metrics_v1_3
Source§fn clone(&self) -> gpu_metrics_v1_3
fn clone(&self) -> gpu_metrics_v1_3
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl Debug for gpu_metrics_v1_3
impl Debug for gpu_metrics_v1_3
Source§impl MetricsInfo for gpu_metrics_v1_3
impl MetricsInfo for gpu_metrics_v1_3
fn get_header(&self) -> Option<metrics_table_header>
Source§fn get_temperature_edge(&self) -> Option<u16>
fn get_temperature_edge(&self) -> Option<u16>
Celsius
Source§fn get_temperature_hotspot(&self) -> Option<u16>
fn get_temperature_hotspot(&self) -> Option<u16>
Celsius
Source§fn get_temperature_mem(&self) -> Option<u16>
fn get_temperature_mem(&self) -> Option<u16>
Celsius
Source§fn get_temperature_vrgfx(&self) -> Option<u16>
fn get_temperature_vrgfx(&self) -> Option<u16>
Celsius
Source§fn get_temperature_vrsoc(&self) -> Option<u16>
fn get_temperature_vrsoc(&self) -> Option<u16>
Celsius
Source§fn get_temperature_vrmem(&self) -> Option<u16>
fn get_temperature_vrmem(&self) -> Option<u16>
Celsius
Source§fn get_temperature_gfx(&self) -> Option<u16>
fn get_temperature_gfx(&self) -> Option<u16>
millidegrees Celsius
Source§fn get_temperature_soc(&self) -> Option<u16>
fn get_temperature_soc(&self) -> Option<u16>
millidegrees Celsius
Source§fn get_temperature_core(&self) -> Option<Vec<u16>>
fn get_temperature_core(&self) -> Option<Vec<u16>>
millidegrees Celsius,
For VanGogh APU, only the first half is a valid value.
ref:
For VanGogh APU, only the first half is a valid value.
ref:
drivers/gpu/drm/amd/pm/swsmu/smu11/vangogh_ppt.c
Source§fn get_temperature_l3(&self) -> Option<Vec<u16>>
fn get_temperature_l3(&self) -> Option<Vec<u16>>
millidegrees Celsius,
For VanGogh APU, only the first half is a valid value.
ref:
For VanGogh APU, only the first half is a valid value.
ref:
drivers/gpu/drm/amd/pm/swsmu/smu11/vangogh_ppt.c
Source§fn get_temperature_skin(&self) -> Option<u16>
fn get_temperature_skin(&self) -> Option<u16>
SMU v14.0.0 with gpu_metrics_v3_0 supports it.
fn get_average_gfx_activity(&self) -> Option<u16>
fn get_average_umc_activity(&self) -> Option<u16>
fn get_average_mm_activity(&self) -> Option<u16>
fn get_system_clock_counter(&self) -> Option<u64>
Source§fn get_average_socket_power(&self) -> Option<u32>
fn get_average_socket_power(&self) -> Option<u32>
Watts
Source§fn get_average_gfxclk_frequency(&self) -> Option<u16>
fn get_average_gfxclk_frequency(&self) -> Option<u16>
MHz
Source§fn get_average_socclk_frequency(&self) -> Option<u16>
fn get_average_socclk_frequency(&self) -> Option<u16>
MHz
Source§fn get_average_uclk_frequency(&self) -> Option<u16>
fn get_average_uclk_frequency(&self) -> Option<u16>
UMC Clock, MHz
Source§fn get_average_fclk_frequency(&self) -> Option<u16>
fn get_average_fclk_frequency(&self) -> Option<u16>
Fabric Clock, MHz
Source§fn get_average_vclk_frequency(&self) -> Option<u16>
fn get_average_vclk_frequency(&self) -> Option<u16>
Video Clock, MHz
Source§fn get_average_dclk_frequency(&self) -> Option<u16>
fn get_average_dclk_frequency(&self) -> Option<u16>
Display Clock, MHz
Source§fn get_average_vclk1_frequency(&self) -> Option<u16>
fn get_average_vclk1_frequency(&self) -> Option<u16>
Video Clock, MHz
Source§fn get_average_dclk1_frequency(&self) -> Option<u16>
fn get_average_dclk1_frequency(&self) -> Option<u16>
Display Clock, MHz
Source§fn get_current_gfxclk(&self) -> Option<u16>
fn get_current_gfxclk(&self) -> Option<u16>
MHz
Source§fn get_current_socclk(&self) -> Option<u16>
fn get_current_socclk(&self) -> Option<u16>
MHz
Source§fn get_current_uclk(&self) -> Option<u16>
fn get_current_uclk(&self) -> Option<u16>
UMC Clock, MHz
Source§fn get_current_fclk(&self) -> Option<u16>
fn get_current_fclk(&self) -> Option<u16>
Fablic Clock, MHz
Source§fn get_current_vclk(&self) -> Option<u16>
fn get_current_vclk(&self) -> Option<u16>
Video Clock, MHz
Source§fn get_current_dclk(&self) -> Option<u16>
fn get_current_dclk(&self) -> Option<u16>
Display Clock, MHz
Source§fn get_current_vclk1(&self) -> Option<u16>
fn get_current_vclk1(&self) -> Option<u16>
Video Clock, MHz
Source§fn get_current_dclk1(&self) -> Option<u16>
fn get_current_dclk1(&self) -> Option<u16>
Display Clock, MHz
Source§fn get_current_coreclk(&self) -> Option<Vec<u16>>
fn get_current_coreclk(&self) -> Option<Vec<u16>>
MHz,
For VanGogh APU, only the first half is a valid value.
ref:
For VanGogh APU, only the first half is a valid value.
ref:
drivers/gpu/drm/amd/pm/swsmu/smu11/vangogh_ppt.c
Source§fn get_current_l3clk(&self) -> Option<Vec<u16>>
fn get_current_l3clk(&self) -> Option<Vec<u16>>
MHz,
For VanGogh APU, only the first half is a valid value.
ref:
For VanGogh APU, only the first half is a valid value.
ref:
drivers/gpu/drm/amd/pm/swsmu/smu11/vangogh_ppt.c
Source§fn get_current_core_maxfreq(&self) -> Option<u16>
fn get_current_core_maxfreq(&self) -> Option<u16>
CCLK frequency limit enforced on classic cores [MHz],
SMU v14.0.0 with gpu_metrics_v3_0 supports it.
Source§fn get_current_gfx_maxfreq(&self) -> Option<u16>
fn get_current_gfx_maxfreq(&self) -> Option<u16>
GFXCLK frequency limit enforced on GFX [MHz],
SMU v14.0.0 with gpu_metrics_v3_0 supports it.
fn get_throttle_status(&self) -> Option<u32>
fn get_current_fan_speed(&self) -> Option<u16>
fn get_fan_pwm(&self) -> Option<u16>
Source§fn get_pcie_link_width(&self) -> Option<u16>
fn get_pcie_link_width(&self) -> Option<u16>
Clock Lock Status. Each bit corresponds to clock instance
Source§fn get_pcie_link_speed(&self) -> Option<u16>
fn get_pcie_link_speed(&self) -> Option<u16>
Clock Lock Status. Each bit corresponds to clock instance
Source§fn get_average_vpeclk_frequency(&self) -> Option<u16>
fn get_average_vpeclk_frequency(&self) -> Option<u16>
time filtered clocks [MHz],
SMU v14.0.0 with gpu_metrics_v3_0 supports it.
Source§fn get_average_ipuclk_frequency(&self) -> Option<u16>
fn get_average_ipuclk_frequency(&self) -> Option<u16>
time filtered clocks [MHz],
SMU v14.0.0 with gpu_metrics_v3_0 supports it.
Source§fn get_average_mpipu_frequency(&self) -> Option<u16>
fn get_average_mpipu_frequency(&self) -> Option<u16>
time filtered clocks [MHz],
SMU v14.0.0 with gpu_metrics_v3_0 supports it.
Source§fn get_average_ipu_activity(&self) -> Option<Vec<u16>>
fn get_average_ipu_activity(&self) -> Option<Vec<u16>>
time filtered IPU per-column busy % [0-100],
SMU v14.0.0 with gpu_metrics_v3_0 supports it.
Source§fn get_average_core_c0_activity(&self) -> Option<Vec<u16>>
fn get_average_core_c0_activity(&self) -> Option<Vec<u16>>
time filtered per-core C0 residency % [0-100],
SMU v14.0.0 with gpu_metrics_v3_0 supports it.
Source§fn get_average_dram_reads(&self) -> Option<u16>
fn get_average_dram_reads(&self) -> Option<u16>
time filtered DRAM read bandwidth [MB/sec],
SMU v14.0.0 with gpu_metrics_v3_0 supports it.
Source§fn get_average_dram_writes(&self) -> Option<u16>
fn get_average_dram_writes(&self) -> Option<u16>
time filtered DRAM write bandwidth [MB/sec],
SMU v14.0.0 with gpu_metrics_v3_0 supports it.
Source§fn get_average_ipu_reads(&self) -> Option<u16>
fn get_average_ipu_reads(&self) -> Option<u16>
time filtered IPU read bandwidth [MB/sec],
SMU v14.0.0 with gpu_metrics_v3_0 supports it.
Source§fn get_average_ipu_writes(&self) -> Option<u16>
fn get_average_ipu_writes(&self) -> Option<u16>
time filtered IPU write bandwidth [MB/sec],
SMU v14.0.0 with gpu_metrics_v3_0 supports it.
Source§fn get_average_cpu_power(&self) -> Option<u16>
fn get_average_cpu_power(&self) -> Option<u16>
Watts
Source§fn get_average_soc_power(&self) -> Option<u16>
fn get_average_soc_power(&self) -> Option<u16>
Watts
Source§fn get_average_gfx_power(&self) -> Option<u16>
fn get_average_gfx_power(&self) -> Option<u16>
Watts
Source§fn get_average_gfx_power_u32(&self) -> Option<u32>
fn get_average_gfx_power_u32(&self) -> Option<u32>
Watts
Source§fn get_average_core_power(&self) -> Option<Vec<u16>>
fn get_average_core_power(&self) -> Option<Vec<u16>>
Watts,
For VanGogh APU, only the first half is a valid value.
ref:
For VanGogh APU, only the first half is a valid value.
ref:
drivers/gpu/drm/amd/pm/swsmu/smu11/vangogh_ppt.c
Source§fn get_average_ipu_power(&self) -> Option<u16>
fn get_average_ipu_power(&self) -> Option<u16>
time filtered IPU power [mW],
SMU v14.0.0 with gpu_metrics_v3_0 supports it.
Source§fn get_average_apu_power(&self) -> Option<u32>
fn get_average_apu_power(&self) -> Option<u32>
time filtered APU power [mW],
SMU v14.0.0 with gpu_metrics_v3_0 supports it.
Source§fn get_average_dgpu_power(&self) -> Option<u32>
fn get_average_dgpu_power(&self) -> Option<u32>
time filtered dGPU power [mW],
SMU v14.0.0 with gpu_metrics_v3_0 supports it.
Source§fn get_average_all_core_power(&self) -> Option<u32>
fn get_average_all_core_power(&self) -> Option<u32>
time filtered sum of core power across all cores in the socket [mW],
SMU v14.0.0 with gpu_metrics_v3_0 supports it.
Source§fn get_average_sys_power(&self) -> Option<u16>
fn get_average_sys_power(&self) -> Option<u16>
time filtered total system power [mW],
SMU v14.0.0 with gpu_metrics_v3_0 supports it.
Source§fn get_stapm_power_limit(&self) -> Option<u16>
fn get_stapm_power_limit(&self) -> Option<u16>
maximum IRM defined STAPM power limit [mW],
SMU v14.0.0 with gpu_metrics_v3_0 supports it.
Source§fn get_current_stapm_power_limit(&self) -> Option<u16>
fn get_current_stapm_power_limit(&self) -> Option<u16>
time filtered STAPM power limit [mW],
SMU v14.0.0 with gpu_metrics_v3_0 supports it.
Source§fn get_xgmi_link_width(&self) -> Option<u16>
fn get_xgmi_link_width(&self) -> Option<u16>
XGMI bus width and bitrate (in Gbps)
only MI300 with gpu_metrics_v1_4 or gpu_metrics_v1_5 supports it.
Source§fn get_xgmi_link_speed(&self) -> Option<u16>
fn get_xgmi_link_speed(&self) -> Option<u16>
XGMI bus width and bitrate (in Gbps)
only MI300 with gpu_metrics_v1_4 or gpu_metrics_v1_5 supports it.
Source§fn get_xgmi_read_data_acc(&self) -> Option<[u64; 8]>
fn get_xgmi_read_data_acc(&self) -> Option<[u64; 8]>
XGMI accumulated data transfer size(KiloBytes),
only MI300 with gpu_metrics_v1_4 or gpu_metrics_v1_5 supports it.
Source§fn get_xgmi_write_data_acc(&self) -> Option<[u64; 8]>
fn get_xgmi_write_data_acc(&self) -> Option<[u64; 8]>
XGMI accumulated data transfer size(KiloBytes),
only MI300 with gpu_metrics_v1_4 or gpu_metrics_v1_5 supports it.
Source§fn get_pcie_bandwidth_acc(&self) -> Option<u64>
fn get_pcie_bandwidth_acc(&self) -> Option<u64>
PCIE accumulated bandwidth (GB/sec),
only MI300 with gpu_metrics_v1_4 or gpu_metrics_v1_5 supports it.
Source§fn get_pcie_bandwidth_inst(&self) -> Option<u64>
fn get_pcie_bandwidth_inst(&self) -> Option<u64>
PCIE instantaneous bandwidth (GB/sec)
only MI300 with gpu_metrics_v1_4 or gpu_metrics_v1_5 supports it.
Source§fn get_average_temperature_gfx(&self) -> Option<u16>
fn get_average_temperature_gfx(&self) -> Option<u16>
Average Temperature (unit: centi-Celsius)
Source§fn get_average_temperature_soc(&self) -> Option<u16>
fn get_average_temperature_soc(&self) -> Option<u16>
Average Temperature (unit: centi-Celsius)
Source§fn get_average_temperature_core(&self) -> Option<Vec<u16>>
fn get_average_temperature_core(&self) -> Option<Vec<u16>>
Average Temperature (unit: centi-Celsius)
Source§fn get_average_temperature_l3(&self) -> Option<Vec<u16>>
fn get_average_temperature_l3(&self) -> Option<Vec<u16>>
Average Temperature (unit: centi-Celsius)
Source§fn get_average_cpu_voltage(&self) -> Option<u16>
fn get_average_cpu_voltage(&self) -> Option<u16>
Power/Voltage (unit: mV)
only Vangogh with gpu_metrics_v2_4 supports it.
Source§fn get_average_soc_voltage(&self) -> Option<u16>
fn get_average_soc_voltage(&self) -> Option<u16>
Power/Voltage (unit: mV)
only Vangogh with gpu_metrics_v2_4 supports it.
Source§fn get_average_gfx_voltage(&self) -> Option<u16>
fn get_average_gfx_voltage(&self) -> Option<u16>
Power/Voltage (unit: mV)
only Vangogh with gpu_metrics_v2_4 supports it.
Source§fn get_average_cpu_current(&self) -> Option<u16>
fn get_average_cpu_current(&self) -> Option<u16>
Power/Current (unit: mA),
only Vangogh with gpu_metrics_v2_4 supports it.
Source§fn get_average_soc_current(&self) -> Option<u16>
fn get_average_soc_current(&self) -> Option<u16>
Power/Voltage (unit: mV)
only Vangogh with gpu_metrics_v2_4 supports it.
Source§fn get_average_gfx_current(&self) -> Option<u16>
fn get_average_gfx_current(&self) -> Option<u16>
Power/Voltage (unit: mV)
only Vangogh with gpu_metrics_v2_4 supports it.
Source§fn get_gfxclk_lock_status(&self) -> Option<u32>
fn get_gfxclk_lock_status(&self) -> Option<u32>
Clock Lock Status. Each bit corresponds to clock instance,
only MI300 with gpu_metrics_v1_4 or gpu_metrics_v1_5 supports it.
Source§fn get_current_socket_power(&self) -> Option<u16>
fn get_current_socket_power(&self) -> Option<u16>
Only MI300 with gpu_metrics_v1_4 or gpu_metrics_v1_5 supports it.
Source§fn get_all_instances_current_gfxclk(&self) -> Option<[u16; 8]>
fn get_all_instances_current_gfxclk(&self) -> Option<[u16; 8]>
All instances (XCC) current gfx clock,
only MI300 with gpu_metrics_v1_4 or gpu_metrics_v1_5 supports it.
Source§fn get_all_instances_current_socclk(&self) -> Option<[u16; 4]>
fn get_all_instances_current_socclk(&self) -> Option<[u16; 4]>
All instances current soc clock,
only MI300 with gpu_metrics_v1_4 or gpu_metrics_v1_5 supports it.
Source§fn get_all_instances_current_vclk0(&self) -> Option<[u16; 4]>
fn get_all_instances_current_vclk0(&self) -> Option<[u16; 4]>
Only MI300 with gpu_metrics_v1_4 or gpu_metrics_v1_5 supports it.
Source§fn get_all_instances_current_dclk0(&self) -> Option<[u16; 4]>
fn get_all_instances_current_dclk0(&self) -> Option<[u16; 4]>
Only MI300 with gpu_metrics_v1_4 or gpu_metrics_v1_5 supports it.
Source§fn get_all_vcn_activity(&self) -> Option<[u16; 4]>
fn get_all_vcn_activity(&self) -> Option<[u16; 4]>
Utilization (%), only MI300 with gpu_metrics_v1_4 or gpu_metrics_v1_5 supports it.
Source§fn get_all_jpeg_activity(&self) -> Option<[u16; 32]>
fn get_all_jpeg_activity(&self) -> Option<[u16; 32]>
Utilization (%), only MI300 with gpu_metrics_v1_5 supports it.
Source§fn get_throttle_residency_prochot(&self) -> Option<u32>
fn get_throttle_residency_prochot(&self) -> Option<u32>
Strix Point, Krackan Point and Strix Halo supports it.
Source§fn get_throttle_residency_spl(&self) -> Option<u32>
fn get_throttle_residency_spl(&self) -> Option<u32>
Strix Point, Krackan Point and Strix Halo supports it.
Source§fn get_throttle_residency_fppt(&self) -> Option<u32>
fn get_throttle_residency_fppt(&self) -> Option<u32>
Strix Point, Krackan Point and Strix Halo supports it.
Source§fn get_throttle_residency_sppt(&self) -> Option<u32>
fn get_throttle_residency_sppt(&self) -> Option<u32>
Strix Point, Krackan Point and Strix Halo supports it.
Source§fn get_throttle_residency_thm_core(&self) -> Option<u32>
fn get_throttle_residency_thm_core(&self) -> Option<u32>
Strix Point, Krackan Point and Strix Halo supports it.
Source§fn get_throttle_residency_thm_gfx(&self) -> Option<u32>
fn get_throttle_residency_thm_gfx(&self) -> Option<u32>
Strix Point, Krackan Point and Strix Halo supports it.
Source§fn get_throttle_residency_thm_soc(&self) -> Option<u32>
fn get_throttle_residency_thm_soc(&self) -> Option<u32>
Strix Point, Krackan Point and Strix Halo supports it.
fn get_gfx_activity_acc(&self) -> Option<u32>
fn get_mem_activity_acc(&self) -> Option<u32>
Source§fn get_voltage_soc(&self) -> Option<u16>
fn get_voltage_soc(&self) -> Option<u16>
mV
Source§fn get_voltage_gfx(&self) -> Option<u16>
fn get_voltage_gfx(&self) -> Option<u16>
mV
Source§fn get_voltage_mem(&self) -> Option<u16>
fn get_voltage_mem(&self) -> Option<u16>
mV
fn get_indep_throttle_status(&self) -> Option<u64>
fn get_throttle_status_info(&self) -> Option<ThrottleStatus>
impl Copy for gpu_metrics_v1_3
Auto Trait Implementations§
impl Freeze for gpu_metrics_v1_3
impl RefUnwindSafe for gpu_metrics_v1_3
impl Send for gpu_metrics_v1_3
impl Sync for gpu_metrics_v1_3
impl Unpin for gpu_metrics_v1_3
impl UnwindSafe for gpu_metrics_v1_3
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more