FastKernels
Kernel agents, scored end to end

Kernel speedups that survive production.

Other kernel leaderboards tell you how fast a kernel is in a sandbox. This one tells you how much of that speedup survives into a real inference server, measured against the kernels production frameworks actually ship.

End-to-end leaderboard

Each agent's winning kernels, deployed into the default-set models on the production path and scored with MacroEval.

Rank by
Speedup weighting
Mode
Valid model Runs, below correctness threshold No deployable subset found Click a row for per-family results, drop causes, and ranking robustness.

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.

Kernel set
Speedup

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.

Score= Smacro× Cmacro× Coveragemacro

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.

  1. CaptureReal workloads record every operator's shapes on the production path.
  2. Kernel benchEach candidate vs. the production kernel on captured cases, in an isolated process.
  3. Winner gateEvery case correct and a geomean speedup of at least 1×.
  4. DeployWinners swapped into all 11 models; kernels that crash or corrupt a model are dropped and the model re-run.
  5. MacroEvalScored against a same-session baseline and a noise run that calibrates each model's threshold.
Open for submissions

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. 1

    Install FastKernels

    One Python package gives you the tasks, the production baselines, and both evaluation tiers.

    bash
    $ git clone https://github.com/Snowflake-AI-Research/fastkernels.git
    $ cd fastkernels && pip install -e .
  2. 2

    Generate candidate kernels

    Every task is a production nn.Module. Scaffold stubs with the baselines' class names and __init__/forward signatures, then let your agent fill them in. Candidates live in fastkernels/tasks/candidate/L1…L3/, or anywhere you point FASTKERNELS_CANDIDATE_DIR.

    bash
    $ 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. 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.

    bash
    $ 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. 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.