pub struct FaMain { /* private fields */ }Expand description
One fa-decode main node with its paired combine — the per-token geometry-update unit.
Both classes get the FULL update (grid.y + n_splits arg + paired combine’s n_splits):
the partial buffers are zeros() allocations whose memset is CAPTURED — every replay
re-zeroes them, so any split slot the main doesn’t write holds m=0.0 (NOT the NEG_INF
empty the combine skips). The combine’s merge count must therefore exactly equal the
main’s written split count. n_splits is simultaneously the key partition and the
partial stride in every fa kernel, so main + combine move as one value:
- vec dc twins (
fa_decode_vec_q*_dc): per = ceil(T_kv/n_splits), arg idx 11; the live count comes from the caller’s split ladder (eager lockstep). - scalar unified (
fa_decode_f32, ctr non-null): ns_eff = ceil(T_kv/split_keys) in- kernel; setting n_splits (idx 12) = that same value keeps stride == partition.
Trait Implementations§
Auto Trait Implementations§
impl !Sync for FaMain
impl Freeze for FaMain
impl RefUnwindSafe for FaMain
impl Unpin for FaMain
impl UnsafeUnpin for FaMain
impl UnwindSafe for FaMain
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