AttnFacts

Struct AttnFacts 

Source
pub struct AttnFacts {
    pub attn_layer_idx: usize,
    pub kv_dtype: KvCacheDtype,
    pub num_q_heads: u32,
    pub num_kv_heads: u32,
    pub head_dim: u32,
    pub gated: bool,
    pub rope: RopeFacts,
    pub sliding_window: u32,
    pub softmax_scale: f32,
    pub paged_decode_plain_rows: u128,
}
Expand description

2026-09-28: What a full-attention layer’s kernels need beyond its weights.

Fields§

§attn_layer_idx: usize

2026-09-28: This layer’s index among the attention layers: its KV-cache layer.

§kv_dtype: KvCacheDtype

2026-09-28: KV-cache dtype of this layer.

§num_q_heads: u32

2026-09-28: Query heads.

§num_kv_heads: u32

2026-09-28: KV heads.

§head_dim: u32

2026-09-28: Head dim.

§gated: bool

2026-09-28: Q carries an output gate ([Q | Gate] after the split).

§rope: RopeFacts

2026-09-28: Rotary embedding.

§sliding_window: u32

2026-09-28: Sliding window in positions; 0 for none.

§softmax_scale: f32

2026-09-28: Softmax scale (effective_attn_scale).

§paged_decode_plain_rows: u128

2026-09-28: Bit r - 1 is set when the layer’s own decode routing at r rows picks the plain non-split paged kernel (paged_decode_k): no split-K pair, no GQA-packed kernel, no 512-wide head kernel.

Implementations§

Source§

impl AttnFacts

Source

pub fn paged_decode_plain(&self, rows: u64) -> bool

2026-09-28: The plain paged kernel serves rows rows (1..=128).

Trait Implementations§

Source§

impl Clone for AttnFacts

Source§

fn clone(&self) -> AttnFacts

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for AttnFacts

Source§

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

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

impl PartialEq for AttnFacts

Source§

fn eq(&self, other: &AttnFacts) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for AttnFacts

Source§

impl StructuralPartialEq for AttnFacts

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.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> Same for T

Source§

type Output = T

Should always be Self
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.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,