pub fn residual_add_rms_norm(
gpu: &dyn GpuBackend,
kernel: KernelHandle,
hidden: DevicePtr,
src: DevicePtr,
weight: &DenseWeight,
output: DevicePtr,
residual: DevicePtr,
num_tokens: u32,
hidden_size: u32,
eps: f32,
stream: u64,
) -> Result<()>Expand description
Fused residual add + RMS norm + residual save.
hidden[i] += src[i]; normed = rms_norm(hidden) * (1+weight); residual = hidden.
Eliminates one kernel launch per fusion site (48 per decode step).
Kernel: residual_add_rms_norm(hidden, src, weight, output, residual, hidden_size, eps)
Grid: (num_tokens, 1, 1) Block: (min(hidden_size, 1024), 1, 1)