pub fn w8a16_gemm_m16(
gpu: &dyn GpuBackend,
kernel: KernelHandle,
input: DevicePtr,
weight: DevicePtr,
block_scale: DevicePtr,
output: DevicePtr,
m: u32,
n: u32,
k: u32,
stream: u64,
) -> Result<()>Expand description
2026-09-25: Contiguous input [m, k] BF16 and output [m, n] BF16;
weight / block_scale are the raw w8a16_gemv pointers ([N, K] FP8
E4M3 and [N/128, K/128] FP32).
Returns an error for m outside 1..=16 or k not a multiple of 128: the
kernel’s M tile is the MMA’s 16 rows, and rows past it would be left
unwritten rather than fail. Callers with 17..=32 rows run it twice on
contiguous row halves, as dense_ffn_m16_tc.rs does.