Sim · a GPU simulator for kernel work

Benchmark CUDA kernels without a GPU

Sim replaces libcuda.so, so your binary runs unchanged. It loads the compiled kernel into a SASS interpreter, runs it on CPU threads with a timing model, and reports the estimated time on each GPU and where each instruction stalls. It runs on a laptop or in CI.

0GPUs needed to compare candidates
3levels of detail, from milliseconds to hours
0.9+rank correlation with real hardware
6NVIDIA architectures supported
01 · Kernels

Kernel analysis

The kernel page shows the SASS produced for each candidate, with the stall percentage for each instruction, register use, occupancy and the estimated time on each target GPU.

  • Kernel work doesn't have to wait for a free GPU.
  • Agents can compare thousands of variants on ordinary CPUs.
  • A slower kernel can fail CI before it reaches real hardware.
02 · Kernel IDE

Kernel editor with an agent

The agent edits the CUDA or Triton source, recompiles, reads the new SASS and simulates it. The best version is tested on a real GPU before a pull request is opened.

  • Source, SASS and terminal in one window.
  • Accepted changes are always tested on real hardware.
  • Pull requests include the benchmark numbers.
How Sim works

From Python to SASS, then simulated on a CPU

The kernel is compiled exactly as it would be for the GPU. Sim then runs the SASS on CPU threads and shows how long that took next to the estimated GPU time.

Live demo

Register pressure, per architecture

Occupancy from the CUDA occupancy-calculator rules for the chosen architecture, achievable bandwidth from Little's law, and the bound from a roofline. Sim goes further by interpreting the SASS; this shows the mechanics.

Features

What's included

Three levels of detail

Static analysis takes milliseconds, sampled simulation takes seconds and cycle-level simulation takes hours. Use the fast ones to narrow the candidates down and the slow one to choose between the last few.

Reports its own error

Each run reports how closely its ranking matches real hardware, and the top candidates are tested on a real GPU before anything ships.

Works in CI

Runs on GitHub Actions or any CPU runner, so a build can fail when a kernel gets slower on a GPU you don't own.

Works with

CUDA C++, Triton, CUTLASS, PyTorch through a driver shim · KernelBench and TritonBench · GitHub Actions · targets: H100, H200, B200, L40S, RTX 4090 and 5090, Jetson Orin and Thor.

Questions

What engineering teams ask us

What do you mean by working at the SASS level?

We look at what the compiler actually produced: register use, spills, occupancy, shared-memory bank conflicts and stall reasons in the SASS. We don't write SASS by hand; ptxas does. We influence it with PTX intrinsics, launch bounds and compiler flags, then check the output.

How accurate is a CPU simulation?

Accurate enough to rank candidates, which is what it's for. Each run reports its rank correlation with real hardware, and nothing ships without a test on a real GPU.

Does it model AMD GPUs?

Not yet. Sim only models NVIDIA architectures for now, so we tune AMD kernels on real hardware.

Get started

Tell us what you need the model to do

Send us the model, the hardware and your target, whether that's tokens per second, latency, memory or cost. In a 30-minute call we'll tell you whether we think it's doable and roughly what it would take.

  1. ReviewA free 30-minute call. We look at your model, hardware and target and give you an honest estimate.
  2. SprintTwo weeks at a fixed fee, on your hardware. If we can't beat your current setup, you don't pay.
  3. RunWe run Serve and monitoring for you and keep re-tuning as traffic changes, under an agreed SLO.