Quick answer

Measured on a retail RTX 5080 with ollama 0.32.1 at temperature 0: gpt-oss:20b (MXFP4) decodes at 178-190 tokens/second across two dated captures, Qwen 2.5 14B (Q4_K_M) at 94-97, qwen3-coder:30b at 52-62 partially offloaded, and Llama 3.2 3B at 298-313. Every figure is the median of three fresh-prefill runs, published as open CC BY 4.0 CSV.

By LK Wood IV · Published 2026-08-12 · Updated 2026-08-24 · ~4 min read · St. Louis County, MO

The short version

This is a measured dataset, not a spec-sheet estimate: real decode and prefill tokens/second for local LLMs on the same retail RTX 5080 that runs this site’s open bench dataset. Four models spanning 3B to 20.9B parameters, two context windows, two prompt sizes, three repetitions per cell, ollama’s native counters, temperature 0.

Per-GPU pages exist elsewhere for the RTX 5090, 4090, and 5060 — none for the 5080 when this dataset was first captured (checked 2026-08-12). This page is the 5080 entry, from a card someone actually owns.

The numbers (capture 2026-08-12)

ModelQuantContextDecode tok/sPrefill tok/sLoad msVRAM MiB*
gpt-oss:20b (20.9B)MXFP44,096190.1 / 187.39,078 / 10,465298 / 28014,067
gpt-oss:20b (20.9B)MXFP416,384188.6 / 187.79,287 / 10,554299 / 28014,355
Qwen 2.5 7B (7.6B)Q4_K_M4,096180.0 / 176.810,152 / 9,672130 / 1236,190
Qwen 2.5 7B (7.6B)Q4_K_M16,384179.7 / 176.610,133 / 9,984128 / 1287,034
Qwen 2.5 14B (14.8B)Q4_K_M4,09696.7 / 94.55,202 / 4,876183 / 12610,841
Qwen 2.5 14B (14.8B)Q4_K_M16,38497.0 / 94.65,226 / 4,865131 / 12913,157
Llama 3.2 3B (3.2B)Q4_K_M4,096312.0 / 298.218,197 / 17,681163 / 15615,682*
Llama 3.2 3B (3.2B)Q4_K_M16,384312.9 / 298.617,886 / 19,397163 / 1585,495

Paired values are the ~500-token / ~1,650-token prompt cells. Every value is the median of 3 runs.

*The starred Llama VRAM reading includes gpt-oss:20b still resident from the previous bench — see the FAQ. The 5,495 MiB row is the model alone.

Three readings worth naming:

  • Decode speed is flat across context at these prompt sizes. 4k to 16k num_ctx moves gpt-oss:20b by less than 2 tok/s. Context capacity costs VRAM (Qwen: 10.6 → 12.8 GiB), not decode speed, until the prompt itself gets long.
  • The 20B model is the surprise. gpt-oss:20b’s MXFP4 quantization decodes twice as fast as the dense 14B at Q4_K_M and matches the dense 7B — architecture and quantization beat parameter count.
  • Prefill is not the bottleneck at these sizes. Even the slowest model ingests ~5,000 tok/s; a 1,650-token prompt costs a third of a second.

The standout result has its own explainer now: why the 21B MoE doubles the dense 14B — the bandwidth arithmetic, shown in full against these rows. And the same card’s ollama rates now have a bare-llama.cpp counterpart: Ollama vs llama.cpp, measured head-to-head, which also explains why its short-prompt numbers run 2-7% above this page’s long-prompt rows.

Coding models (added in 1.1.0, capture 2026-08-26)

Four coding-focused models joined the matrix for the tested coding-picks article, captured with the same method and pinned settings in an exclusive GPU window (no other model server or GPU process live, ~20GB system RAM free, baseline VRAM recorded in the raw JSON):

ModelQuantContextDecode tok/sPrefill tok/sLoad msVRAM MiB
qwen2.5-coder 7B (7.6B)Q4_K_M4,096173.7 / 171.79,652 / 9,507159 / 1605,671
qwen2.5-coder 7B (7.6B)Q4_K_M16,384174.6 / 171.49,472 / 9,825146 / 1786,515
qwen2.5-coder 14B (14.8B)Q4_K_M4,09694.9 / 93.85,272 / 4,942220 / 15910,171
qwen2.5-coder 14B (14.8B)Q4_K_M16,38494.5 / 93.44,909 / 4,842160 / 15312,487
qwen3-coder 30B (30.5B MoE)³Q4_K_M4,09661.9 / 61.61,744 / 2,369198 / 17715,101
qwen3-coder 30B (30.5B MoE)³Q4_K_M16,38451.6 / 51.71,525 / 1,928220 / 18915,003
devstral 24B (23.6B)⁴Q4_K_M4,09636.3 / 34.99,377 / 5,335238 / 24214,997
gpt-oss:20b (20.9B, re-capture²)MXFP44,096181.5 / 178.49,607 / 11,001384 / 37613,385
gpt-oss:20b (20.9B, re-capture²)MXFP416,384183.0 / 178.39,092 / 10,329348 / 34513,683

Paired values are the ~500 / ~1,650-token prompt cells, medians of 3 fresh-prefill runs each, same pins as every other row (temperature 0, seed 42, 256-token output, per-rep nonce).

² Same-model re-capture for continuity: 3-5% under its 08-12 rows on a card six hours into continuous bench work — see the 1.1.0 changelog note. ³ Partial offload (the 19GB file exceeds the card); see the note below. ⁴ devstral’s prompt cells landed at 1,694 / 2,597 actual tokens (its tokenizer expands the filler text); 4k context only — see the note below.

Notes that belong next to those rows:

  • qwen3-coder:30b is the matrix’s first partial-offload row. Its 19GB Q4_K_M exceeds the card, so ollama ran it 74% GPU-resident (measured via /api/ps at 8k context; the split itself moves with load-time state); the decode rate is real but carries a dependency the resident rows do not have: free system RAM. The same model on the same card decoded at 83 tok/s with ~20GB free and under 1 tok/s while the box was paging at 1.2GB free — measured during the eval runs, raw logs preserved. Treat any offloaded-model tok/s figure (ours included) as conditional on RAM headroom.
  • devstral:24b appears at 4096 context only. At 8k context its 14GB file plus KV cache spilled and decode collapsed below 1 tok/s on this box; the honest row is the configuration that actually fits. The 16k cells were not captured for it.

The coding eval (v1, run 2026-08-26)

The same five models (the four above plus the already-tabled gpt-oss:20b) went through techfuelhq-coding-eval-v1: eight tasks — bugfix, implement-from-spec, test-writing against a planted mutant, behavior-preserving refactor, legacy-code explanation, SQL row-compared on seeded SQLite, regex against fullmatch lists, and two-turn agentic tool-calling — two repetitions each at temperature 0, seed 42, scored only by executed checkers. No judge model anywhere. The exact prompts are published as coding-eval-tasks-v1.json and every repetition’s outcome is in rtx-5080-coding-eval-v1.csv.

ModelBugfixSpecTestsRefactorExplainSQLRegexToolsStable
gpt-oss:20bpasspasspasspasspasspasspasspass8/8
qwen3-coder:30bfailpass1 of 2passpasspasspasspass6/8
devstral:24b (4k ctx)passfailpasspasspasspassfailpass6/8
qwen2.5-coder:14bpassfailfailpasspasspasspassfail5/8
qwen2.5-coder:7bpassfailfailpasspasspassfailfail4/8

A task counts as stable only when both repetitions pass; “1 of 2” is reported as flaky, never rounded up. Interpretation, picks, and the failure stories live in the article; this page is the canonical home of the numbers.

Method, exactly

The capture script (in the site repository) drives ollama’s /api/generate and records its native eval_count/eval_duration and prompt_eval_count/prompt_eval_duration — the timers the runtime itself keeps — never wall-clock division. Each repetition prepends a unique nonce so every run pays a full prefill; without it, warm repetitions hit ollama’s prompt cache and report ~60,000 tok/s cache-hit rates that measure nothing (we caught exactly that in the first capture attempt and rejected those rows). Generation is pinned: temperature 0, seed 42, 256-token target output. A cell enters the CSV only when all 3 repetitions pass mechanical checks (enough tokens generated for a stable rate; a genuine full-prompt prefill observed).

Bench environment, recorded per row: NVIDIA GeForce RTX 5080 (16 GiB), driver 610.88, ollama 0.32.1, Windows 11, Ryzen 7 7800X3D. Model identity is pinned by digest in the CSV, because a tag like qwen2.5:14b can silently move.

Limitations, honestly

One retail card, one driver, one runtime. These are this unit’s numbers — silicon lottery, thermals, and runtime version all move results; that is why each row carries its digest, driver, and date instead of claiming to be a universal constant. The VRAM column is whole-GPU nvidia-smi at measurement time (see FAQ). llama.cpp direct, vLLM, and image-generation throughput are planned lanes, not covered yet.

Use the data (CC BY 4.0)

Download the CSV: rtx-5080-llm-throughput.csv. License: Creative Commons Attribution 4.0. Attribute as “TechFuelHQ RTX 5080 LLM Throughput Dataset” linking to this page. Sizing a build for local AI? Pair these measured rows with the LLM VRAM calculator and the LLM speed calculator — the estimators tell you what should fit; this table shows what one real card actually did.

The dataset is also mirrored on Kaggle and Hugging Face for researchers who discover data through those catalogs. The page here is canonical for corrections, limitations, and the current method.

The full matrix, rendered from the raw CSV

Every measured cell, straight from the downloadable file at build time.

Capture Date UtcMethod VersionGpuDriverOllama VersionModelModel Digest12Parameter SizeQuantizationNum CtxPrompt TokensRepsMedian Decode Tok SMedian Prefill Tok SMedian Load MsVram Resident Mib
2026-08-12llm-throughput-ollama-v1NVIDIA GeForce RTX 5080610.880.32.1gpt-oss:20b17052f91a42e20.9BMXFP440965033190.149078.28297.714067
2026-08-12llm-throughput-ollama-v1NVIDIA GeForce RTX 5080610.880.32.1gpt-oss:20b17052f91a42e20.9BMXFP4409616583187.2710464.66279.514060
2026-08-12llm-throughput-ollama-v1NVIDIA GeForce RTX 5080610.880.32.1gpt-oss:20b17052f91a42e20.9BMXFP4163845033188.639286.61299.214355
2026-08-12llm-throughput-ollama-v1NVIDIA GeForce RTX 5080610.880.32.1gpt-oss:20b17052f91a42e20.9BMXFP41638416583187.7310554.32280.214355
2026-08-12llm-throughput-ollama-v1NVIDIA GeForce RTX 5080610.880.32.1qwen2.5:14b7cdf5a0187d514.8BQ4_K_M4096488396.655202.23182.510841
2026-08-12llm-throughput-ollama-v1NVIDIA GeForce RTX 5080610.880.32.1qwen2.5:14b7cdf5a0187d514.8BQ4_K_M40961674394.484876.41125.810855
2026-08-12llm-throughput-ollama-v1NVIDIA GeForce RTX 5080610.880.32.1qwen2.5:14b7cdf5a0187d514.8BQ4_K_M16384488397.025225.96131.313157
2026-08-12llm-throughput-ollama-v1NVIDIA GeForce RTX 5080610.880.32.1qwen2.5:14b7cdf5a0187d514.8BQ4_K_M163841674394.584864.67128.913159
2026-08-12llm-throughput-ollama-v1NVIDIA GeForce RTX 5080610.880.32.1llama3.2:3ba80c4f17acd53.2BQ4_K_M40964713311.9618196.57162.815682
2026-08-12llm-throughput-ollama-v1NVIDIA GeForce RTX 5080610.880.32.1llama3.2:3ba80c4f17acd53.2BQ4_K_M409616573298.2117681.08156.215682
2026-08-12llm-throughput-ollama-v1NVIDIA GeForce RTX 5080610.880.32.1llama3.2:3ba80c4f17acd53.2BQ4_K_M163844713312.8917885.62162.95495
2026-08-12llm-throughput-ollama-v1NVIDIA GeForce RTX 5080610.880.32.1llama3.2:3ba80c4f17acd53.2BQ4_K_M1638416573298.5919397.36158.05501
2026-08-12llm-throughput-ollama-v1NVIDIA GeForce RTX 5080610.880.32.1qwen2.5:7b845dbda0ea487.6BQ4_K_M40964883180.0210152.28129.86190
2026-08-12llm-throughput-ollama-v1NVIDIA GeForce RTX 5080610.880.32.1qwen2.5:7b845dbda0ea487.6BQ4_K_M409616743176.799672.39123.46190
2026-08-12llm-throughput-ollama-v1NVIDIA GeForce RTX 5080610.880.32.1qwen2.5:7b845dbda0ea487.6BQ4_K_M163844883179.6610133.1127.97022
2026-08-12llm-throughput-ollama-v1NVIDIA GeForce RTX 5080610.880.32.1qwen2.5:7b845dbda0ea487.6BQ4_K_M1638416743176.619984.37127.77034
2026-08-26llm-throughput-ollama-v1NVIDIA GeForce RTX 5080610.880.32.1gpt-oss:20b17052f91a42e20.9BMXFP440965033181.59607.49383.713381
2026-08-26llm-throughput-ollama-v1NVIDIA GeForce RTX 5080610.880.32.1gpt-oss:20b17052f91a42e20.9BMXFP4409613603178.3711001.37375.913385
2026-08-26llm-throughput-ollama-v1NVIDIA GeForce RTX 5080610.880.32.1gpt-oss:20b17052f91a42e20.9BMXFP4163845033183.09092.22347.713683
2026-08-26llm-throughput-ollama-v1NVIDIA GeForce RTX 5080610.880.32.1gpt-oss:20b17052f91a42e20.9BMXFP41638413603178.3410328.62345.313683
2026-08-26llm-throughput-ollama-v1NVIDIA GeForce RTX 5080610.880.32.1qwen2.5-coder:7bdae161e27b0e7.6BQ4_K_M40964883173.739651.9159.15671
2026-08-26llm-throughput-ollama-v1NVIDIA GeForce RTX 5080610.880.32.1qwen2.5-coder:7bdae161e27b0e7.6BQ4_K_M409613683171.739506.54159.65671
2026-08-26llm-throughput-ollama-v1NVIDIA GeForce RTX 5080610.880.32.1qwen2.5-coder:7bdae161e27b0e7.6BQ4_K_M163844883174.589471.68145.96503
2026-08-26llm-throughput-ollama-v1NVIDIA GeForce RTX 5080610.880.32.1qwen2.5-coder:7bdae161e27b0e7.6BQ4_K_M1638413683171.419825.47178.36515
2026-08-26llm-throughput-ollama-v1NVIDIA GeForce RTX 5080610.880.32.1qwen2.5-coder:14b9ec8897f747e14.8BQ4_K_M4096488394.895271.63219.810169
2026-08-26llm-throughput-ollama-v1NVIDIA GeForce RTX 5080610.880.32.1qwen2.5-coder:14b9ec8897f747e14.8BQ4_K_M40961368393.84942.3159.410171
2026-08-26llm-throughput-ollama-v1NVIDIA GeForce RTX 5080610.880.32.1qwen2.5-coder:14b9ec8897f747e14.8BQ4_K_M16384488394.494909.36159.512485
2026-08-26llm-throughput-ollama-v1NVIDIA GeForce RTX 5080610.880.32.1qwen2.5-coder:14b9ec8897f747e14.8BQ4_K_M163841368393.414842.15153.212487
2026-08-26llm-throughput-ollama-v1NVIDIA GeForce RTX 5080610.880.32.1qwen3-coder:30b06c1097efce030.5BQ4_K_M4096467361.891744.18197.715101
2026-08-26llm-throughput-ollama-v1NVIDIA GeForce RTX 5080610.880.32.1qwen3-coder:30b06c1097efce030.5BQ4_K_M40961347361.552368.71177.215101
2026-08-26llm-throughput-ollama-v1NVIDIA GeForce RTX 5080610.880.32.1qwen3-coder:30b06c1097efce030.5BQ4_K_M16384467351.621524.77219.915003
2026-08-26llm-throughput-ollama-v1NVIDIA GeForce RTX 5080610.880.32.1qwen3-coder:30b06c1097efce030.5BQ4_K_M163841347351.651928.14188.915003
2026-08-26llm-throughput-ollama-v1NVIDIA GeForce RTX 5080610.880.32.1devstral:24b9bd74193e93923.6BQ4_K_M40961694336.329377.3238.214997
2026-08-26llm-throughput-ollama-v1NVIDIA GeForce RTX 5080610.880.32.1devstral:24b9bd74193e93923.6BQ4_K_M40962597334.95334.83241.714997

Rendered at build time from the raw CSV — the table and the download can never disagree.

Change log

  • 1.1.0 (2026-08-26) — coding models join the matrix: qwen2.5-coder 7B and 14B, devstral 24B (4k context only — at 8k its spill collapsed decode below 1 tok/s on this box), and qwen3-coder:30b, the dataset’s first partial-offload row. Same method, same pins, captured in an exclusive GPU window after a night of multi-session contention taught us to verify the window at the process level (the full incident trail lives in the repo’s receipts file). Two honest notes attached to this capture: offloaded-model decode is conditional on load-time memory state (we measured the same 30B at 0.7, 62, and 83 tok/s under three host states), and this capture’s gpt-oss rows run ~5% below the 08-12 rows on a card six hours into continuous bench work — both captures are real, both carry their dates. Also new: the coding-eval grid (techfuelhq-coding-eval-v1), its task-prompt JSON, and the per-rep results CSV as second and third distributions.
  • 1.0.2 (2026-08-14) — VRAM correction, no re-measurement. The prose and FAQ were converting the CSV’s vram_resident_mib column by 1000 and calling the result GiB; every narrative footprint was ~2.4% high. Recomputed at 1024 (gpt-oss:20b is 13.7–14.0 GiB resident, not 14.0–14.4). The measured table was already correct.
  • 1.0.1 (2026-08-12) — added Qwen 2.5 7B (Q4_K_M): 176.6-180.0 tok/s decode, ~10k tok/s prefill, 6.0-6.9 GiB resident measured alone — four models now span 3B-20.9B.
  • 1.0.0 (2026-08-12) — first capture: gpt-oss:20b, Qwen 2.5 14B, Llama 3.2 3B × 4k/16k context × ~500/~1,650-token prompts, 3 reps per cell, ollama 0.32.1, driver 610.88. First-capture defect worth recording: warm-run prompt-cache contamination was detected and eliminated by per-rep nonces before any row entered the dataset.

Frequently asked questions

How many tokens per second does an RTX 5080 get on local LLMs?
Measured on this dataset’s retail RTX 5080 with ollama 0.32.1: about 187-190 tokens/second decoding gpt-oss:20b (MXFP4), 94-97 tok/s on Qwen 2.5 14B (Q4_K_M), and 298-313 tok/s on Llama 3.2 3B (Q4_K_M). Rates hold nearly flat from 4k to 16k context at these prompt sizes. Every figure is the median of three fresh-prefill runs at temperature 0.
Can an RTX 5080 run a 20B-parameter model?
Yes. gpt-oss:20b in its MXFP4 quantization ran fully GPU-resident in roughly 13.7-14.0 GiB of the card’s 16 GiB, decoding at about 188 tokens/second — fast enough that generation feels instant in interactive use.
How were these numbers measured?
Each cell is the median of 3 runs using ollama’s own eval counters, not wall-clock timing. Every run forces a fresh prefill with a unique prompt prefix (warm runs otherwise hit ollama’s prompt cache and report cache-hit rates around 60,000 tok/s that measure nothing). Generation is pinned to temperature 0, seed 42, 256-token output. The capture script, raw JSON, and CSV are all published.
How fast is Qwen3-Coder 30B on an RTX 5080?
It cannot fully fit: the 19GB Q4_K_M exceeds the card, so ollama runs it partially offloaded (74% GPU-resident at 8k context in our measurement). In this dataset’s controlled cells it decoded at roughly 62 tokens/second at 4k context and 52 at 16k — but offloaded throughput depends on load-time memory state; we measured the same model at 0.7 tok/s while the host was paging and 83 tok/s under a different resident split. Resident models do not carry this dependency.
Why does the same model show different VRAM numbers?
The VRAM column records whole-GPU memory from nvidia-smi at measurement time, and ollama can keep a previously benched model resident. Llama 3.2 3B shows 15.3 GiB when measured right after gpt-oss:20b and 5.4 GiB once the larger model was evicted. Treat VRAM readings as an upper bound unless the row’s notes say the model ran alone; decode and prefill rates are unaffected.

Evidence ledger

Last updated
Methodology
This guide was written and edited by Lowell K. Wood IV in St. Louis County, MO. Specs and prices verified against vendor and project documentation current on the date above. Full editorial standard: methodology.
Update log
  • 2026-08-14 — Corrected four VRAM figures in the prose and FAQ. The CSV column is vram_resident_mib (nvidia-smi mebibytes) and the narrative had been dividing it by 1000 while labelling the result GiB, overstating every footprint by about 2.4 percent. Re-derived at 1024: 14067 MiB = 13.7 GiB, 14355 = 14.0, 15682 = 15.3, 5495 = 5.4, 10841 = 10.6, 13157 = 12.8, 6190 = 6.0, 7034 = 6.9. The measured table itself was correct and is unchanged.
Corrections
Spotted an error or a stale number? Email hello@techfuelhq.com. Confirmed corrections are added to the update log above.

About the author

Written by Lowell K. Wood IV, who builds and runs TechFuelHQ from St. Louis, Missouri.