State of local LLM hardware, October 2026
A first look at the data behind Local LLM Advisor: 858 measured benchmark rows (252 hardware, model and quant points on 24 hardware entries), plus 253 rows from our own llama-bench runs on 6 GPUs. Every number below is computed from the open dataset.
Published 2026-10-17. Data generated 2026-10-16. By Matt, who runs this site; the site has Amazon and cloud GPU affiliate links, which never change the data or rankings (disclosure).
Key findings
- Memory decides what you can run; bandwidth decides how fast. At 16k context, 8 GB fits 2 of the 13 models; every model fits from 96 GB up (chart).
- Mixture-of-experts models are much faster than dense models of similar size. On the same GPU at Q4_K_M, the MoE model generated 3.8x as many tokens per second as its dense counterpart (range 3.6x to 3.9x over 4 comparisons) (chart).
- Long context costs speed. At 16k tokens of context, generation kept a median of 91% of its depth-0 speed for dense models and 89% for MoE models across 63 full-GPU runs (chart).
- Q8_0 costs speed relative to Q4_K_M. Median Q8_0 speed was 66% of Q4_K_M for dense models (21 comparisons) and 93% for MoE models (3).
- Same model, wide spread. gpt-oss 20B at Q4 ranges from 86.2 tok/s on NVIDIA DGX Spark to 298.3 tok/s on GeForce RTX 5090; per 100 GB/s of memory bandwidth the spread runs from 14.1 (Apple M3 Ultra) to 36 (GeForce RTX 4060 Ti 16GB) (chart).
Speed by hardware, on one model
The same model on every machine that has it measured removes the model as a variable. We have no price data in the dataset and do not state prices, so instead of price tiers this compares speed per memory bandwidth; memory sizes are on each hardware page.
Data table
| Hardware | Gen tok/s | Runs | Bandwidth GB/s | tok/s per 100 GB/s | Origin |
|---|---|---|---|---|---|
| GeForce RTX 5090 | 298.3 | 5 | 1792 | 16.6 | public |
| RTX PRO 6000 Blackwell Workstation | 286.9 | 1 | 1792 | 16 | public |
| GeForce RTX 4090 | 254.1 | 11 | 1008 | 25.2 | includes our runs |
| GeForce RTX 5070 Ti | 189.5 | 2 | 896 | 21.1 | public |
| GeForce RTX 3090 | 189.5 | 16 | 936 | 20.2 | includes our runs |
| GeForce RTX 5080 | 187.5 | 10 | 960 | 19.5 | public |
| Apple M3 Ultra | 115.5 | 1 | 819 | 14.1 | public |
| GeForce RTX 4060 Ti 16GB | 103.7 | 1 | 288 | 36 | includes our runs |
| Apple M4 Max (32-core GPU) | 92.4 | 1 | - | - | public |
| NVIDIA DGX Spark | 86.2 | 7 | 273 | 31.6 | public |
Bars mix our own runs with public community medians (different drivers, builds and backends), so small gaps are within noise. gpt-oss 20B is the one model with the widest hardware coverage in the dataset.
What fits at each memory tier
Data table
| Memory | Models that fit | Largest that fits |
|---|---|---|
| 8 GB | 2 | Qwen3.5 9B Q4_K_M |
| 12 GB | 4 | Gemma 4 12B Q6_K |
| 16 GB | 5 | gpt-oss 20B Q8_0 |
| 24 GB | 11 | Qwen3.6 35B-A3B UD-Q4_K_M |
| 32 GB | 11 | Qwen3.6 35B-A3B UD-Q6_K |
| 48 GB | 11 | Qwen3.6 35B-A3B Q8_0 |
| 64 GB | 11 | Qwen3.6 35B-A3B Q8_0 |
| 96 GB | 13 | gpt-oss 120B Q8_0 |
| 128 GB | 13 | gpt-oss 120B Q8_0 |
| 192 GB | 13 | gpt-oss 120B Q8_0 |
| 256 GB | 13 | gpt-oss 120B Q8_0 |
| 512 GB | 13 | gpt-oss 120B Q8_0 |
Same fit math as the VRAM tier pages; the largest model that fits fully at 512 GB is gpt-oss 120B. Offload to system RAM (not counted here) extends this at a large speed cost for dense models.
The cost of long context
We ran each model at depth 0, 4096 and 16384 tokens with llama-bench (flash attention on). Median retention across 64 full-GPU runs at 4k was 96% (min 84%, max 99%) and at 16k 91% (min 65%, max 95%).
Data table
| Model | Type | Retained at 4k | Retained at 16k |
|---|---|---|---|
| Qwen3-Coder 30B-A3B | MoE | 84% | 67% |
| Qwen3-VL 8B | dense | 90% | 70% |
| Mistral Small 3.2 24B | dense | 95% | 84% |
| gpt-oss 20B | MoE | 95% | 87% |
| Qwen3.5 4B | dense | 97% | 88% |
| Gemma 4 26B-A4B | MoE | 95% | 90% |
| Gemma 4 31B | dense | 94% | 90% |
| Qwen3.5 9B | dense | 98% | 92% |
| Gemma 4 12B | dense | 96% | 93% |
| Qwen3.6 35B-A3B | MoE | 98% | 93% |
| Qwen3.6 27B | dense | 99% | 95% |
Beyond our own runs, the site's depth model (fitted on 156 measured points, up to 128k tokens of depth, median absolute error 3.4%) estimates the speed at long context, up to 1M tokens where a model supports it; those figures are labelled estimated on each page.
MoE versus dense
Data table
| GPU | MoE model | tok/s | Dense model | tok/s | MoE advantage |
|---|---|---|---|---|---|
| GeForce RTX 3090 | Gemma 4 26B-A4B | 140.3 | Gemma 4 31B | 38.8 | 3.6x |
| GeForce RTX 3090 | Qwen3.6 35B-A3B | 159 | Qwen3.6 27B | 42.2 | 3.8x |
| GeForce RTX 4090 | Gemma 4 26B-A4B | 169.3 | Gemma 4 31B | 44.4 | 3.8x |
| GeForce RTX 4090 | Qwen3.6 35B-A3B | 190.5 | Qwen3.6 27B | 48.4 | 3.9x |
MoE models read only their active experts per token, so generation is limited by active parameters rather than total size, while the whole model still has to fit in memory.
Which hardware we have measured
Data table
| Hardware | Measured points | Our llama-bench runs |
|---|---|---|
| GeForce RTX 5090 | 38 | - |
| AMD Ryzen AI Max+ 395 (Strix Halo) | 26 | - |
| GeForce RTX 4090 | 24 | 48 |
| GeForce RTX 3090 | 20 | 48 |
| NVIDIA DGX Spark | 19 | - |
| GeForce RTX 4060 Ti 16GB | 14 | 46 |
| GeForce RTX 5080 | 11 | - |
| GeForce RTX 5070 | 11 | 37 |
| GeForce RTX 3060 12GB | 11 | 37 |
| GeForce RTX 4070 12GB | 11 | 37 |
| Apple M4 | 9 | - |
| Apple M5 Max (40-core GPU) | 8 | - |
| Radeon RX 7900 XTX | 8 | - |
| Apple M4 Max (32-core GPU) | 7 | - |
| RTX PRO 6000 Blackwell Workstation | 6 | - |
| GeForce RTX 5070 Ti | 5 | - |
| Apple M3 Ultra | 5 | - |
| Apple M4 Max (40-core GPU) | 4 | - |
| Apple M5 Max (32-core GPU) | 3 | - |
| Apple M5 Pro | 3 | - |
| Apple M4 Pro | 3 | - |
| Apple M5 | 3 | - |
| GeForce RTX 4060 | 2 | - |
| Apple M6 | 1 | - |
Public rows come from community llama.cpp results (sources); entries without our own runs are medians of other people's benchmarks. We have not yet measured Macs or AMD GPUs ourselves, so those numbers are public data. Send yours via the submit form.
Methods
- Our runs: llama-bench from llama.cpp (build b11658), CUDA 12.8, flash attention on, all layers on GPU, ubatch 512, 3 repeats (median reported), pp512 and tg128, run on rented GPUs (vast.ai) on 2026-10-16. Quants are GGUF Q4_K_M and Q8_0 from public repositories. Per-run details are in the dataset. 62 of the 253 rows used MoE expert offload to system RAM (different
--n-cpu-moesettings per depth) and are left out of the depth, MoE and quantization comparisons, because offload settings differ between rows. - Public rows: medians of community llama.cpp benchmarks, aggregated per hardware, model and quantization class; see sources and attribution.
- Fit math: weights plus KV cache at 16k context (f16) plus about 1 GB overhead must fit in GPU memory; model sizes come from the published GGUF files.
- Limits: single-user generation speed, short prompts; not a quality benchmark; GPU clocks, drivers and build versions differ between sources; our runs cover 6 GPUs only.
Reuse and attribution
Our own measurements and curated data are licensed CC BY 4.0. Please attribute as Data: Local LLM Advisor (localllmadvisor.com) and link to this post or the leaderboard. Download the CSV or the Hugging Face dataset. Third-party rows keep their upstream licenses. Charts on this page are inline SVG you may copy with the same attribution.
All hardware · Compare hardware · Measured model pages · Leaderboard · Blog