Models › qwen35-122b

Qwen3.5-122B-A10B(MTP)benchedguard 4/4

122B / 10B activeMoE · hybrid attentionquant held: UD-Q4_K_M (unsloth, rev a91c2f7)first measured 2026-06-27latest run 2026-08-11

Verdict

A 122-billion-parameter mixture-of-experts model activating 10B parameters per token, held at UD-Q4_K_M on a 128 GB unified-memory box. Flash attention is not optional on it at depth clm-0020, and quantised KV on the stock engine runs far below achievable speed at production context — one cherry-picked dequant commit recovers +70.3% clm-0022. On agentic work the model is correct more than it is fast; the 22-task score, turn medians and per-answer energy in the card above render straight from the record — five-task smokes could not resolve model differences clm-0036, which is why the protocol moved to n=22 clm-0037. Thinking mode is a net negative here: it deadlocks on hard tasks rather than degrading clm-0033. Serving it multi-slot destroys long-context retrieval while throughput stays healthy clm-0019 — run it thinking-off at --parallel 1. It also carries a reproducible rule-precedence bug: a permissive exception can short-circuit a hard precondition, 7 of 8 trials with an identical signature clm-0049 — agentic deployments want a hard-precondition guard in prompts or tooling.

verdict written 2026-08-13 · every number above stands next to the claim chip that carries it

Best configuration

modelQwen3.5-122B-A10B-UD-Q4_K_M-00001-of-00003.gguf · UD-Q4_K_M
engineggml-org/llama.cpp 3653e6d · rocm · host aihydra (igpu)
flags-ngl 999 -fa on -c 32768 --parallel 1 --load-mode none --jinja -rea off -ctk f16 -ctv f16
templatenot recorded at test time
treeupstream — stock

backfilled aged evidence — reconstructed from the archive · config record cfg-0025
carrying Production (aibeast) carries the slot-restore sidecar fork; the aihydra bench build above is stock. The KV-dequant patch is measured and adopt-worthy but not yet in the recommended flags — its rows are in the delta table below. con-0001 clm-0022

decode @ 0
21.91 t/s
run-0015 · CV 0%
decode @ 32k
18.17 t/s
run-0019 · CV 0.1%
prefill @ 0
321.72 t/s
run-0014 · CV 0.5%
prefill @ 32k
208.77 t/s
run-0018 · CV 0.6%
draft-mtp decode speedup
1.44×
run-0007 · 31.71 vs 21.97 t/s floor
τ² airline · thinking off
0.545 ±0.208
run-0100 · passed 12/22
turns to done · median (all tasks)
22
run-0100 · successes only: 19 · max 36
wall-clock to done · median (successes only)
2.0 min
run-0100 · failures excluded — they have no done
energy · 200k bench (f16 KV)
89.55 Wh
eng-0019 · wall-meter · window reconstructed
Wh per correct answer (τ², thinking off)
5.71 Wh n=5 smoke
eng-0034 run-0099 · 0.17 p per answer
production fit (context × slots)
200,000 tok × 1
cfg-0002 · 80.4 of 96 GiB · headroom 15.6 GiB

every cell generated from the record at build time · throughput cells from cfg-0009 (same build 3653e6d, fa on, f16 KV) · provenance: measured-here throughout

③aDecode against context depth

f16 KV · stockq8_0 KV · dequant patchq8_0 KV · stock
0510152025032k65k131k204.8kdecode t/scontext depth (tokens)production context 204.8k21.91 t/s @ depth 0 · run-0015 · CV 0% · N=321.39 t/s @ depth 4k · run-0017 · CV 0% · N=318.17 t/s @ depth 32k · run-0019 · CV 0.1% · N=321.83 t/s @ depth 0 · run-0027 · CV 0.1% · N=318.09 t/s @ depth 32k · run-0029 · CV 0.1% · N=312.15 t/s @ depth 131k · run-0036 · CV 0% · N=19.69 t/s @ depth 204.8k · run-0037 · CV 0% · N=121.63 t/s @ depth 0 · run-0021 · CV 0.1% · N=320.61 t/s @ depth 4k · run-0023 · CV 0.1% · N=315.26 t/s @ depth 32k · run-0025 · CV 0.1% · N=3f16 KV · stock · 18.17q8_0 KV · stock · 15.26q8_0 KV · dequant patch · 9.69
1/3 reps per cell · max CV 0.1% · build 3653e6d / ce7689f · the flash-attention-off arm is a delta-table row, not a fourth series · records: run-0015 run-0017 run-0019 run-0027 run-0029 run-0036 run-0037 run-0021 run-0023 run-0025

③bEnergy per correct answer

051015Wh per correct answer5.71 · thinking off · eng-0034, run-00995.71thinking offn=5 smoke12.75 · thinking on · eng-0033, run-009812.75thinking onn=3 smoke
wall-meter, window reconstructed · same task set, same build, thinking the only lever — the thinking arm also deadlocks tasks outright (see the hazard row below) · records: eng-0034 run-0099 eng-0033 run-0098

Other configurations tested — each as a delta against best

variantΔ decodeΔ turns (paired tasks)Δ energynoterecords
draft-mtp speculation+44%Speculation reproduces the base model's distribution exactly (a neutral lever) — the ratio is measured against the same build's own no-speculation floor. run-0007 clm-0003
q8_0 KV · patched build-0.5% @32k+9.3% n=11-4.8%The KV-dequant patch removes most of quantised KV's cost; a residual turn tax survives the patch on identical seeded tasks. clm-0045 clm-0022
q8_0 KV · stock build-16% @32k+39% n=9+63%The mistuned path production actually ran — the patch exists because of this row. clm-0022 clm-0038 clm-0041
flash attention off-10% @4kThe gap widens with depth, and quantised KV cannot create a context at all without flash attention. clm-0020 clm-0028
thinking ON hazarddeadlocks 2 of 5 tasksFails to terminate rather than degrading — the same tasks pass with thinking off. clm-0033
--parallel 4 hazardretrieval 0/8 against 8/8 at --parallel 1Throughput looks unchanged and healthy — no performance benchmark would see it. clm-0019

deltas computed at build time from the named runs, paired-task traces and metered windows — a hazard row shows words where a delta would mislead

Open questions

Provenance

bench host aihydra · rocm · ggml-org/llama.cpp 3653e6d
meter TP-Link smart plug via Home Assistant · baseline box-idle-all-empty 10.1 W subtracted
discipline 3 reps per throughput cell · scatter published per cell (max CV 0.6%) · guard chain on every performance series
window 2026-06-27 → 2026-08-11