Plain language

What this result means

This is the most directly practical result in the ledger. It connects research output to actual runtime: when a model is bottlenecked by small batched matrices, fine-grained MoE, depthwise convolution, or skinny int8 decode, a kernel that fills the GPU or removes a memory pass can matter immediately.

  • The same report also records losses. Large square GEMM remains cuBLAS territory, and a generic W4A16 kernel is much slower than tinygemm.
  • The kernel speedups are measured as ratios under paired, interleaved timing, because the GPU was shared and absolute timings were noisy.
  • The op-count records and the kernel records are separate. Fewer arithmetic operations did not automatically make a faster GPU kernel.

Visual notes

How to read the result

Horizontal bar chart of measured kernel speedups by regime, including an honest W4A16 loss.
Regime mapThe big numbers live in specific gaps. The chart also includes the W4A16 loss to show where the method does not apply.
Horizontal bar chart showing operator fraction of layer time and resulting end-to-end speedups.
Amdahl checkEnd-to-end speedup tracks how much of the layer the swapped operator occupies. Fine-grained MoE benefits most because the grouped GEMM is almost the whole layer.

Result table

Measured L40S speedups for small batched GEMM, fused depthwise conv, int8 decode, MoE, and GQA decode.

CellBaselineNumaroDeltaNote
Batched matmultorch.bmm2-4.5xfastersmall/medium matrices, batch >= 512
Fused depthwise 3x3cuDNN + activation1.55x fp16 / 1.31x fp32fasterbit-exact
int8 W8A8torch._int_mmup to 3.7xfasterskinny-M decode
MoE grouped GEMMper-expert loop2.5-3.6x end-to-endfasterfine-grained MoE
W4A16tinygemm~12x slowerlosskept as a boundary condition

Method

How it was found

Each kernel targets a specific production gap: not enough occupancy, an avoidable memory pass, a missing primitive, or a launch-heavy loop.

  • Mapped where cuBLAS/cuDNN/PyTorch under-filled the GPU or forced extra memory traffic.
  • Wrote narrow Triton kernels for those exact regimes instead of trying to beat vendor libraries everywhere.
  • Timed stock and custom kernels back-to-back under a GPU timing lock.
  • Kept losses in the report so the boundary of the method is visible.

Verification

How it was checked

Each subdirectory has a verifier that checks correctness before speed. Some kernels are bit-identical; others are compared against a higher-precision or stock reference with an explicit tolerance where reduction order differs.

Scope

What is not being claimed

All numbers are on one L40S under the stated environment. They are not claims for every GPU, every shape, or cross-library SOTA. Large square GEMM and 4-bit weight-only decode are explicitly not beaten.

References

Baseline sources

Citation

How to cite

Numaro Autoresearch Team. "Bit-exact GPU kernels in regimes vendor libraries leave open." Numaro Research Report NUMARO-2026-003, 2026.

@techreport{numaro2026FasterMlKernels,
  title = {Bit-exact GPU kernels in regimes vendor libraries leave open},
  author = {Numaro Autoresearch Team},
  institution = {Numaro},
  number = {NUMARO-2026-003},
  year = {2026},
  url = {https://numaro.tech/research/faster-ml-kernels-2026/}
}