Best local LLMs for 48 GB of VRAM or unified memory Measured speeds from builds where the model ran on more than 32 and up to 48 GB of GPU or unified memory. Each number links to its build and source.
8 GB · 12 GB · 16 GB · 24 GB · 32 GB · 48 GB · 64 GB · 96 GB · 128 GB or more
Fastest measured result per model Model Plain decode tok/s With speculative decoding ⚡ Results Qwen3.6 35B-A3B 149 (AWQ-INT4 (TP=2), 2x RTX 3090 ) 225-231 (AWQ-INT4 + MTP-3 (TP=2), 2x RTX 3090 ) 5 Qwen3.8 27B 26.0 (4-bit MLX, Apple M5 Max (unified) ) 37.9 (4-bit MLX, Apple M5 Max (unified) ) 3 Flint 40B-A2.5B 127.9 (int4 MLX (RecursiveSI/flint-int4), Apple M4 Pro ) – 3 Llama 3 70B 21.2 (AWQ 4-bit, 2x RTX 3090 ) – 2 Llama 3.3 70B 20 (, 2x RTX 3090 ) – 2 Qwen3.5 9B 78.0 (4-bit MLX, Apple M5 Max (unified) ) 115.5 (4-bit MLX, Apple M5 Max (unified) ) 2 gpt-oss 20B 92.36 (MXFP4, Apple M4 Max ) – 1 Qwen3.8 Flash-Next – – 1
Excludes results the source marks pending and results where part of the model sat in system RAM.
All results in this tier Hide speculative-decoding results ⚡ (MTP, DFlash, DSpark and similar draft-and-verify methods give much higher tok/s on predictable text and are not comparable 1:1 with plain decode)
Model Build Ran on Quant Engine tok/s Details Flint 40B-A2.5B MacBook Pro M4 Pro 48 GB: Flint 40B-A2.5B 4-bit at 127.9 tok/s (Kapitsa), 126.6 (rec), 79.6 (llama.cpp) Apple M4 Pro (48 GB) int4 MLX (RecursiveSI/flint-int4) Kapitsa (PR #286) 127.9 Flint 40B-A2.5B MacBook Pro M4 Pro 48 GB: Flint 40B-A2.5B 4-bit at 127.9 tok/s (Kapitsa), 126.6 (rec), 79.6 (llama.cpp) Apple M4 Pro (48 GB) int4 MLX (same files) rec 0.1.0 (Recursive) 126.56 Flint 40B-A2.5B MacBook Pro M4 Pro 48 GB: Flint 40B-A2.5B 4-bit at 127.9 tok/s (Kapitsa), 126.6 (rec), 79.6 (llama.cpp) Apple M4 Pro (48 GB) Q4_1 GGUF (RecursiveSI/flint-int4-gguf) llama.cpp b11804, all layers on GPU, -fa on 79.57 Llama 3 70B Dual RTX 3090 on Ryzen 3700X (X470) ⚠ unchecked 2x RTX 3090 (48 GB) AWQ 4-bit vLLM (TP=2) 21.2 Llama 3 70B Dual RTX 3090 on Ryzen 3700X (X470) ⚠ unchecked 2x RTX 3090 (48 GB) Q4_K_M Ollama 16.95 Llama 3.3 70B Dual used RTX 3090, ~2000 EUR total ⚠ unchecked 2x RTX 3090 (48 GB) ExLlamaV2 (TP) 20 Llama 3.3 70B 2x RTX 3090 (llm-speed signed run, Oct 2026): Llama 3.3 70B Q4_K_M at 19.1 tok/s 2x RTX 3090 (48 GB) Q4_K_M llama.cpp 0.7.0-dev 19.1 Qwen3.5 9B Mac Studio M5 Max 36 GB: Qwen3.6 35B-A3B at 173 tok/s (Rapid-MLX), 146 on oMLX Apple M5 Max (unified) (36 GB) 4-bit MLX Rapid-MLX 0.16.1 (MTP) 115.5 ⚡ spec-decode (MTP) Qwen3.5 9B Mac Studio M5 Max 36 GB: Qwen3.6 35B-A3B at 173 tok/s (Rapid-MLX), 146 on oMLX Apple M5 Max (unified) (36 GB) 4-bit MLX oMLX 0.7.0 78.0 Qwen3.6 35B-A3B 4x RTX 3090 lab: Qwen3.6 on vLLM vs llama.cpp 2x RTX 3090 (48 GB) AWQ-INT4 + MTP-3 (TP=2) vLLM 225-231 ⚡ spec-decode (MTP) Qwen3.6 35B-A3B Mac Studio M5 Max 36 GB: Qwen3.6 35B-A3B at 173 tok/s (Rapid-MLX), 146 on oMLX Apple M5 Max (unified) (36 GB) 4-bit MLX Rapid-MLX 0.16.1 (MTP) 173.4 ⚡ spec-decode (MTP) Qwen3.6 35B-A3B 4x RTX 3090 lab: Qwen3.6 on vLLM vs llama.cpp 2x RTX 3090 (48 GB) AWQ-INT4 (TP=2) vLLM 149 Qwen3.6 35B-A3B Mac Studio M5 Max 36 GB: Qwen3.6 35B-A3B at 173 tok/s (Rapid-MLX), 146 on oMLX Apple M5 Max (unified) (36 GB) 4-bit MLX oMLX 0.7.0 145.8 Qwen3.6 35B-A3B Mac Studio M5 Max 36 GB: Qwen3.6 35B-A3B at 173 tok/s (Rapid-MLX), 146 on oMLX Apple M5 Max (unified) (36 GB) 4-bit MLX LM Studio (MLX) 124.5 Qwen3.8 27B Mac Studio M5 Max 36 GB: Qwen3.6 35B-A3B at 173 tok/s (Rapid-MLX), 146 on oMLX Apple M5 Max (unified) (36 GB) 4-bit MLX Rapid-MLX 0.16.1 (MTP) 37.9 ⚡ spec-decode (MTP) Qwen3.8 27B Mac Studio M5 Max 36 GB: Qwen3.6 35B-A3B at 173 tok/s (Rapid-MLX), 146 on oMLX Apple M5 Max (unified) (36 GB) 4-bit MLX LM Studio (MLX) 26.0 Qwen3.8 27B Mac Studio M5 Max 36 GB: Qwen3.6 35B-A3B at 173 tok/s (Rapid-MLX), 146 on oMLX Apple M5 Max (unified) (36 GB) 4-bit MLX oMLX 0.7.0 25.3 Qwen3.8 Flash-Next Dual RTX PRO 4000 Blackwell on Threadripper PRO 5975WX 2x RTX PRO 4000 Blackwell (48 GB) GSQ-RCO (64 GB edition) capy-flash v0.7.1, prose decode (low end of 100-114) 100 prefill 3,300 tok/s 📏 User-reported (issue #22); low end of the stated prose range partly in system RAM gpt-oss 20B Apple M4 Max 36GB Apple M4 Max (36 GB) MXFP4 llama.cpp 92.36
What fits by memory math Q4_K_M weights (4.8944 bits per weight, per the llama.cpp quantize table ) that fit in 48 GB with ~5% headroom, before KV cache: Nemotron 3.5 Bolt 74B-A9B ≈45 GB, Llama 3.3 70B ≈43 GB, Flint 40B-A2.5B ≈24 GB, Ornith 1.5 35B-A3B ≈22 GB, Qwen3.6 35B-A3B ≈22 GB, Gemma 4 31B ≈19 GB, Nemotron 3.5 Lightning 30B-A3B ≈18 GB, Qwen3.6 27B ≈17 GB, Qwen3.8 27B ≈17 GB, Gemma 4 26B-A4B ≈15 GB, Devstral Small 2 24B ≈15 GB, LFM2.5 24B-A2B ≈15 GB, gpt-oss 20B ≈13 GB, Gemma 4 12B ≈7 GB, Qwen3.5 9B ≈5 GB, Llama 3.1 8B ≈5 GB.
FAQ Which local LLMs have been measured on 48 GB of VRAM? Llama 3 70B, Llama 3.3 70B, gpt-oss 20B, Qwen3.6 35B-A3B, Qwen3.8 27B, Qwen3.5 9B, Flint 40B-A2.5B, Qwen3.8 Flash-Next (19 results).
What fits in 48 GB of VRAM? By memory math at Q4_K_M (4.8944 bits per weight, llama.cpp), weights only, before KV cache and context: Nemotron 3.5 Bolt 74B-A9B (≈45 GB), Llama 3.3 70B (≈43 GB), Flint 40B-A2.5B (≈24 GB), Ornith 1.5 35B-A3B (≈22 GB), Qwen3.6 35B-A3B (≈22 GB), Gemma 4 31B (≈19 GB), Nemotron 3.5 Lightning 30B-A3B (≈18 GB), Qwen3.6 27B (≈17 GB). Leave a few GB for context.
Are speculative-decoding results comparable? Not 1:1. MTP, DFlash and similar methods draft tokens that the main model verifies, which can double tok/s on predictable text. This page lists them in a separate column; tick the box to hide them in the full table.
Ad · this space is available Sponsor this spot: reach people building local AI rigs. One clearly-labeled slot per page, no tracking scripts. Sponsor this spot → Not enough VRAM? Rent before you buy. Run bigger models on a rented 24–96 GB cloud GPU by the hour and see the real speed before spending €1,000+.
Try it on Runpod Referral link: if you sign up with Google and add $10, Runpod gives you and RigBase bonus credit (terms ). It never affects our data.