Which local LLMs can the Apple M4 Max (32-core GPU; MacBook Pro, Mac Studio) run?
Assumes 8k context and an f16 KV cache. Verdicts are shown for each memory size.
Specs
- Memory options
- 36 GB
- Memory bandwidth
- 410.0 GB/s
- FP16 compute
- 12.9 TFLOPS
- Launch year
- 2024
- Macs with this chip
- MacBook Pro: 36 GB
- Mac Studio: 36 GB
- Also written as
- M4 Max 32
Verdicts at a glance
At Q4_K_M (or the closest available quant) with 8k context, with 36 GB of memory.
- Runs great34 modelsRuns well14 modelsRuns slowly1 modelWon't run10 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 Max (32-core GPU)
Scroll sideways to see every column.
| Model | Verdict | Speed | Quant | Memory | Runs as | Context | Notes |
|---|---|---|---|---|---|---|---|
| MiniCPM5 1B | Runs great | est. 349.6 tok/s279.7–419.5calibrated estimate ±20% | Q4_K_M | 1.5 / 25.2 GB | Unified memory | up to 128k |
|
| Llama 3.2 1B | Runs great | est. 288.9 tok/s231.1–346.7calibrated estimate ±20% | Q4_K_M | 1.7 / 25.2 GB | Unified memory | up to 128k | — |
| EXAONE 4.0 1.2B | Runs great | est. 237.3 tok/s189.8–284.7calibrated estimate ±20% | Q4_K_M | 1.9 / 25.2 GB | Unified memory | up to 64k |
|
| Ling-3.0 Tiny | Runs great | est. 227.4 tok/s159.2–295.6theoretical estimate ±30% | Q4_K_M | 5.5 / 25.2 GB | Unified memory | up to 128k |
|
| LFM2.5 2.6B | Runs great | est. 172.7 tok/s120.9–224.5theoretical estimate ±30% | Q4_K_M | 2.4 / 25.2 GB | Unified memory | up to 128k |
|
| HyperCLOVA X SEED 1.5B | Runs great | est. 171.7 tok/s137.3–206.0calibrated estimate ±20% | Q4_K_M | 2.4 / 25.2 GB | Unified memory | up to 16k | — |
| MiniCPM5 2B | Runs great | est. 162.9 tok/s130.4–195.5calibrated estimate ±20% | Q4_K_M | 2.5 / 25.2 GB | Unified memory | up to 128k |
|
| Gemma 4 E2B | Runs great | est. 148.7 tok/s104.1–193.3theoretical estimate ±30% | Q4_K_M | 3.7 / 25.2 GB | Unified memory | up to 128k |
|
| Mellum2.1 12B-A2.5B Thinking | Runs great | est. 137.5 tok/s110.0–165.0calibrated estimate ±20% | Q4_K_M | 8.8 / 25.2 GB | Unified memory | up to 128k |
|
| Spark-X2.5 4B | Runs great | est. 107.4 tok/s85.9–128.8calibrated estimate ±20% | Q4_K_M | 3.5 / 25.2 GB | Unified memory | up to 128k |
|
| Llama 3.2 3B | Runs great | est. 105.3 tok/s84.2–126.3calibrated estimate ±20% | Q4_K_M | 3.5 / 25.2 GB | Unified memory | up to 64k | — |
| Qwen3.5 4B | Runs great | est. 100.6 tok/s80.5–120.7calibrated estimate ±20% | Q4_K_M | 3.7 / 25.2 GB | Unified memory | up to 128k |
|
| MiniCPM-V 4.7 35B-A3B | Runs great | est. 99.7 tok/s79.8–119.7calibrated estimate ±20% | Q4_K_M | 21.9 / 25.2 GB | Unified memory | up to 64k |
|
| Qwen3.6 35B-A3B | Runs great | est. 93.2 tok/s74.5–111.8calibrated estimate ±20% | Q4_K_M | 23.0 / 25.2 GB | Unified memory | up to 64k |
|
| gpt-oss-20b | Runs great | 92.4 tok/s8k estimate 101.6 tok/s (81.3–121.9, calibrated estimate ±20%)measured (1 run, 2k context) | MXFP4 | 12.9 / 25.2 GB | Unified memory | up to 128k |
|
| Kanana 1.5 15.7B-A3B | Runs great | est. 84.6 tok/s67.7–101.5calibrated estimate ±20% | Q4_K_M | 12.1 / 25.2 GB | Unified memory | up to 32k | — |
| Gemma 4 E4B | Runs great | est. 83.8 tok/s58.6–108.9theoretical estimate ±30% | Q4_K_M | 5.7 / 25.2 GB | Unified memory | up to 128k |
|
| Qwen3.5 35B-A3B | Runs great | est. 82.8 tok/s66.2–99.3calibrated estimate ±20% | Q4_K_M | 23.4 / 25.2 GB | Unified memory | up to 64k |
|
| Qwen3 30B-A3B (2507) | Runs great | est. 80.0 tok/s64.0–96.0calibrated estimate ±20% | Q4_K_M | 19.9 / 25.2 GB | Unified memory | up to 32k | — |
| Gemma 4 26B-A4B | Runs great | est. 71.2 tok/s56.9–85.4calibrated estimate ±20% | Q4_K_M | 17.7 / 25.2 GB | Unified memory | up to 128k |
|
| DeepSeek R1 Distill Llama 8B | Runs great | est. 52.0 tok/s41.6–62.4calibrated estimate ±20% | Q4_K_M | 6.6 / 25.2 GB | Unified memory | up to 32k |
|
| Kanana 1.5 8B | Runs great | est. 52.0 tok/s41.6–62.4calibrated estimate ±20% | Q4_K_M | 6.6 / 25.2 GB | Unified memory | up to 32k | — |
| Llama 3.1 8B | Runs great | est. 52.0 tok/s41.6–62.4calibrated estimate ±20% | Q4_K_M | 6.6 / 25.2 GB | Unified memory | up to 64k | — |
| K2-Horizon MoVA 36B-A4B | Runs great | est. 51.9 tok/s36.3–67.5theoretical estimate ±30% | Q4_K_M | 24.6 / 25.2 GB | Unified memory | up to 8k |
|
| Nanbeige4.2 3B | Runs great | est. 50.9 tok/s35.6–66.1theoretical estimate ±30% | Q4_K_M | 4.7 / 25.2 GB | Unified memory | up to 16k |
|
| Qwen3.5 9B | Runs great | est. 50.8 tok/s40.6–60.9calibrated estimate ±20% | Q4_K_M | 6.7 / 25.2 GB | Unified memory | up to 128k |
|
| DeepSeek R1 0528 Qwen3 8B | Runs great | est. 50.0 tok/s40.0–59.9calibrated estimate ±20% | Q4_K_M | 6.8 / 25.2 GB | Unified memory | up to 32k |
|
| Qwen3 8B | Runs great | est. 50.0 tok/s40.0–59.9calibrated estimate ±20% | Q4_K_M | 6.8 / 25.2 GB | Unified memory | up to 32k |
|
| K2-Horizon 7B | Runs great | est. 45.8 tok/s36.7–55.0calibrated estimate ±20% | Q4_K_M | 7.4 / 25.2 GB | Unified memory | up to 16k |
|
| Gemma 4 12B | Runs great | est. 43.0 tok/s34.4–51.5calibrated estimate ±20% | Q4_K_M | 7.8 / 25.2 GB | Unified memory | up to 128k |
|
| Gemma 3 12B | Runs great | est. 39.8 tok/s31.8–47.7calibrated estimate ±20% | Q4_K_M | 8.4 / 25.2 GB | Unified memory | up to 64k | — |
| HyperCLOVA X SEED Think 14B | Runs great | est. 30.6 tok/s21.4–39.7theoretical estimate ±30% | Q4_K_M | 10.8 / 25.2 GB | Unified memory | up to 8k |
|
| Qwen3 14B | Runs great | est. 30.1 tok/s24.1–36.2calibrated estimate ±20% | Q4_K_M | 10.9 / 25.2 GB | Unified memory | up to 8k |
|
| Phi-4 | Runs great | est. 29.0 tok/s23.2–34.9calibrated estimate ±20% | Q4_K_M | 11.3 / 25.2 GB | Unified memory | up to 16k | — |
| DeepSeek R1 Distill Qwen 14B | Runs well | est. 29.4 tok/s23.5–35.3calibrated estimate ±20% | Q4_K_M | 11.2 / 25.2 GB | Unified memory | up to 64k |
|
| Mistral Small 3.2 24B | Runs well | est. 19.9 tok/s15.9–23.9calibrated estimate ±20% | Q4_K_M | 16.2 / 25.2 GB | Unified memory | up to 32k |
|
| Gemma 3 27B | Runs well | est. 18.1 tok/s14.5–21.7calibrated estimate ±20% | Q4_K_M | 17.8 / 25.2 GB | Unified memory | up to 64k |
|
| Qwen3.6 27B | Runs well | est. 18.0 tok/s14.4–21.5calibrated estimate ±20% | Q4_K_M | 17.9 / 25.2 GB | Unified memory | up to 64k |
|
| Muse Glimmer 30B | Runs well | est. 17.9 tok/s14.3–21.5calibrated estimate ±20% | Q4_K_M | 18.0 / 25.2 GB | Unified memory | up to 128k |
|
| Qwen3.5 27B | Runs well | est. 17.7 tok/s14.1–21.2calibrated estimate ±20% | Q4_K_M | 18.2 / 25.2 GB | Unified memory | up to 64k |
|
| Qwen3.8 27B | Runs well | est. 17.3 tok/s13.9–20.8calibrated estimate ±20% | Q4_K_M | 18.6 / 25.2 GB | Unified memory | up to 64k |
|
| Gemma 4 31B | Runs well | est. 16.4 tok/s13.1–19.7calibrated estimate ±20% | Q4_K_M | 19.6 / 25.2 GB | Unified memory | up to 64k |
|
| Granite 4.2 30B | Runs well | est. 15.7 tok/s12.5–18.8calibrated estimate ±20% | Q4_K_M | 20.4 / 25.2 GB | Unified memory | up to 16k |
|
| EXAONE 4.0 32B | Runs well | est. 15.7 tok/s12.5–18.8calibrated estimate ±20% | Q4_K_M | 20.5 / 25.2 GB | Unified memory | up to 64k |
|
| EXAONE 4.5 33B | Runs well | est. 15.1 tok/s12.1–18.2calibrated estimate ±20% | Q4_K_M | 21.2 / 25.2 GB | Unified memory | up to 32k |
|
| Qwen3 32B | Runs well | est. 14.2 tok/s11.4–17.1calibrated estimate ±20% | Q4_K_M | 22.5 / 25.2 GB | Unified memory | up to 16k |
|
| DeepSeek R1 Distill Qwen 32B | Runs well | est. 14.2 tok/s11.3–17.0calibrated estimate ±20% | Q4_K_M | 22.6 / 25.2 GB | Unified memory | up to 16k |
|
| Nanbeige4.3 33B | Runs well | est. 13.8 tok/s11.1–16.6calibrated estimate ±20% | Q4_K_M | 23.1 / 25.2 GB | Unified memory | up to 16k |
|
| Nemotron 3.5 Lightning 30B-A3B | Runs slowly | est. 71.4 tok/s49.9–92.8theoretical estimate ±30% | Q4_K_M | 25.5 GB RAM | CPU only | up to 256k |
|
| Kolibri 1 | Won't runTry Q2_K (heavy quality loss): Runs slowly | est. 85.3 tok/s59.7–110.9theoretical estimate ±30% | Q2_K | 30.1 GB RAM | CPU only | up to 64k |
|
| Llama 3.3 70B | Won't runTry Q2_K (heavy quality loss): Runs slowly | est. 7.1 tok/s4.9–9.2theoretical estimate ±30% | Q2_K | 29.1 GB RAM | CPU only | up to 16k | — |
| DeepSeek V4 Flash 0731 | Won't run | — | MXFP4 | needs 155.6 GB | — | — |
|
| GLM-5.3 Flash | Won't run | — | Q4_K_M | needs 182.1 GB | — | — |
|
| gpt-oss-120b | Won't run | — | MXFP4 | needs 64.3 GB | — | — |
|
| Laguna S 2.1 | Won't run | — | Q4_K_M | needs 68.6 GB | — | — |
|
| Ling-3.0 Flash | Won't run | — | Q4_K_M | needs 77.7 GB | — | — |
|
| Qwen3.5 122B-A10B | Won't run | — | Q4_K_M | needs 79.0 GB | — | — |
|
| Solar Open 100B | Won't run | — | Q4_K_M | needs 64.4 GB | — | — |
|
| Solar Open 2 250B | Won't run | — | IQ4_XS | needs 137.2 GB | — | — |
|
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.
Measured results on the Apple M4 Max (32-core GPU)
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 |
|---|---|---|---|---|---|---|---|---|
| gpt-oss-20b | MXFP4 | llama.cpp | 2k | 1,277.0 | 92.4 | — | github.com | 2025-08-18 |
Frequently asked questions
What is the largest model that runs entirely on the Apple M4 Max (32-core GPU)?
K2-Horizon MoVA 36B-A4B at Q4_K_M (a 22.37 GB file) fits entirely in 36 GB of unified memory with 8k context, at est. 51.9 tok/s (36.3–67.5, theoretical estimate ±30%).
How many local LLMs run well on the Apple M4 Max (32-core GPU)?
At Q4_K_M with 8k context, with 36 GB of memory, out of 59 tracked models: 34 run great, 14 run well, 1 runs slowly and 10 won't run.
Can the Apple M4 Max (32-core GPU) run a 70B model like Llama 3.3 70B?
Runs slowly — CPU only, Q2_K (heavy quality loss): est. 7.1 tok/s (4.9–9.2, 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.