Measuring the Checker: Mutation Analysis for GPU-Kernel Benchmark Oracles

Mingzhe Du, Anh Tuan Luu, Dong Huang, See-Kiong Ng

National University of Singapore · Nanyang Technological University · VinUniversity

Published September 2, 2026 · on the feed September 22, 2026 · ▲ 7 · arXiv 2609.22220

Evaluation & judgingCode & software No code arXiv ↗Hugging Face ↗Dataset ↗

The abstract

Benchmarks for LLM-generated GPU kernels decide correctness with a few random inputs and a loose floating-point tolerance, and their verdicts now feed leaderboards and reinforcement-learning rewards. Recent work agrees these checkers are weak and patches them by hand---extra input distributions, fuzzing recipes, tighter tolerances---with no way to measure whether any patch suffices. We introduce mutation analysis as an adequacy metric for kernel-benchmark oracles: deterministic rules inject 10{,}303 compilable faults into verified CUDA implementations of 188 KernelBench problems, 7{,}384 of them with an independent kill witness; any test protocol is scored by the fraction it detects. The official check misses one in six witnessed faults (16.9%), deterministically, and the misses are skewed by family: 8.7% of arithmetic faults escape, but 78.6% of precision faults do. The metric explains why (a tolerance blind band growing with reduction size; a measured ceiling on input aggressiveness set by legitimate floating-point variance), audits the strongest existing patch (KernelBench-Verified's gain splits into +4.0 points from hidden inputs and +4.5 from tighter tolerance, a split its authors could not compute), and exposes a published fuzzing recipe that rejects correct kernels 107 times. Optimizing suites over the kill matrix reaches 98.0% detection with two inputs per problem (94.8% held-out), and the measurement's fault taxonomy teaches a test generator more than the raw faults themselves. Across 48 whole architectures, the blindness grows with scale, concentrating in deep homogeneous pipelines, and two problems prove unrefereeable: their official references violate the benchmark's own tolerance against fp64. We release everything as https://huggingface.co/datasets/Elfsong/KernelBench-M{KernelBench-M}.

The Brief

2:55

A short podcast summary of the paper. Written and voiced by AI.

Transcript

Measuring the Checker. Mutation Analysis for GPU-Kernel Benchmark Oracles. By Mingzhe Du and three others, from the National University of Singapore, Nanyang Technological University, and one other institution. Published on the second of September. No code repository is linked to it.

When a language model writes a GPU kernel, a benchmark has to decide whether the kernel is correct. Today that decision is made with a few random inputs and a loose floating-point tolerance, and the verdicts now feed leaderboards and reinforcement-learning rewards. Recent work agrees these checkers are weak, and patches them by hand: extra input distributions, fuzzing recipes, tighter tolerances. What nobody has had is a way to measure whether any of those patches is enough. The checker itself has never been checked.

This paper brings mutation analysis to that question, as an adequacy metric for the oracles in kernel benchmarks. The principle is simple. Deliberately break correct code in known ways, then see what fraction of the breakages a test protocol catches. A protocol that lets faults through is scored down for every one it misses.

Deterministic rules inject many thousands of compilable faults into verified CUDA implementations of one hundred and eighty-eight KernelBench problems. More than seven in ten of those faults come with an independent kill witness, meaning there is separate evidence the fault really changes behavior. Any test protocol can then be scored by the fraction of faults it detects.

The official check misses one in six of the witnessed faults, sixteen point nine percent, and it misses them deterministically. The misses are uneven by family. Only eight point seven percent of arithmetic faults escape, but seventy-eight point six percent of precision faults do.

The metric also explains why. There is a tolerance blind band that grows with the size of a reduction, and there is a measured ceiling on how aggressive the inputs can be, set by legitimate floating-point variance.

It can audit patches too. The strongest existing one, KernelBench-Verified, turns out to gain four points from hidden inputs and four and a half points from tighter tolerance, a split its own authors could not compute. A published fuzzing recipe is exposed as rejecting correct kernels, one hundred and seven times.

On the constructive side, optimizing test suites over the kill matrix reaches ninety-eight percent detection with two inputs per problem, and ninety-four point eight percent on held-out faults. The fault taxonomy the measurement produces teaches a test generator more than the raw faults do.

Across forty-eight whole architectures, the blindness grows with scale, and concentrates in deep, homogeneous pipelines. And two problems prove unrefereeable: their official reference implementations violate the benchmark's own tolerance when compared against fp64. Everything is released as a dataset named KernelBench-M.

The shift is from arguing about checkers to measuring them. Before, each fix was a hand-tuned guess with no score attached. With a fault set and a kill matrix, a protocol gets a number, a patch gets its gain decomposed, and a benchmark problem can even be found to have no trustworthy answer key.

Paper Quest · 7 chapters · about 40 min

Play this paper

Learn it by doing: make the calls the authors made, guess the result before you see it, and defend it in a viva graded on your own words. Chapter 1 is right here.

Chapter 1 🧩 · The problem

Every quest starts with a wall. Here it is a checker that nobody has ever checked.

You maintain a benchmark for GPU kernels written by language models. A kernel passes if its outputs on a few random inputs land within a loose floating-point tolerance of the reference.

The road ahead

  1. 1 · The problem ~6 min Kernel benchmarks judge correctness with a weak numerical check, people patch it by hand, and nobody can measure whether a patch is enough.
  2. 2 · What came before ~3 min
  3. 3 · The key idea ~9 min Break correct kernels on purpose with fixed rules, keep only breaks proven to fail, and score any checker by the fraction it catches.
  4. 4 · Choose your own research ~3 min
  5. 5 · Build the method ~8 min Inject rule-made faults into correct CUDA, keep those with a kill witness, run each protocol against them, and score the fraction detected.
  6. 6 · The experiment ~6 min You’ll guess: What share of witnessed faults does the official KernelBench check let through?
  7. 7 · The viva ~5 min Three questions from the examiners, answered in your own words. Win it for the paper’s trophy.
Join free to play the whole quest ›

Free, with Google or an email address. Your stars and progress are kept.

KipQuest: the day’s AI research, as podcasts and quests. All papers Android app Privacy Contact Episodes are written and voiced by AI from each paper. Summaries can contain mistakes: the paper is the source.