Skip to content

· 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:

BatchEager fp16TensorRT fp16Speedup
133.3 µs17.2 µs1.94×
837.7 µs17.3 µs2.18×
3244.1 µs17.2 µs2.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.

More notes

Point Kernalin at your slowest kernel.

Sign-up is open and self-serve. Connect GitHub or upload a file, and get a profile, a benchmark and verified rewrites, without changing how you ship.