Which local LLMs can the Apple M2 Ultra (Mac Studio, Mac Pro) run?
Assumes 8k context and an f16 KV cache. Verdicts are shown for each memory size.
Specs
- Memory options
- 64 GB · 128 GB · 192 GB
- Memory bandwidth
- 800.0 GB/s
- FP16 compute
- 27.2 TFLOPS
- Launch year
- 2023
- Macs with this chip
- Mac Studio: 64 GB · 128 GB · 192 GB
- Mac Pro: 64 GB · 128 GB · 192 GB
- Also written as
- M2 Ultra
Verdicts at a glance
At Q4_K_M (or the closest available quant) with 8k context.
- 64 GBRuns great38 modelsRuns well11 modelsRuns slowly2 modelsWon't run8 models2 more models run at a lower quant.
- 128 GBRuns great44 modelsRuns well12 modelsRuns slowly0 modelsWon't run3 models2 more models run at a lower quant.
- 192 GBRuns great44 modelsRuns well12 modelsRuns slowly3 modelsWon't run0 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
Every model on the Apple M2 Ultra
Scroll sideways to see every column.
| Model | Verdict | Speed | Quant | Memory | Runs as | Context | Notes |
|---|---|---|---|---|---|---|---|
| MiniCPM5 1B | Runs great | est. 511.6 tok/s409.3–613.9calibrated estimate ±20% | Q4_K_M | 1.5 / 134.4 GB | Unified memory | up to 128k |
|
| Llama 3.2 1B | Runs great | est. 422.8 tok/s338.3–507.4calibrated estimate ±20% | Q4_K_M | 1.7 / 134.4 GB | Unified memory | up to 128k | — |
| EXAONE 4.0 1.2B | Runs great | est. 347.2 tok/s277.8–416.7calibrated estimate ±20% | Q4_K_M | 1.9 / 134.4 GB | Unified memory | up to 64k |
|
| LFM2.5 2.6B | Runs great | est. 252.7 tok/s176.9–328.6theoretical estimate ±30% | Q4_K_M | 2.4 / 134.4 GB | Unified memory | up to 128k |
|
| HyperCLOVA X SEED 1.5B | Runs great | est. 251.2 tok/s201.0–301.4calibrated estimate ±20% | Q4_K_M | 2.4 / 134.4 GB | Unified memory | up to 16k | — |
| MiniCPM5 2B | Runs great | est. 238.5 tok/s190.8–286.1calibrated estimate ±20% | Q4_K_M | 2.5 / 134.4 GB | Unified memory | up to 128k |
|
| Ling-3.0 Tiny | Runs great | est. 227.1 tok/s158.9–295.2theoretical estimate ±30% | Q4_K_M | 5.5 / 134.4 GB | Unified memory | up to 128k |
|
| Gemma 4 E2B | Runs great | est. 194.2 tok/s135.9–252.4theoretical estimate ±30% | Q4_K_M | 3.7 / 134.4 GB | Unified memory | up to 128k |
|
| Spark-X2.5 4B | Runs great | est. 157.1 tok/s125.7–188.6calibrated estimate ±20% | Q4_K_M | 3.5 / 134.4 GB | Unified memory | up to 256k |
|
| Llama 3.2 3B | Runs great | est. 154.1 tok/s123.3–184.9calibrated estimate ±20% | Q4_K_M | 3.5 / 134.4 GB | Unified memory | up to 128k | — |
| Mellum2.1 12B-A2.5B Thinking | Runs great | est. 149.8 tok/s119.9–179.8calibrated estimate ±20% | Q4_K_M | 8.8 / 134.4 GB | Unified memory | up to 128k |
|
| Qwen3.5 4B | Runs great | est. 147.2 tok/s117.7–176.6calibrated estimate ±20% | Q4_K_M | 3.7 / 134.4 GB | Unified memory | up to 256k |
|
| gpt-oss-20b | Runs great | est. 134.1 tok/s107.3–160.9calibrated estimate ±20% | MXFP4 | 12.9 / 134.4 GB | Unified memory | up to 128k |
|
| Nemotron 3.5 Lightning 30B-A3B | Runs great | est. 124.2 tok/s87.0–161.5theoretical estimate ±30% | Q4_K_M | 26.1 / 134.4 GB | Unified memory | up to 256k |
|
| Gemma 4 E4B | Runs great | est. 114.8 tok/s80.4–149.2theoretical estimate ±30% | Q4_K_M | 5.7 / 134.4 GB | Unified memory | up to 128k |
|
| MiniCPM-V 4.7 35B-A3B | Runs great | est. 107.7 tok/s86.2–129.2calibrated estimate ±20% | Q4_K_M | 21.9 / 134.4 GB | Unified memory | up to 256k |
|
| Qwen3.6 35B-A3B | Runs great | est. 102.4 tok/s81.9–122.9calibrated estimate ±20% | Q4_K_M | 23.0 / 134.4 GB | Unified memory | up to 256k |
|
| Kanana 1.5 15.7B-A3B | Runs great | est. 99.8 tok/s79.8–119.7calibrated estimate ±20% | Q4_K_M | 12.1 / 134.4 GB | Unified memory | up to 32k | — |
| Qwen3.5 35B-A3B | Runs great | est. 93.5 tok/s74.8–112.3calibrated estimate ±20% | Q4_K_M | 23.4 / 134.4 GB | Unified memory | up to 256k |
|
| Qwen3 30B-A3B (2507) | Runs great | est. 87.3 tok/s69.8–104.7calibrated estimate ±20% | Q4_K_M | 19.9 / 134.4 GB | Unified memory | up to 128k | — |
| Kolibri 1 | Runs great | est. 84.0 tok/s67.2–100.8calibrated estimate ±20% | Q4_K_M | 50.5 / 134.4 GB | Unified memory | up to 256k |
|
| Ling-3.0 Flash | Runs great | est. 83.4 tok/s58.4–108.4theoretical estimate ±30% | Q4_K_M | 77.7 / 134.4 GB | Unified memory | up to 256k |
|
| gpt-oss-120b | Runs great | 79.7 tok/s8k estimate 94.2 tok/s (75.4–113.1, calibrated estimate ±20%)measured (1 run, 2k context) | MXFP4 | 64.3 / 134.4 GB | Unified memory | up to 128k |
|
| Gemma 4 26B-A4B | Runs great | 79.1 tok/s8k estimate 87.5 tok/s (70.0–105.0, calibrated estimate ±20%)measured (1 run, 512 context) | Q4_K_M | 17.7 / 134.4 GB | Unified memory | up to 256k |
|
| DeepSeek R1 Distill Llama 8B | Runs great | est. 76.1 tok/s60.9–91.3calibrated estimate ±20% | Q4_K_M | 6.6 / 134.4 GB | Unified memory | up to 64k |
|
| Kanana 1.5 8B | Runs great | est. 76.1 tok/s60.9–91.3calibrated estimate ±20% | Q4_K_M | 6.6 / 134.4 GB | Unified memory | up to 32k | — |
| Llama 3.1 8B | Runs great | est. 76.1 tok/s60.9–91.3calibrated estimate ±20% | Q4_K_M | 6.6 / 134.4 GB | Unified memory | up to 128k | — |
| Nanbeige4.2 3B | Runs great | est. 74.4 tok/s52.1–96.8theoretical estimate ±30% | Q4_K_M | 4.7 / 134.4 GB | Unified memory | up to 32k |
|
| Qwen3.5 9B | Runs great | est. 74.3 tok/s59.4–89.1calibrated estimate ±20% | Q4_K_M | 6.7 / 134.4 GB | Unified memory | up to 256k |
|
| DeepSeek R1 0528 Qwen3 8B | Runs great | est. 73.1 tok/s58.5–87.7calibrated estimate ±20% | Q4_K_M | 6.8 / 134.4 GB | Unified memory | up to 64k |
|
| Qwen3 8B | Runs great | est. 73.1 tok/s58.5–87.7calibrated estimate ±20% | Q4_K_M | 6.8 / 134.4 GB | Unified memory | up to 32k |
|
| K2-Horizon 7B | Runs great | est. 67.1 tok/s53.7–80.5calibrated estimate ±20% | Q4_K_M | 7.4 / 134.4 GB | Unified memory | up to 32k |
|
| K2-Horizon MoVA 36B-A4B | Runs great | est. 62.9 tok/s44.0–81.7theoretical estimate ±30% | Q4_K_M | 24.6 / 134.4 GB | Unified memory | up to 32k |
|
| Gemma 4 12B | Runs great | est. 62.9 tok/s50.3–75.4calibrated estimate ±20% | Q4_K_M | 7.8 / 134.4 GB | Unified memory | up to 256k |
|
| Gemma 3 12B | Runs great | est. 58.2 tok/s46.5–69.8calibrated estimate ±20% | Q4_K_M | 8.4 / 134.4 GB | Unified memory | up to 128k | — |
| Laguna S 2.1 | Runs great | est. 47.3 tok/s37.9–56.8calibrated estimate ±20% | Q4_K_M | 68.6 / 134.4 GB | Unified memory | up to 64k |
|
| HyperCLOVA X SEED Think 14B | Runs great | est. 44.7 tok/s31.3–58.1theoretical estimate ±30% | Q4_K_M | 10.8 / 134.4 GB | Unified memory | up to 32k |
|
| Qwen3 14B | Runs great | est. 44.1 tok/s35.3–52.9calibrated estimate ±20% | Q4_K_M | 10.9 / 134.4 GB | Unified memory | up to 32k |
|
| Qwen3.5 122B-A10B | Runs great | est. 43.0 tok/s34.4–51.6calibrated estimate ±20% | Q4_K_M | 79.0 / 134.4 GB | Unified memory | up to 128k |
|
| DeepSeek R1 Distill Qwen 14B | Runs great | est. 43.0 tok/s34.4–51.6calibrated estimate ±20% | Q4_K_M | 11.2 / 134.4 GB | Unified memory | up to 16k |
|
| Phi-4 | Runs great | est. 42.5 tok/s34.0–51.0calibrated estimate ±20% | Q4_K_M | 11.3 / 134.4 GB | Unified memory | up to 16k | — |
| Solar Open 100B | Runs great | est. 41.3 tok/s33.0–49.5calibrated estimate ±20% | Q4_K_M | 64.4 / 134.4 GB | Unified memory | up to 16k |
|
| Mistral Small 3.2 24B | Runs great | est. 29.1 tok/s23.3–34.9calibrated estimate ±20% | Q4_K_M | 16.2 / 134.4 GB | Unified memory | up to 32k | — |
| Gemma 3 27B | Runs great | est. 26.5 tok/s21.2–31.8calibrated estimate ±20% | Q4_K_M | 17.8 / 134.4 GB | Unified memory | up to 64k | — |
| Qwen3.6 27B | Runs well | est. 26.3 tok/s21.0–31.5calibrated estimate ±20% | Q4_K_M | 17.9 / 134.4 GB | Unified memory | up to 256k |
|
| Muse Glimmer 30B | Runs well | est. 26.2 tok/s20.9–31.4calibrated estimate ±20% | Q4_K_M | 18.0 / 134.4 GB | Unified memory | up to 128k |
|
| Qwen3.5 27B | Runs well | est. 25.8 tok/s20.7–31.0calibrated estimate ±20% | Q4_K_M | 18.2 / 134.4 GB | Unified memory | up to 256k |
|
| Qwen3.8 27B | Runs well | est. 25.4 tok/s20.3–30.4calibrated estimate ±20% | Q4_K_M | 18.6 / 134.4 GB | Unified memory | up to 256k |
|
| Gemma 4 31B | Runs well | est. 24.0 tok/s19.2–28.8calibrated estimate ±20% | Q4_K_M | 19.6 / 134.4 GB | Unified memory | up to 128k |
|
| Granite 4.2 30B | Runs well | est. 23.0 tok/s18.4–27.5calibrated estimate ±20% | Q4_K_M | 20.4 / 134.4 GB | Unified memory | up to 64k |
|
| EXAONE 4.0 32B | Runs well | est. 22.9 tok/s18.4–27.5calibrated estimate ±20% | Q4_K_M | 20.5 / 134.4 GB | Unified memory | up to 128k |
|
| EXAONE 4.5 33B | Runs well | est. 22.2 tok/s17.7–26.6calibrated estimate ±20% | Q4_K_M | 21.2 / 134.4 GB | Unified memory | up to 256k |
|
| Qwen3 32B | Runs well | est. 20.8 tok/s16.7–25.0calibrated estimate ±20% | Q4_K_M | 22.5 / 134.4 GB | Unified memory | up to 32k |
|
| DeepSeek R1 Distill Qwen 32B | Runs well | est. 20.7 tok/s16.6–24.9calibrated estimate ±20% | Q4_K_M | 22.6 / 134.4 GB | Unified memory | up to 64k |
|
| Nanbeige4.3 33B | Runs well | est. 20.2 tok/s16.2–24.3calibrated estimate ±20% | Q4_K_M | 23.1 / 134.4 GB | Unified memory | up to 64k |
|
| Llama 3.3 70B | Runs well | est. 10.1 tok/s8.1–12.1calibrated estimate ±20% | Q4_K_M | 45.8 / 134.4 GB | Unified memory | up to 32k | — |
| DeepSeek V4 Flash 0731 | Runs slowly | est. 36.7 tok/s25.7–47.7theoretical estimate ±30% | MXFP4 | 155.0 GB RAM | CPU only | up to 256k |
|
| Solar Open 2 250B | Runs slowly | est. 36.3 tok/s25.4–47.2theoretical estimate ±30% | IQ4_XS | 136.6 GB RAM | CPU only | up to 256k |
|
| GLM-5.3 Flash | Runs slowly | est. 27.5 tok/s19.3–35.8theoretical estimate ±30% | Q4_K_M | 181.5 GB RAM | CPU only | up to 256k |
|
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 | 64 GB | 128 GB | 192 GB |
|---|---|---|---|
| MiniCPM5 1B | 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 |
| 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 |
| Ling-3.0 Tiny | Runs great | Runs great | Runs great |
| Gemma 4 E2B | Runs great | Runs great | Runs great |
| Spark-X2.5 4B | Runs great | Runs great | Runs great |
| Llama 3.2 3B | Runs great | Runs great | Runs great |
| Mellum2.1 12B-A2.5B Thinking | Runs great | Runs great | Runs great |
| Qwen3.5 4B | Runs great | Runs great | Runs great |
| gpt-oss-20b | Runs great | Runs great | Runs great |
| Nemotron 3.5 Lightning 30B-A3B | Runs great | Runs great | Runs great |
| Gemma 4 E4B | Runs great | Runs great | Runs great |
| MiniCPM-V 4.7 35B-A3B | Runs great | Runs great | Runs great |
| Qwen3.6 35B-A3B | Runs great | Runs great | Runs great |
| Kanana 1.5 15.7B-A3B | Runs great | Runs great | Runs great |
| Qwen3.5 35B-A3B | Runs great | Runs great | Runs great |
| Qwen3 30B-A3B (2507) | Runs great | Runs great | Runs great |
| Kolibri 1 | Runs slowly | Runs great | Runs great |
| Ling-3.0 Flash | Won't run | Runs great | Runs great |
| gpt-oss-120b | Won't run | Runs great | Runs great |
| Gemma 4 26B-A4B | Runs great | Runs great | Runs great |
| DeepSeek R1 Distill Llama 8B | Runs great | Runs great | Runs great |
| Kanana 1.5 8B | Runs great | Runs great | Runs great |
| Llama 3.1 8B | Runs great | Runs great | Runs great |
| Nanbeige4.2 3B | Runs great | Runs great | Runs great |
| Qwen3.5 9B | Runs great | Runs great | Runs great |
| DeepSeek R1 0528 Qwen3 8B | Runs great | Runs great | Runs great |
| Qwen3 8B | Runs great | Runs great | Runs great |
| K2-Horizon 7B | Runs great | Runs great | Runs great |
| K2-Horizon MoVA 36B-A4B | Runs great | Runs great | Runs great |
| Gemma 4 12B | Runs great | Runs great | Runs great |
| Gemma 3 12B | Runs great | Runs great | Runs great |
| Laguna S 2.1 | Won't run | Runs great | Runs great |
| HyperCLOVA X SEED Think 14B | Runs great | Runs great | Runs great |
| Qwen3 14B | Runs great | Runs great | Runs great |
| Qwen3.5 122B-A10B | Won't run | Runs great | Runs great |
| DeepSeek R1 Distill Qwen 14B | Runs great | Runs great | Runs great |
| Phi-4 | Runs great | Runs great | Runs great |
| Solar Open 100B | Won't run | Runs great | Runs great |
| Mistral Small 3.2 24B | Runs great | Runs great | Runs great |
| Gemma 3 27B | Runs great | Runs great | Runs great |
| Qwen3.6 27B | Runs well | Runs well | Runs well |
| Muse Glimmer 30B | Runs well | Runs well | Runs well |
| Qwen3.5 27B | Runs well | Runs well | Runs well |
| Qwen3.8 27B | Runs well | Runs well | Runs well |
| Gemma 4 31B | Runs well | Runs well | Runs well |
| Granite 4.2 30B | Runs well | Runs well | Runs well |
| EXAONE 4.0 32B | Runs well | Runs well | Runs well |
| EXAONE 4.5 33B | Runs well | Runs well | Runs well |
| Qwen3 32B | Runs well | Runs well | Runs well |
| DeepSeek R1 Distill Qwen 32B | Runs well | Runs well | Runs well |
| Nanbeige4.3 33B | Runs well | Runs well | Runs well |
| Llama 3.3 70B | Runs slowly | Runs well | Runs well |
| DeepSeek V4 Flash 0731 | Won't run | Won't run | Runs slowly |
| Solar Open 2 250B | Won't run | Won't run | Runs slowly |
| GLM-5.3 Flash | Won't run | Won't run | Runs slowly |
Measured results on the Apple M2 Ultra
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-120b | MXFP4 | llama.cpp | 2k | 1,245.0 | 79.7 | — | github.com | 2025-08-18 |
| llama-2-7b | Q4_0 | llama.cpp | 512 | 1,238.0 | 94.3 | Metal, b1550 (2023) | github.com | 2023-11-22 |
| llama-2-7b | Q4_0 | llama.cpp | 512 | 1,489.0 | 125.2 | Metal, FA | github.com | 2026-08-25 |
| Gemma 4 26B-A4B | Q8_0 | llama.cpp | 512 | 2,160.0 | 87.4 | Metal | github.com | 2026-09-15 |
| Gemma 4 26B-A4B | Q4_K_M | llama.cpp | 512 | 1,550.0 | 79.1 | Metal | github.com | 2026-09-19 |
Frequently asked questions
What is the largest model that runs entirely on the Apple M2 Ultra?
Ling-3.0 Flash at Q4_K_M (a 77.01 GB file) fits entirely in 192 GB of unified memory with 8k context, at est. 83.4 tok/s (58.4–108.4, theoretical estimate ±30%).
How many local LLMs run well on the Apple M2 Ultra?
At Q4_K_M with 8k context, with 192 GB of memory, out of 59 tracked models: 44 run great, 12 run well, 3 run slowly and 0 won't run.
Can the Apple M2 Ultra run a 70B model like Llama 3.3 70B?
Runs well — Unified memory, Q4_K_M: est. 10.1 tok/s (8.1–12.1, calibrated estimate ±20%).
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.