"819 is not a number Apple chose. It is 6400 times 8 times 16, and then rounded down."
Three Factors
Memory bandwidth is the product of three things, and knowing which is which is most of what this track teaches. Transfer rate, in megatransfers per second (MT/s): how many times per second each data pin changes state. Memory is double-data-rate, so a pin transfers twice per clock cycle; LPDDR5-6400 moves 6,400 million transfers per second on each pin. Width, in bits per transfer: how many pins a channel has. LPDDR channels are narrow — 16 bits each in the LPDDR5 standard — and get ganged together; this quest counts in 64-bit slices (four LPDDR5 channels) because Apple's figures fit that unit exactly. Channel count: how many such slices the package fans out. Multiply, divide by eight for bytes, and you have the number on the spec sheet.
The M3 Ultra: 6,400 MT/s × 8 bytes per 64-bit slice = 51.2 GB/s per slice. Sixteen slices = 819.2 GB/s. Apple prints 819. The M3 Max: eight slices, 409.6, printed as 400. The base M3: two slices, 102.4, printed as 100. The M2 Ultra uses the same memory at the same rate and, by our fit, the same sixteen slices — 819.2 again — and Apple prints 800, which is the one number in the family that rounds by more than a percent. Apple does not publish channel counts; the counts are our inference from the fit, and they fit so exactly that the inference is safe to teach.
The Generations, as Memory Technology
| Generation | Memory standard (JEDEC) | Transfer rate | GB/s per 64-bit slice | Slices, base → Ultra (our fit) | Evidence |
|---|---|---|---|---|---|
| M1 (base) | LPDDR4X | 4,266 MT/s | 34.1 | 2 (68.3; Apple never published it) | physics fit |
| M1 Pro / Max / Ultra | LPDDR5 | 6,400 MT/s | 51.2 | 4 → 8 → 16 (200 / 400 / 800 printed) | vendor GB/s + physics fit |
| M2, M3 | LPDDR5 | 6,400 MT/s | 51.2 | 2 → 16 | vendor GB/s + physics fit |
| M4 | LPDDR5X | 7,500 (base) / 8,533 (Pro, Max) | 60 / 68.3 | 2 → 8 (no Ultra) | vendor + fit |
| M5 | LPDDR5X | 9,600 MT/s | 76.8 | 2 → 16 (M5 Ultra "1.2TB/s" = 1,228.8) | vendor + fit |
| (next) | LPDDR6, JESD209-6 (published 2025-07) | 10,667–14,400 MT/s reported; SK hynix 10.7 Gbps parts, supply 2H26 | 85–115 at a 64-bit-equivalent slice | — | vendor (JEDEC, SK hynix) + press-attributed rates |
Read the table as a history of one number. Between the base M1 and the base M5, the transfer rate went from 4,266 to 9,600 — 2.25x — and that is the entire per-slice gain across five generations (the M1 Pro, Max and Ultra had already moved to LPDDR5-6400, which is why an M1 Ultra and an M3 Ultra print nearly the same number). Every other multiple in the family is a slice count, and the middle tiers move by generation: in the M3 generation this quest measures, Pro is three, Max is eight (six on the smaller Max), Ultra is sixteen; the M4 and M5 Pro fan out four, several Max SKUs six. A base chip and an Ultra of the same generation share a transfer rate and differ by a factor of eight in how many lanes the package fans out. That is why the tiers, not the generations, are where the big bandwidth numbers live (track one), and why the M5 Ultra's 1.2 TB/s is sixteen slices of 9,600 — the same count the M3 Ultra has, at a faster rate.
Spec, Then Achieved
The number this derivation produces is what the memory can deliver. The GPU track measured what a streaming kernel does deliver: 93–97% on the Air, 90–98% on the M3 Max, 92% on the M2 Ultra, 78% on the M3 Ultra. The derivation is right; what a kernel gets out of it depends on the path between GPU and memory controllers, and the widest part gives up the most — a property this quest measures and reports, and cannot explain from user space. Both numbers go on your card, and the physics track's decode ceiling uses the achieved one.