Nvfp4Variant

Enum Nvfp4Variant 

Source
pub enum Nvfp4Variant {
    Standard,
    CompressedTensors,
    Fp8Dequanted,
    Bf16Raw,
}
Expand description

Weight quantization variant (on-disk format).

Variants§

§

Standard

Standard ModelOpt: weight, weight_scale, weight_scale_2, input_scale. Attention/SSM projections are BF16 dense.

§

CompressedTensors

Sehyo/compressed-tensors: weight_packed, weight_global_scale, input_global_scale. Attention/SSM projections are NVFP4 quantized.

§

Fp8Dequanted

FP8 block-scaled (e.g. Qwen/Qwen3.5-35B-A3B-FP8, Qwen/Qwen3.6-35B-A3B-FP8): weight (float8_e4m3fn) + weight_scale_inv (BF16 per-[128,128]-block).

Loaded NATIVELY as FP8 in Qwen3 and Qwen3.5/3.6 model families. Attention uses w8a16_gemv (decode) + w8a16_gemm (prefill). MoE uses the FP8 fused grouped-GEMM batch1/2/3 path. SSM uses w8a16_gemv decode + fp8_gemm_n128 prefill (single-scale). No silent FP8→BF16→NVFP4 triple-conversion.

Historical note: the variant name retains “Dequanted” because the Bf16Raw cousin and the pre-2026-05-24 NVFP4 detour did dequant on load. The dispatch tables in qwen35/load_layers.rs (LayerType:: FullAttention if native_fp8) and qwen3.rs (line 176) now branch to native FP8 paths when quant_format == QuantFormat::Fp8.

§

Bf16Raw

Raw BF16/FP16 fine-tunes (e.g. samuelcardillo/Carnice-MoE-35B-A3B): only .weight tensors exist (no quantization metadata). Runtime-quantize from BF16 to NVFP4 at load time. Quality is suboptimal vs. a pre-calibrated NVFP4 release — the user gets a warning at startup.

Trait Implementations§

Source§

impl Clone for Nvfp4Variant

Source§

fn clone(&self) -> Nvfp4Variant

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 Nvfp4Variant

Source§

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

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

impl PartialEq for Nvfp4Variant

Source§

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

Source§

impl Eq for Nvfp4Variant

Source§

impl StructuralPartialEq for Nvfp4Variant

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