The number that actually limits you
Unified memory is shared with macOS and everything you have open, and Metal will not let a process wire down all of it — the default ceiling is roughly 75% of installed RAM. So an 18GB M3 Pro offers something like 13.5GB to a model, and a 36GB machine around 27GB. Every "will it fit" question on a Mac is against that number, not against the number on the box. It is adjustable with iogpu.wired_limit_mb, but raising it means macOS starts swapping instead of the model failing to load, which is worse.
# What Metal will currently wire down (0 = system default, ~75% of RAM)
sysctl iogpu.wired_limit_mb
# 18 GB machine → ≈ 13.5 GB usable
# 36 GB machine → ≈ 27 GB usable18GB M3 Pro
More than the earlier version of this guide claimed. A 14B at Q4_K_M is about 11.0GB at 8K context and does fit — it was previously listed here as needing 36GB+, which was wrong. 7–8B models sit near 6GB and leave room to keep working while one is loaded. What does not fit is a 30B: even the MoE Qwen3 30B-A3B is around 20GB at 8K, above both the 75% ceiling and the machine.
Llama 3.1 8B Q4_K_M @8K ≈ 6.2 GB comfortable
Qwen3 8B Q4_K_M @8K ≈ 6.4 GB comfortable
Qwen2.5 14B Q4_K_M @8K ≈ 11.0 GB fits, watch what else is open
GPT-OSS 20B MXFP4 @8K ≈ 12.0 GB fits, near the 13.5 GB ceiling
Qwen3 30B-A3B Q4_K_M @8K ≈ 20.1 GB does not fit36GB M3 Pro
A 32B at Q4_K_M is about 22.8GB at 8K, which fits inside the ~27GB ceiling — the earlier claim that 32B "requires Q3 or heavy context sacrifice" was too conservative. 14B models at 8K leave most of the machine free. The honest limit on this tier is speed rather than capacity: memory bandwidth, not VRAM, is what makes a 32B feel slow on an M3 Pro, and this guide has no measured tok/s for that combination.
ollama pull qwen2.5:14b # ≈ 11 GB at 8K — plenty of room
ollama pull qwen2.5:32b # ≈ 23 GB at 8K — fits, expect it to be slowCheck what it is really using
ollama ps reports the resident size and whether the model is on the GPU; on Apple Silicon it should read 100% GPU, because Metal has no partial-offload equivalent — a model that does not fit fails or swaps rather than splitting. If the machine starts paging, you will feel it everywhere before you see it in any model metric, so watch memory pressure in Activity Monitor rather than free memory.
ollama ps
# NAME SIZE PROCESSOR UNTIL
# qwen2.5:14b 11 GB 100% GPU 4 minutes from nowCommon problems
Model loads then the Mac crawls: you are over the wired limit and macOS is swapping — close applications or drop to a smaller model rather than raising iogpu.wired_limit_mb. Long context is what pushed you over: the KV cache scales with it and nothing else does, so halve the context before changing the model. Ollama pulled a bigger file than expected: a bare tag gives that tag’s default build, usually Q4_K_M, not a level chosen for your memory.
Next steps
Select your Mac in the VRAM calculator — the unified-memory machines are in the list — and compare at the context you actually use. Remember to judge the result against ~75% of the machine, not 100%.
What this guide uses
- Hardware
- Mac M3 Pro 18G18GB
- Picks for it
- Best local LLM for Apple silicon
Next steps
See everything that fits 🍎 Mac M3 Pro 18GReverse lookup — 18GB at 8192 context, ranked by qualityModels covered in this guide
Did this actually run?
Copying a command is not the same as it working, so this is the only place the site asks. Nothing is collected beyond the answer itself.
Related guides
Mac M3 Max: The Ultimate Local LLM Setup
Maximise your Apple Silicon with Ollama. Run multiple models, set up an OpenAI-compatible API, and tune Metal GPU layers.
M1 / M2 Mac 8GB: Realistic Ollama Limits
Unified memory is shared with macOS — here is what actually works on base MacBooks without swapping.
Docker Compose LLM Stack: Ollama + Open WebUI
A production-ready Docker Compose stack that gives you a local ChatGPT experience with one command.