pub fn dense_gemv(
gpu: &dyn GpuBackend,
kernel: KernelHandle,
input: DevicePtr,
weight: &DenseWeight,
output: DevicePtr,
n: u32,
k: u32,
stream: u64,
) -> Result<()>Expand description
Dense BF16 GEMV (M=1): C = A @ B^T for single-row activations.
A: [1, K] BF16, B: [N, K] BF16, C: [1, N] BF16. 8 outputs/block, 32 threads (1 warp) per output. Single-warp shuffle reduction.
Kernel: dense_gemv_bf16(A, B, C, N, K)
Grid: (ceil(N/4), 1, 1) Block: (256, 1, 1)