Fp8Weight

Struct Fp8Weight 

Source
pub struct Fp8Weight {
    pub weight: DevicePtr,
    pub row_scale: DevicePtr,
    pub n: u32,
    pub k: u32,
    pub scale_format: WeightQuantFormat,
}
Expand description

FP8 E4M3 checkpoint weight loaded directly from safetensors.

This struct carries an FP8 weight buffer along with its dequantization scale. The exact scale layout depends on the WeightQuantFormat tag in scale_format:

Always check scale_format before reading scale as a particular shape. Prior to the format tag (Phase 2c day-3 follow-up), the Fp8Weight struct silently mixed all three layouts in a single field, causing a cuMemcpyDtoDAsync_v2 INVALID_VALUE crash when the SSM build path tried to concat per-row F32 scales out of a buffer that actually held per-block BF16 scales (lower memory than expected).

Fields§

§weight: DevicePtr

[N, K] FP8 E4M3 weight bytes on GPU.

§row_scale: DevicePtr

Dequantization scale pointer. Shape and dtype depend on scale_format — see struct docs.

§n: u32

Output dimension (rows).

§k: u32

Input dimension (columns).

§scale_format: WeightQuantFormat

Tag for the row_scale buffer’s actual format. Asserted at kernel call sites via WeightQuantFormat::expect(...).

Implementations§

Source§

impl Fp8Weight

Source

pub fn transpose_for_gemm( &self, gpu: &dyn GpuBackend, transpose_k: KernelHandle, transpose_scale_k: KernelHandle, stream: u64, ) -> Result<Fp8WeightTransposed>

Transpose this FP8 weight for coalesced prefill GEMM. Allocates new GPU buffers for B_t[K,N] (FP8 bytes) and scale_t[K/128, N/128] (FP32; row_scale is already FP32).

Trait Implementations§

Source§

impl Clone for Fp8Weight

Source§

fn clone(&self) -> Fp8Weight

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 Fp8Weight

Source§

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

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

impl From<Fp8Weight> for QuantWeight

Source§

fn from(w: Fp8Weight) -> Self

Converts to this type from the input type.
Source§

impl Copy for Fp8Weight

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> 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