Which local LLMs can the Apple M4 (Mac mini, MacBook Air, MacBook Pro, iMac) run?
Assumes 8k context and an f16 KV cache. Verdicts are shown for each memory size.
What to expect from the Apple M4
The base M4 shares its memory between CPU and GPU, and CanRun lets the GPU use only part of it: on the 32GB model that is 22.4 GB. The bigger limit is speed. At 120 GB/s of memory bandwidth, against 273 GB/s on the Apple M4 Pro, the M4 reads model weights slowly, so the memory size you choose decides what loads, not how fast it runs.
With 16GB, Llama 3.1 8B fits and runs well. Qwen3 8B runs well too, even though it has a thinking mode and CanRun holds such models to a 1.5× stricter speed bar. Llama 3.2 3B runs great. gpt-oss-20b needs the 24GB model and then runs great.
With 32GB, mixture-of-experts models do best: Qwen3 30B-A3B runs great and Gemma 4 26B-A4B runs well, while dense models such as Gemma 4 31B fit but run slowly. Qwen3 32B is too big for the GPU's share at Q4_K_M and would run on the CPU alone; its IQ4_XS file fits on the GPU and runs slowly. Our Mac guide compares the M4 and M5 chips side by side.
Specs
- Memory options
- 16 GB · 24 GB · 32 GB
- Memory bandwidth
- 120.0 GB/s
- FP16 compute
- 3.8 TFLOPS
- Launch year
- 2024
- Macs with this chip
- Mac mini: 16 GB · 24 GB · 32 GB
- MacBook Air: 16 GB · 24 GB · 32 GB
- MacBook Pro: 16 GB · 24 GB · 32 GB
- iMac: 16 GB · 24 GB · 32 GB
- Also written as
- M4
Verdicts at a glance
At Q4_K_M (or the closest available quant) with 8k context.
- 16 GBRuns great11 modelsRuns well12 modelsRuns slowly5 modelsWon't run31 models5 more models run at a lower quant.
- 24 GBRuns great13 modelsRuns well13 modelsRuns slowly14 modelsWon't run19 models8 more models run at a lower quant.
- 32 GBRuns great15 modelsRuns well14 modelsRuns slowly17 modelsWon't run13 models4 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
Scroll sideways to see every column.
| Model | Verdict | Speed | Quant | Memory | Runs as | Context | Notes |
|---|---|---|---|---|---|---|---|
| MiniCPM5 1B | Runs great | est. 102.3 tok/s81.9–122.8calibrated estimate ±20% | Q4_K_M | 1.5 / 22.4 GB | Unified memory | up to 64k |
|
| Ling-3.0 Tiny | Runs great | est. 93.7 tok/s65.6–121.9theoretical estimate ±30% | Q4_K_M | 5.5 / 22.4 GB | Unified memory | up to 128k |
|
| Llama 3.2 1B | Runs great | est. 84.6 tok/s67.7–101.5calibrated estimate ±20% | Q4_K_M | 1.7 / 22.4 GB | Unified memory | up to 64k | — |
| EXAONE 4.0 1.2B | Runs great | est. 69.4 tok/s55.6–83.3calibrated estimate ±20% | Q4_K_M | 1.9 / 22.4 GB | Unified memory | up to 32k |
|
| Gemma 4 E2B | Runs great | est. 53.3 tok/s37.3–69.3theoretical estimate ±30% | Q4_K_M | 3.7 / 22.4 GB | Unified memory | up to 128k |
|
| Mellum2.1 12B-A2.5B Thinking | Runs great | est. 51.2 tok/s40.9–61.4calibrated estimate ±20% | Q4_K_M | 8.8 / 22.4 GB | Unified memory | up to 64k |
|
| LFM2.5 2.6B | Runs great | est. 50.5 tok/s35.4–65.7theoretical estimate ±30% | Q4_K_M | 2.4 / 22.4 GB | Unified memory | up to 64k |
|
| HyperCLOVA X SEED 1.5B | Runs great | est. 50.2 tok/s40.2–60.3calibrated estimate ±20% | Q4_K_M | 2.4 / 22.4 GB | Unified memory | up to 16k | — |
| MiniCPM5 2B | Runs great | est. 47.7 tok/s38.2–57.2calibrated estimate ±20% | Q4_K_M | 2.5 / 22.4 GB | Unified memory | up to 32k |
|
| MiniCPM-V 4.7 35B-A3B | Runs great | est. 37.5 tok/s30.0–45.0calibrated estimate ±20% | Q4_K_M | 21.9 / 22.4 GB | Unified memory | up to 16k |
|
| gpt-oss-20b | Runs greatgpt-oss-20b verdict on the Apple M4 | est. 31.9 tok/s25.5–38.3calibrated estimate ±20% | MXFP4 | 12.9 / 22.4 GB | Unified memory | up to 8k |
|
| Spark-X2.5 4B | Runs great | est. 31.4 tok/s25.1–37.7calibrated estimate ±20% | Q4_K_M | 3.5 / 22.4 GB | Unified memory | up to 8k |
|
| Llama 3.2 3B | Runs great | est. 30.8 tok/s24.7–37.0calibrated estimate ±20% | Q4_K_M | 3.5 / 22.4 GB | Unified memory | up to 16k | — |
| Qwen3 30B-A3B (2507) | est. 29.8 tok/s23.8–35.7calibrated estimate ±20% | Q4_K_M | 19.9 / 22.4 GB | Unified memory | up to 16k | — | |
| Kanana 1.5 15.7B-A3B | Runs great | est. 29.1 tok/s23.3–35.0calibrated estimate ±20% | Q4_K_M | 12.1 / 22.4 GB | Unified memory | up to 16k | — |
| Qwen3.5 4B | Runs well | est. 29.4 tok/s23.5–35.3calibrated estimate ±20% | Q4_K_M | 3.7 / 22.4 GB | Unified memory | up to 128k |
|
| Gemma 4 E4B | Runs well | est. 27.4 tok/s19.1–35.6theoretical estimate ±30% | Q4_K_M | 5.7 / 22.4 GB | Unified memory | up to 128k |
|
| Gemma 4 26B-A4B | est. 23.6 tok/s18.9–28.4calibrated estimate ±20% | Q4_K_M | 17.7 / 22.4 GB | Unified memory | up to 128k |
| |
| DeepSeek R1 Distill Llama 8B | Runs well | est. 15.2 tok/s12.2–18.3calibrated estimate ±20% | Q4_K_M | 6.6 / 22.4 GB | Unified memory | up to 16k |
|
| Kanana 1.5 8B | Runs well | est. 15.2 tok/s12.2–18.3calibrated estimate ±20% | Q4_K_M | 6.6 / 22.4 GB | Unified memory | up to 32k |
|
| Llama 3.1 8B | Runs wellLlama 3.1 8B verdict on the Apple M4 | est. 15.2 tok/s12.2–18.3calibrated estimate ±20% | Q4_K_M | 6.6 / 22.4 GB | Unified memory | up to 32k |
|
| Nanbeige4.2 3B | Runs well | est. 14.9 tok/s10.4–19.4theoretical estimate ±30% | Q4_K_M | 4.7 / 22.4 GB | Unified memory | up to 8k |
|
| Qwen3.5 9B | Runs wellQwen3.5 9B verdict on the Apple M4 | est. 14.9 tok/s11.9–17.8calibrated estimate ±20% | Q4_K_M | 6.7 / 22.4 GB | Unified memory | up to 32k |
|
| DeepSeek R1 0528 Qwen3 8B | Runs well | est. 14.6 tok/s11.7–17.5calibrated estimate ±20% | Q4_K_M | 6.8 / 22.4 GB | Unified memory | up to 16k |
|
| Qwen3 8B | Runs wellQwen3 8B verdict on the Apple M4 | est. 14.6 tok/s11.7–17.5calibrated estimate ±20% | Q4_K_M | 6.8 / 22.4 GB | Unified memory | up to 16k |
|
| K2-Horizon 7B | Runs well | est. 13.4 tok/s10.7–16.1calibrated estimate ±20% | Q4_K_M | 7.4 / 22.4 GB | Unified memory | up to 8k |
|
| Gemma 4 12B | Runs wellGemma 4 12B verdict on the Apple M4 | est. 12.6 tok/s10.1–15.1calibrated estimate ±20% | Q4_K_M | 7.8 / 22.4 GB | Unified memory | up to 16k |
|
| Gemma 3 12B | Runs wellGemma 3 12B verdict on the Apple M4 | est. 11.6 tok/s9.3–14.0calibrated estimate ±20% | Q4_K_M | 8.4 / 22.4 GB | Unified memory | up to 32k | — |
| Phi-4 | Runs well | est. 8.5 tok/s6.8–10.2calibrated estimate ±20% | Q4_K_M | 11.3 / 22.4 GB | Unified memory | up to 8k | — |
| Qwen3.6 35B-A3B | Runs slowlyQwen3.6 35B-A3B verdict on the Apple M4 | est. 25.4 tok/s17.8–33.1theoretical estimate ±30% | Q4_K_M | 22.5 GB RAM | CPU only | up to 256k |
|
| Qwen3.5 35B-A3B | Runs slowlyQwen3.5 35B-A3B verdict on the Apple M4 | est. 25.1 tok/s17.6–32.6theoretical estimate ±30% | Q4_K_M | 22.8 GB RAM | CPU only | up to 256k |
|
| Nemotron 3.5 Lightning 30B-A3B | Runs slowly | est. 20.9 tok/s14.6–27.1theoretical estimate ±30% | Q4_K_M | 25.5 GB RAM | CPU only | up to 256k |
|
| K2-Horizon MoVA 36B-A4B | Runs slowly | est. 12.9 tok/s9.0–16.8theoretical estimate ±30% | Q4_K_M | 24.0 GB RAM | CPU only | up to 16k |
|
| HyperCLOVA X SEED Think 14B | Runs slowly | est. 8.9 tok/s6.3–11.6theoretical estimate ±30% | Q4_K_M | 10.8 / 22.4 GB | Unified memory | up to 64k |
|
| Qwen3 14B | Runs slowlyQwen3 14B verdict on the Apple M4 | est. 8.8 tok/s7.1–10.6calibrated estimate ±20% | Q4_K_M | 10.9 / 22.4 GB | Unified memory | up to 32k |
|
| DeepSeek R1 Distill Qwen 14B | Runs slowly | est. 8.6 tok/s6.9–10.3calibrated estimate ±20% | Q4_K_M | 11.2 / 22.4 GB | Unified memory | up to 32k |
|
| Mistral Small 3.2 24B | Runs slowly | est. 5.8 tok/s4.7–7.0calibrated estimate ±20% | Q4_K_M | 16.2 / 22.4 GB | Unified memory | up to 32k |
|
| Gemma 3 27B | Runs slowly | est. 5.3 tok/s4.2–6.4calibrated estimate ±20% | Q4_K_M | 17.8 / 22.4 GB | Unified memory | up to 32k |
|
| Qwen3.6 27B | Runs slowly | est. 5.3 tok/s4.2–6.3calibrated estimate ±20% | Q4_K_M | 17.9 / 22.4 GB | Unified memory | up to 64k |
|
| Muse Glimmer 30B | Runs slowly | est. 5.2 tok/s4.2–6.3calibrated estimate ±20% | Q4_K_M | 18.0 / 22.4 GB | Unified memory | up to 128k |
|
| Qwen3.5 27B | Runs slowlyQwen3.5 27B verdict on the Apple M4 | est. 5.2 tok/s4.1–6.2calibrated estimate ±20% | Q4_K_M | 18.2 / 22.4 GB | Unified memory | up to 32k |
|
| Qwen3.8 27B | Runs slowlyQwen3.8 27B verdict on the Apple M4 | est. 5.1 tok/s4.1–6.1calibrated estimate ±20% | Q4_K_M | 18.6 / 22.4 GB | Unified memory | up to 32k |
|
| Gemma 4 31B | Runs slowlyGemma 4 31B verdict on the Apple M4 | est. 4.8 tok/s3.8–5.8calibrated estimate ±20% | Q4_K_M | 19.6 / 22.4 GB | Unified memory | up to 32k |
|
| Granite 4.2 30B | Runs slowly | est. 4.6 tok/s3.7–5.5calibrated estimate ±20% | Q4_K_M | 20.4 / 22.4 GB | Unified memory | up to 8k |
|
| EXAONE 4.0 32B | Runs slowly | est. 4.6 tok/s3.7–5.5calibrated estimate ±20% | Q4_K_M | 20.5 / 22.4 GB | Unified memory | up to 32k |
|
| EXAONE 4.5 33B | Runs slowly | est. 4.4 tok/s3.5–5.3calibrated estimate ±20% | Q4_K_M | 21.2 / 22.4 GB | Unified memory | up to 16k |
|
| DeepSeek R1 Distill Qwen 32B | Won't runTry Q2_K (heavy quality loss): Runs slowly | est. 6.3 tok/s5.0–7.6calibrated estimate ±20% | Q2_K | 15.0 / 22.4 GB | Unified memory | up to 32k |
|
| Qwen3 32B | est. 4.6 tok/s3.7–5.5calibrated estimate ±20% | IQ4_XS | 20.4 / 22.4 GB | Unified memory | up to 8k |
| |
| Nanbeige4.3 33B | Won't runTry IQ4_XS: Runs slowly | est. 4.5 tok/s3.6–5.4calibrated estimate ±20% | IQ4_XS | 21.0 / 22.4 GB | Unified memory | up to 8k |
|
| Llama 3.3 70B | est. 2.2 tok/s1.6–2.9theoretical estimate ±30% | IQ2_M | 26.8 GB RAM | CPU only | up to 8k | — | |
| 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 rungpt-oss-120b verdict on the Apple M4 | — | MXFP4 | needs 64.3 GB | — | — |
|
| Kolibri 1 | Won't run | — | Q4_K_M | needs 50.5 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 | — | 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.
Verdict by memory size
| Model | 16 GB | 24 GB | 32 GB |
|---|---|---|---|
| MiniCPM5 1B | Runs great | Runs great | Runs great |
| Ling-3.0 Tiny | Runs great | Runs great | Runs great |
| Llama 3.2 1B | Runs great | Runs great | Runs great |
| EXAONE 4.0 1.2B | Runs great | Runs great | Runs great |
| Gemma 4 E2B | Runs great | Runs great | Runs great |
| Mellum2.1 12B-A2.5B Thinking | Runs great | Runs great | Runs great |
| LFM2.5 2.6B | Runs great | Runs great | Runs great |
| HyperCLOVA X SEED 1.5B | Runs great | Runs great | Runs great |
| MiniCPM5 2B | Runs great | Runs great | Runs great |
| MiniCPM-V 4.7 35B-A3B | Won't run | Won't run | Runs great |
| gpt-oss-20b | Won't run | Runs great | Runs great |
| Spark-X2.5 4B | Runs great | Runs great | Runs great |
| Llama 3.2 3B | Runs great | Runs great | Runs great |
| Qwen3 30B-A3B (2507) | Won't run | Runs slowly | Runs great |
| Kanana 1.5 15.7B-A3B | Runs slowly | Runs great | Runs great |
| Qwen3.5 4B | Runs well | Runs well | Runs well |
| Gemma 4 E4B | Runs well | Runs well | Runs well |
| Gemma 4 26B-A4B | Won't run | Runs slowly | Runs well |
| DeepSeek R1 Distill Llama 8B | Runs well | Runs well | Runs well |
| Kanana 1.5 8B | Runs well | Runs well | Runs well |
| Llama 3.1 8B | Runs well | Runs well | Runs well |
| Nanbeige4.2 3B | Runs well | Runs well | Runs well |
| Qwen3.5 9B | Runs well | Runs well | Runs well |
| DeepSeek R1 0528 Qwen3 8B | Runs well | Runs well | Runs well |
| Qwen3 8B | Runs well | Runs well | Runs well |
| K2-Horizon 7B | Runs well | Runs well | Runs well |
| Gemma 4 12B | Runs well | Runs well | Runs well |
| Gemma 3 12B | Runs well | Runs well | Runs well |
| Phi-4 | Runs slowly | Runs well | Runs well |
| Qwen3.6 35B-A3B | Won't run | Won't run | Runs slowly |
| Qwen3.5 35B-A3B | Won't run | Won't run | Runs slowly |
| Nemotron 3.5 Lightning 30B-A3B | Won't run | Won't run | Runs slowly |
| K2-Horizon MoVA 36B-A4B | Won't run | Won't run | Runs slowly |
| HyperCLOVA X SEED Think 14B | Runs slowly | Runs slowly | Runs slowly |
| Qwen3 14B | Runs slowly | Runs slowly | Runs slowly |
| DeepSeek R1 Distill Qwen 14B | Runs slowly | Runs slowly | Runs slowly |
| Mistral Small 3.2 24B | Won't run | Runs slowly | Runs slowly |
| Gemma 3 27B | Won't run | Runs slowly | Runs slowly |
| Qwen3.6 27B | Won't run | Runs slowly | Runs slowly |
| Muse Glimmer 30B | Won't run | Runs slowly | Runs slowly |
| Qwen3.5 27B | Won't run | Runs slowly | Runs slowly |
| Qwen3.8 27B | Won't run | Runs slowly | Runs slowly |
| Gemma 4 31B | Won't run | Runs slowly | Runs slowly |
| Granite 4.2 30B | Won't run | Runs slowly | Runs slowly |
| EXAONE 4.0 32B | Won't run | Runs slowly | Runs slowly |
| EXAONE 4.5 33B | Won't run | Won't run | Runs slowly |
| DeepSeek R1 Distill Qwen 32B | Won't run | Won't run | Won't run |
| Qwen3 32B | Won't run | Won't run | Won't run |
| Nanbeige4.3 33B | Won't run | Won't run | Won't run |
| Llama 3.3 70B | Won't run | Won't run | Won't run |
| DeepSeek V4 Flash 0731 | Won't run | Won't run | Won't run |
| GLM-5.3 Flash | Won't run | Won't run | Won't run |
| gpt-oss-120b | Won't run | Won't run | Won't run |
| Kolibri 1 | Won't run | Won't run | Won't run |
| Laguna S 2.1 | Won't run | Won't run | Won't run |
| Ling-3.0 Flash | Won't run | Won't run | Won't run |
| 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 |
| Solar Open 2 250B | Won't run | Won't run | Won't run |
Measured results on the Apple M4
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 | 221.0 | 24.1 | Metal, b1550 (2023) | github.com | 2024-11-10 |
Frequently asked questions
What is the largest model that runs entirely on the Apple M4?
Qwen3.5 35B-A3B at IQ4_XS (a 18.17 GB file) fits entirely in 32 GB of unified memory with 8k context, at est. 31.0 tok/s (24.8–37.2, calibrated estimate ±20%).
How many local LLMs run well on the Apple M4?
At Q4_K_M with 8k context, with 32 GB of memory, out of 59 tracked models: 15 run great, 14 run well, 17 run slowly and 13 won't run.
Can the Apple M4 run a 70B model like Llama 3.3 70B?
Runs slowly — CPU only, IQ2_M (heavy quality loss): est. 2.2 tok/s (1.6–2.9, 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.