Local LLMs on a Mac: how unified memory really works
Why 64 GB of unified memory is not 64 GB of VRAM, how much the GPU can use, and which Macs run which models.
On Apple Silicon, the CPU and GPU share the same memory. That is a huge advantage for LLMs: a Mac Studio with 128 GB can load a 70B model no consumer graphics card can hold. But it is not VRAM: macOS keeps part of the memory for itself and apps.
By default, the GPU can use about two thirds of memory up to 36 GB, then about three quarters above. The command sudo sysctl iogpu.wired_limit_mb=… raises that limit, at the cost of memory for everything else. Speed depends on bandwidth: 120 GB/s on an M4, 546 GB/s on an M4 Max, 819 GB/s on an M3 Ultra.
| Chip | Unified memory | Usable by the GPU (default) | Largest model at Q4_K_M, 8K |
|---|---|---|---|
| M3 Ultra (80-core GPU) | 512 GB | ~384 GB | DeepSeek R1 (671B) |
| M4 Max (40-core GPU) | 128 GB | ~96 GB | gpt-oss-120b |
| M4 Max (32-core GPU) | 36 GB | ~24 GB | Mixtral 8x7B Instruct |
| M3 Max (40-core GPU) | 128 GB | ~96 GB | gpt-oss-120b |
| M3 Max (30-core GPU) | 96 GB | ~72 GB | gpt-oss-120b |
| M4 Pro (20-core GPU) | 64 GB | ~48 GB | Qwen2.5 72B Instruct |
| M5 | 32 GB | ~21.3 GB | Qwen3 32B |
| M3 Pro | 36 GB | ~24 GB | Mixtral 8x7B Instruct |
| M4 | 32 GB | ~21.3 GB | Qwen3 32B |
| M3 | 24 GB | ~16 GB | Mistral Small 3.2 24B Instruct |
EstimateData updated 24 days agoSource: Run LLM Locally engine