pub struct GpuUtilization {
pub util_percent: u8,
pub encoder_percent: u8,
pub decoder_percent: u8,
pub mem_used_mib: u32,
pub mem_total_mib: u32,
pub temperature_c: Option<u8>,
}Expand description
Per-GPU live utilisation snapshot. Read on every load tick (5 s
cadence) by the Phase 2 (2026-05-07) worker_load reporter and
folded into the WsGpuLeaseEntry for the wire. NVIDIA values come
from NVML; Intel values come from sysfs gt_cur_freq_mhz /
gt_max_freq_mhz for a coarse “busy” proxy + mem_info_vram_*
for memory; AMD is currently a no-op (returns all zeros) — radeontop
/ amdsmi integration is the proper fix and is deferred per the
brief’s “Phase 1 stand-in for Intel; AMD skipped” guidance.
Fields§
§util_percent: u80..=100 compute / overall GPU busy.
encoder_percent: u80..=100 NVENC ASIC busy (encoder pipeline).
decoder_percent: u80..=100 NVDEC ASIC busy (decoder pipeline).
mem_used_mib: u32VRAM in use (MiB).
mem_total_mib: u32VRAM total (MiB) — duplicated from the static device record so the wire entry is self-contained for the FE bar render.
temperature_c: Option<u8>Core temperature in °C; None when the platform path doesn’t
expose it.
Trait Implementations§
Source§impl Clone for GpuUtilization
impl Clone for GpuUtilization
Source§fn clone(&self) -> GpuUtilization
fn clone(&self) -> GpuUtilization
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more