"One microarchitecture, three sizes, one house. Double the dies and you do not double the tokens — and the two stages fall short by different amounts, which is the lesson."
Why One Generation Is the Experiment
The household happens to own the M3 at all three sizes: the base chip in the Air (10 GPU cores, 100 GB/s, 24 GB), the Max in the 2023 MacBook Pro (40 cores, 400 GB/s, 128 GB) and the Ultra in the office Studio (80 cores, 819 GB/s, 512 GB). Same GPU core, same memory technology, same macOS build, same MLX — only the count of things changes, and it changes in two dimensions that the vendor's table ties together: bandwidth goes 1 : 4 : 8.2 and GPU cores go 1 : 4 : 8. The physics track says prefill is the compute stage and decode the bandwidth stage. If that is true, prefill should follow the cores and decode the bandwidth, and both should scale linearly as long as nothing else intervenes. The ladder is the test.
| Model (4-bit) | GB/token | air, M3 · prefill / decode | pro2023, M3 Max | office, M3 Ultra | Evidence |
|---|---|---|---|---|---|
| Qwen3.5-0.8B | 0.42 | 1,707 / 167.6 | 4,017 / 416.6 | 6,312 / 338.2 | measured 2026-09-15 |
| Qwen3.5-2B | 1.06 | 774 / 76.8 | 2,441 / 246.9 | 3,992 / 257.1 | measured |
| Qwen3.5-4B | 2.37 | 308 / 34.4 | 1,126 / 121.3 | 1,748 / 147.6 | measured |
| Qwen3.5-9B | 4.47 | 172 / 19.4 | 642 / 72.9 | 1,043 / 95.1 | measured |
| Qwen3.5-27B | 14.42 | 49 / 6.1 | 195 / 23.4 | 315 / 32.6 | measured |
| Qwen3.5-35B-A3B | 1.66 | — (20 GB, not run on 24 GB) | 909 / 109.9 | 1,276 / 89.1 | measured |
Base to Max: Linear
Four times the cores, four times the bandwidth. On the 9B: prefill 3.7×, decode 3.8×. On the 27B: prefill 4.0×, decode 3.8×. On the 0.8B, decode 2.5× — the fixed cost's share, which the Max's lower per-token overhead (1.12 ms against the Air's 1.45) does not fully hide at three milliseconds a token. Within the noise of a busy laptop, the Max is four Airs, and the physics track's two stages scale with the two things the vendor said they would.
Max to Ultra: Half a Second Die
Two dies, so twice the cores and twice the bandwidth on paper (2.05×). Measured on the 9B: prefill 1.62×, decode 1.30×. On the 27B: prefill 1.62×, decode 1.39×. On the mixture: prefill 1.40×, decode 0.81× — slower. The second die buys sixty per cent of its listed prefill and thirty to forty of its listed decode, and for a model with many small kernels it buys less than nothing at batch one. The previous lesson's fit says why in two numbers: the Ultra's decode kernel pulls 61% of its spec against the Max's 87%, and its fixed cost per token is 1.67 ms against 1.12. Prefill, being compute, loses less — it is the stage where eighty cores can all be busy — which is exactly the pattern the M2-versus-M3 Ultra lesson will find between generations too. None of this is a defect; it is what an interposer costs at the scale of a single token, measured in a house that owns both halves of the comparison.
What Buying Up the Ladder Actually Buys
Three things, and they are different things. Base to Max buys speed in proportion to the price of the silicon: four Airs of prefill and decode. Max to Ultra buys capacity more than speed — the 512 GB that holds a 750B-class mixture at 4 bits (about 450 GB; the store's DeepSeek-V4.1-Flash is 510 GB as shipped), which no Max can hold at all — plus a third more decode and sixty per cent more prefill on models that fit both. The Air, for its part, ran the 27B at 6.1 tokens per second inside its working set, at 88 GB/s effective, right on the ladder's fitted 89: the bottom of the ladder is slow, not broken. Your card's row for this lesson is the tier you own and the ratio you would get from the next one, read from the table, not from the spec sheet.