In three steps
Faster runtimes are only faster if they are right.
01 / 03 · Convert
Eleven ops to Triton, each one checked.
Conversion targets the ops that are easy to get subtly wrong: activations, fused pairs and a row softmax. Each generated kernel has to match PyTorch before it counts.
- relu correctness gate on a GPU runner converts
- gelu H100: max abs error 4.5e-8 converts
- silu correctness gate on a GPU runner converts
- sigmoid correctness gate on a GPU runner converts
- tanh correctness gate on a GPU runner converts
- abs correctness gate on a GPU runner converts
- add correctness gate on a GPU runner converts
- mul correctness gate on a GPU runner converts
- silu_mul (fused) H100: max abs error 2.2e-8 converts
- add_relu (fused) correctness gate on a GPU runner converts
- softmax (row) correctness gate on a GPU runner converts
02 / 03 · TensorRT
2× faster here. Rejected there.
On the H100, TensorRT fp16 ran a GELU+linear block 1.94–2.56× faster than eager, and its output matched. On a transformer block it was faster still, and its error failed the check.
Speedup over eager (×); a rejected result does not count
GELU + linear 1024×1024
| Item | Bar | Value |
|---|---|---|
| batch 1 | 1.94× correct | |
| batch 8 | 2.18× correct | |
| batch 32 | 2.56× correct |
Transformer block, batch 1
| Item | Bar | Value |
|---|---|---|
| TensorRT fp16 max error 0.018–0.023 | 1.52× rejected |
03 / 03 · Precision · coming soon
Every precision, in one grid.
The TensorRT precision matrix builds an engine per precision and records build time, engine size, memory and per-layer fallbacks, verifying every cell against eager fp32. Failures are shown with the stage and node, never hidden.
It is built and awaiting GPU verification. Only cells we have actually recorded are filled in below.
| precision | GELU+linear | Transformer |
|---|---|---|
| FP32 | — | — |
| TF32 | — | — |
| FP16 | 1.94–2.56× · ok | error · rejected |
| BF16 | — | — |
| INT8 | needs ModelOpt | needs ModelOpt |
| FP8 | needs ModelOpt | needs ModelOpt |