On this page 12
  1. What 50 tok/s feels like
  2. Two speeds: reading and writing
  3. What runs on it today
  4. Long conversations
  5. What fits in 256GB, and what doesn’t
  6. Will your model fit? Napkin calculator
  7. Models nobody has measured on an M5 Ultra yet
  8. M5 Ultra vs DGX Spark, RTX PRO 6000 and RTX 5090
  9. Transcription, images and video
  10. Power, heat and noise
  11. Is it worth it?
  12. Sources
130 tok/s
Fastest measured model
gpt-oss-120b, writing
2.5-4×
Faster at reading prompts
than the M3 Ultra
320B
Biggest model that loads
GLM-5.3-Flash at 4-bit, tightly
$9,499
For 256GB of fast memory
the one price in this story that hasn't moved

We don’t have an M5 Ultra yet; ours is on backorder until January, like everyone’s. So the M5 Ultra numbers here are the reviewers’ (MacStories, Alex Ziskind, NetworkChuck and Hardware Canucks had launch units; links at the end). Everything else is ours: the same model files and prompts, run through our own benchmark harness on a DGX Spark, an RTX PRO 6000, an RTX 5090, a Radeon AI PRO R9700, an H200, a B200 and a MacBook Pro. Every chart says which is which.

What 50 tok/s feels like

“Tokens per second” is a number nobody has a feel for, so here’s a race. Hit start and each lane writes the same answer at its measured speed. (A token is about three-quarters of an English word, so 100 tok/s is roughly 75 words a second.) The dashed lane is you, reading silently at the average adult’s 238 words per minute, which is about 5 tokens a second. Anything above your lane is writing faster than you can read.

Then tick the box. Now every lane first has to read a 16,000-token prompt, which is what agent tools dump on a model every single turn. Watch what happens to the previous-gen lane.

Feel the speed: same answer, different machines
gpt-oss-120b 130 tok/s
M5 Ultra
Waiting for start
Qwen3.8-Flash-Next 87.8 tok/s
M5 Ultra · MLX
Waiting for start
DeepSeek V4 Flash 53 tok/s
M5 Ultra · MLX
Waiting for start
DeepSeek V4 Flash 37 tok/s
M3 Ultra (previous gen)
Waiting for start
Qwen3.8-27B 48 tok/s
M5 Ultra · dense
Waiting for start
GLM-5.3-Flash 31 tok/s
M5 Ultra · MLX 4/8-bit
Waiting for start
Llama 3.1 405B ~4 tok/s estimate
512GB · dense
Waiting for start
You, reading 5.3 tok/s
~238 words per minute
Waiting for start

Speeds are the measured figures charted below (MacStories and Alex Ziskind's videos). Flash-Next uses its 16K-context writing speed, Qwen3.8-27B its 6K-prompt numbers. The 405B lane is an estimate: the M3 Ultra measurement scaled by the bandwidth ratio. Assumes ~0.75 English words per token.

With the box ticked, the M3 Ultra is still reading when the M5 Ultra has finished the whole answer. You, meanwhile, would need about 50 minutes to read that prompt. Computers remain good at some things.

Two speeds: reading and writing

Every “tok/s” figure online is one of two very different things, and mixing them up is how people end up disappointed.

  • Reading (the industry says prefill or prompt processing) is the model crunching your input. One giant batch of matrix math, limited by raw compute. It decides how long you stare at a blank screen before the first word shows up, which the spec sheets call time to first token and NetworkChuck calls “the wait”. His name is better.
  • Writing (decode, token generation) is the answer coming out one token at a time. Every token drags the active weights back out of memory, so it’s limited by memory bandwidth, not compute.

The M5 Ultra improved both, but not equally. Apple put a Neural Accelerator (a dedicated matrix-math unit) in every GPU core, up to 80 of them. That’s a compute upgrade, so reading got 2.5 to 4× faster. Memory bandwidth went from 819GB/s to 1.2TB/s on paper, or from 724 to 1,039GB/s measured, a 1.4× jump. Writing got almost exactly that much faster.

What runs on it today

These five have solid numbers on both an M5 Ultra and an M3 Ultra. All are 2026 releases, because that’s what the launch units had loaded. The chip after each bar is how many times faster the M5 Ultra is.

Writing speed, single user
  • M5 Ultra 256GB
  • M3 Ultra (previous gen)
gpt-oss-120b 117B MoE · 5.1B active
130 tok/s 1.4×
90 tok/s
Qwen3.8-Flash-Next 125B MoE · 6B active · MLX 4-bit · 4K context
90.7 tok/s 1.5×
59 tok/s
Qwen3.8-27B dense
54 tok/s 1.5×
37 tok/s
DeepSeek V4 Flash 284B MoE · 13B active · MLX
53 tok/s 1.4×
37 tok/s
GLM-5.3-Flash 320B MoE · 18B active · MLX 4/8-bit · 4K prompt
31 tok/s 1.5×
21 tok/s

Sources: Alex Ziskind's M5 Ultra vs M3 Ultra video (gpt-oss-120b, Qwen3.8-27B, DeepSeek V4 Flash); MacStories (Flash-Next, GLM-5.3-Flash). Different runtimes and prompts, so compare bars within a row, not across rows.

Four notes on that chart:

  • gpt-oss-120b at 130 tok/s is the speed king, and the oldest model here. Only 5.1B of its 117B parameters work on each token, so there’s very little to drag through memory.
  • Qwen3.8-Flash-Next is the one MacStories made its daily driver. It clears 100 tok/s on short prompts and still writes at 60-85 tok/s with a huge context loaded.
  • DeepSeek V4 Flash shows how much the software matters. Same Mac, same model file: ~40 tok/s under llama.cpp, 53 under Apple’s MLX. A benchmark that doesn’t name its runtime is half a benchmark.
  • GLM-5.3-Flash is the slowest of the five: 28-32 tok/s on short answers, or 41 if you count the tokens it spends thinking. It’s the biggest model here, and its attention design is new enough to need its own MLX loader.

Those are mostly short prompts. Here are four more models with a 32,000-token prompt already loaded, which is closer to real agent work:

Writing speed with a 32K-token prompt loaded
  • M5 Ultra 256GB
  • M3 Ultra
Qwen3.6 35B-A3B MoE · 3B active
109 tok/s 1.5×
71.5 tok/s
Qwen3.5 122B-A10B MoE · 10B active
65.3 tok/s 1.5×
42.3 tok/s
Qwen3 14B dense
55.4 tok/s 1.8×
31.5 tok/s
Qwen3.8-27B dense
42.6 tok/s 1.5×
27.8 tok/s

Source: NetworkChuck's published results (MLX 4-bit, medians). Same models, prompt and settings on both machines.

Reading is the real upgrade

If you run agents (Codex, Claude Code, OpenClaw, Hermes and friends pointed at a local model), this is the number you’ll feel. An agent never starts from an empty chat. It sends system instructions, tool descriptions and memory on every turn, often tens of thousands of tokens. On older Macs, that’s where you sat and watched a spinner.

Reading speed (prefill)
  • M5 Ultra 256GB
  • M3 Ultra
gpt-oss-120b
3,200 tok/s 2.5×
1,300 tok/s
Qwen3.8-Flash-Next 16K-token prompt
2,887 tok/s 2.5×
1,143 tok/s
Qwen3.8-27B dense
1,800 tok/s 4.2×
430 tok/s
DeepSeek V4 Flash
1,485 tok/s 3.1×
483 tok/s
GLM-5.3-Flash 16K-token prompt
1,107 tok/s 2.6×
428 tok/s

Sources: Alex Ziskind's M5 Ultra vs M3 Ultra video (gpt-oss-120b, Qwen3.8-27B, DeepSeek V4 Flash); MacStories, as tabulated by Context Studios (Flash-Next, GLM-5.3-Flash).

That’s 2.5 to 4× across the board, and the four models in the 32K chart landed at 2.7 to 4.1× too. It matches Apple’s own research on the base M5 chip: Neural Accelerators made time to first token 3.3-4× faster but writing only 1.2-1.3× faster.

The catch: the big multiplier needs a prompt with some meat on it. A short chat message barely sees it.

How much faster the M5 Ultra reads, by prompt length
~350 tokens a chat message
1.6×
~1,700 tokens a long question with context
3.4×
~4,500 tokens a few files
4×
14,000 tokens a handful of source files · 33 s → 8 s
4.2×

Source: Alex Ziskind, M5 Ultra vs M3 Ultra (same llama.cpp/MLX builds and model files on both machines).

So if you mostly chat, you’ll notice it less. If you paste in whole codebases, you’ll notice it a lot: handed a 32,000-token essay, the M5 Ultra started answering after 21 seconds, the M3 Ultra after 84. The edge shrinks once a conversation is already deep (64K tokens loaded, 32K more arriving: 80 seconds became 56, so 1.4×, not 4×). And these numbers move fast. One tester’s Flash-Next results nearly doubled overnight as people wrote kernels for the new hardware. Treat every number in this article as a floor with a date on it.

Long conversations

Speed drops as a conversation grows, because the model has to look back over everything already said. Here’s Flash-Next across five context sizes on both generations:

Qwen3.8-Flash-Next writing speed as context grows
  • M5 Ultra 256GB
  • M3 Ultra 512GB
4K context first word after 2.5 s
90.7 tok/s 1.5×
59 tok/s
16K first word after 6.2 s
87.8 tok/s 1.6×
53.5 tok/s
64K first word after 23.7 s
83.8 tok/s 1.8×
45.3 tok/s
128K first word after 49.2 s
60.6 tok/s 1.6×
37 tok/s
256K first word after 101.5 s
74.7 tok/s 1.9×
38.6 tok/s

Source: MacStories (oMLX 0.7.0.dev2, Flash-Next oQ4e). One run per size, no cache. 'First word after' is the M5 Ultra's time to first token on a cold prompt of that size.

Yes, 256K is faster than 128K on both machines. We don’t know why either. Single runs on a dev build, so probably noise. We left it as measured.

The point: at 64K of context (a decent codebase plus a long chat) the M5 Ultra still writes at 84 tok/s, nearly double the M3 Ultra. Even at 256K it writes faster than the M3 Ultra does at 4K. The wait before the first word is real, though: 24 seconds at 64K, 100 at 256K. What saves you is prompt caching. Once the context has been read, follow-ups only process the new bit. On the Mac, DeepSeek V4 Flash took 21 seconds on the first question about a 16K-token context and 3 seconds on the follow-up. We saw the same on every machine we tested: after a 64K-token first turn, the follow-up started writing within 0.3 seconds on the NVIDIA cards, 0.5 on a DGX Spark and 1.3 on a MacBook Pro. You pay for the long read once per session.

What fits in 256GB, and what doesn’t

Toggle between 256GB and 512GB. The bars are each model’s weights at the stated quantization. Context, macOS and your 40 browser tabs come on top.

What fits in memory
  • Fits, with room for context
  • Tight: short context, close other apps
  • Doesn't fit at this quant
Qwen3.8-27B MLX 4-bit · 27B dense
16.1 GB Fits Fits
Ling-2.6-flash 4-bit · 104B / 7.4B active
~57 GB Fits Fits
gpt-oss-120b MXFP4 (native) · 117B / 5.1B active
65 GB Fits Fits
Nemotron 3 Super 4-bit · 120B / 12B active
~66 GB Fits Fits
Llama 3.3 70B 8-bit · 70B dense
~77 GB Fits Fits
Qwen3.8-Flash-Next MLX 4-bit · 125B + 55B of tables / 6B active
106 GB Fits Fits
MiniMax-M2 MLX 4-bit · 230B / 10B active
121 GB Fits Fits
Qwen3-235B-A22B Q4_K_M · 235B / 22B active
~130 GB Fits Fits
DeepSeek V4 Flash MLX 4-bit · 284B / 13B active
151 GB Fits Fits
MiMo-V2.5 4-bit · 310B / 15B active
~170 GB Tight Fits
GLM-5.3-Flash MLX 4-bit · 320B / 18B active
177.6 GB Tight Fits
Llama 3.1 405B 4-bit · 405B dense
~223 GB Doesn't fit Fits
MiniMax M3 MLX 4-bit · 427B / ~23B active
~240 GB Doesn't fit Fits
Qwen3-Coder-480B MLX 4-bit · 480B / 35B active
~264 GB Doesn't fit Fits
Kimi K2.7-Code Unsloth 2-bit · 1T / 32B active
339 GB Doesn't fit Fits
GLM-5.3 Unsloth Q3_K_XL · 754B / ~40B active
343 GB Doesn't fit Fits
DeepSeek R1 4-bit · 671B / 37B active
404 GB Doesn't fit Tight
GLM-5.2 MLX 4-bit · 743B / 40B active
418 GB Doesn't fit Tight
GLM-5.3 Unsloth Q4_K_XL · 754B / ~40B active
467 GB Doesn't fit Tight
Kimi K2.7-Code MLX 4-bit · 1T / 32B active
641 GB Doesn't fit Doesn't fit
Kimi K3 MXFP4 (native) · 2.8T / 104B active
1.56 TB Doesn't fit Doesn't fit

Weights only. Context (KV cache) comes on top, roughly 0.3 GB per 1,000 tokens for a typical big model. "~" marks sizes calculated from parameter count rather than a published download. Sizes are published MLX/Unsloth download sizes where they exist; calculated sizes are params × bits ÷ 8, plus ~10%. On 256GB we call it comfortable under ~160GB of weights and tight up to ~220GB; on 512GB, comfortable under ~400GB and tight up to ~472GB.

Why “tight” starts so early on a 256GB machine: macOS doesn’t hand the GPU all of it. The default GPU memory limit is about 75% of RAM (raise it with sudo sysctl iogpu.wired_limit_mb=..., which resets on reboot), the oMLX runtime caps a single model near 200GB, and macOS killed Flash-Next’s 6-bit build when memory pressure hit 176.6GB. Plan for 20% headroom over the raw model size.

Three things the map can’t show:

  • The name can undersell the size. Flash-Next is sold as a 125B model, but it ships another 55B of parameters on top, mostly one big lookup table. The 4-bit download is 106GB, not the ~69GB the name suggests. Check the download size, not the headline.
  • “Tight” means short contexts. GLM-5.3-Flash ran fine up to 64K, then ran out of memory on 128K and 256K prompts. Flash-Next with a full 256K context peaked at 155-179GB, and three sessions of it ran side by side.
  • Kimi K3 needs 1.56TB at native precision, and even a 1-bit quant wants 610GB. No single Mac runs it. It’s a four-Mac-cluster model, a phrase we never expected to type about home computers. It has been done, on four previous-gen 512GB Mac Studios wired together over Thunderbolt 5: an 817GB quant, reading at ~238 tok/s and writing at 14.7. It built a working web app from one big prompt. In four hours.

And the 512GB model?

Same chip, same bandwidth, so it writes no faster. It just holds bigger models. It ships in late October with no announced price (Ars Technica guesses “$20,000-and-up”), and it’s worth it only if a specific model you need breaks 256GB. If you can’t name that model, you don’t need it.

Will your model fit? Napkin calculator

For a model that’s not on the map, plug in its numbers. Model cards list total and active parameters (for a dense model they’re the same).

Napkin calculator: will it fit, and how fast?
Enable JavaScript to use the calculator.
Weights
-
Context (KV cache)
-
Safe budget
-
Writing speed, napkin estimate
-

How the calculator works
  • Weights = parameters × bits ÷ 8, plus 10% for the scales and embeddings that ride along. Against published 4-bit repo sizes that’s usually within 10%, and when it misses it runs low. “Dynamic” 2-bit and 3-bit quants come out 15-20% bigger than their name suggests.
  • Context = 0.3GB per 1,000 tokens, which is what a Llama-70B-style model needs at 16-bit. Newer models with fancier attention (DeepSeek’s MLA, Qwen’s hybrid linear attention) need a lot less, so this is pessimistic.
  • Safe budget: ~200GB of 256, ~440GB of 512, ~72GB of 96, for the macOS reasons above. “Tight” means you’d need to raise the GPU memory limit.
  • Speed: every token streams the active weights from memory at ~85% of the M5 Ultra’s measured 1,039GB/s, plus a fixed cost per token (1-8 milliseconds for dense models, 4-12 for mixture-of-experts, which also route every token to its experts). The constants are tuned so the measured M5 Ultra models land inside the range, and all but GLM-5.3-Flash do. It says nothing about reading speed, which varies too much between models to napkin.

If it says 40-60 tok/s and you get 35, blame the napkin before your Mac.

Models nobody has measured on an M5 Ultra yet

If you came here for Llama 3.3 70B, Qwen3-235B, MiniMax M2 or Qwen3-Coder-480B: sorry. As of mid-October, nobody has published a real M5 Ultra number for any of them. The launch reviews tested the shiny 2026 models. What exists is M3 Ultra data, and since writing is bandwidth-bound and the measured M5-over-M3 gains all land at 1.4-1.5×, that’s the multiplier. Rows marked napkin come from the calculator above.

ModelFits 256GB?Measured on M3 UltraOur M5 Ultra estimate
Llama 3.3 70B (4-bit, dense)Yes, easily9.6-15.5 tok/s~14-23 tok/s
Qwen3-235B-A22B (4-bit)Yes (~130GB)20-27 tok/s~28-40 tok/s
MiniMax-M2 (4-bit)Yes (121GB)40-46 tok/s~56-67 tok/s
Nemotron 3 Nano (30B, 3.5B active)Yes (~16GB)83-123 tok/s~120-180 tok/s
Nemotron 3 Super (120B, 12B active)Yes (~66GB)not measured~50-85 tok/s, napkin
MiMo-V2.5 (310B, 15B active)Tight (~170GB)not measured~45-75 tok/s, napkin
Qwen3-Coder-480B (4-bit)No, needs ~3-bit25 tok/s~35-38 tok/s
DeepSeek R1 671B (4-bit)No, 512GB only17-18 tok/s~25 tok/s
GLM-5.2 (4-bit)No, 512GB only14-18 tok/s~20-26 tok/s
Llama 3.1 405B (4-bit, dense)No, and you don’t want it2.9 tok/s~4 tok/s

M3 Ultra figures: SiliconScore, the MLX benchmark thread, Dave2D and a Mac Studio owner’s log on Zhihu; short prompts unless noted. Sources at the end.

And if small models are all you run (a 14B Phi uses about 3% of this machine), a much cheaper Mac does the job.

M5 Ultra vs DGX Spark, RTX PRO 6000 and RTX 5090

Short version: the RTX PRO 6000 beats the Mac on every model that fits in its 96GB, and costs about twice as much once you add a PC around it. One DGX Spark is less than half as fast in both directions. The RTX 5090 is the fastest thing here on anything under 32GB and useless above it. An H200 or a B200, for one person, is an RTX PRO 6000 with a bigger fan. The Mac’s case is the models over 96GB, and the power bill.

The PC, MacBook and datacenter numbers are ours: same model files, same prompts, same llama.cpp build on every machine. The M5 Ultra rows are the reviewers’ numbers until ours arrives. Pick a model:

Eight machines, three numbers that matter
Mac Studio M5 Ultra reviews 256GB · 1.2TB/s · $9,499-10,799
130 tok/s
3,200 tok/s
~11 s est.
RTX PRO 6000 Blackwell our test 96GB · 1.8TB/s · Max-Q, 300W · $17-18K, card only
212 tok/s
5,909 tok/s
5.5 s
NVIDIA B200 our test 180GB · 8TB/s · datacenter · rented by the hour
199 tok/s
3,875 tok/s
7.6 s
NVIDIA H200 NVL our test 141GB · 4.8TB/s · datacenter · rented by the hour
183 tok/s
3,135 tok/s
9.5 s
NVIDIA DGX Spark our test 128GB · 273GB/s · $6,950
56.9 tok/s
1,577 tok/s
21 s
GeForce RTX 5090 our test 32GB · 1.8TB/s · $4-5K, card only Doesn't fit in 32GB: experts in system RAM. A 16K prompt took 77 s; we stopped there.
34.7 tok/s
186 tok/s
no data
Radeon AI PRO R9700 our test 32GB · 640GB/s · $1.7-2.2K, card only Same split. A 16K prompt took 80 s.
20.1 tok/s
174 tok/s
no data
MacBook Pro M5 Pro our test 48GB · 307GB/s · laptop · $2,799
Doesn't fit: the 4-bit file is 63GB and a 48GB Mac can give the GPU about 37GB.

Our tests: llama.cpp, the same model file on every machine, 4K-token prompt for writing and reading, 256 generated tokens. M5 Ultra: MacStories (Qwen3.8-27B, 6K prompt) and Alex Ziskind (gpt-oss-120b, DeepSeek V4 Flash); its 32K waits marked est. are worked out from the measured reading speed, not timed. Prices: US, October 2026, card or box only.

vs RTX PRO 6000 Blackwell

This is the one the Mac has to beat, because it’s the other way to get a big model on one desk. 96GB holds gpt-oss-120b, Qwen3.5-122B and anything at 4-bit up to about 85GB. On gpt-oss-120b it wrote at 212 tok/s to the Mac’s 130, read at 5,909 to 3,200, and got through a 64K-token prompt in 12.5 seconds. Eight people hammering Qwen3.8-27B at once got 186 tok/s between them; the Mac managed 134. Ours is the Max-Q edition, which NVIDIA caps at 300W. The 600W version is faster still.

Then the bill. The card launched in 2025 at roughly $8,500. In October 2026 the cheapest listings at B&H, Newegg and Micro Center sit at $17,000-18,000. Add a PC that can feed it and you’re near $20,000, against $9,499 for the Mac. For that you get 96GB instead of 256GB. Flash-Next still runs whole on the card, because 29GB of its 111GB is a lookup table that lives in system RAM on any machine, and it wrote at 101 tok/s to the Mac’s 91 on MLX. The Mac reads it faster, 2,887 tok/s to 2,153 on a 16K prompt (that run was on the 600W card). DeepSeek V4 Flash and GLM-5.3-Flash don’t fit. llama.cpp still runs them with some 60GB of experts parked in the PC’s RAM, and DeepSeek wrote at 22 tok/s to the Mac’s 53, read a 4K prompt at 165 tok/s to the Mac’s 1,485, and took 96 seconds over a 16K one. What that spill does, on every card we tried it on, and why, is its own article.

Then the meter. The PRO 6000 drew 265-300W during our runs, about 0.8 tokens per second per watt on gpt-oss-120b. The M5 Ultra writes at about 45W of chip power, which is 2.9 tok/s per watt, and even doubling that for the whole box leaves the Mac well ahead. A machine that runs agents all day pays that difference every day.

So: if your models fit in 96GB and you want the fastest single box, it’s the PRO 6000, at twice the price. If they don’t, or the power meter matters, it’s the Mac.

vs DGX Spark

The Spark has the Mac’s shape: a small box, 128GB of unified memory, low power. It just has a quarter of the bandwidth (273GB/s), and that shows every time it writes. On gpt-oss-120b one Spark wrote at 57 tok/s and read at 1,577; the Mac’s reviewed numbers are 130 and 3,200. On Qwen3.8-27B, a dense model, it wrote at 14 tok/s. Our MacBook Pro did 15.7. A laptop.

Where the Spark pulls its weight is crowds. Its throughput on Qwen3.8-27B went from 13 tok/s with one user to 52 with eight, a 4× gain. The MacBook went from 13.5 to 23 and stopped improving at four users. The Mac Studio has the same shape: DeepSeek V4 Flash peaked at 66 tok/s with four users and dropped to 46 at eight. Apple silicon has the least compute per gigabyte per second of anything here, so it runs out of headroom first. A Mac Studio is a machine for one person, maybe two.

NVIDIA’s answer to the single-Spark gap is two of them linked by a fat cable. In a head-to-head of that setup, DeepSeek V4 Flash was a tie at ~38 tok/s with both served the same way (llama.cpp on the Mac, vLLM on the Sparks), and the Mac pulled ahead to 53 once switched to MLX. On Flash-Next the Mac won, 45 to 38. Reading was the opposite story:

Time before the first word, DeepSeek V4 Flash · lower is better
  • M5 Ultra 256GB
  • 2× DGX Spark
2K-token prompt
2.5 s
1.25 s
8K
10 s
4 s
32K a real 14-file codebase
50 s
17 s

Source: Alex Ziskind, M5 Ultra vs 2 DGX Sparks (llama.cpp on the Mac, vLLM tensor-parallel on the Sparks). 8K figures are his approximate on-camera numbers.

Big inputs favor the Sparks, big outputs favor the Mac. Two Sparks are $13,900 as of October, after NVIDIA raised the 128GB model from $3,999 to $6,950. They read faster than the Mac and serve a team better, and need a cable, two power bricks and vLLM to do it. For one person, the single quiet box wins, and it’s cheaper.

vs RTX 5090

Our 5090 reads Qwen3.8-27B at 3,314 tok/s and writes at 78, with llama.cpp and the whole model on the card. MacStories got 3,031 and 59 from theirs under LM Studio, against the Mac’s 1,701 and 48. Either way, on a model that fits, the 5090 writes 25-65% faster than the Mac and reads nearly twice as fast. A wider LM Studio comparison against a Ryzen 9 9950X3D + RTX 5090 PC landed in the same place:

RTX 5090 PC's lead over the M5 Ultra, models that fit in 32GB
gpt-oss-20b Mac on MLX
75%
Gemma 4 31B 4-bit · Mac on MLX
54%
Qwen3.8-27B 4-bit · GGUF on both
47%
Gemma 4 12B Mac on MLX
45%

Source: Hardware Canucks (LM Studio). Percentages as stated in the video. gpt-oss-20b is 'over 75%', and the Qwen gap shrinks at 8-bit, which leans harder on memory bandwidth.

The catch is the 32GB. Load a 70B dense model that doesn’t fit and the 5090 falls apart: in that same comparison the M5 Ultra finished over 20× faster, and even an M5 Max MacBook Pro beat the 5090. MacStories got the same collapse from a 27B that normally fits, once a long context pushed 16 of its 66 layers into system RAM: 4.6 tok/s, then 1.5.

Mixture-of-experts models are the exception. llama.cpp keeps the parts every token uses on the GPU and parks the experts in system RAM, and since each token only touches a few, our 5090 still wrote gpt-oss-120b at 35 tok/s that way. It read at 186 tok/s instead of thousands, though, so a 16K-token prompt took 77 seconds. The trick saves the writing, not the reading. The spill article has every card we tried it on.

A Mac has nothing to split: CPU and GPU share one pool. That’s the whole reason the 256GB Mac exists as a product. And the price has moved against the 5090: it lists at $1,999, but the cheapest cards in stock in the US have been $4,000-5,000 for most of 2026. Half a Mac Studio for an eighth of the memory.

How we tested
  • Engine: llama.cpp release b11146, the prebuilt binaries for each platform (CUDA for NVIDIA, Vulkan for the Radeon, Metal for the Macs). Whole model on the GPU unless the row says otherwise. GLM-5.3-Flash ran on b11429, the first release that knows its architecture.
  • Files: the same GGUF for every machine. Qwen3.8-27B is Unsloth’s UD-Q4_K_M (16.5GB), gpt-oss-120b the MXFP4 build (63GB), Qwen3.8-Flash-Next Unsloth’s UD-Q4_K_XL (111GB), DeepSeek V4 Flash Unsloth’s UD-Q4_K_XL (155GB), GLM-5.3-Flash Unsloth’s UD-IQ4_XS (157GB).
  • Prompts: a synthetic log-analysis task at 1K, 4K, 16K, 32K and 64K tokens, 256 tokens generated, fresh cache each time. Three runs per size, medians reported. A follow-up question in the same conversation measures the prompt cache. Crowds are 1, 2, 4 and 8 simultaneous users with a 1K prompt each; the 64-user B200 figures are from llama.cpp’s batched benchmark on the same files.
  • Power: what the GPU driver reports. That’s the card, not the wall. No Spark power, because its driver only reports part of the module.
  • Hardware: the PRO 6000 is the 300W Max-Q edition, except Flash-Next, DeepSeek V4 Flash, GLM-5.3-Flash and the image and video jobs, which ran on the 600W Workstation Edition in a PC with a Core Ultra 9 285K and two channels of DDR5; the H200 is the 141GB NVL card; the MacBook is the 16-inch M5 Pro with 48GB. The M5 Ultra itself isn’t here yet. Every PC’s CPU and memory is listed in the spill article.

Transcription, images and video

The M5 Ultra also got run through the other local AI jobs people buy these machines for. Same models on both, M5 Ultra vs M3 Ultra:

Other local AI work, M5 Ultra vs M3 Ultra
Image generation FLUX.2 klein 4B · 1.8 s vs 7.0 s
4×
Video generation LTX-2.5 22B distilled · 4-second clip
2.7×
Video understanding Qwen3-VL 32B · MLX 4-bit
2.6×
Transcription Whisper large-v3 turbo · 2 h of audio in 27 s
2.1×
Transcription Whisper large-v3 · 2 h of audio in 90 s
1.8×

Source: NetworkChuck's published results (Apple loaner unit). A shorter 2-second video clip only sped up 1.7×.

Two hours of audio in 27 seconds is the kind of number that makes you go looking for old voice memos. A local Qwen3.8-27B also edited a video in DaVinci Resolve through its new MCP connection. It worked, slowly (13 minutes), which is about the right expectation for local agents right now.

We ran the image and video jobs ourselves on the PCs and the MacBook, with stable-diffusion.cpp rather than MLX, so read this table against itself more than against the Mac Studio row above:

Seconds per jobFLUX.2 klein 4B imageZ-Image Turbo imageLTX-2.3 video, 2-second clip
B2001.64.119
RTX PRO 6000, 600W1.94.715
RTX 50901.94.620
H200 NVL2.15.423
DGX Spark123048
Radeon AI PRO R9700152447
MacBook Pro M5 Pro2663533

A 5090 turns out a FLUX.2 klein image in 1.9 seconds, the PRO 6000 the same, the M5 Ultra’s reviewed 1.8 on a different program, and the B200 is barely quicker: a 4B image model doesn’t fill a big card either. The clip is where memory shows: the 5090 ran out of it decoding the frames and did them in tiles, 6 seconds against the PRO 6000’s 2, which is most of the gap between 20 and 15. The Spark and the Radeon are an order of magnitude behind on images. The MacBook’s video number is mostly stable-diffusion.cpp decoding frames on Metal (seven of the nine minutes), while an MLX port made a 4-second clip on the M5 Ultra in 18 seconds. On a Mac, the program matters more than the chip for video. Check that the tool you’ll use runs on MLX before buying a Mac for it.

Power, heat and noise

  • Idle: about 8-10W for the chip (the M3 Ultra: 11-12W).
  • Writing tokens, one user: about 45W of chip power vs 36W on the M3 Ultra. Per watt, that’s only 12-15% more efficient.
  • A 70B model in LM Studio: close to 300W. The RTX 5090 drew ~275W on the same job and took over 20× longer.
  • Everything pegged: over 400W, and 434W against 410W for two DGX Sparks with both flat out. The M3 Ultra topped out near 200W.

The range makes sense once you split the work. Single-stream writing mostly waits on memory and barely wakes the compute units. Reading and multi-user serving light up every GPU core, and Apple lists 480W as the maximum continuous power, so the box can clearly use most of it.

For the PCs, we measured the cards while they answered a single user. This is what the driver reports for the card, so add the rest of the PC on top:

Card, one user, Qwen3.8-27BIdleAnsweringTokens per second per watt
RTX 5090~50W490-600W0.14-0.16
RTX PRO 6000 Max-Q36W295-300W0.25
Radeon AI PRO R970033W290-300W0.11
NVIDIA H200 NVL92W395-415W0.19
NVIDIA B200173W555W0.15
M5 Ultra (reviewed, chip only)8-10W~45W~1.1

A 5090 that has its model is a 500W-plus card; the ~275W figure above came from a 70B model spilling into system RAM, so the card spent most of the job waiting. The PRO 6000 Max-Q is the same silicon held to 300W and gives up 5% of the writing speed and a fifth of the reading for it, the best trade in the table. The Mac’s 45W is chip power, not the box, so don’t read the last row as a 7× lead. Call it 3-4× once the rest of the machine is counted, and it holds up: a Mac Studio has nothing else drawing serious power.

Heat follows. Under full load the M5 Ultra gets clearly louder than the M3 Ultra, with the hottest part of the case around 49-50°C and the rear grille at 56°C. Not quite the whisper-quiet Mac Studio of legend, though the Sparks next to it hit 63°C at the back. For single-user work it stays quiet.

Is it worth it?

On cost per token, no. Not even close. Running Flash-Next 24/7 at full load on a 256GB M5 Ultra works out to roughly €1.70-2.70 per million output tokens over three years, while the same model via Alibaba’s cloud API costs $0.47. And that assumes you keep it busy all day. A workstation that sits idle most of the time costs ten times as much per token.

Speed isn’t on local’s side at the very top end either. In that Kimi K3 test, the same app-building prompt went to the four-Mac cluster and to a cloud agent running frontier models. Cloud: 15 minutes. Local: 4 hours. (The cloud side sponsored that video and says so. The result is still the result.)

Against other hardware, though, the Mac’s price has aged well. Since it went on sale, the RTX PRO 6000 roughly doubled to $17,000-18,000, the DGX Spark went from $3,999 to $6,950, and a 5090 still costs two to two and a half times its list price. The $9,499 Mac Studio didn’t move. In October 2026 it is the cheapest way to put 256GB of fast memory under one model, and the only one of these four that holds DeepSeek V4 Flash at all.

So people buy these for other reasons:

  • Privacy. Your files never leave the room.
  • Always-on agents with no meter running. MacStories ran a team of DeepSeek V4 Flash agents 24/7 for 99 days this summer, on the previous-gen Mac Studio, to organize research for an iOS 27 review, for “a total cost of $0” (on top of the computer, of course). The same writer burned $20 of cloud credits on a fast hosted model “in literally 10 minutes”.
  • Nobody can rate-limit you, or change or retire the model you depend on.
  • And, honestly, because it’s cool.

What we’d actually buy

YouBuy
One person, agents all day, models over 96GBMac Studio M5 Ultra, 256GB. Nothing else holds DeepSeek V4 Flash on one desk at this price.
One person, models under 32GB, want the fastest boxAn RTX 5090 in a PC with 96GB of RAM. The RAM is for the MoE spill trick, which keeps gpt-oss-120b usable.
One person, models under 90GB, money no objectRTX PRO 6000 in a real PC. Fastest single box on this page, at twice the Mac’s price.
Curious, don’t know yetM5 Max, 128GB. Half the Ultra’s bandwidth for a fraction of the price. Find out if you actually use local models before spending five figures.
A team of five to twentyTwo DGX Sparks if the models fit in 128GB each. If they don’t, the twelve-channel EPYC with one RTX PRO 6000 that we work out here.
A product with real trafficRent datacenter cards by the hour and stop reading buying guides.

And within the Mac Studio line:

ConfigBuy it if
M5 Max, 128GBYou want models up to ~90GB. It writes at half to two-thirds of the Ultra’s speed.
M5 Ultra, 96GBYou want the fast reading and your models stay under ~70GB (gpt-oss-120b, Qwen3.8-27B). Flash-Next doesn’t fit. The 128GB M5 Max is often the better buy here.
M5 Ultra, 256GBYou run 100-300B MoE models for agent work. It’s the one the reviewers had.
M5 Ultra, 512GBA specific model you need (GLM-5.3, DeepSeek R1-class) breaks 256GB. Wait for a price and benchmarks.

Whichever you pick, expect a wait: Apple is quoting about 4 months (16-18 weeks) for M5 Ultra configurations.

The fine print
  • The M5 Ultra numbers come from launch-week review units on dev builds of the runtimes. They will go up as the software catches up. Some already have.
  • Runtime matters as much as hardware. MLX vs llama.cpp swung DeepSeek’s writing speed by a third, and on Flash-Next it went the other way. When you compare numbers, compare same-runtime numbers.
  • Our NVIDIA numbers are llama.cpp. A vLLM or TensorRT setup would make the cards faster still, especially for crowds.
  • A MacBook Pro M5 Pro we own lands at a quarter to a third of the reviewers’ Ultra numbers, where a chip with a quarter of the hardware should. That’s why we trust them.
  • We’ll update this when the 512GB model ships and when our M5 Ultra arrives.

Sources