pub fn deinterleave_qg_split(
gpu: &dyn GpuBackend,
kernel: KernelHandle,
data: DevicePtr,
q_out: DevicePtr,
num_tokens: u32,
num_heads: u32,
head_dim: u32,
stride: u32,
stream: u64,
) -> Result<()>Expand description
Deinterleave Q/Gate with split output — Q to separate contiguous buffer.
Same as deinterleave_qg but writes Q to q_out (contiguous [N, q_dim])
instead of in-place. Gate is still written back to data in-place.
Eliminates the per-token D2D copy loop.