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
) noexcept#

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.