FitMyLLM
← all rig reports
▸ EXAMPLE

What a commissioned report contains

This is a specimen of the format, not a measurement of anything. Every figure below is nonetheless real: each one is read at build time out of a report we have already published, and each block links to the run it came from. Nothing here is a mock-up, because a sales document whose numbers cannot be traced to a machine would contradict the only thing being sold.

We benchmark the models you name across the hardware you name, at more than one context length and up to an agreed concurrency. You receive the raw JSON, a reproducible public report, a signed PDF you can forward, and a permanent URL. Every speed is the median of several independent runs and each individual run is printed beside it. The method is published, negative results are published, you have right of reply and no editorial veto, and commissioned work is excluded from every ranking on this site.

SECTIONS
12
MODELS IN THIS RUN
17
DATA POINTS PUBLISHED
1,100
GPU TIME IN THIS RUN
2.3 h
01

What fits, and what does not

Weights on disk, peak VRAM measured at the card, headroom left at the stated context — and, first-class, every configuration that failed to load. A model list where everything worked has been curated, and a curated list is not a measurement.

ModelQuantWeightsPeak VRAMHeadroom
gpt-oss 20BQ4_K_M10.8 GB11.3 GB12.7 GB
Qwen3 30B A3B Instruct 2507Q4_K_M17.3 GB18.0 GB6.0 GB
Qwen3 4B Instruct 2507Q4_K_M2.3 GB3.4 GB20.6 GB
Qwen3 8B (Q3_K_M)Q3_K_M3.8 GB4.7 GB19.3 GB

↳ measured on NVIDIA GeForce RTX 4090

02

Speed for one person at a keyboard

Decode and prefill tok/s with the standard deviation across repetitions, plus time to first token. This is the number every benchmark publishes, and on its own it is the wrong number for anyone serving users.

ModelDecodeσPrefillTTFT p50
gpt-oss 20B288.8 tok/s± 0.812,879.8 tok/s19.4 ms
Qwen3 30B A3B Instruct 2507259 tok/s± 1.29,923.8 tok/s15.5 ms
Qwen3 4B Instruct 2507258.4 tok/s± 0.417,308.2 tok/s7.1 ms
Qwen3 8B (Q3_K_M)186.5 tok/s± 0.211,108.7 tok/s9.3 ms

↳ measured on NVIDIA GeForce RTX 4090

03

Speed when it is serving a product

Aggregate throughput measured over the seconds the server was actually saturated, per-stream rate, and the latency tail — with the number of requests behind each percentile stated, because a p95 of a handful of requests is the largest of that handful. Cost per token computed from a single stream can be an order of magnitude too high.

StreamsAggregatePer streamTTFT p50Samples
1264.6 tok/s264.6 tok/s31.7 ms20
2211.7 tok/s105.8 tok/s57.6 ms20
4322 tok/s80.5 tok/s77.9 ms20
8381 tok/s47.6 tok/s116.8 ms24
16862.1 tok/s53.9 tok/s132.6 ms48

↳ measured on NVIDIA GeForce RTX 4090

04

Whether it still works at that speed

A deterministic probe set run against every quantisation, beside the speed that describes it. A quant that has damaged the model is faster than one that has not, so speed alone rewards damage. It is a smoke test, not a quality ranking, and the report says so wherever the number appears.

ModelQuantScoreLooping
gpt-oss 20BQ4_K_M38%yes
Llama 3.1 8B InstructQ4_K_M50%no
Qwen3 8B (Q5_K_M)Q5_K_M50%no
Qwen3 8B (Q8_0)Q8_050%no

↳ measured on NVIDIA GeForce RTX 4090

05

What context length costs

The number that decides whether a model you can load is a model you can use. Measured peak against the KV formula every calculator applies, so the gap between them is visible instead of assumed.

ContextWeightsTheoretical KVMeasured peakDecode at depth
4,09610.8 GB0.2 GB11.1 GB271.9 tok/s
16,38410.8 GB0.8 GB11.4 GB245.6 tok/s

↳ measured on NVIDIA GeForce RTX 4090

06

What happens on a card too small for it

Most buyers' customers do not have the card in the report. The offload curve is what they will actually experience, measured rather than modelled — with the CPU, the thread count and the RAM stated, because below the fully-resident row this is a measurement of the host as much as the card.

On GPULayersDecodevs fully resident
100%999 / 24285.6 tok/s100%
75%18 / 2490.1 tok/s32%
50%12 / 2455.9 tok/s20%
25%6 / 2441.1 tok/s14%

↳ measured on NVIDIA GeForce RTX 4090

07

The configuration your readers are actually running

LM Studio and Ollama enable flash attention by default; a raw llama.cpp invocation does not. Both populations read benchmarks, and they are not running the same thing — so it is measured both ways, at depth, where the difference shows up.

Flash attentionDecodePeak VRAM
off250.7 tok/s11.8 GB
on272.1 tok/s11.4 GB

↳ measured on NVIDIA GeForce RTX 4090

08

Which quantisation is worth shipping

Same weights, same rig, different bits — VRAM, speed and the accuracy probes at every rung. The trade is usually described in quality terms and priced in VRAM; the speed column is the one people forget, and nobody publishes it next to a correctness check.

QuantWeightsPeak VRAMDecodeAccuracy
Q3_K_M3.8 GB4.7 GB186.5 tok/s63%
Q4_K_M4.7 GB5.5 GB163.3 tok/s69%
Q5_K_M5.4 GB6.1 GB144.7 tok/s50%
Q6_K6.3 GB6.9 GB128.3 tok/s56%
Q8_08.1 GB8.6 GB103.7 tok/s50%

↳ measured on NVIDIA GeForce RTX 4090

09

What it costs to own, not to rent

Board power sampled at the card during generation rather than taken from a spec sheet, as watts, tokens per watt and kWh per million tokens. A rented pod's hourly rate stops mattering the day the buyer owns the machine; this column does not.

ModelAvg powerPeak tempTokens/wattkWh per Mtok
Qwen3 30B A3B Instruct 2507181.4 W45°C1.430.195
gpt-oss 20B209.7 W47°C1.380.202
GLM 4.7 Flash186.6 W44°C10.278
Qwen3 4B Instruct 2507267.7 W49°C0.970.288

↳ measured on NVIDIA GeForce RTX 4090

10

Cost per million tokens, single-stream and batched

Computed at four utilisation assumptions, because no deployment generates tokens every second it pays for. The gap between the single-stream and batched columns is the whole reason a load test exists.

ModelSingle streamBatched (peak)Batching worth
Qwen3 4B Instruct 2507$0.74$0.155.1×
Llama 3.1 8B Instruct$1.12$0.16
Qwen3 8B (Q3_K_M)$1.03$0.176.1×
Qwen3 8B$1.17$0.186.6×

↳ measured on NVIDIA GeForce RTX 4090

11

Break-even against an API price you name

The volume above which running it yourself wins, and the sustained utilisation that implies — including the case where the machine cannot physically produce that volume in a month, which is printed as “never” rather than omitted.

↳ measured on NVIDIA GeForce RTX 4090

12

Everything that failed, and the method to reproduce it

Each failure with the stage and the error, then the pinned engine build, driver, host CPU and thread count, every axis swept and the raw JSON beside the prose. A methodology bug is an issue, not a secret.

No excerpt: every model in this particular run loaded, so its failure table is empty. That is a property of the list, not of the format — a run whose ladder stops somewhere is the more useful one, and the row that stops it is usually the most quoted line in the report.

WHAT IT DOES NOT CONTAIN
  • NVIDIA only. The harness builds CUDA. AMD, Intel Arc and Apple Silicon cannot be measured at all today — not slowly, not approximately.
  • llama.cpp and vLLM. Figures for other serving stacks are a conservative floor and are labelled as one.
  • No operating costs. Ops labour, storage and egress are deliberately excluded from the cost model and stated as excluded, because guessing at someone else’s payroll is not a measurement.
  • Not a quality ranking. The accuracy probes catch a broken configuration. They cannot tell you which of two healthy models is smarter.
THE TERMS THAT MAKE IT WORTH BUYING

Negative results are published. You have right of reply, printed in full, and no editorial veto. The raw data is released with the report. Ranking on this site is never for sale, and commissioned runs are excluded from it. These four clauses are the product: a report a vendor could have edited is worth nothing to the engineer it is aimed at, and that is the entire reason it is worth paying for.

What it costs and how to commission one →

Or read a full published report (NVIDIA GeForce RTX 4090) → · raw JSON · llama.cpp b10156