RTX 3090 vs RTX 4090 for local LLMs
Assumes 32 GB of DDR5-5600 system RAM, Windows with this GPU driving the display, 8k context and an f16 KV cache.
What to know before choosing
Both cards leave 23.4 GB usable in CanRun's count, so the same files fit and verdict splits come from speed. DeepSeek R1 Distill Qwen 32B always thinks, so its speed bar is stricter, and both estimates sit right on that line with overlapping ranges. It runs well on the RTX 3090 and great on the RTX 4090, but that is not a large performance gap. On the RTX 3090, Qwen3 32B's smaller IQ4_XS file runs great.
Generation follows memory bandwidth, which is close here. The bigger difference is FP16 compute, which sets how fast the prompt is read before the first token. We estimate the RTX 4090 is much faster there, which shows with long prompts: pasted documents, RAG, coding agents that resend a large context. Our speed guide explains the two speeds. On gpt-oss-20b, the public benchmarks below show a wider generation gap than our estimate; their test conditions differ from our estimate's.
The GeForce RTX 3090 Ti also has 24GB, with 1,008 GB/s of bandwidth like the GeForce RTX 4090 but FP16 compute close to the GeForce RTX 3090. In CanRun's estimate its generation tracks the newer card's, so both 32B models above run great on it, while it reads prompts at about the older card's pace. The GeForce RTX 4090 Laptop has 16 GB, so DeepSeek R1 Distill Qwen 32B partly spills to system RAM and runs slowly.
Speed
The RTX 4090 generates text about 1.1× faster than the RTX 3090 (median of our estimates over the 46 models that fit entirely in memory on both at Q4_K_M or the closest available quant).
On Qwen3.5 35B-A3B the two estimate ranges overlap, so the real gap may be smaller.
- Reference model
- Qwen3.5 35B-A3B at Q4_K_M, the largest model that fits entirely in memory on both at Q4_K_M or the closest available quant
- RTX 3090
- est. 148.8 tok/s (119.1–178.6, calibrated estimate ±20%)
- RTX 4090
- est. 155.9 tok/s (124.7–187.1, calibrated estimate ±20%)
- Prompt processing on Qwen3.5 35B-A3B
- RTX 3090: about 4,046 tok/s (2,427–5,664, rough estimate ±40%); RTX 4090: about 9,387 tok/s (5,632–13,141, rough estimate ±40%)
Specs side by side
| Spec | RTX 3090 | RTX 4090 | Difference |
|---|---|---|---|
| Memory | 24 GB | 24 GB | Same |
| Memory bandwidth | 936.0 GB/s | 1,008.0 GB/s | 1.08× on the RTX 4090 |
| FP16 compute | 35.6 TFLOPS | 82.6 TFLOPS | 2.32× on the RTX 4090 |
| Launch year | 2020 | 2022 | — |
| Price | $1,050 street (as of 2026-08-09) | $2,755 street (as of 2026-08-09) | — |
| Public benchmark results | 7 results | 13 results | — |
Verdicts at a glance
Out of 58 models at Q4_K_M (or the closest available quant) with 8k context.
- RTX 3090Runs great44 modelsRuns well4 modelsRuns slowly0 modelsWon't run10 models
- RTX 4090Runs great46 modelsRuns well2 modelsRuns slowly0 modelsWon't run10 models
How to read the verdicts
- Runs great
- Fully on the GPU at 20 tok/s or more
- Runs well
- Fully on the GPU at 8–20 tok/s; MoE experts in system RAM at 20 tok/s or more; or at least 90% on the GPU at 8 tok/s or more
- Runs slowly
- 2–8 tok/s; CPU-only; less than 90% on the GPU; or MoE experts in system RAM below 20 tok/s
- Won't run
- Does not fit, or under 2 tok/s
Where the verdicts differ
2 models get a different verdict on the two.
Scroll sideways to see every column.
| Model | RTX 3090 verdict | RTX 3090 speed | RTX 4090 verdict | RTX 4090 speed |
|---|---|---|---|---|
| DeepSeek R1 Distill Qwen 32BQ4_K_M | Runs well | est. 29.8 tok/s26.2–33.4calibrated estimate ±12% | Runs great | est. 32.1 tok/s28.2–35.9calibrated estimate ±12% |
| Qwen3 32BQ4_K_M | Runs well | est. 29.9 tok/s26.3–33.5calibrated estimate ±12% | Runs great | 42.5 tok/s8k estimate 32.2 tok/s (28.3–36.1, calibrated estimate ±12%)measured (1 run, 512 context) |
Every model on both
Scroll sideways to see every column.
| Model | RTX 3090 verdict | RTX 3090 speed | RTX 4090 verdict | RTX 4090 speed |
|---|---|---|---|---|
| Qwen3.5 35B-A3BQ4_K_M | Runs great | est. 148.8 tok/s119.1–178.6calibrated estimate ±20% | Runs great | est. 155.9 tok/s124.7–187.1calibrated estimate ±20% |
| Qwen3.6 35B-A3BQ4_K_M | Runs great | est. 164.6 tok/s131.6–197.5calibrated estimate ±20% | Runs great | est. 171.9 tok/s137.5–206.2calibrated estimate ±20% |
| MiniCPM-V 4.7 35B-A3BQ4_K_M | Runs great | est. 174.2 tok/s139.3–209.0calibrated estimate ±20% | Runs great | est. 181.6 tok/s145.3–217.9calibrated estimate ±20% |
| EXAONE 4.5 33BQ4_K_M | Runs great | est. 31.8 tok/s28.0–35.6calibrated estimate ±12% | Runs great | est. 34.3 tok/s30.2–38.4calibrated estimate ±12% |
| DeepSeek R1 Distill Qwen 32BQ4_K_M | Runs well | est. 29.8 tok/s26.2–33.4calibrated estimate ±12% | Runs great | est. 32.1 tok/s28.2–35.9calibrated estimate ±12% |
| Qwen3 32BQ4_K_M | Runs well | est. 29.9 tok/s26.3–33.5calibrated estimate ±12% | Runs great | 42.5 tok/s8k estimate 32.2 tok/s (28.3–36.1, calibrated estimate ±12%)measured (1 run, 512 context) |
| EXAONE 4.0 32BQ4_K_M | Runs great | est. 33.0 tok/s29.0–36.9calibrated estimate ±12% | Runs great | est. 35.5 tok/s31.2–39.8calibrated estimate ±12% |
| Gemma 4 31BQ4_K_M | Runs great | est. 34.5 tok/s30.4–38.6calibrated estimate ±12% | Runs great | est. 37.2 tok/s32.7–41.6calibrated estimate ±12% |
| Qwen3 30B-A3B (2507)Q4_K_M | est. 140.6 tok/s112.5–168.7calibrated estimate ±20% | est. 146.7 tok/s117.4–176.1calibrated estimate ±20% | ||
| Muse Glimmer 30BQ4_K_M | Runs great | est. 37.6 tok/s33.1–42.1calibrated estimate ±12% | Runs great | est. 40.5 tok/s35.6–45.4calibrated estimate ±12% |
| Granite 4.2 30BQ4_K_M | Runs great | est. 33.0 tok/s29.0–36.9calibrated estimate ±12% | Runs great | est. 35.5 tok/s31.3–39.8calibrated estimate ±12% |
| Qwen3.5 27BQ4_K_M | Runs great | est. 37.1 tok/s32.7–41.6calibrated estimate ±12% | Runs great | 44.8 tok/s8k estimate 40.0 tok/s (35.2–44.8, calibrated estimate ±12%)measured (2 runs, 512/40k context) |
| Qwen3.6 27BQ4_K_M | Runs great | est. 37.7 tok/s33.2–42.3calibrated estimate ±12% | Runs great | est. 40.7 tok/s35.8–45.5calibrated estimate ±12% |
| Qwen3.8 27BQ4_K_M | Runs great | est. 36.4 tok/s32.1–40.8calibrated estimate ±12% | Runs great | 49.8 tok/s8k estimate 39.3 tok/s (34.5–44.0, calibrated estimate ±12%)measured (1 run, 1k context) |
| Gemma 3 27BQ4_K_M | Runs great | est. 38.0 tok/s33.5–42.6calibrated estimate ±12% | Runs great | est. 41.0 tok/s36.1–45.9calibrated estimate ±12% |
| Gemma 4 26B-A4BQ4_K_M | Runs great | 108.0 tok/s8k estimate 134.9 tok/s (108.0–161.9, calibrated estimate ±20%)measured (1 run, 32k context) | Runs great | est. 142.6 tok/s114.1–171.1calibrated estimate ±20% |
| Mistral Small 3.2 24BQ4_K_M | Runs great | est. 41.8 tok/s36.8–46.8calibrated estimate ±12% | Runs great | est. 45.0 tok/s39.6–50.4calibrated estimate ±12% |
| gpt-oss-20bMXFP4 | Runs greatgpt-oss-20b verdict on the RTX 3090 | 162.0 tok/s8k estimate 201.1 tok/s (160.9–241.3, calibrated estimate ±20%)measured (1 run, 2k context) | Runs greatgpt-oss-20b verdict on the RTX 4090 | 225.2 tok/s8k estimate 214.1 tok/s (171.3–256.9, calibrated estimate ±20%)measured (1 run, 2k context) |
| Kanana 1.5 15.7B-A3BQ4_K_M | Runs great | est. 156.3 tok/s125.0–187.5calibrated estimate ±20% | Runs great | est. 164.4 tok/s131.5–197.3calibrated estimate ±20% |
| Qwen3 14BQ4_K_M | Runs greatQwen3 14B verdict on the RTX 3090 | est. 63.4 tok/s55.7–71.0calibrated estimate ±12% | Runs greatQwen3 14B verdict on the RTX 4090 | est. 68.2 tok/s60.0–76.4calibrated estimate ±12% |
| DeepSeek R1 Distill Qwen 14BQ4_K_M | Runs great | est. 61.8 tok/s54.4–69.2calibrated estimate ±12% | Runs great | est. 66.6 tok/s58.6–74.5calibrated estimate ±12% |
| HyperCLOVA X SEED Think 14BQ4_K_M | Runs great | est. 64.3 tok/s45.0–83.5theoretical estimate ±30% | Runs great | est. 69.2 tok/s48.4–90.0theoretical estimate ±30% |
| Phi-4Q4_K_M | Runs great | est. 61.1 tok/s53.7–68.4calibrated estimate ±12% | Runs great | est. 65.8 tok/s57.9–73.7calibrated estimate ±12% |
| Gemma 3 12BQ4_K_M | Runs greatGemma 3 12B verdict on the RTX 3090 | est. 83.6 tok/s73.6–93.6calibrated estimate ±12% | Runs greatGemma 3 12B verdict on the RTX 4090 | est. 90.0 tok/s79.2–100.8calibrated estimate ±12% |
| Mellum2.1 12B-A2.5B ThinkingQ4_K_M | Runs great | est. 241.5 tok/s193.2–289.9calibrated estimate ±20% | Runs great | est. 252.0 tok/s201.6–302.5calibrated estimate ±20% |
| Gemma 4 12BQ4_K_M | Runs great | est. 90.3 tok/s79.5–101.2calibrated estimate ±12% | Runs great | est. 97.3 tok/s85.6–108.9calibrated estimate ±12% |
| Qwen3.5 9BQ4_K_M | Runs great | est. 106.7 tok/s93.9–119.5calibrated estimate ±12% | Runs great | 127.5 tok/s8k estimate 114.9 tok/s (101.2–128.7, calibrated estimate ±12%)measured (2 runs, 512/40k context) |
| K2-Horizon 7BQ4_K_M | Runs great | est. 96.4 tok/s84.8–107.9calibrated estimate ±12% | Runs great | est. 103.8 tok/s91.3–116.3calibrated estimate ±12% |
| Qwen3 8BQ4_K_M | Runs great | est. 105.0 tok/s92.4–117.6calibrated estimate ±12% | Runs great | est. 113.1 tok/s99.5–126.7calibrated estimate ±12% |
| DeepSeek R1 0528 Qwen3 8BQ4_K_M | Runs great | est. 105.0 tok/s92.4–117.6calibrated estimate ±12% | Runs great | est. 113.1 tok/s99.5–126.7calibrated estimate ±12% |
| DeepSeek R1 Distill Llama 8BQ4_K_M | Runs great | est. 109.3 tok/s96.2–122.4calibrated estimate ±12% | Runs great | est. 117.7 tok/s103.6–131.8calibrated estimate ±12% |
| Kanana 1.5 8BQ4_K_M | Runs great | est. 109.3 tok/s96.2–122.4calibrated estimate ±12% | Runs great | est. 117.7 tok/s103.6–131.8calibrated estimate ±12% |
| Llama 3.1 8BQ4_K_M | Runs greatLlama 3.1 8B verdict on the RTX 3090 | est. 109.3 tok/s96.2–122.4calibrated estimate ±12% | Runs greatLlama 3.1 8B verdict on the RTX 4090 | 91.0 tok/s8k estimate 117.7 tok/s (103.6–131.8, calibrated estimate ±12%)measured (1 run, 4k context) |
| Gemma 4 E4BQ4_K_M | Runs great | est. 161.4 tok/s113.0–209.9theoretical estimate ±30% | Runs great | est. 171.0 tok/s119.7–222.3theoretical estimate ±30% |
| Ling-3.0 TinyQ4_K_M | Runs great | est. 377.2 tok/s264.1–490.4theoretical estimate ±30% | Runs great | est. 390.2 tok/s273.2–507.3theoretical estimate ±30% |
| Gemma 4 E2BQ4_K_M | Runs great | est. 269.1 tok/s188.4–349.8theoretical estimate ±30% | Runs great | est. 281.9 tok/s197.3–366.5theoretical estimate ±30% |
| Qwen3.5 4BQ4_K_M | Runs great | est. 211.5 tok/s186.1–236.8calibrated estimate ±12% | Runs great | est. 227.7 tok/s200.4–255.1calibrated estimate ±12% |
| Nanbeige4.2 3BQ4_K_M | Runs great | est. 106.9 tok/s74.9–139.0theoretical estimate ±30% | Runs great | est. 115.2 tok/s80.6–149.7theoretical estimate ±30% |
| Spark-X2.5 4BQ4_K_M | Runs great | est. 225.8 tok/s198.7–252.9calibrated estimate ±12% | Runs great | est. 243.1 tok/s214.0–272.3calibrated estimate ±12% |
| Llama 3.2 3BQ4_K_M | Runs great | est. 221.4 tok/s194.8–248.0calibrated estimate ±12% | Runs great | est. 238.4 tok/s209.8–267.0calibrated estimate ±12% |
| LFM2.5 2.6BQ4_K_M | Runs great | est. 363.1 tok/s254.2–472.1theoretical estimate ±30% | Runs great | est. 391.1 tok/s273.8–508.4theoretical estimate ±30% |
| MiniCPM5 2BQ4_K_M | Runs great | est. 342.6 tok/s301.5–383.7calibrated estimate ±12% | Runs great | est. 369.0 tok/s324.7–413.3calibrated estimate ±12% |
| HyperCLOVA X SEED 1.5BQ4_K_M | Runs great | est. 360.9 tok/s317.6–404.2calibrated estimate ±12% | Runs great | est. 388.7 tok/s342.1–435.3calibrated estimate ±12% |
| EXAONE 4.0 1.2BQ4_K_M | Runs great | est. 498.9 tok/s439.0–558.8calibrated estimate ±12% | Runs great | est. 537.3 tok/s472.8–601.7calibrated estimate ±12% |
| Llama 3.2 1BQ4_K_M | Runs great | est. 607.5 tok/s534.6–680.5calibrated estimate ±12% | Runs great | est. 654.3 tok/s575.8–732.8calibrated estimate ±12% |
| MiniCPM5 1BQ4_K_M | Runs great | est. 735.1 tok/s646.9–823.3calibrated estimate ±12% | Runs great | est. 791.6 tok/s696.6–886.6calibrated estimate ±12% |
| K2-Horizon MoVA 36B-A4BQ4_K_M | Runs well | est. 79.2 tok/s55.5–103.0theoretical estimate ±30% | Runs well | est. 82.6 tok/s57.8–107.4theoretical estimate ±30% |
| Nemotron 3.5 Lightning 30B-A3BQ4_K_M | Runs well | est. 122.0 tok/s85.4–158.7theoretical estimate ±30% | Runs well | est. 126.5 tok/s88.5–164.4theoretical estimate ±30% |
| GLM-5.3 FlashQ4_K_M | Won't run | — | Won't run | — |
| DeepSeek V4 Flash 0731MXFP4 | Won't run | — | Won't run | — |
| Solar Open 2 250BIQ4_XS | Won't run | — | Won't run | — |
| Ling-3.0 FlashQ4_K_M | Won't run | — | Won't run | — |
| Qwen3.5 122B-A10BQ4_K_M | Won't runTry UD-Q2_K_XL (heavy quality loss): Runs well | est. 41.3 tok/s28.9–53.6theoretical estimate ±30% | Won't runTry UD-Q2_K_XL (heavy quality loss): Runs well | est. 42.2 tok/s29.5–54.8theoretical estimate ±30% |
| Laguna S 2.1Q4_K_M | Won't run | — | Won't run | — |
| gpt-oss-120bMXFP4 | Won't rungpt-oss-120b verdict on the RTX 3090 | — | Won't rungpt-oss-120b verdict on the RTX 4090 | — |
| Solar Open 100BQ4_K_M | Won't runTry Q2_K (heavy quality loss): Runs slowly | est. 28.4 tok/s19.9–36.9theoretical estimate ±30% | Won't runTry Q2_K (heavy quality loss): Runs slowly | est. 28.9 tok/s20.2–37.5theoretical estimate ±30% |
| Kolibri 1Q4_K_M | Won't runTry IQ4_XS: Runs well | est. 68.5 tok/s47.9–89.0theoretical estimate ±30% | Won't runTry IQ4_XS: Runs well | est. 70.1 tok/s49.0–91.1theoretical estimate ±30% |
| Llama 3.3 70BQ4_K_M | Won't runTry IQ4_XS: Runs slowly | est. 2.2 tok/s1.7–2.6calibrated estimate ±20% | Won't runTry IQ4_XS: Runs slowly | est. 2.2 tok/s1.8–2.6calibrated estimate ±20% |
Models with a thinking mode spend extra tokens thinking, so their speed thresholds are 1.5× stricter (30 / 12 / 3 tok/s). With thinking turned off, a model may do one grade better.
Public benchmarks
Measured results on the RTX 3090
| Model | Quant | Backend | Context | Prompt (tok/s) | Generation (tok/s) | Flags | Source | Measured |
|---|---|---|---|---|---|---|---|---|
| llama-2-7b | Q4_0 | llama.cpp | 512 | 5,175.0 | 158.2 | — | github.com | 2025-08-01 |
| gpt-oss-20b | MXFP4 | llama.cpp | 2k | 5,143.0 | 162.0 | — | github.com | 2025-08-20 |
| Qwen3 8B | Q4_K_XL | llama.cpp | 16k | — | 87.5 | — | hardware-corner.net | 2026-08-09 |
| Qwen3 30B-A3B (2507) | Q4_K_XL | llama.cpp | 16k | — | 113.8 | — | hardware-corner.net | 2026-08-09 |
| Gemma 4 26B-A4B | Q4_K_M | ollama | 32k | — | 108.0 | FA off | github.com | 2026-04-07 |
| Qwen3 8B | Q4_K_XL | llama.cpp | 4k | 4,050.0 | 115.3 | CUDA | hardware-corner.net | 2025-12-09 |
| Qwen3 32B | Q4_K_XL | llama.cpp | 4k | 1,088.0 | 35.1 | CUDA | hardware-corner.net | 2025-12-09 |
Measured results on the RTX 4090
| Model | Quant | Backend | Context | Prompt (tok/s) | Generation (tok/s) | Flags | Source | Measured |
|---|---|---|---|---|---|---|---|---|
| llama-2-7b | Q4_0 | llama.cpp | 512 | 11,993.0 | 186.2 | — | github.com | 2025-08-06 |
| gpt-oss-20b | MXFP4 | llama.cpp | 2k | 8,078.0 | 225.2 | — | github.com | 2025-08-20 |
| Qwen3 8B | Q4_K_XL | llama.cpp | 16k | — | 104.3 | — | hardware-corner.net | 2026-08-09 |
| Qwen3 30B-A3B (2507) | Q4_K_XL | llama.cpp | 16k | — | 139.7 | — | hardware-corner.net | 2026-08-09 |
| Llama 3.1 8B | Q4_K_M | llama.cpp | 4k | 6,697.0 | 91.0 | ctx-weighted | localscore.ai | 2026-08-09 |
| Qwen3.8 27B | Q4_K_M | llama.cpp | 1k | 3,073.0 | 49.8 | CUDA | github.com | 2026-09-12 |
| Qwen3.5 9B | Q4_K_M | ollama | 40k | — | 133.0 | — | github.com | 2026-10-12 |
| Qwen3.5 27B | Q4_K_M | ollama | 40k | — | 47.6 | — | github.com | 2026-10-12 |
| Qwen3.5 9B | Q4_K_M | llama.cpp | 512 | — | 122.0 | — | github.com | 2026-10-14 |
| Qwen3.5 27B | Q4_K_M | llama.cpp | 512 | — | 42.0 | — | github.com | 2026-10-14 |
| Qwen3 8B | Q4_K_XL | llama.cpp | 4k | 9,251.0 | 141.3 | CUDA | hardware-corner.net | 2026-03-01 |
| Qwen3 32B | Q4_K_XL | llama.cpp | 4k | 2,448.0 | 39.6 | CUDA | hardware-corner.net | 2026-03-01 |
| Qwen3 32B | Q4_K_M | llama.cpp | 512 | 2,302.0 | 42.5 | Vulkan | github.com | 2025-12-09 |
Public benchmarks we calibrate against. Their conditions (context, backend, flags) can differ from the estimates above.
Frequently asked questions
Which is faster for local LLMs, the RTX 3090 or the RTX 4090?
The RTX 4090 generates text about 1.1× faster than the RTX 3090 (median of our estimates over the 46 models that fit entirely in memory on both at Q4_K_M or the closest available quant). Estimated speed on Qwen3.5 35B-A3B at Q4_K_M: the RTX 3090 est. 148.8 tok/s (119.1–178.6, calibrated estimate ±20%); the RTX 4090 est. 155.9 tok/s (124.7–187.1, calibrated estimate ±20%).
What is the largest model each can run entirely in memory?
The RTX 3090 fits Qwen3.5 35B-A3B at Q4_K_M (22.63 GB file) entirely in 24 GB, at est. 148.8 tok/s (119.1–178.6, calibrated estimate ±20%). The RTX 4090 fits Qwen3.5 35B-A3B at Q4_K_M (22.63 GB file) entirely in 24 GB, at est. 155.9 tok/s (124.7–187.1, calibrated estimate ±20%).
How many local LLMs run well on each?
At Q4_K_M with 8k context, out of 58 tracked models: the RTX 3090 — 44 Runs great, 4 Runs well, 0 Runs slowly, 10 Won't run; the RTX 4090 — 46 Runs great, 2 Runs well, 0 Runs slowly, 10 Won't run. 2 models get a different verdict.
Speeds are estimates from memory bandwidth, calibrated against public benchmarks, and each one comes with an error band and a confidence label. Real results vary with drivers, backend, context length and thermals.