// apple silicon
Mac Unified Memory LLM Calculator
Can your Apple Silicon Mac run a given model? Accounts for the OS reserve and the GPU wired-memory limit.
Hybrid attention/SSM — KV covers ~16 attention layers; recurrent layers add a small fixed state.
✔ RUNS
need 17.4 GB · usable ≈ 24.1 GB of 36.0 GB unified
Presets verified 2026-09. On Apple Silicon the model + KV cache live in the same unified memory as everything else. macOS reserves some for itself and caps GPU-"wired" memory at ~67% of RAM by default; the iogpu.wired_limit_mb sysctl raises it. Bandwidth (not this fit check) is what sets tok/s — see the throughput tool.
Why unified memory is different
On a discrete GPU, VRAM is a separate, dedicated pool. On Apple Silicon there is one pool of memory shared by the CPU, the GPU and the operating system. That is what lets a 128 GB Mac run models a 24 GB graphics card cannot — but it also means the model competes with everything else on the machine.
Two deductions apply before your model gets to load:
- OS reserve. macOS, background apps and the file cache. This tool budgets at least ~1.5 GB and scales it up on larger machines.
- Wired-memory limit. The GPU can only lock a fraction of unified memory —
about 67% by default. Model weights for Metal inference count against it. The
iogpu.wired_limit_mbsysctl raises the ceiling.
Worked example
A 36 GB M3 Pro, running Llama 3.1 8B at Q4_K_M, 8k context:
- Need ≈ 7.3 GB.
- Usable with defaults:
min(36 − OS, 36 × 0.67)≈ 24 GB. Runs, easily.
Same machine, Qwen2.5 32B at Q4_K_M, 8k context:
- Need ≈ 20 GB. Usable ≈ 24 GB. Runs, but tight — close other apps.
A 70B at Q4 needs ~40 GB and will not fit on 36 GB even with the wired limit raised. That is a 64 GB-or-more machine.
Notes
The fit check here is about memory only. Tokens-per-second on a Mac is set by the chip’s memory bandwidth — use the throughput tool for that. Presets carry a verified date.
- Why can't I use all my RAM for the model?
- Two limits. macOS keeps memory for the system, apps and file cache — budget a couple of GB at minimum, more on larger machines. And the GPU can only "wire" (lock) a fraction of unified memory by default, roughly two thirds. Model weights loaded for Metal inference count against that wired limit.
- How do I raise the wired-memory limit?
- Run sudo sysctl iogpu.wired_limit_mb=NNN where NNN is your target in megabytes, leaving a few GB for the OS. It resets on reboot; put it in a startup script to make it stick. Runtimes like llama.cpp and MLX benefit immediately.
- Is a Mac fast for LLMs?
- For fitting large models, yes — a 128 GB Mac holds a 70B model at Q4 with room to spare, which no single consumer GPU does. For speed, it depends on the chip's memory bandwidth — an M3 Pro is around 150 GB/s, an M2/M3 Ultra around 800 GB/s. See the tokens-per-second tool.
- Does the KV cache come out of unified memory too?
- Yes. On Apple Silicon everything — weights, KV cache, activations, the OS — shares the same pool. Long context eats into your budget exactly as it would on a discrete GPU.