Inference Atlas · documentation

Inference Atlas

Open the atlas View the repository Last pushed 7 September 2026 22 documents

A community-owned map of LLM inference engine configurations, hosted entirely on GitHub Pages.

Benchmark numbers for local inference are scattered across blog posts, Reddit threads and Discord screenshots, and almost none of them are reproducible — because what determines the number is not the model and not the GPU, it is the combination: engine, exact version, quantization, flags, and the workload. Change one and the number changes. So the same benchmark gets re-run thousands of times worldwide and the knowledge evaporates each time.

Inference Atlas is the opposite of a leaderboard. It is a coverage map plus a contribution funnel. The landing view is a heatmap of the configuration space where colour means evidence, not speed — grey means nobody has tried this. The interesting question is not "what is the fastest setup", it is "which parts of the space has nobody measured yet, and how do I measure one of them in the next twenty minutes".

How it works

  • The repository is the database. No backend, no external DB, no server cost. Every measurement is one JSON file committed to main; the site is a static build of those files.
  • Every number was measured on a contributor's own machine. CI validates the files and builds the site — it never starts an engine and never benchmarks anything. There is no seed data: a grey square means nobody has run it yet, and a run becomes part of the atlas when the person who ran it opens the pull request.
  • One file per measurement, one owner per file. A result records the GitHub login of whoever ran it, and CI rejects any pull request that touches somebody else's result. Merge conflicts are structurally impossible and nobody can overwrite your numbers.
  • Every configuration has a fingerprint. Flags are normalized (aliases resolved, defaults dropped, values canonicalized) and hashed. Two people who ran the same setup produce the same config_id even if they wrote the flags in a different order — which gives deduplication, a precise definition of "untested", and conflict detection for free.
  • Everything is data. Hardware, engines, engine versions and their flags, models, quantizations, workloads, eval suites, scoring weights, navigation — all JSON under the registries. Adding a new GPU or a new engine is a pull request that adds a file, never a code change.
  • Numbers are checked against physics. You cannot decode faster than memory bandwidth divided by the active weight bytes allows, you cannot use more VRAM than the device has, request counts have to add up. Validation runs the same code in your terminal and in CI.

Quickstart

If you just want to look

Open the site. Nothing to install. Pick a model row and a hardware column, switch the metric, open a run to see the exact command line and every flag it was started with.

If you want to contribute a measurement

Find a grey square, press Add, and take one of the four tabs: an agent prompt, a shell script, a JSON packet for the harness, or a pre-filled issue. Then:

git clone https://github.com/0xBakeer/inference-atlas.git && cd inference-atlas
pnpm install
uv run atlas-bench hwinfo --json          # identify the machine — captured, never typed
uv run atlas-bench run --spec task.json   # run the workloads on *your* machine
pnpm validate                             # the same checks CI runs
gh pr create --label results               # you open the PR; CI only validates and builds

Read CONTRIBUTING.md first. The rules that matter: never invent a number, metrics you did not measure stay null, failures are contributions, and you only ever add your own files.

If you are a coding agent

Read AGENTS.md. It is the contract, and every packet points at it. Short version: only add files you own, never edit a number by hand, never silently lower the configuration to make it fit, report failures as failures, and record the gotchas — the gotchas are the part of a run that outlives the number.

If you want to work on the code

pnpm install
pnpm test        # vitest across the workspace
pnpm typecheck
pnpm validate    # every JSON file: schema, recomputed ids, plausibility
pnpm dev         # compile data + Vite dev server

Repository layout

schemas/     JSON Schema (draft 2020-12) for every data kind, plus golden test vectors
hardware/    one file per device: specs, detection rules
engines/     per engine: meta.json, overlay.json, versions/<version>.json (the flag schema)
models/      per model, under its Hugging Face repo id: <owner>/<name>/model.json + quants/<quant-id>.json
workloads/   pinned, immutable definitions of what gets run
datasets/    test data authored in this repository (synthetic, MIT)
results/     one JSON file per measurement, owned by its contributor:
             <engine>/<owner>/<name>/<hardware>/<run_id>.json
site/        branding, navigation, colours, scoring weights, thresholds
packages/    @atlas/core — shared types, fingerprinting, ids, plausibility, coverage, packets
             @atlas/tui — the terminal UI (see below)
tools/       node CLIs: validate, build, packet, ingest
app/         the Vite + Lit 3 site
bench/       atlas-bench, the Python harness
docs/        DESIGN.md (the vision), SPEC.md (the binding contract), tui/ (the terminal app manual)

The terminal UI

curl -fsSL https://raw.githubusercontent.com/0xBakeer/inference-atlas/main/install.sh | sh
inference-atlas

The atlas in your terminal: it identifies a target box — this machine, or any entry in the hardware registry, times however many of them you have — ranks every measured configuration by whether it would actually run there, draws the sweep curves, latency distributions, the Pareto frontier and the coverage map as terminal charts, and turns any run into a Markdown install recipe — pinned weights, install commands, the exact serve command, per-flag documentation, the run's gotchas, the numbers to expect, and the atlas-bench steps to verify and contribute your own measurement back. Data comes from the published shards (one conditional GET, cached, works offline); --repo reads a local checkout instead.

Manual: docs/tui/installation · getting started · keys · views · the target box · charts · recipes · configuration · data & syncing · CLI · troubleshooting · development

Identifiers

Every id is lowercase kebab-case (nvidia-rtx-4090, vllm, gguf-q4-k-m, serve-chat-c8-i1k-o256-v1) with exactly one exception: a model id is the Hugging Face repo id, verbatim and case-preservedQwen/Qwen3.8-27B, google/gemma-4-E2B-it. A fine-tune or a re-upload by another account is a different repository and therefore a different model, which is what stops somebody's re-quantized copy being averaged into the original's numbers. The slash is a directory level: models/Qwen/Qwen3.8-27B/model.json, results/vllm/Qwen/Qwen3.8-27B/nvidia-gb10-dgx-spark/<run_id>.json.

Status

Early. The schemas, the fingerprint definition, the shared core and the registries are in place; the harness, the tools and the app are being built. results/ is empty until the first contributor runs something — nothing is seeded. docs/SPEC.md is the authoritative description of what exists and what it must do.

Licence

Code is MIT. Data — everything under hardware/, engines/, models/, workloads/, datasets/ and results/ — is CC BY 4.0. No model weights and no third-party datasets are mirrored here.

§Documentation

01

The design document

A community owned map of LLM inference engine configurations, hosted entirely on GitHub Pages.

02

Contributing

Thank you — the whole point of this project is that it belongs to whoever fills it in.

03

atlas-bench

The Inference Atlas benchmark harness. It measures an OpenAI-compatible inference server and writes one JSON file per run into results/<engine>/<model>/<hardware>/<run_id>.json.

04

Workloads

A workload is a pinned answer to "what exactly was run". One JSON file per workload, schema in schemas/workload.schema.json, shape summarised in SPEC §4.

05

Datasets

Every byte of test data in Inference Atlas is authored in this repository — synthetic, generated by the scripts in _gen/, and MIT licensed (SPEC §0.6).

06

The terminal app

inference-atlas is the atlas in your terminal. It answers one question the website makes you work for: what is worth running on my box, and how do I set it up?

07

Installation

Nothing else. No Python, no Docker, no database — the atlas is a set of JSON files and the app reads them.

08

Getting started

Five minutes, end to end: from launching the app to holding a recipe an agent can execute.

09

The views

Five top-level views, plus three you reach from them. The header always tells you where you are, which box you are judging against, and how fresh the data is:

10

Reading the charts

Everything is drawn with text. No images, no sixel, no escape-code graphics protocol — so it works over ssh, inside tmux, in the VS Code terminal, and in a CI log.

11

The target box

Everything the app tells you — the ranking, every fit verdict, every recipe — is judged against a target box.

12

Recipes

A recipe is a Markdown file that turns one measured run into instructions somebody — or some agent — can follow to reproduce it, and then to contribute their own measurement back.

13

Command line

With no options it syncs the data, detects your box, and opens the app.

14

Keyboard reference

Press ? in the app for a short version of this. esc goes back one step from anywhere; q quits.

15

Configuration

Everything lives in one TOML file:

16

Data and syncing

The app shows the same numbers the website shows, because it reads the same files.

17

Troubleshooting

The wrapper is in ~/.local/bin, which is not on your PATH:

18

Development

For working on the app itself. For using it, start at the manual.

19

Implementation contract (v1)

This is the binding contract for everyone (human or agent) working in this repo.

20

The agent contract

This file is for coding agents (and the people supervising them). If you were handed an Inference Atlas packet, read this once, in full, before you touch anything.

21

@atlas/tools

The Node side of Inference Atlas: the commands that check the repository, compile it into what the website reads, generate contribution packets, and ingest engine flags.

22

Reference measurements (historical, NOT in the atlas)

These numbers were measured by hand by khaledbakeer on his own machines before the harness existed.

Read it where it lives, and open an issue if a number looks wrong.

Back to Projects