conv1d_update_l2norm_strided

Function conv1d_update_l2norm_strided 

Source
pub fn conv1d_update_l2norm_strided(
    gpu: &dyn GpuBackend,
    kernel: KernelHandle,
    conv_state: DevicePtr,
    input: DevicePtr,
    weight: &DenseWeight,
    output: DevicePtr,
    d_inner: u32,
    d_conv: u32,
    batch_size: u32,
    qk_channels: u32,
    head_dim: u32,
    l2_eps: f32,
    input_stride: u32,
    output_stride: u32,
    stream: u64,
) -> Result<()>
Expand description

2026-09-25: Conv1d update + SiLU + L2 norm for batch_size decode sequences in one launch, with FP32 output (causal_conv1d_update_l2norm_f32_strided). The input and output row strides are separate arguments because the concurrent-decode input rows are the QKVZ projection’s, qkvz_size apart, while the output rows are d_inner apart; a kernel that used d_inner for both would read sequence b >= 1 from the wrong row.

conv_state keeps the (b * d_inner + ch) * d_conv layout, so the caller must have checked that the sequences’ pool slots are contiguous.