Repository navigation
hw-gate: q8_0 KV cache rows, the add-on fa-decode q8 check, and the GPU token - #484
Conversation
…PU token Three late-caught bugs of 2026-10-20 (gpu-kernels #11, #14) passed this gate. It now covers the paths they broke: - MODEL_TABLE takes a fifth column of llama-server arguments. Two new rows serve Qwen3-0.6B with -fa on -ctk q8_0 (V f16) and with -ctk q8_0 -ctv q8_0, with kat and the 7.1K-token needle. Their long prompts decode past 1,024 KV cells, where the add-on's split decode kernel fa_decode_q8_d128 takes over. Rows with server arguments skip kld (the bases are recorded per model file, f16 cache). Goldens recorded with the private kernels (gpu-kernels 449a809e, this pin): kat-qwen3-0.6b-kq8.json and kat-qwen3-0.6b-kvq8.json; both miss varied-720w ("25") exactly as the f16 golden does. - The ops phase runs the add-on's ggml-hrx-fa-decode-bench on fa_decode_q8_d128 with V f16 and V q8_0 (Hq/Hkv 16/8 and 32/8, n_kv 1031/2048/4103) against its double-precision reference; the build adds that target when the add-on is in. test-backend-ops has no FLASH_ATTN_EXT case with K and V of different types. - The gate takes ~/GPU-TOKEN before its first GPU step: it waits up to HW_GATE_TOKEN_WAIT s (3600) logging the holder, writes "hw-gate [run N] pid P <time>", removes it on exit only if the content is still its own, and fails with exit 2 naming the holder on timeout. Two #481 gate runs died "server failed (rc 137)" while Hyperloom held the token. HW_GATE_TOKEN=none skips it. Measured on strixhalo, performance mode: - token: a fake holder with HW_GATE_TOKEN_WAIT=15 gives "gpu-token FAIL", exit 2; the recording run waited 960 s for Hyperloom's token, took it, released it - fa-decode-q8: 6/6 PASS, NMSE 1.3e-13 to 2.3e-13, 5 repeats bit-identical Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
PR Reviewer Guide 🔍(Review updated until commit 8fce031)Here are some key observations to aid the review process:
|
|
Persistent review updated to latest commit 8fce031 |
…nside Lemonade) (#488) - README: lead with the census (43/43 on the GPU, #476/#480/#481) and Qwen3.8-27B MTP 36.0/26.8/29.9 tok/s (#487); one hop (#475), strict placement (#482), hw-gate kernels and placement (#478/#484), allocation safety (#486), Ubuntu 26.04 PPA lemond (#483), ONNX on the NPU via the user's Ryzen AI install (#386); Vulkan/ROCm/CUDA/ZINC/ComfyUI/MLX/Windows cut (#306); no release date; NPU in progress with no speed numbers. - npu.md: a status page with the public parts only (model format, serving, add-on hook, build); no runtime method, no NPU speeds. - releases.md: "Releases", first release when the checklist is done; neutral package checks. - lemonade.md, serve.md, hrx.md, laya.md, PORTING.md, registry.md: one hop, MTP on HRX (#487), census lead, add-on wording without private repository names or NPU speeds. Co-authored-by: bong-water-water-bong <bong-water-water-bong@1bit.gg> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Gate hardening:
Evidence (strixhalo, f932d52 pins + the add-on): full gate PASS 592 s: build, ops 618/618, fa-decode-q8 6/6 (NMSE <= 2.3e-13), kat/needle/placement/kld on the 5 models, kat/needle/placement on both new rows; the token tests (timeout -> exit 2, TERM -> token removed, real waits of 960 s for Hyperloom and another gate).
🤖 Generated with Claude Code