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§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
impl ExpertRecordHeader
pub const MAGIC: u32 = 0x5850_5254
pub const VERSION: u32 = 1
Sourcepub const BYTES: u64 = 256
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.
Sourcepub fn to_bytes(&self) -> [u8; 256]
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.
Sourcepub fn from_bytes(buf: &[u8]) -> Option<Self>
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
impl Clone for ExpertRecordHeader
Source§fn clone(&self) -> ExpertRecordHeader
fn clone(&self) -> ExpertRecordHeader
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more