Repository navigation
Bump HRX: hrx-system 170d229a3 — three libhrx/amdgpu profiling fixes (engine #894, #895, #1232) - #1239
Conversation
PR Reviewer Guide 🔍(Review updated until commit f5bae21)Here are some key observations to aid the review process:
|
bong-water-water-bong
left a comment
There was a problem hiding this comment.
VERDICT: READY at dc22a6ef.
The pin topology is what the body says, checked against the fork rather than the prose:
compare/82804197bcbe...170d229a3afe -> 6 commits = the three feature commits (204376342 #895 ring reclaim,
23b26f0c8 #894 retain/write, 2e240c010 #1232 profile-end-on-release) plus their three merge commits
(170d229a3 #12, 549b8be1b #13, f4828c03b #10). So "three fork merges, each measured" is three merges of three
commits, and the branch tip is the merge you pinned.
The two places that must not drift do not: third_party/hrx-system moves 82804197 -> 170d229a, and
config/hrx-system-hold.config's hold names 170d229a3afec62344ae39c5bfad9bdd16c60f71 — the same commit, which is the
pair the hold config exists to keep in step. third_party/llama.cpp is untouched, as the body says, so this cannot drag
the engine's decoder pin with it.
What I did not do is build the HRX path against the new submodule — that is a full ggml-hrx + addon compile, and the
numbers this PR rests on (770 B -> 40 568 B, 948 574 B / 1 230 events, 12x 200 and 106 863 events past the 65 536 ring)
are profiling-bundle measurements that only mean something with a device window and the stream workload. Those are the
author's; the structural half — right commit, right tip, hold and pointer agreeing, decoder pin untouched — is checked.
dc22a6e to
f5bae21
Compare
hw-gate PASS at
|
| phase | result |
|---|---|
| build | PASS (7 s) |
ops (test-backend-ops -b HRX0) |
2083/2083 tests passed (MUL_MAT, MUL_MAT_ID, FLASH_ATTN_EXT, GATED_DELTA_NET, SSM_CONV, GET_ROWS, ROPE, RMS_NORM, SOFT_MAX) |
| fa-decode-q8 | 6/6 (K q8_0 × V f16 and q8_0; Hq/Hkv 16/8 and 32/8; n_kv 1031/2048/4103) |
| kat / needle / placement / kld — qwen3-0.6b | PASS (needle 7082-token expected 7341 got 7341; 170 graphs all on HRX; KLD 0.000001) |
| kat / needle / placement / kld — zaya1-8b | PASS (7403-token needle 7341; 193 graphs; KLD -0.000000) |
| kat / placement / kld — qwen3.8-27b | PASS (248 s; 152 graphs; KLD -0.000000) |
| remaining K-quant and MoE rows | PASS (job success) |
This is the long-prompt/needle check tools/check_pins.py requires for an hrx-system pin move, so the second commit now records the validated pin and updates the hold file's commit note; check_pins.py against main reports ok third_party/hrx-system: 82804197b -> 170d229a3 is ahead. Ready to merge on build.
|
Persistent review updated to latest commit f5bae21 |
Moves
third_party/hrx-systemalong our line to a commit with the three measured profiling fixes.third_party/llama.cppis unchanged.1bit/e3e6a976-pin-6)82804197bcbe170d229a3afe170d229a3is the pin branch after three fork merges, each measured on strixhalo before it landed:hal_deviceis cleared (fork PR hrx-system#12). A C-API client's bundle goes 770 B / 0 dispatch events → 40 568 B with session-end, command-buffer and dispatch records; the engine's own caller is unaffected because its explicithrx_device_retainkeeps its release out of that branch. No-op when profiling is off.Same AMD core (
e3e6a9766ccb); all three changes sit on profiling paths (sessions/rings/device release), so the inference path is untouched whenHRX_PROFILE_MODEis unset.Verification / merge gate
This is an hrx-system pin move, so
buildrequiresconfig/hrx-long-prompt-validated-pin.configto name the new commit (tools/check_pins.py). That record is deliberately not in this first commit — it is written only after the hardware gate below passes on this branch, sobuildis red until then and the PR cannot merge before it has been validated on the box. Thehw-gatelabel is added: its phases arebuild,ops,kat,kld,needle,placementon thestrixhalo-enginerunner (scripts/hw-gate.sh), i.e. the long-prompt/needle correctness check this repo requires for an hrx-system pin plustest-backend-ops -b HRX0.Second commit (after the gate): validated-pin config + any doc line. Do not merge on
buildalone.Fork PRs
Also updates
config/hrx-system-hold.configto name the new commit, so the daily bump does not move off this line.