Which LLMs fit on Apple M3 Ultra (512GB)?
Apple M3 Ultra (512GB) shares 512 GB of memory between CPU and GPU; by default the GPU can address about 384 GB of it, and LLMScale budgets 384.0 GiB for a model. Its memory bandwidth, 819 GB/s, is what limits generation speed once a model fits. vLLM has no Metal backend, so models run on it with llama.cpp or MLX. Of the 31 popular open models below, 29 fit at BF16, 29 at FP8 and 31 at INT4 with an 8k context for one user.
31 of 31 models fit at INT4, 29 at BF16.
Which LLMs fit on Apple M3 Ultra (512GB)
| Model | BF16 | FP8 | INT4 | Users | Max context |
|---|---|---|---|---|---|
| Qwen2.5 0.5B Instruct | 2.63 GiB | 2.29 GiB | 2.14 GiB | 4,068BF16 | 32kBF16 |
| Gemma 3 1B IT | 4.38 GiB | 3.73 GiB | 3.43 GiB | 1,733BF16 | 32kBF16 |
| Llama 3.2 1B Instruct | 4.50 GiB | 3.60 GiB | 3.17 GiB | 1,518BF16 | 128kBF16 |
| Llama 3.2 3B Instruct | 8.91 GiB | 6.29 GiB | 5.06 GiB | 429BF16 | 128kBF16 |
| Phi-3 mini 4k | 10.33 GiB | 6.95 GiB | 5.37 GiB | 250BF16 | 4kBF16 |
| Gemma 3 4B IT | 18.67 GiB | 15.29 GiB | 13.71 GiB | 334BF16 | 128kBF16 |
| Mistral 7B Instruct v0.3 | 17.03 GiB | 10.53 GiB | 7.48 GiB | 367BF16 | 32kBF16 |
| Qwen2.5 Coder 7B | 18.11 GiB | 12.03 GiB | 9.18 GiB | 837BF16 | 32kBF16 |
| Qwen2.5 7B Instruct | 18.11 GiB | 12.03 GiB | 9.18 GiB | 837BF16 | 32kBF16 |
| Llama 3.1 8B Instruct | 18.85 GiB | 12.35 GiB | 9.30 GiB | 366BF16 | 128kBF16 |
| Qwen3 8B | 19.14 GiB | 12.67 GiB | 9.64 GiB | 325BF16 | 40kBF16 |
| Gemma 2 9B IT | 23.25 GiB | 15.50 GiB | 11.87 GiB | 138BF16 | 8kBF16 |
| Gemma 3 12B IT | 36.08 GiB | 25.67 GiB | 20.79 GiB | 116BF16 | 128kBF16 |
| Mistral Nemo 12B Instruct | 27.11 GiB | 16.95 GiB | 12.19 GiB | 286BF16 | 128kBF16 |
| Qwen2.5 14B Instruct | 32.15 GiB | 19.84 GiB | 14.07 GiB | 235BF16 | 32kBF16 |
| gpt-oss 20B | 43.44 GiB | 25.04 GiB | 17.30 GiB | 908BF16 | 128kBF16 |
| Gemma 2 27B IT | 59.82 GiB | 35.59 GiB | 24.23 GiB | 113BF16 | 8kBF16 |
| Gemma 3 27B IT | 66.89 GiB | 42.65 GiB | 31.29 GiB | 73BF16 | 128kBF16 |
| Qwen3 30B A3B | 60.60 GiB | 32.74 GiB | 19.69 GiB | 432BF16 | 40kBF16 |
| Qwen3 Coder 30B A3B | 60.60 GiB | 32.74 GiB | 19.69 GiB | 432BF16 | 256kBF16 |
| Qwen2.5 32B Instruct | 68.00 GiB | 38.94 GiB | 25.32 GiB | 158BF16 | 32kBF16 |
| Qwen3 32B | 67.75 GiB | 38.69 GiB | 25.07 GiB | 159BF16 | 40kBF16 |
| Mixtral 8x7B Instruct | 95.13 GiB | 51.88 GiB | 31.61 GiB | 289BF16 | 32kBF16 |
| Llama 3.3 70B Instruct | 139.5 GiB | 75.80 GiB | 45.92 GiB | 98BF16 | 128kBF16 |
| Llama 3.1 70B Instruct | 139.6 GiB | 75.80 GiB | 45.92 GiB | 98BF16 | 128kBF16 |
| Qwen2.5 72B Instruct | 143.8 GiB | 78.37 GiB | 47.72 GiB | 97BF16 | 32kBF16 |
| Llama 4 Scout 17B-16E Instruct | 209.5 GiB | 110.2 GiB | 63.68 GiB | 117BF16 | 939kBF16 |
| gpt-oss 120B | 222.4 GiB | 114.6 GiB | 65.51 GiB | 288BF16 | 128kBF16 |
| Mixtral 8x22B Instruct | 272.2 GiB | 141.6 GiB | 80.42 GiB | 64BF16 | 64kBF16 |
| Llama 3.1 405B Instruct | 771.2 GiB (does not fit) | 397.2 GiB (does not fit) | 221.8 GiB | 42INT4 | 128kINT4 |
| DeepSeek V3 | 1282.8 GiB (does not fit) | 647.0 GiB (does not fit) | 349.0 GiB | 66INT4 | 160kINT4 |
Memory at 8k context for one user (the model's maximum, where that is shorter), FP16 KV cache and vLLM's overhead at this card's defaults. Users (each at 8k) and maximum context are for the highest precision that fits.
What BF16, FP8 and INT4 mean for memory: quantization and VRAM.
A model that does not fit one card can still run across several: tensor parallelism splits its weights and KV cache between them. The calculator works out how many.