pub fn ple_conv(
gpu: &dyn GpuBackend,
kernel: KernelHandle,
x: DevicePtr,
gated: DevicePtr,
weight: DevicePtr,
state: DevicePtr,
out: DevicePtr,
num_tokens: u32,
channels: u32,
k_size: u32,
dilation: u32,
stream: u64,
) -> Result<()>Expand description
2026-09-25: Depthwise causal conv with kernel k_size and dilation
dilation, then out = gated + silu(conv). All buffers but weight (BF16)
are FP32. state is [(k_size - 1) * dilation, channels] and is rolled in
place, so prefill and decode use the same launch.