MTP provides no throughput improvement on Apple Silicon Metal (llama.cpp b9330) — net loss at every configuration

#56
by skaman5 - opened

Summary

Testing Qwen3.5-9B-MTP (unsloth GGUF Q4_K_M) against the non-MTP Qwen3.5-9B baseline on Apple Silicon Metal (M1 Max, 32GB unified), MTP speculative decoding is a net loss at every draft ceiling configuration. Even with 100% draft acceptance, throughput drops 11%. The 35B MoE variant (Qwen3.6-35B-A3B-MTP) shows 5–14x regression.

Data (llama-server b9330, 2048 tokens, temperature=0)

Config tok/s vs Baseline Draft Accept
Baseline (non-MTP) 25.3
--spec-draft-n-max 0 22.4 -11% 100%
--spec-draft-n-max 2 21.9 -13% 76%
--spec-draft-n-max 6 19.3 -24% 44%

Higher ceiling = worse acceptance AND more overhead. No configuration beats baseline.

Filed upstream

Full data

Draft ceiling sweep, LM Studio comparisons, server logs, and reproduction steps:
https://github.com/thewesjohnson/gists/tree/main/mtp-throughput-regression-metal

Posting here for visibility to users considering MTP variants on Mac hardware. The MTP weights appear correct (drafts are accepted at high rates on short outputs), but the Metal backend's draft evaluation overhead negates the benefit.

Sign up or log in to comment