How Fast Are Qwen3.8 27B, Qwen3.6 35B and DeepSeek V4.1 on a Mac? 4 Macs Tested
The models people actually run, on four Macs, with the same build and the same benchmark. Every number links to its public run.
We ran the Rapid-MLX 1.0 benchmark on four Macs: an M2 Pro Mac mini (32 GB), an M4 Pro Mac mini (48 GB), an M5 Max Mac Studio (36 GB) and an M3 Ultra Mac Studio (256 GB). Here is how fast the popular local models generate text on each one. All of it is on the community leaderboard, which now holds 459 benchmark runs from 94 contributors across 42 Mac configurations and 90 models.
The popular models, Mac by Mac
Tokens per second while generating (higher is faster). Click a number to open the run.
| Model | M2 Pro 32 GB | M4 Pro 48 GB | M5 Max 36 GB | M3 Ultra 256 GB |
|---|---|---|---|---|
| LFM3 1.7B | 86.2 | 116 | 186 | 204 |
| Ternary Bonsai 1.7B | 183 | 223 | 399 | 312 |
| Qwen3.5 4B | 63.3 | 78.8 | 133 | 159 |
| Qwen3.8 27B | 11.7 MTP | 28.4 MTP | 64.7 MTP | 69.9 MTP |
| Qwen3.6 35B | not tested | 97.0 | 150 | 199 MTP |
| Gemma 4 26B | 52.5 | 72.6 | 115 | 118 |
| Nemotron 3.5 Bolt | too big | 29.1 (3-bit) | too big | 52.2 |
| GLM-5.3 Flash | too big | too big | too big | 32.2 (no MTP) |
| DeepSeek V4.1 Flash | too big | too big | too big | 46.9 DSpark |
MTP and DSpark are speed-ups that rapid-mlx serve turns on for these models; the run page shows exactly how each number was produced. "Not tested" means we did not run it on that Mac; "too big" means it does not fit that Mac's memory. GLM-5.3 Flash ran without its native MTP runtime, which the benchmark cannot measure yet, so in practice it is faster.
What stands out:
- Qwen3.8 27B is where your Mac matters most. It is a dense model, so every token reads all 27B weights: 12 tok/s on the M2 Pro, 65 on the M5 Max and 70 on the M3 Ultra, with MTP on all four.
- Qwen3.6 35B is the speed pick. It is a mixture-of-experts model: 150 tok/s on a 36 GB M5 Max and 199 on the M3 Ultra with MTP.
- The small models are fast everywhere. Qwen3.5 4B runs at 63 tok/s even on the M2 Pro, and Ternary Bonsai 1.7B reaches 399 tok/s on the M5 Max, faster than the M3 Ultra's 312.
- The frontier giants need a 256 GB Mac. DeepSeek V4.1 Flash runs at 47 tok/s, Nemotron 3.5 Bolt at 52 and GLM-5.3 Flash at 32 on the M3 Ultra.
Which Mac for which model
| Your Mac | Run this | Speed |
|---|---|---|
| 32 GB (M2 Pro) | gemma-4-26b-4bit for quality, qwen3.5-4b-4bit for speed |
53 / 63 tok/s |
| 36 GB (M5 Max) | qwen3.6-35b; qwen3.8-27b-4bit for the strongest dense model |
150 / 65 tok/s |
| 48 GB (M4 Pro) | qwen3.6-35b or gemma-4-26b-4bit |
97 / 73 tok/s |
| 256 GB (M3 Ultra) | deepseek-v41-flash-reap-2bit, nemotron-3.5-bolt, or anything above with MTP |
47 / 52 tok/s |
Peak memory while running: Qwen3.5 4B 4 GB, Gemma 4 26B 15 GB, Qwen3.8 27B 17 GB, Qwen3.6 35B 21 GB, Nemotron 3.5 Bolt 47 GB, DeepSeek V4.1 Flash 148 GB. Leave room for macOS and your apps on top of that. Start any of them with rapid-mlx serve <name>.
Image generation
One 1024×1024 Qwen-Image 2.1 picture, 20 steps:
The M5 Max's GPU is the clear winner for images: about twice as fast as the M3 Ultra. FLUX.2 Klein and Z-Image Turbo showed the same pattern (40 s and 45 s on the M5 Max, 84 s on the M3 Ultra).
Run it on your Mac
curl -fsSL https://rapidmlx.com/install.sh | bash rapid-mlx benchmark run qwen3.8-27b-4bit rapid-mlx benchmark share <run-id> # the id printed by benchmark run
Your run joins the leaderboard next to these. It shows each Mac's fastest run and how it was produced, so a faster setup on your Mac helps everyone with the same chip.
How we measured
- Same build on every Mac: Rapid-MLX 1.0 from source, commit
56e36a4. It benchmarks with the same speed-upsserveuses; the 1.0.0 release's benchmark turns speculative decoding off, so its MTP numbers come out lower until the next release. - Each number is one
rapid-mlx benchmark runon an idle Mac: the median of five measured rounds after a warmup, for the faster of two cases (a 512-token prompt with 128 tokens out, and 2,048 in with 512 out). Both cases are on each run's page. - Gemma and GLM rows ran without speed-ups: a multimodal bug blocked the default profile for Gemma (fixed in #5389), and GLM-5.3's native MTP runtime cannot be benchmarked yet (#5390). Nemotron 3.5 Bolt on the M4 Pro is the 3-bit build; the 4-bit one needs more memory.
- One run per cell; expect a few percent of run-to-run variation. Small models are partly CPU-bound, so one
lfm2.5-1b-4bitrun on a busy M3 Ultra (95 tok/s) was re-run on an idle machine (521 tok/s).
All other models we ran
Twenty-three more models, same method, in tok/s.
rapid-mlx serve … |
M2 Pro | M4 Pro | M5 Max | M3 Ultra |
|---|---|---|---|---|
lfm2.5-1b-4bit |
220 | 289 | 472 | 521 |
lfm2.5-2.6b-4bit |
99.5 | 128 | 212 | 246 |
llama3-3b-4bit |
85.6 | 100 | 186 | 229 |
gemma3-4b-qat-4bit |
66.3 | 85.0 | 138 | 154 |
gemma-4-e4b-4bit |
52.9 | 69.3 | 110 | 111 |
nemotron-3.5-bolt-e4b |
52.8 | 68.8 | 110 | 106 |
qwen3-8b-4bit |
38.1 | 52.1 | 85.7 | 108 |
qwen3.5-9b-4bit |
36.8 | 44.7 | 79.9 | 156 MTP |
gemma-4-12b-4bit |
23.5 | 31.7 | 52.0 | 68.0 |
gpt-oss-20b |
49.6 | 74.4 | 114 | 132 |
bonsai-27b-2bit |
17.8 | 22.3 | 46.9 | 51.3 |
qwen3.6-27b-4bit |
— | 15.4 | 25.9 | 55.4 MTP |
qwen3.8-27b-mixed-3.5bpw |
12.2 | 16.2 | 27.9 | 38.4 |
qwen3-coder-30b-4bit |
— | 89.2 | 136 | 100 |
holo3.1-35b-a3b |
— | 69.9 | 128 | 109 |
nemotron-3.5-bolt-3bit |
— | 29.1 | — | 50.5 |
nemotron-3.5-super-vl-3bit |
— | — | — | 46.9 |
nemotron-3.5-super-vl |
— | — | — | 48.4 |
qwen3.8-flash-next-4bit |
— | — | — | 32.5 |
gpt-oss-120b |
— | — | — | 94.2 |
qwen3.5-122b-mxfp4 |
— | — | — | 66.2 |
minimax-m2.7-mxfp4 |
— | — | — | 57.3 |
mimo-v2.6-flash-4bit |
— | — | — | 59.5 |
For quality rather than speed, see Best MLX models for coding and the best local LLM for your Mac by RAM.
rapid-mlx serve <alias> serves any model on
localhost:8000/v1.
curl -fsSL https://rapidmlx.com/install.sh | bash
New models and speedups, in your inbox
A short note whenever Rapid-MLX gets faster or adds models worth running on your Mac. No spam — unsubscribe anytime.