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
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).
REFUSES m > 16: the kernel’s M tile IS the MMA’s 16 rows, and rows past it
are simply not computed (stale output, not a launch failure). Callers with
17..=32 rows run it twice on contiguous row halves, the way
dense_ffn_m16_tc.rs does.