…a, every number measured (#233)
The loop ROCm Hyperloom (AMD-AGI) runs on Instinct GPUs, applied to how the engine
already works: the harness measures, a setting is kept with its measurement, and
the next model starts from what is known.
- config/recipes.json + app/recipes.{h,cpp}: tuned llama-server settings per
model and route, each with why / measured / source. `1bit serve` applies the
ones that match (device, architecture, MoE, Hadamard stamp, drafter), never
over a flag it already set, and prints each one; --recipes FILE replaces the
built-in set, --no-recipes turns them off, a malformed file stops serve with
the reason. The two tuned settings that were code move in:
rotated-moe-ub1024 (#205, #229) and dflash-p-min-0 (#194). What follows
from the files themselves (Hadamard env, DFlash draft length) stays in code.
- tools/bench.py: A/B-measures `1bit serve` configurations, interleaved rounds,
the first config as the baseline in the same run, an optional box flock,
best/median, JSON record. Qwen3.8-27B-H32, 2 rounds: base 494 tok/s prompt,
13.1 / 13.1 / 13.5 decode; --dflash 467 (-5.6%), 40.7 / 26.4 / 14.7.
- tools/kernelforge/gdn-prefill: the delta-net prefill kernel as a KernelForge
task for gfx1151 (standalone kernel, float64 oracle: 139 dB, driver with
KernelForge's contract, program.md on what differs from Instinct, run.sh).
- tests: recipes_route (10 checks) and bench_selftest (4) run without a GPU;
fake_backend.py reports llama-server timings.
- docs/recipes.md, docs/bench.md; serve.md, README, site nav point to them.
Co-authored-by: bong-water-water-bong <bong-water-water-bong@1bit.gg>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
With this PR, one
1bit serveruns Qwen3.8-27B with Hadamard W4A4 prompt processing and DFlash2 decode:Changes
third_party/llama.cpp-rocmfpxmoves d572668 → 8abd563 (ROCmFPX#2). That brings:app/serve.cpp:--dflashnow passes--spec-draft-p-min 0unless--mtp-p-minis given. The ROCm tree defaults to 0.75, which cuts DFlash2 blocks from 6.7 to 5.4 tokens per step. Upstream's default is already 0, so the Vulkan route doesn't change.tests/hadamard_route.sh: new checks that--dflashon a rotated file stays on ROCm0 with the drafter, n-max 16, p-min 0 and the W4A4 environment (10/10 pass).docs/lean.mdgets a one-server section with measurements;docs/serve.mdgets a pointer to it.Measured
Strix Halo, through
1bit serve, 2026-09-28, quiet box. Prompt is the 1,838-token prompt (best / median of 5). Decode is code / prose / short, 256 tokens greedy, best of 3.--dflash🤖 Generated with Claude Code