128 GB unified 546 GB/s 2024 Apple unified memory
MacBook Pro M4 Max (128 GB) addresses 96 GB — 75% of its 128 GB of unified memory, which is what macOS hands the GPU by default at 546 GB/s. Of the 16 open models tracked on this site, it runs 16 at Q4_K_M with 8k of context. The largest is gpt-oss 120B, needing about 71.7 GB and generating an estimated 129 tokens per second — faster than you can read.
A laptop that runs models a desktop GPU cannot hold.
What a MacBook Pro M4 Max runs, model by model
Every model at Q4_K_M with 8k of context, the setting most people actually use. This card has 91.2 GB to spend once the 5% safety margin comes off its 96 GB, and it reads that memory at 546 GB/s. Those two numbers decide the last two columns: the first says what loads, the second says how fast it answers. Both are estimates from stated formulas, and the VRAM calculator shows the working.
| Model | Size | Needs | Est. tokens/s | On this card |
|---|---|---|---|---|
| Llama 3.2 3B | 3.2B | 3.4 GB | 206 | fits |
| Llama 3.1 8B | 8B | 6.4 GB | 82 | fits |
| Qwen3 8B | 8.2B | 6.7 GB | 80 | fits |
| Gemma 3 12B | 12.2B | 11.1 GB | 54 | fits |
| Qwen3 14B | 14.8B | 10.8 GB | 45 | fits |
| Phi-4 14B | 14.7B | 11 GB | 45 | fits |
| gpt-oss 20B | 21B · 3.6B active | 13.6 GB | 183 | fits |
| Mistral Small 3.1 24B | 24B | 16.3 GB | 27 | fits |
| Gemma 3 27B | 27.4B | 21.2 GB | 24 | fits |
| Qwen3 30B-A3B (MoE) | 30.5B · 3.3B active | 19.7 GB | 200 | fits |
| Qwen3 32B | 32.8B | 22.4 GB | 20 | fits |
| Qwen2.5 Coder 32B | 32.8B | 22.4 GB | 20 | fits |
| DeepSeek-R1 Distill Qwen 32B | 32.8B | 22.4 GB | 20 | fits |
| Llama 3.3 70B | 70.6B | 45.8 GB | 9 | fits |
| DeepSeek-R1 Distill Llama 70B | 70.6B | 45.8 GB | 9 | fits |
| gpt-oss 120B | 117B · 5.1B active | 71.7 GB | 129 | fits |
On this card that means anything at or under 91.2 GB counts as fitting, and anything above 81.6 GB is marked tight: it loads, but there is little left for the conversation, and a desktop on the same 128 GB can push it over.
One caveat specific to Apple silicon: these tokens-per-second figures describe generation, which unified memory handles well. Prompt processing — reading what you send before the first token comes back — is markedly slower than on an equivalent Nvidia card, and that is what you feel when you paste in a long document. Short prompts feel fast on this machine; 30,000-token ones do not.
The model to actually run on it
gpt-oss 120B is the best use of this card: 71.7 GB of the 96 GB available, an estimated 129 tokens per second, faster than you can read, and 131,072 tokens of context still available. It is a mixture-of-experts model, so all 117B parameters sit in memory but only 5.1B are read per token — which is why it is quick for its size.
If quality matters more than parameter count, Llama 3.3 70B fits at Q8_0 in about 81 GB. Q8 is near-lossless; a smaller model at Q8 often beats a larger one squeezed into Q3.
How much context actually fits
Model size is the question people ask; context is the one that bites. The KV cache grows linearly with the conversation, so a model that loads comfortably can still run out of memory halfway through a long document. On 96 GB, the context you get is whatever the weights leave behind — which is why two cards that run the same model can feel completely different in use. These are the largest contexts this card holds, at Q4_K_M weights.
| Model | Max context, FP16 KV | With Q8 KV cache |
|---|---|---|
| gpt-oss 120B | 131,072 tokens | 131,072 tokens |
| Llama 3.3 70B | 131,072 tokens | 131,072 tokens |
| DeepSeek-R1 Distill Llama 70B | 131,072 tokens | 131,072 tokens |
| Qwen3 32B | 131,072 tokens | 131,072 tokens |
Quantising the KV cache to Q8 roughly doubles what you can hold — gpt-oss 120B on this card goes from 131,072 to 131,072 tokens — at a quality cost most people never notice. Capped at 128k tokens here; a model's own architecture may stop lower, and sliding-window models such as Gemma 3 use less KV than the formula assumes.
Where this card stops
Nothing in this list is out of reach. Every model tracked here fits at Q4_K_M with 8k of context, so the ceiling you will meet is context length and batch size, not parameter count.
The honest take
A fully specified M4 Max carries up to 128 GB of unified memory, which fits a 70B model at Q4 with long context in a machine you can put in a bag. Bandwidth is 546 GB/s — around a 4070 — so it is not fast, but it is fast enough for chat, and it is the only option here that runs on battery. The same prompt-processing caveat as every Apple machine applies.
What it is good at
- Up to 128 GB unified memory in a laptop: 70B at Q4 fits comfortably.
- Runs on battery, silently, without a desk or a power supply built around it.
- MLX takes good advantage of the hardware, and llama.cpp is well maintained on it.
What it is not
- 546 GB/s means large models generate slowly compared with a desktop card.
- Prompt processing lags Nvidia badly, which is felt most on long documents.
- No CUDA, so much of the image, video and fine-tuning ecosystem is unavailable.
The thing people get wrong: The same 75% default cap on GPU-addressable memory applies, so a 128 GB machine plans around roughly 96 GB. It is still more usable memory than any single consumer graphics card.
Buy or rent
If you were buying the laptop anyway, the memory upgrade is the cheapest large-model capacity in this list. If you were not, it is an expensive way to buy GPU memory.
What matters is the memory upgrade rather than the machine, and Apple prices that differently in every configuration. Put the figure you are actually looking at, with your electricity rate and your real monthly hours, into the build vs rent calculator. It returns the month owning becomes cheaper, or tells you it never does. Hours per month decides it far more often than the price does.
Nodegrove is the rented side of that comparison: a workspace that stays saved, with a GPU attached only while you are using it. It is the right answer when your hours are low or your needs change; buying is the right answer when they are high and stable.
Compared with the alternatives
- Mac Studio M2 Ultra — 144 GB · 800 GB/s · best fit gpt-oss 120B at ~189 tok/s. The quiet way to hold a very large model, as long as you are patient with long prompts.
- RTX 4090 — 24 GB · 1,008 GB/s · best fit Qwen3 30B-A3B (MoE) at ~369 tok/s. The card most local-model advice is implicitly written for.
- RTX 5090 — 32 GB · 1,792 GB/s · best fit Qwen3 32B at ~66 tok/s. The first consumer card whose memory bandwidth changes what is comfortable.
All 13 cards are compared side by side on the GPU index, and the same numbers from the model's point of view are on each model fit table. To check one specific pairing rather than read a table, use the can-I-run-it checker.
Questions
Can a MacBook Pro M4 Max run a 70B model?
Yes. Llama 3.3 70B at Q4_K_M with 8k of context needs about 45.8 GB, inside the 96 GB this card can address, and it generates an estimated 9 tokens per second — slow; fine for batch jobs.
What is the best model to run on a MacBook Pro M4 Max?
gpt-oss 120B. At Q4_K_M and 8k context it needs about 71.7 GB of the 96 GB available and generates an estimated 129 tokens per second, which is faster than you can read. If quality matters more than size, Llama 3.3 70B fits at Q8 in about 81 GB.
How many tokens per second does a MacBook Pro M4 Max generate?
It depends entirely on the size of the model, because generating a token means reading every active weight out of memory. At 546 GB/s and 70% efficiency, this card produces an estimated 82 tokens per second on an 8B model at Q4, and about 129 on the largest model it holds, gpt-oss 120B. Reading speed is roughly 5 to 8 words per second, so anything above 25 feels immediate.
Is 96 GB enough for running LLMs locally?
It runs 16 of the 16 models tracked here at Q4_K_M with 8k of context, up to 117B parameters. The honest test is not the model list but the context: gpt-oss 120B on this card holds about 131,072 tokens before memory runs out.
MacBook Pro M4 Max or Mac Studio M2 Ultra for local models?
The Mac Studio M2 Ultra holds more: 144 GB against 96 GB, so it runs 16 of these models to this card's 16. On speed, the Mac Studio M2 Ultra is faster: 800 GB/s against 546 GB/s, and bandwidth is what sets chat speed.
Can a MacBook Pro run a 70B model?
A 128 GB M4 Max can, at Q4, with a long context, on battery. It is the only machine in this list that does that without a wall socket and a desk. Generation is slower than a desktop card at 546 GB/s, and long prompts take a visible pause before the first token.
How much memory should I buy in a MacBook Pro for AI?
The GPU gets about 75% of whatever you buy, so 36 GB leaves roughly 27 GB — enough for 32B-class models. 64 GB leaves about 48 GB, and 128 GB leaves about 96 GB, which is where 70B models become comfortable. Memory cannot be upgraded later, so it is the one decision worth over-buying.
- Memory: weights (parameters × bytes per parameter) + KV cache (2 × layers × KV heads × head dim × context × bytes) + 0.5 GB runtime + 4% of weights. Full derivation in the VRAM calculator.
- Speed: 70% × bandwidth ÷ active weight bytes, single stream, no batching, prompt processing excluded. See the tokens-per-second estimator.
- Card specification: 128 GB, 546 GB/s — manufacturer figures. Apple unified memory: macOS makes roughly 75% of system RAM addressable by the GPU by default, and every figure here uses that share.
- Model architecture values come from each model's published config; the self-hosted LLM guide explains what each one changes.