ExpertRecordHeader

Struct ExpertRecordHeader 

Source
pub struct ExpertRecordHeader {
    pub layer: u32,
    pub expert: u32,
    pub inter: u32,
    pub hidden: u32,
    pub group_size: u32,
    pub scale2: [f32; 3],
    pub input_scale: [Option<f32>; 3],
}
Expand description

Fixed-size, versioned header written at the front of every expert record.

Invariant D of the streaming-experts plan: disk format = resident format. Nothing is transformed at fetch time, so the format must be self-describing and versioned — there is no runtime enforcement otherwise. The header carries exactly the per-expert data that is not recomputable from the model dims: the two NVFP4 scalars per projection (weight_scale_2 and input_scale), plus enough identity/shape to detect a mismatched file.

Fields§

§layer: u32§expert: u32§inter: u32§hidden: u32§group_size: u32§scale2: [f32; 3]

Per-projection weight_scale_2 (per-tensor FP32 scale), gate/up/down.

§input_scale: [Option<f32>; 3]

Per-projection input_scale (activation scale). None = weight-only W4A16 path with no activation scale (the streamer patches a NULL device pointer). Presence is stored out of band in a flags byte, so equality is exact (no NaN sentinel to break PartialEq).

Implementations§

Source§

impl ExpertRecordHeader

Source

pub const MAGIC: u32 = 0x5850_5254

Source

pub const VERSION: u32 = 1

Source

pub const BYTES: u64 = 256

Reserved on-disk header size. Generous vs. the packed fields so the format can grow without moving sub-buffer offsets.

Source

pub fn to_bytes(&self) -> [u8; 256]

Serialize into the fixed 256-byte on-disk header block. Layout: u32 magic, u32 version, u32 layer, u32 expert, u32 inter, u32 hidden, u32 group_size, u32 input_scale_flags, f32 scale2[3], f32 input_scale[3] (0.0 where absent), zero pad to 256. input_scale_flags bit i set => projection i has an activation scale.

Source

pub fn from_bytes(buf: &[u8]) -> Option<Self>

Parse a header block, validating magic + version. Returns None on any mismatch (wrong file, wrong version) — never panics on bad input.

Trait Implementations§

Source§

impl Clone for ExpertRecordHeader

Source§

fn clone(&self) -> ExpertRecordHeader

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 ExpertRecordHeader

Source§

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

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

impl PartialEq for ExpertRecordHeader

Source§

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

Source§

impl StructuralPartialEq for ExpertRecordHeader

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