Skip to main content

SpecTelemetry

Struct SpecTelemetry 

Source
pub struct SpecTelemetry {
    pub rounds: u64,
    pub drafted: u64,
    pub accepted: u64,
    pub pos_drafted: [u64; 8],
    pub pos_accepted: [u64; 8],
}
Expand description

Always-on per-draft-position acceptance telemetry (lane/accept-telemetry, 2026-08-05 — the llama.cpp #26389 / vLLM spec-decode counter schema, upstream-sweeps 2026-08-05). Lives on the SpecSession and accumulates across bursts; the serve worker diffs a stashed copy per burst for its per-model /metrics aggregation and per-request usage. Same normalization as the [spec-stats] line: p-min-discarded chain tokens are counted in NEITHER drafted nor accepted.

Fields§

§rounds: u64

verify rounds completed (a round-stream burst counts each of its M rounds).

§drafted: u64

tokens drafted / accepted across all rounds.

§accepted: u64§pos_drafted: [u64; 8]

how often draft position j (0-based within a round’s chain) was offered / accepted. Positions >= SPEC_TELEM_POS are untracked (totals still count them). The opt-in round-stream arm (MEMRA_SPEC_STREAM=1) reads back only totals, so under it these arrays cover the standard-path rounds only and their sums may undercount the totals.

§pos_accepted: [u64; 8]

Implementations§

Source§

impl SpecTelemetry

Source

pub fn delta_since(&self, prev: &SpecTelemetry) -> SpecTelemetry

Fieldwise self - prev — the worker’s per-burst delta off a copy stashed before the burst call. Saturating: a caller diffing against the wrong snapshot gets zeros, not a wrapped counter.

Source

pub fn merge(&mut self, d: &SpecTelemetry)

Fieldwise self += d — the worker’s per-model aggregation.

Source

pub fn tau(&self) -> f64

Mean accepted draft-prefix length per verify round (tau).

Trait Implementations§

Source§

impl Clone for SpecTelemetry

Source§

fn clone(&self) -> SpecTelemetry

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for SpecTelemetry

Source§

impl Debug for SpecTelemetry

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for SpecTelemetry

Source§

fn default() -> SpecTelemetry

Returns the “default value” for a type. Read more

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.