Which local LLMs can the Apple M4 Pro run?
Assumes 8k context and an f16 KV cache. Verdicts are shown for each memory size.
Specs
- Memory options
- 24 GB · 48 GB · 64 GB
- Memory bandwidth
- 273.0 GB/s
- FP16 compute
- 17.0 TFLOPS
- Launch year
- 2024
Verdicts at a glance
At Q4_K_M (or the closest available quant) with 8k context.
- 24 GBRuns great10 modelsRuns well5 modelsRuns slowly5 modelsWon't run9 models4 more models run at a lower quant.
- 48 GBRuns great13 modelsRuns well7 modelsRuns slowly4 modelsWon't run5 models3 more models run at a lower quant.
- 64 GBRuns great13 modelsRuns well7 modelsRuns slowly5 modelsWon't run4 models2 more models run at a lower quant.
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
Every model on the Apple M4 Pro
Scroll sideways to see every column.
| Model | Verdict | Speed | Quant | Memory | Runs as | Context | Notes |
|---|---|---|---|---|---|---|---|
| EXAONE 4.0 1.2B | Runs great | est. 124.7 tok/s99.8–149.7calibrated estimate ±20% | Q4_K_M | 1.9 / 44.8 GB | Unified memory | up to 64k | — |
| HyperCLOVA X SEED 1.5B | Runs great | est. 90.2 tok/s72.2–108.3calibrated estimate ±20% | Q4_K_M | 2.4 / 44.8 GB | Unified memory | up to 16k | — |
| Qwen3.5 35B-A3B | Runs great | est. 39.8 tok/s31.9–47.8calibrated estimate ±20% | Q4_K_M | 23.4 / 44.8 GB | Unified memory | up to 64k | — |
| gpt-oss-20b | Runs greatDetails | est. 35.8 tok/s28.6–43.0calibrated estimate ±20% | MXFP4 | 12.9 / 44.8 GB | Unified memory | up to 16k |
|
| Qwen3 30B-A3B (2507) | Runs greatDetails | est. 29.1 tok/s23.3–34.9calibrated estimate ±20% | Q4_K_M | 19.9 / 44.8 GB | Unified memory | up to 16k | — |
| Gemma 4 26B-A4B | Runs great | est. 28.3 tok/s22.7–34.0calibrated estimate ±20% | Q4_K_M | 17.9 / 44.8 GB | Unified memory | up to 32k | — |
| Kanana 1.5 8B | Runs great | est. 27.3 tok/s21.9–32.8calibrated estimate ±20% | Q4_K_M | 6.6 / 44.8 GB | Unified memory | up to 16k | — |
| Llama 3.1 8B | Runs greatDetails | est. 27.3 tok/s21.9–32.8calibrated estimate ±20% | Q4_K_M | 6.6 / 44.8 GB | Unified memory | up to 16k | — |
| Kanana 1.5 15.7B-A3B | Runs great | est. 26.7 tok/s21.4–32.0calibrated estimate ±20% | Q4_K_M | 12.1 / 44.8 GB | Unified memory | up to 8k | — |
| Qwen3.5 9B | Runs great | est. 26.7 tok/s21.3–32.0calibrated estimate ±20% | Q4_K_M | 6.7 / 44.8 GB | Unified memory | up to 64k | — |
| Qwen3 8B | Runs great | est. 26.3 tok/s21.0–31.5calibrated estimate ±20% | Q4_K_M | 6.8 / 44.8 GB | Unified memory | up to 16k | — |
| Gemma 4 12B | Runs great | est. 21.4 tok/s17.1–25.7calibrated estimate ±20% | Q4_K_M | 8.2 / 44.8 GB | Unified memory | up to 8k | — |
| Gemma 3 12B | Runs greatDetails | est. 20.9 tok/s16.7–25.1calibrated estimate ±20% | Q4_K_M | 8.4 / 44.8 GB | Unified memory | up to 8k | — |
| DeepSeek R1 Distill Llama 8B | Runs well | est. 27.3 tok/s21.9–32.8calibrated estimate ±20% | Q4_K_M | 6.6 / 44.8 GB | Unified memory | up to 64k |
|
| HyperCLOVA X SEED Think 14B | Runs well | est. 16.1 tok/s11.2–20.9theoretical estimate ±30% | Q4_K_M | 10.8 / 44.8 GB | Unified memory | up to 16k |
|
| Qwen3 14B | Runs wellDetails | est. 15.8 tok/s12.7–19.0calibrated estimate ±20% | Q4_K_M | 10.9 / 44.8 GB | Unified memory | up to 32k |
|
| Phi-4 | Runs well | est. 15.3 tok/s12.2–18.3calibrated estimate ±20% | Q4_K_M | 11.3 / 44.8 GB | Unified memory | up to 16k |
|
| Mistral Small 3.2 24B | Runs well | est. 10.5 tok/s8.4–12.5calibrated estimate ±20% | Q4_K_M | 16.2 / 44.8 GB | Unified memory | up to 32k | — |
| Gemma 3 27B | Runs well | est. 9.5 tok/s7.6–11.4calibrated estimate ±20% | Q4_K_M | 17.8 / 44.8 GB | Unified memory | up to 32k | — |
| Qwen3.5 27B | Runs well | est. 9.3 tok/s7.4–11.1calibrated estimate ±20% | Q4_K_M | 18.2 / 44.8 GB | Unified memory | up to 32k | — |
| EXAONE 4.0 32B | Runs slowly | est. 8.2 tok/s6.6–9.9calibrated estimate ±20% | Q4_K_M | 20.5 / 44.8 GB | Unified memory | up to 128k |
|
| EXAONE 4.5 33B | Runs slowly | est. 8.0 tok/s6.4–9.5calibrated estimate ±20% | Q4_K_M | 21.2 / 44.8 GB | Unified memory | up to 256k |
|
| Qwen3 32B | Runs slowly | est. 7.5 tok/s6.0–9.0calibrated estimate ±20% | Q4_K_M | 22.5 / 44.8 GB | Unified memory | up to 32k |
|
| DeepSeek R1 Distill Qwen 32B | Runs slowly | est. 7.4 tok/s6.0–8.9calibrated estimate ±20% | Q4_K_M | 22.6 / 44.8 GB | Unified memory | up to 64k |
|
| Llama 3.3 70B | Runs slowly | est. 2.1 tok/s1.5–2.7theoretical estimate ±30% | Q4_K_M | 45.2 GB RAM | CPU only | up to 8k | — |
| Qwen3.5 122B-A10B | Won't runTry UD-Q2_K_XL (heavy quality loss): Runs great | est. 22.6 tok/s18.1–27.1calibrated estimate ±20% | UD-Q2_K_XL | 43.6 / 44.8 GB | Unified memory | up to 16k | — |
| Solar Open 100B | Won't runTry IQ4_XS: Runs slowly | est. 10.1 tok/s7.1–13.1theoretical estimate ±30% | IQ4_XS | 57.1 GB RAM | CPU only | up to 16k |
|
| gpt-oss-120b | Won't runDetails | — | MXFP4 | needs 64.3 GB | — | — |
|
| Solar Open 2 250B | Won't run | — | IQ4_XS | needs 137.2 GB | — | — |
|
Reasoning models spend extra tokens thinking, so their speed thresholds are 1.5× stricter (30 / 12 / 3 tok/s).
Verdict by memory size
| Model | 24 GB | 48 GB | 64 GB |
|---|---|---|---|
| EXAONE 4.0 1.2B | Runs great | Runs great | Runs great |
| HyperCLOVA X SEED 1.5B | Runs great | Runs great | Runs great |
| Qwen3.5 35B-A3B | Won't run | Runs great | Runs great |
| gpt-oss-20b | Runs great | Runs great | Runs great |
| Qwen3 30B-A3B (2507) | Runs slowly | Runs great | Runs great |
| Gemma 4 26B-A4B | Runs slowly | Runs great | Runs great |
| Kanana 1.5 8B | Runs great | Runs great | Runs great |
| Llama 3.1 8B | Runs great | Runs great | Runs great |
| Kanana 1.5 15.7B-A3B | Runs great | Runs great | Runs great |
| Qwen3.5 9B | Runs great | Runs great | Runs great |
| Qwen3 8B | Runs great | Runs great | Runs great |
| Gemma 4 12B | Runs great | Runs great | Runs great |
| Gemma 3 12B | Runs great | Runs great | Runs great |
| DeepSeek R1 Distill Llama 8B | Runs well | Runs well | Runs well |
| HyperCLOVA X SEED Think 14B | Runs well | Runs well | Runs well |
| Qwen3 14B | Runs well | Runs well | Runs well |
| Phi-4 | Runs well | Runs well | Runs well |
| Mistral Small 3.2 24B | Runs well | Runs well | Runs well |
| Gemma 3 27B | Runs slowly | Runs well | Runs well |
| Qwen3.5 27B | Runs slowly | Runs well | Runs well |
| EXAONE 4.0 32B | Runs slowly | Runs slowly | Runs slowly |
| EXAONE 4.5 33B | Won't run | Runs slowly | Runs slowly |
| Qwen3 32B | Won't run | Runs slowly | Runs slowly |
| DeepSeek R1 Distill Qwen 32B | Won't run | Runs slowly | Runs slowly |
| Llama 3.3 70B | Won't run | Won't run | Runs slowly |
| Qwen3.5 122B-A10B | Won't run | Won't run | Won't run |
| Solar Open 100B | Won't run | Won't run | Won't run |
| gpt-oss-120b | Won't run | Won't run | Won't run |
| Solar Open 2 250B | Won't run | Won't run | Won't run |
Measured results on the Apple M4 Pro
Public benchmarks we calibrate against. Their conditions (context, backend, flags) can differ from the estimates above.
| Model | Quant | Backend | Context | Prompt (tok/s) | Generation (tok/s) | Flags | Source | Measured |
|---|---|---|---|---|---|---|---|---|
| llama-2-7b | Q4_0 | llama.cpp | 512 | 440.0 | 50.7 | Metal | github.com | 2024-11-15 |
Frequently asked questions
What is the largest model that runs entirely on the Apple M4 Pro?
Llama 3.3 70B at IQ4_XS (a 37.90 GB file) fits entirely in 64 GB of unified memory with 8k context, at est. 4.0 tok/s (3.2–4.8, calibrated estimate ±20%).
How many local LLMs run well on the Apple M4 Pro?
At Q4_K_M with 8k context, with 64 GB of memory, out of 29 tracked models: 13 run great, 7 run well, 5 run slowly and 4 won't run.
Can the Apple M4 Pro run a 70B model like Llama 3.3 70B?
Runs slowly — CPU only, Q4_K_M: est. 2.1 tok/s (1.5–2.7, theoretical estimate ±30%).
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.