pub struct DevExps {
pub gate: CudaSlice<u8>,
pub up: CudaSlice<u8>,
pub down: CudaSlice<u8>,
pub ptr_row: CudaSlice<u64>,
pub gu_il: bool,
}Expand description
Device-resident expert slabs for one layer (gate/up/down) + the prebuilt [3, n_expert] pointer row the _dev kernels consume.
Fields§
§gate: CudaSlice<u8>§up: CudaSlice<u8>§down: CudaSlice<u8>§ptr_row: CudaSlice<u64>[3*n_expert] u64 device row: gate ptrs, up ptrs, down ptrs (proj-major like layer_dev_row).
gu_il: boolWALL-GAP ARC (MEMRA_MOE_GU_IL=1): gate/up rows INTERLEAVED in one slab — row o of gate at base + o*(rb_g+rb_u), up at +rb_g. Consumers on the dev path must use (rb_g+rb_u) as the row stride for BOTH projections (see MoeWeights::dev_rb_gu). One contiguous 1760B stream per (expert,row) instead of two scattered 880B streams — the measured 56%-of-wall fix candidate. Kernels unchanged (stride is already a parameter everywhere).
Auto Trait Implementations§
impl Freeze for DevExps
impl RefUnwindSafe for DevExps
impl Send for DevExps
impl Sync for DevExps
impl Unpin for DevExps
impl UnsafeUnpin for DevExps
impl UnwindSafe for DevExps
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more