Skip to main content

ThroughputBenchmark

Struct ThroughputBenchmark 

Source
pub struct ThroughputBenchmark {
    pub warmup_runs: usize,
    pub measurement_runs: usize,
    pub prompt: String,
    pub max_tokens: usize,
}
Expand description

Builder for throughput benchmark runs.

Collects timing data from caller-supplied closures rather than running the model directly, keeping this crate decoupled from the inference engine.

Fields§

§warmup_runs: usize

Number of warm-up runs (results discarded).

§measurement_runs: usize

Number of measurement runs (results aggregated).

§prompt: String

The prompt used for benchmarking.

§max_tokens: usize

Maximum tokens to generate per run.

Implementations§

Source§

impl ThroughputBenchmark

Source

pub fn new(prompt: &str, max_tokens: usize) -> Self

Create a benchmark with 3 warm-up runs and 10 measurement runs.

Source

pub fn with_warmup(self, warmup: usize) -> Self

Override the number of warm-up runs.

Source

pub fn with_runs(self, runs: usize) -> Self

Override the number of measurement runs.

Source

pub fn from_timings( &self, run_timings: &[(f32, f32, usize)], ) -> ThroughputResult

Run the benchmark using caller-supplied timing data.

run_timings is a slice of (prefill_ms, decode_ms, tokens_generated) tuples, one per measurement run (warm-up timings should already be excluded by the caller).

This method computes aggregate statistics from the provided data without calling the inference engine itself, allowing flexible integration.

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