A matched three-arm matrix put the question directly: stock ROCm and stock Vulkan built from the same llama.cpp commit, plus a community Vulkan fork, one model, depths 0 to 131,072, medians over fresh-process repetitions with the page cache dropped between them clm-0050. Vulkan led in every cell — both prefill (reading the prompt in) and decode (generating new tokens). The widely-quoted counter-claim, ROCm ahead 3.5x at 65k depth, was measured on an RDNA2 V620 — a different GPU family — and inverts here: at 65k on gfx1151 the same comparison reads Vulkan +20% prefill, +19.5% decode. Backend verdicts do not transfer across GPU families.
Quantised KV redraws the map rather than shifting it. Stock Vulkan's prefill collapses (-26% to -32% against its own f16) even as its decode gains; stock ROCm's decode craters with depth (-35.1% at 131k) — the same unpatched-build failure already measured and patched on another model; and the fork rescues the collapse completely while extending the decode gain, landing on the best long-context configuration measured on this chip: 42.5 tok/s at 131,072, at roughly half the KV memory clm-0051.
The scope line matters as much as the verdict. Every cell so far is one model — an hd256 mixture-of-experts, where the fork's own documentation predicts smaller gains than other head sizes — and the fork arm bundles a newer Mesa driver, so its edge over stock Vulkan is not single-variable clm-0051. Nor is the lead a law of the silicon: with a BF16 flash-attention patch applied, prefill inverts to ROCm +46.9% at 32k with bf16 KV, and at shallow depth every backend gap collapses toward noise clm-0046. A backend can also be fast and wrong — one community Vulkan build measured 24% faster while emitting garbage output clm-0014 — which is why every throughput series here sits behind an output-sanity guard. Treat any backend number that arrives without its depth, KV type and build hash as unusable.
generated from the citations above — each entry shows the claim's current state, so this page cannot silently rest on withdrawn evidence
AMENDED 2026-08-14 — the rule below is PER-MODEL AND PER-PHASE, not fleet-wide; see the correction history and the amendment note. On gfx1151 at f16 KV, stock Vulkan beat stock ROCm in EVERY cell of a matched matrix measured on Qwen3.6-35B-A3B (one binary commit 3653e6d, depths 0 to 131,072): decode +19-21% at every depth, prefill +4% to +20% growing with depth to 65k. That finding was correct as measured and remains the reference case for this model. It does NOT generalise: the 2026-08-14 perf-matrix sweep found gpt-oss-120b's PREFILL inverts hard in ROCm's favour at depth — Vulkan −52% at d65536, −84% at d131072 (23.1 t/s vs ROCm's 144.3, tight across 3 reps) — while gpt-oss-120b's own DECODE still favours Vulkan (+10 to +16%), same direction as Qwen3.6-35B. Nemotron-3-Super is now a THIRD supporting data point rather than an absence: the OOM first recorded against it (twice, including at an expanded 122 GiB GTT ceiling) was a benchmarking-harness artifact of running stock ROCm under mmap on a model within ~40 GiB of the box's full memory, corrected 2026-08-14 — see clm-0053. On the identical binary with `--load-mode none`, Nemotron-3-Super UD-Q4_K_M at d32768 measures 244.05 pp / 16.43 tg (median of 3 post-reboot reps; an earlier single-rep check the same day landed within 2% at 248.79 pp / 16.39 tg) against Vulkan's own 139.8 pp / 17.56 tg at the same cell: ROCm +74.6% prefill, Vulkan +6.4% decode — the same prefill-favours-ROCm, decode-favours-Vulkan split gpt-oss-120b shows, now measured on a third architecture. The r/LocalLLaMA claim that ROCm leads Vulkan 3.5x at 65k depth — measured on an RDNA2 V620 — still inverts on gfx1151 for Qwen3.6-35B decode/prefill and for gpt-oss-120b decode, but NOT for gpt-oss-120b's own prefill, which is the live counter-example. The community fork (v0.6.1) over stock Vulkan remains a prefill-only win at f16 KV on Qwen3.6-35B: +13/+13/+1/+2.5/+16% by depth, decode unchanged (±1%), and no stride bug (41/41 layers on GPU, CPU utilisation identical to stock) — untested on the other two models.
The community BF16 flash-attention predictions (clm-0044) reproduce on this hardware under single-binary methodology: at 32k depth, stock Vulkan leads ROCm +17.4% prefill / +17.1% decode at f16 KV, and the PR-26856 patch inverts prefill to ROCm +46.9% with bf16 KV. At shallow depth every gap collapses (+2.6% / -1.0%), so backend comparisons are depth-statements or they are nothing. The fleet build delta is +2.8% pp / +0.9% tg with identical tau2 capability (anchor pair).
On gfx1151, Vulkan measured ~22-24% faster than ROCm on the same 35B-A3B model and build — pp4096 1039 vs 840 t/s, tg128 53.1 vs 43.4 — but the Vulkan build produced GARBAGE OUTPUT for that model, so the numbers describe a broken configuration.