
Claude Fable 5.2: the price cut is the story
Fable 5.2 and Mythos 5.2 shipped cheaper and faster: $8/$40 per million tokens, output up to 30% faster. Prices, benchmarks, and what a run actually costs.
I benchmarked DSpine speculative decoding on a Mac Studio M5 Ultra. Qwen3.8-27B goes from 43 to 134 tok/s on code with a 1.7 GB draft. Full idle numbers.
Qwen3.8-27B decodes at 43 tok/s on my Mac Studio M5 Ultra. With a 1.7 GB DSpine draft model attached, it decodes C++ at 133.7 tok/s. 3.1x, same machine, same quantization. At temperature 0 the output is identical token for token: the draft only changes the speed, not the text.
DSpine is the successor to DFlash: a five-layer drafter that drafts a block of 16 tokens in parallel, with a code bridge and a transition table to keep the block causally consistent. The target verifies the block in a single pass and keeps the longest accepted prefix. Tencent released the draft weights; Ajay9o9 ported llama.cpp and quantized the draft. Upstream llama.cpp does not support DSpine yet, so you need his dspine branch.
Idle machine, no other GPU work, median of 3 runs per case, 768 tokens generated, thinking mode off, exactly the protocol from the model card.
| Workload | Baseline | DSpine | Speedup | Tokens per verify |
|---|---|---|---|---|
| C++ generation | 43.5 | 133.7 | 3.1x | 7.4 |
| Code (Python) | 43.4 | 127.7 | 2.9x | 7.4 |
| Math | 43.4 | 118.7 | 2.7x | 6.7 |
| Long prompt (12,989 tok in) | 43.4 | 99.6 | 2.3x | 5.2 |
| Temp 1 (Python prompt) | 43.4 | 99.0 | 2.3x | 5.6 |
| Prose | 43.6 | 52.5 | 1.2x | 2.4 |
Structured content drafts well: code, math and C++ all accept around seven tokens per verify step. Prose is the worst case at 2.4, and it is also where the draft overhead eats most of the gain (1.2x). No run ever went below baseline.
A 12,989-token prompt still runs at 99.6 tok/s (2.3x). Acceptance drops to 5.2 tokens per step, the draft has less to latch onto once the context is dense. At temperature 1 acceptance drops to 5.6 and speed to 99.0 tok/s. The degradation is graceful: the draft never made a run slower than baseline.
Peak RSS: 19.8 GB without the draft, 23.3 GB with it. The draft costs about 1.7 GB in RAM. On 96 GB this is noise. On a 24 GB card it is a real trade-off: the model card reports ~64k usable context with DSpine against ~176k without speculation, because Qwen3.8 keeps a recurrent-state copy per drafted token.
The same draft on a 24 GB RTX 3090, from the model card:
| RTX 3090 | M5 Ultra | |
|---|---|---|
| No speculation | ~28 | 43.4 |
| Code | 128.7 | 127.7 |
| Math | 122.8 | 118.7 |
Two things fall out of this table. The 3090 and the M5 land within noise on speculative decode: the verify pass is compute-bound and both cards spend it at the same rate. The M5 wins on plain decode (43 vs 28 tok/s) thanks to memory bandwidth, which is why my speedup ratio looks smaller (3.1x vs the card’s 4.5x). The starting point is already faster. What transfers across hardware is the acceptance rate: 7.4 vs 7.6 tokens per verify on code, 6.7 vs 7.3 on math, 2.4 vs 2.5 on prose.
git clone -b dspine https://github.com/Ajay9o9/llama.cpp.git
cd llama.cpp
cmake -B build && cmake --build build --config Release -j
./build/bin/llama-server \
-m Qwen3.8-27B-Q4_K_M.gguf \
-md Qwen3.8-27B-DSpine-b16-Q4_K_M.gguf \
--spec-type draft-dflash --spec-draft-n-max 15 \
-ngl 999 --spec-draft-ngl 999 -fa on --jinja -c 8192 -np 1
Weights: aj9o9/Qwen3.8-27B-DSpine-b16-GGUF (draft, Apache-2.0) + any Qwen3.8-27B Q4_K_M target. Raw runs: dspine-m5-ultra.csv. Paper: arxiv.org/abs/2609.36173.