Qwen3.8-27B Q8 MTP benchmarks on Strix Halo — MTP is actually making it slower. Are others seeing the same?
I've been testing Qwen3.8-27B Q8 on a Ryzen AI Max+ 395 / Strix Halo system through Lemonade + llama.cpp, specifically to see whether the new MTP speculative decoding support actually improves generation speed.
I kept the prompt and output length identical between runs:
- 96 input tokens
- 1024 output tokens
- Temperature 0
- Same Qwen3.8-27B model/quant
- Flash Attention enabled
--no-mmap- Only backend/MTP settings changed
These are the results so far:
| Backend | MTP setting | Generation speed | TTFT |
|---|---|---|---|
| Vulkan | Off | 9.159 tok/s | 0.758 s |
| Vulkan | n-max=1 |
6.579 tok/s | 0.950 s |
| Vulkan | n-max=3 |
7.122 tok/s | 0.764 s |
| ROCm | Off | 6.534 tok/s | 0.715 s |
| ROCm | n-max=3 |
4.689 tok/s | 0.688 s |
So on my machine:
- Vulkan + MTP n=3 is about 22% slower than Vulkan without MTP.
- Vulkan + MTP n=1 is about 28% slower.
- ROCm itself is about 29% slower than Vulkan without MTP.
- ROCm + MTP n=3 drops another ~28% versus ROCm without MTP.
- Overall, Vulkan without MTP is almost 2x the generation throughput of ROCm + MTP in this test.
For MTP I'm loading llama.cpp with:
--spec-type draft-mtp --spec-draft-n-max 3
(and also tested n-max=1 on Vulkan).
For ROCm, I'm using Lemonade's current stable ROCm backend. Lemonade reports the llama.cpp backend as b10397; the bundled ROCm/TheRock stack appears to be ROCm 7.13.x. I haven't tested ROCm 7.14 yet.
It's surprising to see that with MTP there's a pretty substantial regression on both Vulkan and ROCm.
I'd be interested to compare with other Strix Halo owners:
- Are you seeing MTP actually improve Qwen3.8 throughput?
- What
--spec-draft-n-maxvalue works best for you? - Are you using Vulkan or ROCm?
- Which ROCm version / llama.cpp build?
- Does ROCm 7.14 materially improve Strix Halo performance versus 7.13?
- What Qwen3.8-27B quant are you using?
- If you're getting a significant MTP speedup, what kind of draft acceptance rate are you seeing?
I'm mainly trying to figure out whether these numbers are normal for the current llama.cpp MTP implementation on Strix Halo, or whether something is wrong with my setup.
At least with my current stack, Vulkan with MTP disabled is very clearly the fastest configuration I've tested.