W2a16 Small M GEMM#
- cudaError_t trt_edgellm::kernel::launchW2A16SmallMGemm(
- void const *input,
- void const *values,
- void const *bases,
- void const *lookup,
- void *output,
- int32_t m,
- int32_t n,
- int32_t k,
- cudaStream_t stream
Y[M,N] = X[M,K] @ dequant(W[N,K]).T for M <= kW2A16_SMALL_M_MAX_TOKENS on the packed IQ2_XXS layout of CuteDslW2A16GemmRunner (payload [N/P,K/256,P,64], P = 128 when N % 128 == 0 else 8; FP16 bases [K/256,N]; BF16 magnitude table [256,8]). Each 32-weight sub-block is contracted on unscaled signed magnitudes with BF16 tensor cores and its FP32 partial is scaled by the sub-block scale, so no BF16 weight is materialized. Requires N % 8 == 0, K % 256 == 0, 16-byte aligned pointers and an SM80+ device. No workspace.