· Field notes · 6 min
What we measured on an NVIDIA H100 dry run
Kernalin on an H100 (27 Sep 2026): a verified 3.48× Claude rewrite, TensorRT fp16 1.94–2.56× faster, one TensorRT result rejected, 33% of VRAM stranded.
By Kernalin Engineering
On 27 September 2026 we ran Kernalin end to end on an NVIDIA H100 80GB HBM3 rented from RunPod, through kerneln.com. This is what came back, with the conditions that matter for reading it.
Measurement conditions. Medians of 30 timed runs, L2 flushed between runs, clocks not locked (the host did not allow it; boost behaviour was characterized and the runs are labelled as-deployed).
A verified 3.48× AI rewrite, with honest caveats
We gave Claude (anthropic/claude-opus-5.5 via OpenRouter) a deliberately wasteful test kernel: an unfused GELU chain with eight redundant multiplies. It proposed four rewrites. One, a fused Triton kernel, was kept: 3.48× faster, P(faster) = 1.0, 90% interval 3.42–3.53×, best median 34.4 µs. The other three were correct but measured 0.99×, “equivalent”, and were reverted.
The baseline was built to be slow, so 3.48× says the loop works on a GPU; it says nothing about how much faster your production kernels will get.
TensorRT: faster where it was correct, rejected where it wasn’t
For a GELU+linear block (1024×1024), TensorRT fp16 against PyTorch eager fp16:
| Batch | Eager fp16 | TensorRT fp16 | Speedup |
|---|---|---|---|
| 1 | 33.3 µs | 17.2 µs | 1.94× |
| 8 | 37.7 µs | 17.3 µs | 2.18× |
| 32 | 44.1 µs | 17.2 µs | 2.56× |
For a transformer block (d=1024, 16 heads, FFN 4096, seq 512), TensorRT fp16 was the fastest at batch 1 (102.3 µs vs 155.2 µs). But its maximum error was 0.018–0.023, which failed the correctness gate. It was disqualified, and eager won among the correct variants. That is the point of checking every runtime’s output: the fastest number on the board was wrong.
Other things the run found
- Memory: 33% of reserved VRAM was stranded by fragmentation (severity HIGH).
- Coverage: 24 of 24 benchmark configurations for GELU+linear were measured and correct (4 runtimes × 3 batches × fp32/fp16).
- Conversion: PyTorch → Triton converted kernels matched to a max absolute error of 4.5e-8 (gelu) and 2.2e-8 (silu_mul).
- Counters: the pod denied hardware counter access (
ERR_NVGPUCTRPERM), which is common on cloud GPUs. Kernalin now refuses counter jobs up front with the reason. - Engine tests: 2,026 passed, 0 failed, 38 skipped with reasons.
What is still waiting for GPUs
Several features are built but not yet verified on GPU hardware: Deep profile, the multi-agent optimizer, vLLM serving benchmarks, the TensorRT precision matrix, benchmark suites with a speed-of-light score, and real-utilization and GPU-health monitoring. Until they run on GPUs, this site shows how they work and no results.