BeginnerMac / Apple 4 min readPublished · updated

Mac M3 Pro: Realistic Model Limits

Unified memory is not all yours — what an 18GB and a 36GB M3 Pro actually hold, and the Metal limit that decides it.

Written against

macOS 14+ · M3 Pro 18GB / 36GB unified memory · Ollama Metal · GGUF Q4_K_M · single stream

Not re-run since it was last edited — treat the commands as a starting point, not a tested recipe.

MacM3 ProApple SiliconOllamaMetal

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. One change to know about: since Ollama v0.40.0 (now its latest release), architectures its MLX runtime supports run on MLX by default instead of llama.cpp — Ollama names Qwen3.8, Gemma 4, Qwen3.6 and Qwen3.5. The sizes on this site are for GGUF builds, and Ollama has not published how large its MLX builds are, so for those families read them as a guide rather than an exact figure.

bash
# 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 usable

18GB 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.

text
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.9 GB   tight — 95% of the 13.5 GB ceiling
Qwen3 30B-A3B   Q4_K_M  @8K   ≈ 20.1 GB   does not fit

36GB 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. Generating a token reads every weight once, so the M3 Pro's 150 GB/s sets a ceiling: about 8 tok/s for a 32B at Q4_K_M, 18 for a 14B, 32 for an 8B. Those are upper bounds, not measurements — real runs land below them, and this site has no measured M3 Pro figures. The mixture-of-experts Qwen3 30B-A3B is the exception worth knowing: about 20.1GB at 8K (comfortable here), but it reads only its few active experts per token, so it is not held to a dense model's ceiling.

bash
ollama pull qwen2.5:14b     # ≈ 11 GB at 8K — plenty of room
ollama pull qwen2.5:32b     # ≈ 23 GB at 8K — fits; ceiling ≈ 8 tok/s
ollama pull qwen3:30b-a3b   # ≈ 20 GB at 8K — fits; MoE, not bound by that ceiling

Check what it is really using

ollama ps reports the resident size and where the model is running; on Apple Silicon it should read 100% GPU. When a model is larger than what Metal lets the GPU use, Ollama does not refuse it — it puts the layers that do not fit on the CPU, and the column reads something like 25%/75% CPU/GPU, with generation slowing accordingly. That split, not an error, is the sign you are over the limit. 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.

bash
ollama ps
# NAME           ID     SIZE    PROCESSOR   UNTIL
# qwen2.5:14b    <id>   ...     100% GPU    4 minutes from now
#
# Over the limit, the same column reads e.g.  25%/75% CPU/GPU

Common 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%.

Common questions

Can an 18GB M3 Pro run a 14B model?

Yes, at everyday context lengths. Qwen2.5 14B at Q4_K_M is about 11.0GB at 8K, against roughly 13.5GB that Metal lets the GPU use on an 18GB machine — 81%, which this site rates comfortable. Long context is what breaks it: at 32K the same model is about 15.9GB, over the limit, and Ollama will start putting layers on the CPU.

Should I raise iogpu.wired_limit_mb to fit a bigger model?

Usually not. The default leaves roughly a quarter of memory to macOS and your open applications; taking it for the model moves the shortage onto the rest of the system, and once macOS starts swapping everything slows, the model included. A smaller quant or a shorter context gets the same model to fit without that trade.

How fast will a 32B model be on an M3 Pro?

At most about 8 tokens per second at Q4_K_M, and in practice less. Each generated token reads all of the weights once, and the M3 Pro has 150 GB/s of memory bandwidth against roughly 20GB of weights — that ratio is a ceiling no runtime can beat. This site has not measured an M3 Pro, so it gives the ceiling rather than a run. A mixture-of-experts model such as Qwen3 30B-A3B reads far less per token and is not bound by it.

What this guide uses

Next steps

See everything that fits 🍎 Mac M3 Pro 18GReverse lookup — 18GB at 8192 context, ranked by quality

Models 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

Deployment guides are educational. Each model is subject to its own license — read the official Hugging Face model card before downloading or deploying.