Repository navigation
Laya GGUF scorer: ggmlc's laya on Vulkan, 24 ms a routing decision - #206
Conversation
`1bit serve --laya` now uses the Laya typed-decisions checkpoint compiled to a GGUF (mys/laya-typed-decisions-GGUF, Q8_0, pinned in config/laya.json, fetched and sha256-checked by fetch-laya.sh into <laya dir>/gguf/) through ggmlc's `laya daemon` (third_party/ggmlc, -DONEBIT_LAYA_GGML=ON, GGML Vulkan), over stdin/stdout rather than its `serve` (which binds every interface with no key). Same question and long_doc size gate as the C++ scorer, which stays the fallback. Through serve on Strix Halo, tests/laya_route_cases.json (200): both 95.5%; decision p50 538 ms (C++ scorer, CPU) -> 24 ms (GGUF, Vulkan). tests/laya_gguf_route.sh covers the wiring with a fake daemon (8 checks). NOTICE credits ggmlc (MIT declared; its repo has no LICENSE file yet) and the GGUF (Apache-2.0). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Docs7 for 1bit-monster/engine
Commit |
PR Reviewer Guide 🔍Here are some key observations to aid the review process:
|
…208) * Laya scorer on HRX: ggmlc's laya on AMD's backend instead of Vulkan The router's GGUF scorer (#206) now runs on HRX0 (HRX + LOOM), not Vulkan: - third_party/ggmlc -> our fork 1bit-MONSTER/ggmlc 1bit/main (df08d1b0): an HRX build against a llama.cpp ggml, and a uid on every graph so HRX's graph-program cache and graph replay hit. - third_party/llama.cpp -> 22ceda3a (fork #31): the LOOM kernels ModernBERT needs on HRX (LayerNorm, strided/broadcast arithmetic, clamp, F32->F16 copy, per-head attention, odd-K matmuls) and fused RoPE and GEGLU. - cmake/laya-ggml.cmake builds ggmlc's laya with TheRock's amdclang against third_party/llama.cpp's ggml and hrx-system; no Vulkan build for the scorer. - serve --laya starts `laya daemon ... --device hrx` with the HSA runtime HRX needs (IREE_HAL_AMDGPU_LIBHSA_PATH from --hrx-libhsa / TheRock). Strix Halo, tests/laya_route_cases.json (200): 95.5% (as the CPU scorer and Vulkan); p50 25 ms a decision, 15-16 ms at a steady 64 tokens (Vulkan 12), 25 ms at 128 (Vulkan 24-31); C++ scorer 538 ms. docs/laya.md also records that the multilingual checkpoint routes worse than typed-decisions in all six languages measured (69.1% vs 83.7%), so it is not used. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * registry: record the llama.cpp pin 22ceda3a (no architecture changes) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: bong-water-water-bong <bong-water-water-bong@1bit.gg> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…UF on the NPU, 1BP; blog post (#214) README gets a Direction note (HRX with Loom kernels plus the NPU, as geramyL proposed; Vulkan stays the default until the RFC #213 gates are met) and current status lines: six GGUF architectures answer on the NPU (0.006-0.17 tok/s), DwarfStar reads 1BP, and Laya classifies conversations with its scorer on HRX at 15-16 ms. PORTING's NPU and Laya rows gain #179/#181/#209 and #187/#206/#208. The blog post covers the same. Co-authored-by: bong-water-water-bong <bong-water-water-bong@1bit.gg> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
The Laya GGUFs (mys/laya-GGUF, laya-multilingual-GGUF, laya-typed-decisions-GGUF) are compiled by ggmlc for its own
layaruntime on GGML. They aren't llama.cpp GGUFs. This PR makes the typed-decisions one the router's scorer.third_party/ggmlcis pinned at 1519ea42.-DONEBIT_LAYA_GGML=ONbuilds itslayawith GGML Vulkan (cmake/laya-ggml.cmake).config/laya.jsonpinsmys/laya-typed-decisions-GGUF@1e9e8ba1, filelaya_typed_decisions_q8_0.gguf.scripts/fetch-laya.shfetches it into<laya dir>/gguf/and checks its sha256. Verified on strixhalo: 20 checkpoint files plus the GGUF.serve --layarunslaya daemon <gguf> --family typed-decisions --device vulkanand talks to it over pipes. It doesn't uselaya serve, which bindsINADDR_ANYwith auth off. It asks the same question and applies the same long_doc size gate, and it falls back to the C++ scorer when the binary or GGUF is missing.--laya-model FILE.gguf,ONEBIT_LAYA_GGMLandONEBIT_LAYA_DEVICEoverride the defaults.tests/laya_gguf_route.sh(ctest, CI) runs 8 checks with a fake daemon.Measured through
1bit serve --layaon Strix Halo, usingtests/laya_route_cases.json(200 cases; 150 are asked of the model):Asked directly: typed-decisions F16 scores 95.5% at 36 ms, the English Q8_0 93.0% at 22 ms, and the English F16 91.5%. Also verified: a build with
-DONEBIT_LAYA_GGML=ONruns the compiled-in binary with no environment overrides.Licence note: ggmlc declares MIT in its
pyproject.tomland README, but the repo has no LICENSE file (GitHub shows no license). NOTICE says so. Its vendored ggml carries MIT.🤖 Generated with Claude Code