Find out why your GPUs
cost more than they should.
Most AI workloads run far below what the hardware can do — and you can't fix what you can't see. Kernalin pinpoints exactly where your GPU time and money leak, names the bottleneck in plain terms, and hands your team the concrete fix. No guesswork, no faked numbers.
Telemetry that turns into a plan.
Low L2 reuse on rmsnorm — recommend shared-memory tiling + operator fusion.
Kernel timing
Occupancy
Memory throughput
Tensor-core utilization
Run history
If a metric can't be captured on your hardware or driver, Kernalin reports it as absent — not as a plausible-looking zero. A profiler you can't trust is worse than no profiler.
One picture answers the only question that matters.
Seven dimensions of memory health.
PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True — reclaim 2.79 GB stranded in split blocks.
Fragmentation
01Reserved VRAM stranded across split blocks the allocator can no longer reuse.
Uncoalesced access
02Low bytes-per-sector efficiency — warps touching scattered addresses.
Excessive allocations
03Thousands of allocs per iteration thrashing the caching allocator.
Cache locality
04Low L2 hit rate from poor reuse of recently touched data.
DRAM bandwidth
05Kernel streaming near speed-of-light with nothing left to hide latency behind.
Bank conflicts
06Shared-memory wavefront replays from threads hitting the same bank.
Register spilling
07Live values spilling to local memory when a kernel outgrows its register budget.
Problem, diagnosis, recommendation, proof.
Problem
A kernel is slower than its arithmetic should allow.
Diagnosis
Memory-bound: L2 reuse is low and DRAM is near speed-of-light.
Recommendation
Shared-memory tiling plus operator fusion to cut the round-trip.
Measured improvement
The fix is re-profiled and benchmarked — the gain is verified, not asserted.
Illustrative session. Numbers depend on your workload and hardware.
Stop guessing at your GPU.
Profile a real workload and get a named bottleneck with a concrete fix. Join the early-access program.