metrale_storage/
model_dims.rs

1// SPDX-License-Identifier: MIT OR Apache-2.0
2
3//! 2026-09-25: `ModelDims`, the model geometry the high-speed-swap tier is built for.
4//!
5//! Owner: storage, high-speed swap.
6//! Invariants: none beyond the types.
7//!
8//! It holds no GPU state and compiles without the `cuda` feature.
9
10/// 2026-09-25: Geometry of the model `HighSpeedSwap` serves, from
11/// `high_speed_swap_dims` in metrale-model-engine.
12#[derive(Clone, Copy, Debug)]
13pub struct ModelDims {
14    pub num_layers: u32,
15    pub max_blocks_per_layer: u32,
16    pub num_q_heads: u16,
17    pub num_kv_heads: u16,
18    pub head_dim: u16,
19    pub block_size: u16,
20    /// 2026-09-25: Model fingerprint (`ModelFingerprint::derive_kv` in
21    /// metrale-model-engine), folded into the KV paging namespace by
22    /// `kv_paging::ns::derive_kv_ns`. `None` when it could not be derived; a
23    /// `METRALE_KV_PAGING=1` connect then fails unless `METRALE_KV_PAGING_NS` is set.
24    /// Only `connect_kv_peer_backend` reads it.
25    pub model_fp: Option<std::num::NonZeroU64>,
26}