Struct gpu_metrics_v1_3

Source
#[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

Source§

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)

Performs copy-assignment from source. Read more
Source§

impl Debug for gpu_metrics_v1_3

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl MetricsInfo for gpu_metrics_v1_3

Source§

fn get_header(&self) -> Option<metrics_table_header>

Source§

fn get_temperature_edge(&self) -> Option<u16>

Celsius
Source§

fn get_temperature_hotspot(&self) -> Option<u16>

Celsius
Source§

fn get_temperature_mem(&self) -> Option<u16>

Celsius
Source§

fn get_temperature_vrgfx(&self) -> Option<u16>

Celsius
Source§

fn get_temperature_vrsoc(&self) -> Option<u16>

Celsius
Source§

fn get_temperature_vrmem(&self) -> Option<u16>

Celsius
Source§

fn get_temperature_gfx(&self) -> Option<u16>

millidegrees Celsius
Source§

fn get_temperature_soc(&self) -> Option<u16>

millidegrees Celsius
Source§

fn get_temperature_core(&self) -> Option<Vec<u16>>

millidegrees Celsius,
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>>

millidegrees Celsius,
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>

SMU v14.0.0 with gpu_metrics_v3_0 supports it.
Source§

fn get_average_gfx_activity(&self) -> Option<u16>

Source§

fn get_average_umc_activity(&self) -> Option<u16>

Source§

fn get_average_mm_activity(&self) -> Option<u16>

Source§

fn get_system_clock_counter(&self) -> Option<u64>

Source§

fn get_average_socket_power(&self) -> Option<u32>

Watts
Source§

fn get_average_gfxclk_frequency(&self) -> Option<u16>

MHz
Source§

fn get_average_socclk_frequency(&self) -> Option<u16>

MHz
Source§

fn get_average_uclk_frequency(&self) -> Option<u16>

UMC Clock, MHz
Source§

fn get_average_fclk_frequency(&self) -> Option<u16>

Fabric Clock, MHz
Source§

fn get_average_vclk_frequency(&self) -> Option<u16>

Video Clock, MHz
Source§

fn get_average_dclk_frequency(&self) -> Option<u16>

Display Clock, MHz
Source§

fn get_average_vclk1_frequency(&self) -> Option<u16>

Video Clock, MHz
Source§

fn get_average_dclk1_frequency(&self) -> Option<u16>

Display Clock, MHz
Source§

fn get_current_gfxclk(&self) -> Option<u16>

MHz
Source§

fn get_current_socclk(&self) -> Option<u16>

MHz
Source§

fn get_current_uclk(&self) -> Option<u16>

UMC Clock, MHz
Source§

fn get_current_fclk(&self) -> Option<u16>

Fablic Clock, MHz
Source§

fn get_current_vclk(&self) -> Option<u16>

Video Clock, MHz
Source§

fn get_current_dclk(&self) -> Option<u16>

Display Clock, MHz
Source§

fn get_current_vclk1(&self) -> Option<u16>

Video Clock, MHz
Source§

fn get_current_dclk1(&self) -> Option<u16>

Display Clock, MHz
Source§

fn get_current_coreclk(&self) -> Option<Vec<u16>>

MHz,
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>>

MHz,
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>

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>

GFXCLK frequency limit enforced on GFX [MHz], SMU v14.0.0 with gpu_metrics_v3_0 supports it.
Source§

fn get_throttle_status(&self) -> Option<u32>

Source§

fn get_current_fan_speed(&self) -> Option<u16>

Source§

fn get_fan_pwm(&self) -> Option<u16>

Clock Lock Status. Each bit corresponds to clock instance
Clock Lock Status. Each bit corresponds to clock instance
Source§

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>

time filtered clocks [MHz], SMU v14.0.0 with gpu_metrics_v3_0 supports it.
Source§

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>>

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>>

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>

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>

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>

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>

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>

Watts
Source§

fn get_average_soc_power(&self) -> Option<u16>

Watts
Source§

fn get_average_gfx_power(&self) -> Option<u16>

Watts
Source§

fn get_average_gfx_power_u32(&self) -> Option<u32>

Watts
Source§

fn get_average_core_power(&self) -> Option<Vec<u16>>

Watts,
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>

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>

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>

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>

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>

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>

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>

time filtered STAPM power limit [mW], SMU v14.0.0 with gpu_metrics_v3_0 supports it.
XGMI bus width and bitrate (in Gbps) only MI300 with gpu_metrics_v1_4 or gpu_metrics_v1_5 supports it.
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]>

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]>

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>

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>

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>

Average Temperature (unit: centi-Celsius)
Source§

fn get_average_temperature_soc(&self) -> Option<u16>

Average Temperature (unit: centi-Celsius)
Source§

fn get_average_temperature_core(&self) -> Option<Vec<u16>>

Average Temperature (unit: centi-Celsius)
Source§

fn get_average_temperature_l3(&self) -> Option<Vec<u16>>

Average Temperature (unit: centi-Celsius)
Source§

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>

Power/Voltage (unit: mV) only Vangogh with gpu_metrics_v2_4 supports it.
Source§

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>

Power/Current (unit: mA), only Vangogh with gpu_metrics_v2_4 supports it.
Source§

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>

Power/Voltage (unit: mV) only Vangogh with gpu_metrics_v2_4 supports it.
Source§

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>

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]>

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]>

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]>

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]>

Only MI300 with gpu_metrics_v1_4 or gpu_metrics_v1_5 supports it.
Source§

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]>

Utilization (%), only MI300 with gpu_metrics_v1_5 supports it.
Source§

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>

Strix Point, Krackan Point and Strix Halo supports it.
Source§

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>

Strix Point, Krackan Point and Strix Halo supports it.
Source§

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>

Strix Point, Krackan Point and Strix Halo supports it.
Source§

fn get_throttle_residency_thm_soc(&self) -> Option<u32>

Strix Point, Krackan Point and Strix Halo supports it.
Source§

fn get_gfx_activity_acc(&self) -> Option<u32>

Source§

fn get_mem_activity_acc(&self) -> Option<u32>

Source§

fn get_temperature_hbm(&self) -> Option<[u16; 4]>

Only Aldebaran (MI200) supports it.
Source§

fn get_voltage_soc(&self) -> Option<u16>

mV
Source§

fn get_voltage_gfx(&self) -> Option<u16>

mV
Source§

fn get_voltage_mem(&self) -> Option<u16>

mV
Source§

fn get_indep_throttle_status(&self) -> Option<u64>

Source§

fn get_throttle_status_info(&self) -> Option<ThrottleStatus>

Source§

impl Copy for gpu_metrics_v1_3

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.