The Mac Studio Buying Guide for Local AI: Buy for Your Bottleneck
The M5 generation is the most open AI machine Apple has ever built. But comparing 1 PFLOPs of FP4 against 1.2 TB/s is like weighing two completely different bottlenecks against each other. This guide shows you how to make the decision properly — not by chip name, but by the only question that matters: Which model do you actually want to hold, and which bottleneck then defines your day-to-day experience?
Table of Contents
- The core mechanic: why the 4× figure says less than you think
- The bandwidth ladder: where the real class jump is
- The capacity ladder: which model class your memory can hold
- The $50 trap: 2×128 GB ≠ 1×256 GB
- The decision matrix
- TCO: what running it really costs
- The decision prompt
1. The Core Mechanic: Why the 4× Figure Says Less Than It Sounds
Apple's own ML research team measured what the Neural Accelerators in the M5 do (machinelearning.apple.com, "Exploring LLMs with MLX and the Neural Accelerators in the M5 GPU"):
| Operation | M5 speedup | Scales with |
|---|---|---|
| Time-to-first-token (prompt processing) | up to 4.06× (3.33–4.06×) | Compute |
| Generation (token production) | only 1.19–1.27× (+19–27%) | Memory bandwidth |
Apple Newsroom (25.08.2026) confirms the product page exactly: "up to 4.3x faster AI performance" on the M5 Ultra vs. the M3 Ultra — with the qualifier "speeding up prompt processing." The 4× figure is a prefill figure. It measures the moment before the first token, not the writing experience that follows.
Prompt processing scales with compute. Generation scales with bandwidth.
Once you internalize this mechanic, you understand why the marketing numbers miss the bottleneck entirely.
2. The Bandwidth Ladder: Where the Real Class Jump Is
Generation speed — what you actually feel while writing — depends on memory bandwidth. And this is where something real actually happens:
| Chip | Bandwidth | Class |
|---|---|---|
| Mac mini M6 (base) | 170 GB/s | Entry — 27B Q4 runs, but sluggish |
| M5 Pro | 307 GB/s | Solid 27B/32B machine |
| M5 Max | 614 GB/s | First "near-frontier" class |
| M3 Ultra | 819 GB/s | Previous reference |
| M5 Ultra | 1,200 GB/s | The only class jump in the generation |
Only the Ultra jump "changes class": from 614 to 1,200 GB/s is +95%. From 546 (M4 Max) to 614 (M5 Max) is +12% — in between, you're buying the same class in new packaging.
Unified Memory is both a feature and a tax. macOS reserves 8–12 GB before your model loads. Every browser tab, every userspace tool, draws from the same pool. When you read "64 GB," you should read "~54 GB for the model."
3. The Capacity Ladder: Which Model Class Your Memory Can Hold
| RAM | Realistically holdable model class |
|---|---|
| 128 GB | 120–170B parameter class |
| 256 GB | 300B class |
| 512 GB | 700B class |
Concrete reference: Kimi K3 (2.8 trillion parameters, ~1.4 TB) does not fit in 512 GB. The ceiling is real — and that's exactly why memory size decides what you can run.
4. The $50 Trap: 2×128 GB ≠ 1×256 GB
Here's where the math collides: An M5 Ultra with 256 GB/1 TB costs $9,499. Two DGX Spark bundles (128 GB each) together cost $9,449 — a difference of 50 dollars.
But two 128 GB machines shard the work. A single 70B token takes 269 ms across the network bridge; with two Spark nodes that drops to 133 ms — in exchange for two operating systems, two network interfaces, and the interconnect latency. A 256 GB Mac holds the model in a single memory pool. That's not a technical tie: it's two different architectures at the same price-label position.
Meta-rule: 2×128 ≠ 1×256 — unless your workflow is inherently shardable (CUDA clusters, multiple concurrent jobs).
5. The Decision Matrix
| Your bottleneck | Your machine | Why |
|---|---|---|
| Very long context prompts (prefill-dominant) | M5 Ultra | 4.06× TTFT — this is exactly where you save the most time |
| Smooth writing, high tok/s (decode-dominant) | M5 Ultra (bandwidth!) | 1,200 GB/s is the only real class jump |
| Smooth 70B-Q4 models at an affordable budget | M5 Max 128 GB | 614 GB/s + matching capacity |
| Shardable CUDA workloads, multiple parallel jobs | 2× DGX Spark | 2×128 GB at a steal, if sharding is acceptable |
| 700B class, frontier experiments | M5 Ultra 512 GB (late October) | The only path to that class on a single machine |
6. TCO: What Running It Really Costs
| Item | DGX Spark | M5 Ultra |
|---|---|---|
| Power under load | 125–160 W (217 W peak) | ~35 W idle, comparable load range |
| Power cost (€0.1816/kWh) | $100–120/yr (8 h/day) · ~$200/yr (24/7) | Comparable |
| Noise | 29 dBA spec / 32 dBA under load | Silent design |
| Storage philosophy | 4 TB | 1 TB + TB5 backend |
| Resale/warranty | Manufacturer warranty | AppleCare 3 yrs, transferable · M2 Ultra >75% value |
7. The Decision Prompt
Before you buy, ask yourself three questions:
- Which model do I want to hold? (the capacity ladder — not the biggest number I can afford)
- Do I read more or write more? (prefill = compute-dominant → Ultra needed; decode = bandwidth-dominant → bandwidth matters)
- Can I shard my workload? (If yes, 2× Spark may be the smarter calculation — if no, the memory pool wins)
Buy for your bottleneck, not for the marketing number.
FAQ
How do I tell which bottleneck is dominant for me? Watch what you're waiting on: if most of the time passes before the answer begins (a long wait after the prompt), your bottleneck is the prefill — compute-dominant. If the answer starts quickly but then trickles out word by word, your bottleneck is the decode — bandwidth-dominant. The first case needs compute (M5 Ultra for the 4.06× TTFT), the second needs memory bandwidth (M5 Ultra for the 1,200 GB/s). It's almost never both at once.
Why isn't raw memory size alone enough? Because bandwidth determines how fast you can read that memory — and the two are independent. A machine with lots of RAM but low bandwidth loads large models but writes slowly. The capacity ladder tells you which class you can hold; the bandwidth ladder tells you whether that class runs smoothly or sluggishly. For a purchase decision you have to match both ladders against your bottleneck, not just look at the RAM number.
Is the M5 Ultra really the only machine that makes the class jump? Yes, within the M5 generation the Ultra is the only true class jump in bandwidth (614 → 1,200 GB/s, +95%). Every other jump from M4 to M5 chips is single-digit to ~12% — the same league, new packaging. So if you want to leave the "near-frontier" class, the Ultra is the only way. For everything below it, the M5 Max 128 GB is the more sensible buy.
When should I wait for the 512 GB version? When you want to run the 700B class (e.g., large MoE models). The 512 GB config doesn't arrive until late October; Apple hasn't announced the price yet, but it's expected to be "well above $10,000." For the 300B class, the 256 GB version is enough and available immediately. If your bottleneck is below 700B, don't wait — the DRAM crisis is making memory more expensive over time, not cheaper.
Is 2× DGX Spark always worse than 1× M5 Ultra? No — it's different, not worse. At ~$50 price difference it's an architecture question. Two Spark nodes give you double the memory (2×128 GB) and are meant for shardable CUDA workloads; a 70B token takes 269 ms across the network bridge instead of 133 ms with sharding. The M5 Ultra, by contrast, holds the same model in a single memory pool with no interconnect latency. If your workload shards across multiple parallel jobs, the cluster wins; if you want a single large model, the Mac wins.
Sources
- Apple ML Research: "Exploring LLMs with MLX and the Neural Accelerators in the M5 GPU" (machinelearning.apple.com)
- Apple Newsroom, 25.08.2026: M5 Max/M5 Ultra announcement
- Apple product specifications (bandwidth, Unified Memory)
- Gartner DRAM/NAND 2026 forecast · Micron HBM sellout · Tim Cook memory comments (July 2026)
- Ars Technica / Tom's Hardware (March 2026: 512 GB option removed)
- wccftech / OnMSFT / Macfax / MacRumors (resale market)
- ComputerBase (independent DGX Spark measurements) · NVIDIA forum / heise / overclock3d (GB10 pricing)
- Yume_X (29.08.2026) · own verification 31.08.2026