Repository navigation
hrx: scalar-scatter SET_ROWS for the non-FA path (-fa off) (#95) - #106
Merged
Merged
Conversation
Bump llama.cpp to c35833404, which dispatches the non-FA path's element-wise KV-cache write (SET_ROWS with hidden_size 1) to a scalar scatter kernel, so an explicit -fa off no longer fails with 'unsupported HRX node SET_ROWS'.
|
Docs7 for 1bit-monster/engine
Commit |
PR Reviewer Guide 🔍(Review updated until commit b66e8b5)Here are some key observations to aid the review process:
|
So an explicit -fa off reaches the HRX build and exercises the non-FA attention path, instead of 1bit serve rejecting the unknown option.
|
Persistent review updated to latest commit b66e8b5 |
bong-water-water-bong
pushed a commit
that referenced
this pull request
Sep 26, 2026
…ama.cpp #2, #5, #6) The pin adds the zaya architecture and its converter (#2, #5) on top of #104's #95 fixes, and carries #106's scalar-scatter SET_ROWS onto the tracked branch (#6): #106 pinned c358334, which is on no branch of the fork. registry/architectures.json, regenerated: ZayaForCausalLM maps to hrx and vulkan (266 architectures, all mapped). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
bong-water-water-bong
added a commit
that referenced
this pull request
Sep 26, 2026
…nly architectures (#107) * ZAYA1 (Zyphra) on Vulkan: serve routes fork-only architectures to our llama.cpp `1bit serve --device vulkan` reads the GGUF's general.architecture (app/gguf_meta.h) and runs an architecture only our llama.cpp implements (zaya) on the HRX build's Vulkan0, even when the upstream Vulkan build is present. registry_build counts such architectures for vulkan the same way, and check_models.tsv checks ZAYA1-8B Q4_K_M on vulkan. docs/vulkan.md: converting and serving ZAYA1, with the checks against transformers and the measured speeds on Strix Halo. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * ZAYA1 on HRX and ROCm: docs, and serve_e2e on vulkan and hrx in the registry Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Pin llama.cpp 5556bf2: ZAYA1 on Vulkan, HRX and ROCm (1bit-MONSTER/llama.cpp #2, #5, #6) The pin adds the zaya architecture and its converter (#2, #5) on top of #104's #95 fixes, and carries #106's scalar-scatter SET_ROWS onto the tracked branch (#6): #106 pinned c358334, which is on no branch of the fork. registry/architectures.json, regenerated: ZayaForCausalLM maps to hrx and vulkan (266 architectures, all mapped). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * registry: vulkan and hrx rows re-checked at b9812e0 (16/16 pass, ZAYA1-8B included) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * ci: build gguf_meta_test 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>
This was referenced Sep 26, 2026
bong-water-water-bong
added a commit
that referenced
this pull request
Sep 26, 2026
…n the model rows (#136) - pins_on_branch, before the build: every pin a PR moves must be on the branch .gitmodules names for that submodule (GitHub compare: identical or ahead). Twice this week an engine PR pinned a fork commit on no branch (#103, #106); the shallow clones follow the branch and could not have fetched it. - bump-hrx/* and bump-llama-vulkan/*: every hrx / vulkan row of registry/check_models.tsv through registry_check (serve end to end per architecture: ZAYA1, the Qwen MoE models, GLM, MiniCPM), under the memory guard; any FAIL holds the bump. Build + ctest alone serve one small GGUF, which would not notice an architecture breaking. Tested pins_on_branch against the open PRs: #121's llama.cpp pin f59f6d37 fails (diverged from 1bit/hrx-vulkan-patched); the ZINC (#132) and Lemonade (#133) pins pass. Co-authored-by: bong-water-water-bong <bong-water-water-bong@1bit.gg> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Oct 18, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-up to #104. The default FA-on path is correct, but an explicit
-fa off(the non-FA attention path) still failed withunsupported HRX node SET_ROWS.Root cause
The non-FA path flattens the K/V rows before the KV-cache write, so llama.cpp emits
SET_ROWSelement-wise (hidden_size == 1): each value is scattered to its own cache row. The row-wiseSET_ROWSdispatcher only supportshidden_size4..32768 (vector4), so it rejected the element-wise shape and the graph failed.Fix (in
1bit-MONSTER/llama.cpp@c35833404)Add a scalar-scatter kernel (
ggml_set_rows_scatter) and ahidden_size == 1matcher that dispatches the element-wise write: for each valuei,cache[indices[i]] = f16(rows[i]).Verification
-fa offnow answers "Paris" on Qwen3-Coder-30B-A3B-Instruct Q4_K_M and GLM-4.7-Flash Q4_K_M (previously 500).tests/serve_e2e.shanswers "Paris" on Qwen3-Coder-30B-A3B, GLM-4.7-Flash and Qwen3.6-35B-A3B Q8_0 (FA-on, no regression).