Coverage — what has actually been measured
Written 2026-08-08 in answer to a direct question: are the benchmarks done for the four models? They are not. This page exists so the answer stops depending on memory.
Headline as first written: 44 performance runs, 1 guard run, ZERO capability runs. We built a framework separating capability from performance (protocol §1) and had measured only performance.
Status 2026-08-09: the capability column is now filled — 8 arms, 4 models × thinking on/off, plus the KV-quality pair. See the update at the foot of this page. Two rows remain empty for every model (RULER, blind-judged reasoning) and one whole role has no benchmark at all (routing,
clm-0034).
Per-model
Legend: ✅ done · 🟡 partial · ❌ not started · ⛔ failed
| Qwen3.5-122B-A10B | gpt-oss-120b | Qwen3.6-35B-A3B | Nemotron-3-Super | |
|---|---|---|---|---|
| PERFORMANCE | ||||
| throughput @0/4k/32k | ✅ | ✅ | ✅ | ✅ |
| depth ≥131k | ✅ 131k, 204.8k | ❌ | ❌ | ❌ |
| KV quant f16 and q8_0 | ✅ | ❌ f16 only | ❌ f16 only | ❌ f16 only |
| flash-attn on and off | ✅ | ❌ on only | ❌ on only | ❌ on only |
| speculation A/B | ✅ mtp, ngram, n-max curve | ❌ | 🟡 ngram only; no MTP in model | ❌ |
| cache trace | ✅ | ❌ | ❌ | ❌ |
| fit probe (capability-probe) | ✅ | ❌ | ❌ | ❌ |
| grammar ceiling | ✅ | ❌ | ❌ | ❌ |
| GUARD | ✅ 4/4 | ⛔ FAILED — stale answers | ✅ 4/4 | ✅ 4/4 |
| CAPABILITY (all n=5 — see the noise warning below) | ||||
| τ²-bench, thinking OFF | 🟡 1.00 ±noise | 🟡 0.00 (real) | 🟡 0.40 ±noise | 🟡 0.60 ±noise |
| τ²-bench, thinking ON | 🟡 1.00, 2 deadlock (real) | 🟡 0.60 ±noise | ⛔ backstop | 🟡 1.00 ±noise |
| τ²-bench at n=50 (quotable) | ❌ | ❌ | ❌ | ❌ |
| RULER / long-context retrieval | ❌ | ❌ | ❌ | ❌ |
| blind-judged reasoning | ❌ | ❌ | ❌ | ❌ |
| KV-quant QUALITY | ⛔ RETRACTED — underpowered (clm-0036) | ❌ | ❌ | ❌ |
⛔ Read this before using any capability number above. The identical stock q8_0 configuration scored 0.60, 1.00, 0.60 on three consecutive runs (
clm-0036). The noise width of this 5-task harness is ~0.40 — the same size as nearly every gap in the table. Three tasks always pass and two are coin-flips, so a 5-task mean is really two Bernoulli trials and can only take the values 0.60/0.80/1.00.Marked (real) are the categorical outcomes that survive: the 122B’s failure to TERMINATE with thinking on, reproduced across four runs; and gpt-oss’s 0.00, a total failure alongside its independently reproduced staleness bug. Everything marked ±noise is a smoke test, not a ranking. The domain ships 50 tasks; these used 5.
The 122B is thoroughly characterised on performance. The other three have exactly one configuration measured each — f16 KV, flash-attn on, depths 0/4096/32768 — plus a guard. Six rows apiece. That is enough to rank them and nothing more.
What “not started” actually means for capability
This is the larger gap and it is structural, not incidental:
- τ²-bench — a smoke test passed (LiteLLM reaches the endpoint and gets a correct native tool call). No domain has been run. A real run needs the user-simulator model and the judge pinned first, because changing either silently re-baselines the whole series (protocol §8).
- RULER / long-context retrieval — never run. The guard’s needle probe is a cliff detector, not a measurement: it answers “did retrieval collapse”, not “how well does it retrieve”. Those are different questions and only one has been asked.
- Blind-judged reasoning / creativity — never run.
- KL divergence (
kv-quality.sh) — never run. The corpus is now pinned (bench/CORPUS.md, wikitext-2-raw-v1 test, sha256430983e5…) so it is unblocked, but the f16 baseline file is tens of GiB and it is genuinely an overnight job.
Consequence: clm-0022 establishes that quantised KV costs nothing in SPEED once
patched. It says nothing about what it costs in QUALITY — and that is precisely the gap
kv-quality.sh exists to fill. Every KV recommendation currently rests on half the
evidence.
Guard status is not capability status
Three models pass the guard and one fails. That is worth exactly what the guard claims:
no cliff detected. It clears the binary and hazard levers and explicitly cannot
clear a lossy one. A model can pass all four checks and still be materially worse at the
work — nothing here has tested that.
gpt-oss-120b is the one hard exclusion so far. It returns verbatim answers from
previous requests at --parallel 1 (clm-0025), reproduced 6/6. Its throughput rows are
recorded and honest; they describe how fast it generates, not whether it generates the
right thing.
Honest ranking of what to do next
Rewritten 2026-08-09. Items 1 and 3 as originally written are now done — struck rather than deleted so the ordering can be judged in hindsight.
0a. Head-dim-controlled KV-quant sweep (added 2026-08-13): thefrontierlab.ai’s
nine-model self-comparison found two models with byte-identical KV footprints
(Qwen3-Coder-30B, Qwen3.5-122B) gaining +30.8% vs +4.5% decode from KV quant; his
candidate explanations (active-param ratio, head-dim 128-vs-256 kernel behaviour)
are untested. We hold models spanning both head-dims — a controlled sweep answers
his open question and extends clm-0051. He publishes replications with build
commits attached; ours can carry the tau2-correctness + Wh-per-answer dimensions
his throughput-only series lacks.
0b. Register the BailingMoE3 PR build (added 2026-08-13): ling-30-flash’s screen
recorded arch bailingmoe3 unknown on all registered builds. thefrontierlab.ai
runs Ling via the open llama.cpp BailingMoE3 PR (his build at commit 017a7247).
Build + register it to unblock the screen; also cross-check his report that Ling’s
MTP draft path stalls at first token on this stack.
0. The gfx1151 backend-at-depth decider (added 2026-08-12): ROCm vs Nathan’s
Vulkan fork (github.com/Nathanw1014/strix-halo-llamacpp, or CachyLlama’s port of the
same patches) at d≥65536 on a model we hold. An r/LocalLLaMA thread (DeepSeek V4
Flash on this exact silicon) staged the fight and both sides brought data — Vulkan
ahead at short depth on-chip, ROCm ~3.5× ahead at 65k depth but measured on a
different GPU family — and nobody ran the decisive cell. Our clm-0046 already shows
backend claims are depth-statements; this extends it from a cherry-picked PR build to
the fork ecosystem people actually use, on the exact chip. Novel public result;
nobody else has the rig configured for it. Secondary probes from the same thread:
silent-CPU-fallback wattage signature (the fork’s v0.6 stride bug dumped 43 layers to
CPU while GPU-util looked healthy — wall power would have caught it), and the
quantised-drafter GGUF-header fix (halves speculative-draft footprint if real).
— DONE, though not by the planned route. The KL instrument was broken (kv-quality.shon the 122Bclm-0029); τ² task success answered it instead. f16 1.00 against q8_0 0.60 (clm-0035).- Fill the performance matrix for the other three — KV quant and flash-attn arms, and depth beyond 32k. Still the largest cheap gap; roughly one sweep each. Now more interesting than it was: q8_0 costs quality on the 122B, so the other three need their own answer rather than inheriting it.
One τ²-bench domain on the 122B— DONE, and extended to all four models with both thinking arms.- Re-run q8_0 KV on the PATCHED build — the new top item.
clm-0035’s quality drop is measured on stock. If the dequant patch restores quality as well as speed, that changes the recommendation completely; if it does not, quantised KV is off the table for agentic work regardless of its speed. - Diagnose gpt-oss staleness —
cache_prompt: falseis ruled out. Now doubly worth doing: it scores 0.00 with thinking off, and the staleness bug is the obvious suspect for why. - A routing benchmark — the gap
clm-0034exposed. Nothing in this matrix measures the orchestrator role, and the 35B’s poor executor scores say nothing about it. - ROCmFP4 on the 35B (
clm-0026) — worth ~27%, but a third fork to carry, and the 35B’s capability numbers make it a weaker candidate to invest in.
Update 2026-08-09 — what changed in this section
Capability is now two rows per model, not one. clm-0033 found thinking is a NET
NEGATIVE on the 122B — 3/5 with it against 5/5 without, same reward where both complete.
There is no reason to assume that generalises, so every model gets both arms, and the ON
arm is probed for reasoning_content first so an unsupported model is recorded as such
rather than silently producing a duplicate OFF run.
KV-quant quality changed instrument. kv-quality.sh is built on
llama-perplexity --kl-divergence, which returns PPL 532 on English repeating every four
sentences (clm-0029) — the tool is broken on this build, so no amount of care with the
corpus helps. τ²-bench task success is the working substitute: coarser, but it measures
quality where it actually matters.
First new number: Qwen3.6-35B-A3B scores 0.40 mean reward with thinking off, having completed all 5 tasks — against the 122B’s 1.00. It always terminates and is often wrong, which is the opposite failure mode to the 122B’s (deadlocks on hard tasks, correct when it finishes).
⚑ But be careful what that rules out (clm-0034). tau2 measures TASK EXECUTION under
adversarial pressure. A reflex or orchestrator tier does triage, routing and brief-writing —
a different and lower bar. A comparable project runs a 12B orchestrator successfully on
exactly that split. So 0.40 rules the 35B out as an executor of hard agentic tasks; it says
almost nothing about the routing role, and we have no benchmark for routing at all.
That is a genuine gap in this matrix, not just an unmeasured cell.
Results — the full 8-arm matrix (2026-08-09, clm-0035)
| model | thinking OFF | thinking ON | verdict |
|---|---|---|---|
| Qwen3.5-122B-A10B | 5/5 @ 1.00 | 3/5 @ 1.00 (2 deadlock) | best, thinking off |
| Nemotron-3-Super-120B | 5/5 @ 0.60 | 5/5 @ 1.00 | equal-best, thinking on |
| Qwen3.6-35B-A3B | 5/5 @ 0.40 | 1/1 @ 1.00 (backstop) | weak executor |
| gpt-oss-120b | 5/5 @ 0.00 | 5/5 @ 0.60 | excluded |
⚑ Correction: thinking is per-model, and I generalised from one model
clm-0033 measured the 122B, found thinking a net negative, and I carried that forward as
the likely general case — including flagging Warden’s thinking=high synthesis cron for
reversion on that basis. That flag was premature. Thinking improves the other three
models, substantially: Nemotron 0.60 → 1.00, gpt-oss 0.00 → 0.60, 35B 0.40 → 1.00.
The 122B is the outlier, not the pattern. Any global setting of this lever is wrong for three models out of four whichever way it is set — it has to be measured per model, and Warden’s cron should be judged on the model it actually runs.
Two results worth separating out
Nemotron-3-Super with thinking on is the only configuration that both scores 1.00 and completes every task. The 122B matches the score but deadlocks on 2 of 5. Nemotron is the slowest model in the set (17.51 tok/s decode) — so this is a real speed-versus-reliability trade, not a dominated option, and it is the first evidence that the 122B is not automatically the right default for agentic work.
Quantised KV costs quality, not just nothing. Same model, same tasks, only the cache
type differing: f16 1.00, q8_0 0.60. The failure mode is legible — the two failed
tasks ran to max_steps at 42 and 41 turns rather than answering wrongly. They failed to
terminate. That closes clm-0022’s open half from the opposite direction to the one I
expected: q8_0 is free in speed once patched, and expensive in reliability.
⚠ Caveat that limits all of the above: every cell is n=5 in one domain, self-play, deterministic scoring, read paths only. A 0.40 swing is two tasks. These numbers are strong enough to redirect what gets measured next; they are not strong enough to settle a production placement on their own.