pub struct CircuitBench {
pub label: String,
pub kind: CircuitKind,
pub backend: String,
pub ms_per_gemv: f64,
pub gflops: f64,
pub upload_gbps: f64,
pub rel_score: f64,
pub decode_proxy_tok_s: Option<f64>,
}Expand description
One benchmarked circuit.
Fields§
§label: String§kind: CircuitKind§backend: String§ms_per_gemv: f64Milliseconds per GEMV dispatch (lower is faster).
gflops: f64Effective GFLOP/s for the GEMV (2·n·n flops / time).
upload_gbps: f64Host→device upload bandwidth (GB/s) for a representative buffer. The transfer axis (D31):
PCIe for a discrete GPU; staging-path for an iGPU (wgpu can’t show true zero-copy → relative
signal); f64::INFINITY for the CPU (data is already in its pool — no transfer). Decode that
streams weights to a device pays this every token; in-pool compute does not.
rel_score: f64Relative score in [0,1]: fastest circuit = 1.0, others = fastest_ms / this_ms (or highest decode_proxy_tok_s when decode ranking is active).
decode_proxy_tok_s: Option<f64>Optional real-decode proxy (tok/s) from a short resident decode on a small model. When present for ≥1 GPU circuit, passport ranking prefers this over GEMV µs.
Trait Implementations§
Source§impl Clone for CircuitBench
impl Clone for CircuitBench
Source§fn clone(&self) -> CircuitBench
fn clone(&self) -> CircuitBench
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for CircuitBench
impl Debug for CircuitBench
Source§impl<'de> Deserialize<'de> for CircuitBench
impl<'de> Deserialize<'de> for CircuitBench
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for CircuitBench
impl RefUnwindSafe for CircuitBench
impl Send for CircuitBench
impl Sync for CircuitBench
impl Unpin for CircuitBench
impl UnsafeUnpin for CircuitBench
impl UnwindSafe for CircuitBench
Blanket Implementations§
§impl<S, A> Aggregate<Result<S, Error>> for Awhere
A: Aggregate<S>,
impl<S, A> Aggregate<Result<S, Error>> for Awhere
A: Aggregate<S>,
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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