pub struct PerformanceMetrics {
pub throughput: f32,
pub gpu_utilization: Vec<f32>,
pub memory_usage: Vec<f32>,
pub communication_overhead: f32,
pub compression_ratio: f32,
pub bandwidth_utilization: f32,
pub step_time: Duration,
}Expand description
Performance metrics for distributed training.
§Device telemetry is opt-in
gpu_utilization, memory_usage and bandwidth_utilization are derived
from samples the embedder recorded with
EnhancedDistributedTrainer::record_gpu_telemetry. When a device has never
been sampled there is nothing to report, and this crate does not invent a
number: the two vectors are then left empty and bandwidth_utilization
is 0.0. Treat an empty vector as “unknown”, never as “0% utilized”.
Fields§
§throughput: f32Samples per second, measured by the throughput tracker.
gpu_utilization: Vec<f32>Per-GPU utilization in [0, 1]; empty when no telemetry was recorded.
memory_usage: Vec<f32>Per-GPU memory usage in [0, 1]; empty when no telemetry was recorded.
communication_overhead: f32Fraction of step time spent communicating.
compression_ratio: f32Compression ratio achieved by the gradient codec.
bandwidth_utilization: f32Mean interconnect bandwidth in MB/s; 0.0 when no telemetry was
recorded.
step_time: DurationWall-clock time of the training step.
Trait Implementations§
Source§impl Clone for PerformanceMetrics
impl Clone for PerformanceMetrics
Source§fn clone(&self) -> PerformanceMetrics
fn clone(&self) -> PerformanceMetrics
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for PerformanceMetrics
impl RefUnwindSafe for PerformanceMetrics
impl Send for PerformanceMetrics
impl Sync for PerformanceMetrics
impl Unpin for PerformanceMetrics
impl UnsafeUnpin for PerformanceMetrics
impl UnwindSafe for PerformanceMetrics
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more