DEV Community

Erik Bagdaer
Erik Bagdaer

Posted on Originally published at macyou.co

Best Hardware for Local LLMs in 2026: Mac vs NVIDIA vs AMD, One Formula for Every Row

Originally published on macyou.co, where the tables update as specs change. Disclosure up front: I run Macyou, we rent dedicated Apple Silicon Macs. That is exactly why every number below is computed the same way for NVIDIA, AMD and Apple, and why the section on where a Mac is the wrong purchase is the longest one.

The honest short version, and it is not the one you would expect from a company that rents Macs: if your model fits in 32 GB, buy an NVIDIA card. An RTX 5090 moves 1,792 GB/s against 546 for an M4 Max. Above 32 GB the question changes completely, because speed stops mattering when the model will not load at all, and that is where unified memory earns its price.

The market has split into three shapes

Fast and small. Discrete GPUs put GDDR7 behind a wide bus and reach 936 to 1,792 GB/s. Consumer cards stop at 24 or 32 GB, so they hold roughly 32B at Q4. Two cards double the capacity on paper but split the model across a bus, which is a different and worse thing than one pool.

Big and slow. The 128 GB unified memory boxes, the NVIDIA DGX Spark (GB10) and the AMD Strix Halo systems, use LPDDR5x. They hold a 123B model at 273 and 256 GB/s respectively, between a quarter and a seventh of a modern GPU.

Big and fast, at a price. Apple's Ultra tier is the only consumer hardware that is both. The M5 Ultra addresses 512 GB at 1,200 GB/s. NVIDIA's answer in that quadrant is the RTX PRO 6000 at 96 GB and 1,597 GB/s, a workstation part with a workstation price.

The comparison that surprises people

The DGX Spark costs $3,999 and has 273 GB/s of memory bandwidth. The M4 Pro, a two year old mid tier chip in a Mac mini, has 273 GB/s. Same number. The M4 Max has 546 GB/s at the same 128 GB, twice the Spark, and the M5 Ultra is 4.4 times it. If you are buying a 128 GB box for generation speed, make that comparison first. If you are buying it for CUDA, prompt processing or fine tuning, none of this applies and the Spark is a reasonable purchase.

Everything, at Q4_K_M

Tokens per second for generation, computed identically for every row from memory bandwidth and model size. "no" means the model does not fit. Memory is the largest configuration available.

Hardware Memory Bandwidth 8B 32B 70B 123B Price
RTX 3090 24 GB 936 GB/s 105 no no no ~$1,300 used
RTX 4090 24 GB 1,008 GB/s 109 no no no varies
RTX 5090 32 GB 1,792 GB/s 146 62 no no varies
RTX PRO 6000 Blackwell 96 GB 1,597 GB/s 139 57 30.1 18.2 varies
DGX Spark (GB10) 128 GB 273 GB/s 42.9 12 5.7 3.3 ~$3,999
AMD Strix Halo (Ryzen AI Max+ 395) 128 GB 256 GB/s 40.7 11.3 5.4 3.1 ~$2,000
Apple M5 Ultra 512 GB 1,200 GB/s 120 45.5 23.3 13.9 varies
Apple M5 Max 128 GB 614 GB/s 80 25.5 12.5 7.3 varies
Apple M5 Pro 64 GB 307 GB/s 47.3 13.4 6.4 no varies
Apple M6 32 GB 153 GB/s 26 6.9 no no varies
Apple M4 Max (40-core GPU) 128 GB 546 GB/s 74 22.9 11.2 6.5 varies
Apple M4 Pro 64 GB 273 GB/s 42.9 12 5.7 no varies
Apple M3 Ultra 512 GB 819 GB/s 97 32.9 16.4 9.7 varies

Where a Mac is the wrong purchase

Anything that fits in 24 or 32 GB. A used RTX 3090 at around $1,300 runs an 8B model at 105 tokens/sec. The base M4 does 21. The 3090 runs out of memory before 32B, but a 5090 holds it and still runs it at 62 tokens/sec, against 12 on an M4 Pro.

Fine tuning. MLX is good and improving, but the ecosystem assumes CUDA. You will hit repositories that will not run without porting, and the time spent porting is usually worth more than the hardware difference.

Long prompts with short answers. Prompt processing is compute bound, not bandwidth bound, and NVIDIA hardware is substantially better at it. The Spark processes prompts two to three times faster than a Strix Halo box despite nearly identical generation speed.

Serving many users at once. These figures are single stream. Batched serving is where GPU compute and stacks like vLLM pull away, and none of the unified memory machines, Apple included, are the right tool.

Where a Mac is the right purchase

Models between 32 and 128 GB, where you still want speed. This is the gap the GPUs leave. A 70B at Q4 will not load on a 5090; on a 128 GB box it runs at about 5.7 tokens/sec; on an M4 Max it runs at 11.2.

The very large models, at all. Above 128 GB the field empties out. Apple's Ultra tier at 256 and 512 GB is most of what is left short of datacenter hardware.

Machines that have to be quiet, small and always on. A Mac mini idles at a few watts and is silent. A 5090 draws hundreds of watts under load and needs a case and a power supply built around it.

Where the newest Apple chips land

Chip Bandwidth Max memory Versus the DGX Spark
M5 Ultra 1,200 GB/s 512 GB 4.4x bandwidth
M5 Max 614 GB/s 128 GB 2.25x bandwidth
M5 Pro 307 GB/s 64 GB 1.12x bandwidth
M6 153 GB/s 32 GB 0.56x bandwidth

Read the M6 row before drawing the wrong conclusion from the others. Apple's entry desktop chip sits at 153 GB/s, below both 128 GB boxes, so the boxes are not simply slower than Macs. The crossover is the M5 Pro, the first chip in a Mac mini to edge past them, by twelve percent. What separates the classes is the top, not the entry point: Apple keeps scaling to 614 and 1,200 GB/s while the boxes stop at 273. Their argument was never speed. It is 128 GB for around $2,000, and against that specific number Apple has nothing to offer.

How these numbers were produced, and what is wrong with them

Every speed above comes from one formula applied to every row: seconds per token equals weight size divided by (bandwidth times 0.915), plus 3.9 ms of fixed overhead. The two constants were fitted by least squares to six models measured on a base M4 and reproduce all six within 4%. The calculator runs it for any model and chip.

The obvious objection, stated before someone else does: the overhead constant was measured on Apple hardware running Ollama. Applying it to CUDA and ROCm assumes a comparable per token cost, which I have not verified. It is not a rounding error: without it the formula claims a 5090 does over 300 tokens/sec on an 8B model, which nobody observes; with it, 146, which matches what people report. If you have measured numbers on a 5090 or a Spark, I would like to check the model against them. The HN thread is the place.

Everything else is a published specification with a source link on the original page. Street prices move constantly; treat the price column as an order of magnitude.

Top comments (0)