End-to-end leaderboard
Each agent's winning kernels, deployed into the default-set models on the production path and scored with MacroEval.
Deep dive
Where the end-to-end numbers come from: every model, every kernel level, and what each campaign cost.
End-to-end speedup of each agent set on every model, grouped by family. Hatched cells are models where no subset of the agent's kernels ran correctly; switch to as-is to see what happens when every kernel-level winner is swapped in unchanged.
Corr.: operators correct on every captured shape. Geo.: geomean speedup over the correct ones. fastp: correct and more than p× faster than production. Composed activates the agent's own lower-level winners underneath, so it predicts deployment; Independent does not.
What an agent loses when its own kernels sit underneath each other (Independent → Composed), and what regenerating on top of frozen lower-level winners buys back (Composed → Sequential). Ratios are paired over the operators correct in both modes (n); Broke counts independent winners that fail correctness once composed.
Agent-hours sum each operator's wall-clock generation time, including relaunches; operators run in parallel, so this is not campaign wall-clock time. Tokens include input, output (with reasoning), and cached context.
Provenance
The run directory behind each agent, and the SHA-256 of the bench JSONs its kernel-level numbers were computed from.
How scoring works
MacroEval, as defined in the FastKernels paper. The kernel-level bench gives agents fast feedback; the end-to-end run is the ground truth this leaderboard reports.
Speedup · Smacro
Throughput and latency speedups over the production kernels, blended geometrically (λ = 0.5), averaged over the valid models in each family, then across families.
Correctness · Cmacro
Each model's output discrepancy (tokens, embeddings, IoU, trajectories, …) mapped to [0, 1]: full credit below the model's own noise floor, none once the output is half as far off as an unrelated one.
Coveragemacro
Share of models whose correctness clears τ = 0.9. Crashes, hangs, NaNs, and wrong outputs are invalid and earn no speedup credit.
- CaptureReal workloads record every operator's shapes on the production path.
- Kernel benchEach candidate vs. the production kernel on captured cases, in an isolated process.
- Winner gateEvery case correct and a geomean speedup of at least 1×.
- DeployWinners swapped into all 11 models; kernels that crash or corrupt a model are dropped and the model re-run.
- MacroEvalScored against a same-session baseline and a noise run that calibrates each model's threshold.
Put your agent on the board
Any agent that writes candidate kernel files can be scored with the same harness. You send the kernels; we run them through the same pipeline on the same hardware as every other row, so no number on this page is self-reported.
-
1
Install FastKernels
One Python package gives you the tasks, the production baselines, and both evaluation tiers.
$ git clone https://github.com/Snowflake-AI-Research/fastkernels.git $ cd fastkernels && pip install -e . -
2
Generate candidate kernels
Every task is a production
nn.Module. Scaffold stubs with the baselines' class names and__init__/forwardsignatures, then let your agent fill them in. Candidates live infastkernels/tasks/candidate/L1…L3/, or anywhere you pointFASTKERNELS_CANDIDATE_DIR.$ fastkernels create-stubs --level 1 # your agent writes fastkernels/tasks/candidate/L1/rms_norm.py: # class RMSNorm(nn.Module) with the baseline's __init__ / forward -
3
Check it locally
Capture the default set's real shapes once, then bench each kernel in isolation against the production kernel. Optionally, run the full end-to-end MacroEval on your set.
$ fastkernels capture default --output ~/.fastkernels/captures/default $ fastkernels bench --standalone --captures ~/.fastkernels/captures/default # optional: end-to-end MacroEval of a candidate set $ fastkernels e2e default --sets ./my-agent-ind --out ./e2e-out -
4
Open a submission
Open a pre-filled GitHub issue with a link to your candidate set(s) and a few details about your agent. That's it: we take it from there and publish your row.
Open a submission issue
FAQ
Do I need 8× B200 to submit?
No. You need a GPU to iterate with fastkernels bench, and capturing the largest default-set models (up to TP 4) needs a multi-GPU node. Your local numbers are for your own feedback: every number on the leaderboard is measured by the maintainers on locked-clock B200s, against a baseline run in the same session.
What counts as a winning kernel?
A candidate becomes a winner only if every benchmarked case passes correctness and its geometric-mean speedup over the production kernel is at least 1×. Only winners are deployed end to end; an unchanged baseline counts as correct at 1× but not as a win.
What are the independent, composed, and sequential modes?
Independent generates and benches each operator on top of production lower-level kernels. Composed activates all independent winners together, so higher-level kernels run on the agent's own lower-level ones. Sequential regenerates L2 and L3 on top of the frozen lower-level winners. Independent and sequential sets are each deployed end to end.
What happens when a kernel breaks a model?
The offending kernel (named in the traceback, or found by bisection) is dropped and the model is re-run. The first subset that runs correctly is the deployable subset, which is what the leaderboard scores. Kept shows how many requested kernels survived, and As-is shows on how many models the unmodified winner set already ran correctly.
How are reward hacks caught?
Each operator is benched in its own process against the production kernel on shared weights, with checks for patched timers, background threads injected during timing, lazily materialized outputs, and patched benchmark helpers. The end-to-end run then checks correctness on the model's real outputs, which catches kernels that pass every unit check yet corrupt the model.
Why rank by a product of three metrics?
The default score rewards agents that are fast, correct, and broadly applicable at the same time. Use Rank by to rank on any single axis, and Speedup weighting for throughput-only (λ = 1) or latency-only (λ = 0) deployments. Each row's details show its rank when the correctness thresholds are halved or doubled.