"The thing the Mac is up against is not a GPU. It is twenty years of code that assumes a GPU has its own memory, and works."
What NVIDIA Shipped in 2006
NVIDIA's own account: "NVIDIA released the first version of CUDA in November 2006 and it came with a software environment that allowed you to use C as a high-level programming language." The toolkit archive's oldest entry is "CUDA Toolkit 1.0 (June 2007)". What shipped was not a faster graphics card; it was a way to write general programs for the card in a language people already knew, with a compiler, a runtime, and — the part that compounds — libraries: cuBLAS for linear algebra, later cuDNN for neural networks, TensorRT for inference, NCCL for many cards talking. Every deep-learning framework of the 2010s was built on those, so that by the time a language model was a thing anyone wanted to run, the path from a paper to a running kernel on NVIDIA hardware was paved and everyone's code already walked it. That is the moat. It is not in the silicon, which the memory track can price, and it is not in the bandwidth, which the next lesson prices; it is in the age.
The Age of Each Door
The code block dates each door from the vendor's own announcement. CUDA is nearly twenty years old. Apple's Metal, the GPU API every Mac path in the journey track ultimately reaches, is twelve. The Apple silicon Mac is under six. PyTorch's MPS backend — the bus-era framework's door to the Mac — is four. MLX, Apple's own framework, is under three, and Ollama's MLX engine is half a year. CUDA is seven times the age of MLX, and that ratio is a fair proxy for the depth of libraries, the count of ported models, the size of the pool of people who can write a kernel, and the number of bugs already found. The mouse track told the story of the community finding the Mac in 263 days; this lesson is the reminder that the community had been on NVIDIA for sixteen years by then.
What the Platform's Model of the Machine Assumes
CUDA's programming model has a host and a device, each with its own memory, and a verb for moving between them. The journey track's PyTorch lesson measured what happens when that model is laid over a machine with one memory: an unnecessary copy that costs real time, and an op-coverage gap where kernels exist for CUDA and not yet for Metal. NVIDIA's own inference guidance, in its 2023 optimization post, describes the two stages exactly as the physics track does — prefill "a matrix-matrix operation that's highly parallelized", decode "a memory-bound operation" where "the speed at which the data … is transferred to the GPU from memory dominates the latency" — and then spends its length on tricks the platform's twenty years have accumulated: batching, paged caches, quantization, speculation. The Mac gets those tricks last, or reimplements them; the Ollama lesson watched one of them arrive. So the honest frame for the rest of this track: NVIDIA leads on the two numbers a token cares about, bandwidth and compute, and on the one number no spec sheet lists, which is time. The Mac's case is made elsewhere — in the wall the card builds and in the pool the card lacks — and this track prices both before it says so.