ExpertQuantization

Enum ExpertQuantization 

Source
pub enum ExpertQuantization {
    Fp8,
    Nvfp4GateUp,
    Nvfp4,
}
Expand description

2026-09-27: The expert precision tiers. Measured on GB10 (Qwen3.6-35B-A3B-FP8, canonical tiers, --mtp-gate force):

tierBFCL echolp N=1004 overall/normalizedagentic-webserverC16 tok/s, J/tok (dgx1)
fp884.96/86.03pass, 535-546 s315.5, 0.227
nvfp4-gate-up84.86/85.33pass 3/3, 504-533 s359.6, 0.211
nvfp485.46/86.57FAIL: 168 turns, 774 s over the 700 s ceiling383.1, 0.201

Weights resident before the KV cache: fp8 38.4 GB, nvfp4-gate-up 49.6 GB, nvfp4 55.2 GB.

Variants§

§

Fp8

2026-09-27: The checkpoint’s FP8 experts: most stable, still fast.

§

Nvfp4GateUp

2026-09-27: Routed gate and up projections NVFP4 in decode; routed down, the shared expert and prefill FP8. The stable speed lever.

§

Nvfp4

2026-09-27: Every routed projection NVFP4 in decode; the shared expert and prefill FP8. Fastest, and it changes the agent’s trajectories most.

Implementations§

Source§

impl ExpertQuantization

Source

pub const ALL: [Self; 3]

2026-09-27: Every tier, in the order the flag lists them.

Source

pub fn name(self) -> &'static str

2026-09-27: The tier’s flag value and recipe value.

Source

pub fn nvfp4_decode(self) -> bool

2026-09-27: Whether MoE decode takes the grouped NVFP4 path.

Source

pub fn nvfp4_down(self) -> bool

2026-09-27: Whether the routed down projections decode as NVFP4, so their NVFP4 copy is built at load; under nvfp4-gate-up they decode from the FP8 experts.

Trait Implementations§

Source§

impl Clone for ExpertQuantization

Source§

fn clone(&self) -> ExpertQuantization

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 ExpertQuantization

Source§

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

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

impl Default for ExpertQuantization

Source§

fn default() -> ExpertQuantization

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

impl PartialEq for ExpertQuantization

Source§

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

Source§

impl Eq for ExpertQuantization

Source§

impl StructuralPartialEq for ExpertQuantization

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,