GemmDispatch

Struct GemmDispatch 

Source
pub struct GemmDispatch {
    pub fp8_blockscaled_prefill: bool,
    pub cublas_gemm: bool,
    pub cublas_fp8: bool,
    pub cutlass_gemm: bool,
    pub cutlass_nvfp4_gemm: bool,
    pub cutlass_nvfp4_qkvz: bool,
    pub cutlass_nvfp4_attn_q: bool,
    pub cutlass_nvfp4_attn_kv: bool,
    pub cutlass_nvfp4_attn_o: bool,
    pub cutlass_nvfp4_ssm_out: bool,
    pub w4a16_variant: u8,
}
Expand description

Which GEMM implementation each projection takes.

Plain Copy data, resolved from the environment at model construction.

Fields§

§fp8_blockscaled_prefill: bool

Block-scaled FP8 prefill (per-128-block weight scales + per-token activation scales). The DEFAULT for block-scaled FP8 checkpoints since 2026-06-17: it matches vLLM’s per-block precision and avoids the single-scale path, whose collapse of per-block dynamic range pushed long-context tool-arg decode into the FP8 argmax-flip regime (B1 drift gauge ~1400 → ~100 once block-scaled prefill is on). Opt out with ATLAS_FP8_SINGLE_SCALE=1 — diagnostic/fallback only.

§cublas_gemm: bool

cuBLASLt BF16 GEMM. The hand-written mma.sync projection GEMMs reach only ~30% of the cuBLAS bf16 ceiling on GB10.

§cublas_fp8: bool

Native-FP8 cuBLASLt GEMM.

§cutlass_gemm: bool

CUTLASS BF16 GEMM, scoped to dense projections using the same FP8→BF16 cached dequant as cuBLASLt.

§cutlass_nvfp4_gemm: bool

Native CUTLASS NVFP4 GEMM: quantizes activations to CUTLASS NVFP4 and consumes transposed Atlas NVFP4 weights after repacking scales into the CUTLASS SM120 layout. Implies every per-projection NVFP4 flag below.

§cutlass_nvfp4_qkvz: bool§cutlass_nvfp4_attn_q: bool§cutlass_nvfp4_attn_kv: bool§cutlass_nvfp4_attn_o: bool§cutlass_nvfp4_ssm_out: bool§w4a16_variant: u8

ATLAS_W4A16_VARIANT — 1/2/3 pin a kernel variant, 0 = auto (v2). A dispatch decision like every other field here, so it belongs on the struct the forward pass already carries rather than in a OnceLock that would pin the first model’s choice.

Implementations§

Source§

impl GemmDispatch

Source

pub fn from_env() -> Self

Resolve from the environment. Called once, when the model is built.

Source

pub fn defaults() -> Self

Everything off, block-scaled FP8 prefill on — the shape a build with no ATLAS_* set in the environment resolves to. Tests construct a context with this instead of mutating the process environment.

Source

pub fn cutlass_nvfp4_attn_qkv(&self, label: &str) -> bool

NVFP4 attention Q/K/V enabled for the named projection.

Trait Implementations§

Source§

impl Clone for GemmDispatch

Source§

fn clone(&self) -> GemmDispatch

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 GemmDispatch

Source§

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

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

impl Default for GemmDispatch

Source§

fn default() -> Self

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

impl PartialEq for GemmDispatch

Source§

fn eq(&self, other: &GemmDispatch) -> 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 GemmDispatch

Source§

impl Eq for GemmDispatch

Source§

impl StructuralPartialEq for GemmDispatch

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
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
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> 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