Streaming engine benchmarks: Plus + Vision tok/s on Apple Silicon
Corrected 2026-09-29: the quick answer and FAQ said ~2.1 tok/s; that is this benchmark’s protocol, and the shipping figure is 1.59.
- Current engine (V9 paged): Plus 397B runs at 1.59 tok/s at the shipped K=20 setting (the 2026-05-01 K sweep: 5 prompts × 80 tokens, M1 Ultra with 64 GB, MLX 4-bit, fresh process), peaking at 14.04 GB. (The comparison table below uses a different protocol, per-token RSS sampling, which read 11 GB RSS and 3.6 GB wired.)
- Both streaming engines retired: V11 in v1.11.71, V10 two builds later in v1.11.73.
- Why: per-token streaming on V10/V11 committed 57–58 GB of Metal-wired memory during prefill. That's enough to crash a 32 GB Mac, and all it bought was a ~30–40% tok/s gain.
- V9 paged (K=20 hot experts + 8 GB LRU) sits at 3.6 GB wired in this page's per-token protocol, 15× less wired memory. On a footprint-first tier, that's the trade you want.
Outlier Pro: $49 once · Black Friday price, all of November: $24.50 once, until 30 November
Free to start (Nano and Lite). macOS 15+, Apple silicon. Refund window: 30 days, no questions asked.
All three of Outlier's MoE engines run on the same trick. Keep the active experts in unified memory, pull cold ones off disk. V9 paged, V10 streaming, V11 hybrid. Where they split is how they cache, and that split is what decided which one shipped. The streaming variants lost to V9 paged because their per-token streaming pattern committed far more Metal-wired memory. The raw comparison is below.
Methodology
| Hardware | M1 Ultra Mac Studio, 64 GB unified memory, iogpu.wired_limit_mb=57344 |
|---|---|
| Model versions | Plus = Qwen3.5-397B-A17B MLX 4-bit; Vision (3.6, retired) = Qwen3.6-35B-A3B MLX 4-bit |
| Inference stack | mlx-lm 0.31.3, MLX 0.18.x |
| Aggregation | 5-run mean per configuration, fresh process per run (no warm-cache bias) |
| Soak runs | 50-turn multi-turn workloads on Plus; 20-turn on Vision |
| RAM measurement | OS-level RSS via ps -o rss=, sampled per token |
| Date range | 2026-05-07 (V10 results), 2026-05-09 (V11 soak verdict), 2026-05-19 (V11 retired, v1.11.71), v1.11.73 (V10 retired) |
Plus 397B-A17B: engine comparison
| Engine | tok/s | RSS peak | Wired Memory peak | Status |
|---|---|---|---|---|
| V9 paged K=20 | 2.1 | 11 GB | 3.6 GB | current: shipping default |
| V10 streaming K=4 | 2.9 | 13 GB | 57 GB | retired v1.11.73 |
| V11 hybrid LRU | 3.0 | 13 GB | 58 GB | retired v1.11.71 |
Look at the Wired Memory column. That's the one that mattered. V10 and V11 streamed experts per token, which committed 57–58 GB of Metal command-buffer memory during prefill, enough to take down a 32 GB Mac on the very first generation. The payoff was a ~30–40% tok/s bump over V9. V9 paged holds 3.6 GB Wired at 2.1 tok/s (this page's per-token protocol), 15× less. This tier exists to fit a 209 GB model on a small Mac, so footprint beats speed and V9 ships. On the 2.1 figure: that is this benchmark's own per-token RSS protocol. The pre-ship K-override sweep, run at the shipped K=20 setting over 5 prompts of 80 tokens with model load timed separately, measures 1.59 tok/s (per-prompt 1.35–1.65) and 14.04 GB peak. Where the two disagree the rest of this site publishes the lower, shipping-config number; the comparison below is kept on one protocol so the engines stay comparable to each other.
Vision 35B-A3B: engine comparison
This is Vision 3.6, the Qwen3.6-35B-A3B tier that was retired in v1.11.796. The shipping Vision tier is Vision 3.8 (Qwen3.8-27B).
| Engine | tok/s | RSS peak | Status |
|---|---|---|---|
| V9 paged | 16.31 | ~18 GB | was the default for Vision 3.6 (24 GB+ Macs) |
| V10 streaming K=4 | 6.57 | ~3.5 GB | opt-in (lower RAM, slower) |
| V11 hybrid LRU | 10.92 | 1.60 GB | retired v1.11.71 |
Vision 3.6 was a little different. There was a V10 opt-in for people on tight RAM, lower footprint at the cost of speed (~6.6 tok/s), but the default was V9 at 16.31 tok/s on 24 GB+ Macs. That old 16 GB MacBook Air result leaned on V11's LRU specifically. With V11 gone, the practical floor for Vision 3.6 was 24 GB, and Vision 3.8 needs 24 GB too.
Soak verdict: what passed and what didn't
Here's what the 2026-05-09 soak verdict on V11 turned up over 9 cycles. The quality numbers were fine. The memory number wasn't.
- 135/135 turns coherent. No output collapse, no repetition loops.
- 0 crashes, 0 segfaults across both Plus N=4 (100 turns) and Vision N=2 (35 turns).
- Engine-swap V11→V9→V11 round-trip held up: post-swap tok/s 1.51 vs pre-swap 1.36 in the V11 soak protocol (not the shipping-config figure), no regression.
- Idle-resume across a 5-minute sleep came back clean. No orphan threads, no leaked tensors.
- But memory pressure on 50-turn Plus hit 14.34 GB peak vs smoke 7.34 GB. That's the regression that got it retired.
How to reproduce
- Install Outlier. You'll want Pro (the $49 licence), which includes Plus 397B: outlier.host
- Open Settings → Engine Mode. Plus runs on Capacity (V9 paged), and any old V10/V11 preference auto-migrates to Capacity for you.
- Run a multi-prompt set and grab tok/s from the response footer.
- While it's generating, sample OS RSS with
ps -o pid,rss,command -p $(pgrep -f outlier-cli).
Want to reproduce V10/V11 themselves? You can't from a current DMG, since neither ships anymore. The source lives in repo history before commit 525298f (v1.11.71) and the v1.11.73 V10 removal.
Questions about the streaming-engine numbers
What engine does Outlier use for Plus now?
V9 paged inference (K=20 hot experts per layer plus an 8 GB LRU cache). It runs Plus 397B at 1.59 tok/s at the shipped K=20 setting (the 2026-05-01 K sweep), peaking at 14.04 GB. (This page's own per-token RSS protocol read 11 GB RSS and 3.6 GB wired.) The V10 and V11 streaming engines were retired.
Why were the streaming engines retired?
V10 and V11 per-token expert streaming committed 57–58 GB of Metal-wired memory during prefill, enough to crash a 32 GB Mac, for only a 30–40% tok/s gain. V9 paged uses 3.6 GB Wired (15× less), so on a footprint-first tier it wins.
How were the numbers measured?
The comparison table: 5-run mean per configuration, fresh process per run, on an M1 Ultra with OS-level RSS sampled per token. The current engine's 1.59 tok/s and 14.04 GB peak come from the separate K=20 sweep of 2026-05-01 (5 prompts of 80 tokens, fresh process, M1 Ultra with 64 GB, MLX 4-bit).
Try Outlier free
Free: Nano + Lite. Pro: $49 once; Black Friday price, all of November: $24.50 once, until 30 November. macOS 15+. Refund window: 30 days, no questions asked.
Download free (276 MB) Buy ProOn your phone?