You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
HRX: hrx-backend-test cannot build at fork tip ad18320a (deleted dispatch-symmetric-i4.h still included) #422
Pre-existing defect: hrx-backend-test cannot build at 1bit/hrx-vulkan-patched ad18320a
Found while building the fork tip for engine#389 / engine#390. Separate from both; not folded into either PR.
Symptom
$ cmake --build build-hrx -j6 --target hrx-backend-test
[100/422] ...
FAILED: [code=1] tests/CMakeFiles/hrx-backend-test.dir/hrx-backend-test.cpp.o
tests/hrx-backend-test.cpp:9:10: fatal error: 'dispatch_registration/common/dispatch-symmetric-i4.h' file not found
Building the default all target stops here, so the whole test target set is unbuildable at the tip.
Root cause (checked, not inferred)
tests/hrx-backend-test.cpp:9 includes dispatch_registration/common/dispatch-symmetric-i4.h.
The header existed until commit f2099e9b75a58b4489da013fa5dbe267c4034f51 ("hrx: keep our ggml-hrx backend on AMD's core",
2026-10-06T12:57:24-03:00), which deleted it (.../dispatch-symmetric-i4.h | 37 ---------), one file changed.
f2099e9b is an ancestor of ad18320a (git merge-base --is-ancestor f2099e9b HEAD -> true), so the break has
been on the branch since 2026-10-06.
The test still calls the deleted header's symbol: tests/hrx-backend-test.cpp:7111 ggml::hrx::common_symmetric_i4_lowrow_mul_mat_eligible(...), and registers suite.host_case("symmetric_i4_consumer_qualification", ...) at line 13744. Fixing the include alone is not
enough; the test body needs the same treatment the header got.
Commands
git log --oneline --diff-filter=D -- ggml/src/ggml-hrx/dispatch_registration/common/dispatch-symmetric-i4.h
# f2099e9b hrx: keep our ggml-hrx backend on AMD's core
git show --stat f2099e9b -- ggml/src/ggml-hrx/dispatch_registration/common/dispatch-symmetric-i4.h
ls ggml/src/ggml-hrx/dispatch_registration/common/ | grep -i symmetric # no output
Environment: ryzen, clone team/wt/ggml-hrx, HEAD ad18320a2955736d62b6e2b39908aeed6a2b5cd9.
Status: the scope is wider than hrx-backend-test. The same f2099e9b deletion also breaks tests/test-hrx-ops.cpp:3, which includes dispatch_registration/common/dispatch-activation-publication.h. That's at 1a5dcba2 and still at the new llama.cpp line 8d9ce2c1a from #441.
The cause is the same for both. f2099e9b put ggml/src/ggml-hrx back to our backend as of 522dab47, but left AMD's newer test files outside that directory: hrx-backend-test.cpp, test-hrx-ops.cpp, test-hrx-loom-jit.cpp, test-hrx-buffer.cpp and testing_suite.h. None of our commits touched those files after 522dab47.
The fix is being worked on the new line. Next step is a full compiler error list for all five files, once strixhalo is quiet: two builds were stopped by its 93 C guard tonight.
Fix in the fork: 1bit-MONSTER/llama.cpp#103 (1bit/hrx-test-symmetric-i4-removed off 1bit/hrx-vulkan-patched @ 8d9ce2c1).
What it does: removes the dispatch-symmetric-i4.h include, the common_symmetric_i4_lowrow_mul_mat_eligible() call and the two values that existed only for it. The case keeps its remaining checks (no loom_libs:ggml_rmsnorm_binary_symmetric_i4_k32 dispatch for those consumer shapes, q8_publication). Verified on CPU with the target's include paths: the fatal "file not found" is gone.
One finding this issue should carry, because the title's claim ("the whole test target set is unbuildable") has a second cause: with the include fixed, tests/hrx-backend-test.cpp reaches 20 more errors from the AMD-core re-head (f2099e9b / 53d443cd), so the target still does not build.
dispatch.kernel.workload_specialization / ggml::hrx::WorkloadSpecialization at lines 3298, 5191, 7352, 7547: KernelSpecialization has no such member, and nothing in ggml/src/ggml-hrx mentions a workload specialization or token_capacity any more.
plan.metadata.activation_publication_diagnostics() at 6328-6338 and 10894-10895: CommandPlanMetadata keeps alternate_values() only.
one excess elements in struct initializer at line 9564.
tests/test-hrx-ops.cpp and tests/test-hrx-loom-jit.cpp use the same removed members, so all three files need the same port. I did not guess at what the removed assertions should become; that is a separate change against the current dispatch API.
The engine pin does not need to move for this: cmake/hrx.cmake builds only llama-server and llama-bench, never the tests.
llama.cpp fork PR #104 is merged into 1bit/hrx-vulkan-patched as 8dafc4a05. It restores tests/hrx-backend-test.cpp, test-hrx-ops.cpp and test-hrx-loom-jit.cpp. The engine still pins 8d9ce2c1a; the pin bump comes next. The stale routing expectations are tracked in #444.
Status check (issue hygiene pass, 2026-10-18): the failing include is fixed on the llama.cpp branch, the engine pin is not updated yet, so this stays open.
Fixed, merged in the fork. The include and the deleted header's symbol are gone:
1bit-MONSTER/llama.cpp PR HRX: pin llama.cpp 96f6b89, fixing #95 (GLM-4.7-Flash, Qwen3-Coder at full context) #104, commit 8dafc4a050ba ("tests: build the HRX tests against the ggml-hrx we ship (engine#422)"), merged into 1bit/hrx-vulkan-patched. tests/hrx-backend-test.cpp no longer includes dispatch-registration/common/dispatch-symmetric-i4.h, tests/test-hrx-ops.cpp no longer includes dispatch-registration/common/dispatch-activation-publication.h, and common_symmetric_i4_lowrow_mul_mat_eligible() is no longer called (a comment says why). Neither header exists at 953b6397 (the branch tip now), and tests/CMakeLists.txt still builds hrx-backend-test, test-hrx-ops and test-hrx-loom-jit.
Both test files are still present and buildable at the current branch tip 953b6397.
Not verified here, and why. The build itself was not run in this pass: the only HRX builds on this box go through the engine's ExternalProject (cmake/hrx.cmake), which builds llama-server and llama-bench only and needs the TheRock toolchain, so a full compile of the HRX test binaries is a GPU host job (there was a #315 cell and an hw_gate run holding the box). Evidence in the thread rather than on this box: #443's hw_gate on the engine side built the pinned 8d9ce2c1a, test-backend-ops ran 611/611, and #445's thread reports hrx-backend-test at 66 total cases (44 passed, 13 failed, 9 known-fail) on 7227a771, i.e. the suite compiles and runs past its first case.
Engine pin still behind. Engine main pins llama.cpp 8d9ce2c1a (third_party/llama.cpp, moved by #441); the fix only reaches it with #451 (8dafc4a050ba) or #453 (7227a7711ba0), both open. Both are currently red on the same thing, unrelated to this issue: hw_gate stops on kld baselines missing for qwen3-0.6b / zaya1-8b / qwen3.8-27b (record them at the release pin, docs/hw-gate.md) and the qwen3.8-27b serve arm aborts on the 88 C guard (rc 137).
Closing this needs: the pin PR merged and the pinned test targets built once on the HRX host. I am not closing it on the fork evidence alone.
Fixed by 1bit-MONSTER/llama.cpp#104 (merged 2026-10-18, 8dafc4a0): the deleted dispatch-symmetric-i4.h include is gone and hrx-backend-test builds again; #105 (7227a77) then made the runner report every case. The symmetric-i4 route itself is tracked in #450.
Activity
bong-water-water-bong commentedon Oct 18, 2026
Status: the scope is wider than
hrx-backend-test. The samef2099e9bdeletion also breakstests/test-hrx-ops.cpp:3, which includesdispatch_registration/common/dispatch-activation-publication.h. That's at1a5dcba2and still at the new llama.cpp line8d9ce2c1afrom #441.The cause is the same for both. f2099e9b put
ggml/src/ggml-hrxback to our backend as of 522dab47, but left AMD's newer test files outside that directory:hrx-backend-test.cpp,test-hrx-ops.cpp,test-hrx-loom-jit.cpp,test-hrx-buffer.cppandtesting_suite.h. None of our commits touched those files after 522dab47.The fix is being worked on the new line. Next step is a full compiler error list for all five files, once strixhalo is quiet: two builds were stopped by its 93 C guard tonight.
bong-water-water-bong commentedon Oct 18, 2026
Fix in the fork: 1bit-MONSTER/llama.cpp#103 (
1bit/hrx-test-symmetric-i4-removedoff1bit/hrx-vulkan-patched@ 8d9ce2c1).What it does: removes the
dispatch-symmetric-i4.hinclude, thecommon_symmetric_i4_lowrow_mul_mat_eligible()call and the two values that existed only for it. The case keeps its remaining checks (noloom_libs:ggml_rmsnorm_binary_symmetric_i4_k32dispatch for those consumer shapes,q8_publication). Verified on CPU with the target's include paths: the fatal "file not found" is gone.One finding this issue should carry, because the title's claim ("the whole test target set is unbuildable") has a second cause: with the include fixed,
tests/hrx-backend-test.cppreaches 20 more errors from the AMD-core re-head (f2099e9b / 53d443cd), so the target still does not build.dispatch.kernel.workload_specialization/ggml::hrx::WorkloadSpecializationat lines 3298, 5191, 7352, 7547:KernelSpecializationhas no such member, and nothing inggml/src/ggml-hrxmentions a workload specialization ortoken_capacityany more.plan.metadata.activation_publication_diagnostics()at 6328-6338 and 10894-10895:CommandPlanMetadatakeepsalternate_values()only.excess elements in struct initializerat line 9564.tests/test-hrx-ops.cppandtests/test-hrx-loom-jit.cppuse the same removed members, so all three files need the same port. I did not guess at what the removed assertions should become; that is a separate change against the current dispatch API.The engine pin does not need to move for this:
cmake/hrx.cmakebuilds onlyllama-serverandllama-bench, never the tests.docs: the 2026-10-17/18 merges (HRX pins, DwarfStar, PM router and sp…
bong-water-water-bong commentedon Oct 18, 2026
llama.cpp fork PR #104 is merged into 1bit/hrx-vulkan-patched as 8dafc4a05. It restores tests/hrx-backend-test.cpp, test-hrx-ops.cpp and test-hrx-loom-jit.cpp. The engine still pins 8d9ce2c1a; the pin bump comes next. The stale routing expectations are tracked in #444.
bong-water-water-bong commentedon Oct 18, 2026
Status check (issue hygiene pass, 2026-10-18): the failing include is fixed on the llama.cpp branch, the engine pin is not updated yet, so this stays open.
Fixed, merged in the fork. The include and the deleted header's symbol are gone:
1bit-MONSTER/llama.cppPR HRX: pin llama.cpp 96f6b89, fixing #95 (GLM-4.7-Flash, Qwen3-Coder at full context) #104, commit8dafc4a050ba("tests: build the HRX tests against the ggml-hrx we ship (engine#422)"), merged into1bit/hrx-vulkan-patched.tests/hrx-backend-test.cppno longer includesdispatch-registration/common/dispatch-symmetric-i4.h,tests/test-hrx-ops.cppno longer includesdispatch-registration/common/dispatch-activation-publication.h, andcommon_symmetric_i4_lowrow_mul_mat_eligible()is no longer called (a comment says why). Neither header exists at953b6397(the branch tip now), andtests/CMakeLists.txtstill buildshrx-backend-test,test-hrx-opsandtest-hrx-loom-jit.7227a771), so one red case no longer hides the rest.953b6397.Not verified here, and why. The build itself was not run in this pass: the only HRX builds on this box go through the engine's
ExternalProject(cmake/hrx.cmake), which buildsllama-serverandllama-benchonly and needs the TheRock toolchain, so a full compile of the HRX test binaries is a GPU host job (there was a #315 cell and anhw_gaterun holding the box). Evidence in the thread rather than on this box: #443'shw_gateon the engine side built the pinned8d9ce2c1a,test-backend-opsran 611/611, and #445's thread reportshrx-backend-testat 66 total cases (44 passed, 13 failed, 9 known-fail) on7227a771, i.e. the suite compiles and runs past its first case.Engine pin still behind. Engine
mainpins llama.cpp8d9ce2c1a(third_party/llama.cpp, moved by #441); the fix only reaches it with #451 (8dafc4a050ba) or #453 (7227a7711ba0), both open. Both are currently red on the same thing, unrelated to this issue:hw_gatestops onkldbaselines missing for qwen3-0.6b / zaya1-8b / qwen3.8-27b (record them at the release pin, docs/hw-gate.md) and the qwen3.8-27b serve arm aborts on the 88 C guard (rc 137).Closing this needs: the pin PR merged and the pinned test targets built once on the HRX host. I am not closing it on the fork evidence alone.
bong-water-water-bong commentedon Oct 18, 2026
Fixed by 1bit-MONSTER/llama.cpp#104 (merged 2026-10-18, 8dafc4a0): the deleted dispatch-symmetric-i4.h include is gone and hrx-backend-test builds again; #105 (7227a77) then made the runner report every case. The symmetric-i4 route itself is tracked in #450.