pub struct KernelStats {
pub execution_time_ms: f64,
pub memory_bandwidth_gb_s: Option<f64>,
pub estimated_compute_throughput_gflops: Option<f64>,
pub bytes_transferred_to_device: usize,
pub bytes_transferred_from_device: usize,
pub estimated_occupancy_percent: f64,
}Expand description
Kernel execution statistics.
§Honesty of the reported values
This crate does not currently dispatch the sparse-FFT work to a real device runtime (the actual computation is performed on the host CPU). Consequently the fields below are split into two categories:
- Measured — derived from the real problem sizes and the real host
wall-clock time:
Self::execution_time_ms,Self::bytes_transferred_to_deviceandSelf::bytes_transferred_from_device. - Estimated — analytically modelled from the
KernelConfigand the FFT operation count, not measured on hardware:Self::estimated_compute_throughput_gflopsandSelf::estimated_occupancy_percent. They are honest model outputs (seeestimate_kernel_performance), never fabricated constants. When a value genuinely cannot be modelled it is reported asNone.
Fields§
§execution_time_ms: f64Measured wall-clock time of the host computation backing this kernel (ms).
memory_bandwidth_gb_s: Option<f64>Effective memory bandwidth derived from real byte counts and the measured
execution_time_ms (GB/s). None if no time was measured.
estimated_compute_throughput_gflops: Option<f64>Analytically estimated compute throughput from the FFT operation count
and the measured time (GFLOPS). None if it cannot be modelled.
bytes_transferred_to_device: usizeMemory transfers host->device (bytes), computed from real sizes.
bytes_transferred_from_device: usizeMemory transfers device->host (bytes), computed from real sizes.
estimated_occupancy_percent: f64Analytically estimated occupancy from the launch configuration (percent). This is a model output (threads/registers vs. SM limits), not a hardware measurement.
Trait Implementations§
Source§impl Clone for KernelStats
impl Clone for KernelStats
Source§fn clone(&self) -> KernelStats
fn clone(&self) -> KernelStats
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 KernelStats
impl RefUnwindSafe for KernelStats
impl Send for KernelStats
impl Sync for KernelStats
impl Unpin for KernelStats
impl UnsafeUnpin for KernelStats
impl UnwindSafe for KernelStats
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