DenseFp8Plan

Struct DenseFp8Plan 

Source
pub struct DenseFp8Plan {
    pub ffn_nvfp4: bool,
    pub attn_nvfp4: bool,
    pub attn_fp8_twins: Fp8TwinSet,
}
Expand description

2026-09-25: Which derived copies one dense layer builds beyond the checkpoint bytes. Each field means “build this copy”.

Fields§

§ffn_nvfp4: bool

2026-09-25: The NVFP4 gate/up/down weights and their transposed twins (fp8_lut::load_dense_ffn).

§attn_nvfp4: bool

2026-09-25: The NVFP4 q/k/v/o weights, their transposed twins, and the fused [q|k|v] transposed twin.

§attn_fp8_twins: Fp8TwinSet

2026-09-25: Which FP8 prefill twins transpose_fp8_for_prefill_selected builds.

Implementations§

Source§

impl DenseFp8Plan

Source

pub fn resolve(i: DenseFp8Inputs) -> Self

2026-09-25: The decision table.

  • FFN NVFP4: built only when the layer has no FFN overlay, or under keep_nvfp4 (the module docs say why the FP8 FFN never reads it).
  • Attention NVFP4: set_fp8_weights replaces q_weight, k_weight, v_weight and o_weight with QuantWeight::Fp8. The NVFP4 copies are kept when a METRALE_CUTLASS_NVFP4_* attention arm (cutlass_nvfp4_* in the dispatch) or the W4A4 o_proj arm (attn_w4a4) can read them.
  • FP8 twins K and V: built on every FP8 attention layer unless the umbrella flag is set (last item). A single stream’s first prefill chunk (seq_len_start == 0) runs prefill/cache_skip_qkv.rs, whose only W8A8 arm is the cuBLASLt one (cache_skip_qkv_cublas_selected, which needs METRALE_CUBLAS_GEMM to cover attn). When it declines, K and V read k_fp8w_t and v_fp8w_t if present.
  • FP8 twins Q and O: Q is read on that chain only with attn_prefill_q_t, and on the paged chain after its W8A8 arm declines; both chains run O through prefill/paged_oproj.rs, which reads the O twin after its W8A8 arm declines. The W8A8 arms decline when block-scaled prefill is off or a W8A8 kernel is missing.
  • Under the umbrella cutlass_nvfp4_gemm no FP8 twin is planned, because transpose_fp8_for_prefill_selected builds none under that flag.

Trait Implementations§

Source§

impl Clone for DenseFp8Plan

Source§

fn clone(&self) -> DenseFp8Plan

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 DenseFp8Plan

Source§

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

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

impl PartialEq for DenseFp8Plan

Source§

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

Source§

impl Eq for DenseFp8Plan

Source§

impl StructuralPartialEq for DenseFp8Plan

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

Checks if this value is equivalent to the given key. 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> 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,