pub struct GdnPrefillBuffers {
pub qkv: DevicePtr,
pub gate_beta: DevicePtr,
pub output: DevicePtr,
pub z: DevicePtr,
pub total_len: usize,
}Expand description
2026-09-25: Whole-prompt GDN buffers for the split SSM prefill: prefill_phase1
writes the inputs, prefill_gdn_full runs the recurrence into output, and
prefill_phase3 reads output and z.
Each token’s QKV is packed as conv_dim BF16 elements, [Q(key_dim) | K(key_dim) | V(value_dim)], and the GDN kernels read Q, K and V with a stride of conv_dim.
Fields§
§qkv: DevicePtr2026-09-25: Packed Q/K/V, [total_len, conv_dim] BF16.
gate_beta: DevicePtr2026-09-25: Gate and beta, [total_len, 2 * num_v_heads] FP32: per token
[gate(nv) | beta(nv)].
output: DevicePtr2026-09-25: GDN recurrence output, [total_len, value_dim] BF16.
z: DevicePtr2026-09-25: Z gate for the gated RMSNorm, [total_len, value_dim] BF16.
total_len: usize2026-09-25: Token rows the buffers hold for this call.
Auto Trait Implementations§
impl Freeze for GdnPrefillBuffers
impl RefUnwindSafe for GdnPrefillBuffers
impl Send for GdnPrefillBuffers
impl Sync for GdnPrefillBuffers
impl Unpin for GdnPrefillBuffers
impl UnwindSafe for GdnPrefillBuffers
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