"Zero-copy and no isolation are not two features. They are one erasure, seen from two sides."
What the Boundary Used to Do
On a discrete-GPU machine the card's memory is a fence. A process that fills VRAM cannot take the host's memory; a process that hangs the GPU cannot stop the CPU from noticing and, if it must, resetting the device. The copy across PCIe that the previous lessons priced as a cost was also a quarantine: whatever happened on the far side of the bus stayed there. Unified memory removed that bus, and with it the quarantine. One pool means one arbitration layer deciding who gets the GPU and who gets the memory, and there is no hardware line that stops one claimant from taking everything — the display included. This is the operating cost the founder's case against the design named in track two, and this lesson pays it in full, because the household has been paying it for thirteen years.
A Thirteen-Year Inheritance
The household's first sustained GPU stall was on a 2013 Mac Pro with two AMD FirePro cards: under sustained compute with several claimants, the driver would lose a card — a "GPU not found" panic — and the machine would restart. The same failure, with different symptoms, followed through an iMac Pro with a Vega GPU, a modular Mac Pro with Radeon Pro cards, and every Ultra Mac Studio since: two GPU vendors, discrete to on-die, split memory to unified. On Apple silicon it no longer panics. An on-die GPU cannot be "not found", so the same arbitration failure arrives as a hang — one claimant holds the Metal queue, the rest starve, the kernel stays up and the screen does not. Same parent class, different child.
What survives four hardware generations is not in the hardware. The common factor is macOS's GPU arbitration under a specific workload: sustained compute, sleep and wake cycles, several claimants at once. That workload was rare until frameworks like MLX made hours-long GPU compute ordinary on a Mac — and the population that runs it is a few thousand people at most, which is why the signal sits below the threshold at which a platform vendor acts. "Fixed", over those years, has always meant "below the pain threshold": once-a-day became months apart, and the adapted users stopped reporting. Every major macOS release re-lays the path, so the risk is redrawn annually.
Not a Lottery, and Not the Dies
Two wrong diagnoses are worth retiring by name. The first is "silicon lottery" — the idea that some units are defective. The household's sample is eight Ultra-class machines over a decade, all reproducing the behaviour; under a lottery with even a 5% defect rate, eight failures is a probability with ten zeros after the decimal point. Eight machines are eight reproductions, not eight coincidences. Apple's own conduct agrees: no recall, no repair programme, the same fused design carried into the next generation. The second wrong diagnosis was the author's own, and it belongs in a confession callout below: describing the Ultra stall as "a bug between the two dies". It is not. The dies are joined by a fabric Apple says makes them "behave as a single unified processor"; what fails is the software arbitration layer over that topology, which has the fewest walkers of any path in macOS. Naming the hardware was wrong, and the correction matters, because a hardware defect could be replaced and a software side effect of the design cannot — it is the same erasure that makes 512 GB local inference possible.
Living With It: The Claimant's Discipline
Since nothing in the hardware fences a GPU claimant, the fence has to be the claimant. Two knobs matter. The operating system publishes a recommended working set for the GPU — "an approximation of how much memory … this GPU device can allocate without affecting its runtime performance" — 464 GiB on office (90.6% of 512), 17.8 GiB on air (74% of 24). And MLX lets a process cap itself: set_memory_limit, set_cache_limit, set_wired_limit. The measured surprise is where MLX's default limit lands: the allocator sets it to the smaller of 1.5 × the recommended working set and 95% of physical memory, and on both lab Macs the 95% cap wins — 486.4 GiB on office, 22.8 on air — which is above the operating system's recommendation on both machines. A well-behaved inference server sets its limit to the recommended figure or below, leaves cache limits sane, and never sleeps the machine mid-run. The household's operating rules, learned the expensive way: keep the machine awake, reboot on symptom rather than debug, do not chain Ultras into one job (a population of zero never gets a fix), and skip the first build of each major macOS. Loss radius: one reboot. An early-adopter tax, and cheap at that.