Skip to content

Bump HRX: llama.cpp e7e5cd08f9bb + hrx-system 82804197bcbe - #565

Merged
bong-water-water-bong merged 3 commits into
mainfrom
bump-hrx/e7e5cd08f9bb-82804197bcbe
Oct 25, 2026
Merged

bong-water-water-bong merged 3 commits into
mainfrom
bump-hrx/e7e5cd08f9bb-82804197bcbe

Conversation

@bong-water-water-bong

Copy link
Copy Markdown
Collaborator

Moves the HRX submodules along our line. AMD's tested pair (ROCm/ggml-staging-automation) is llama.cpp 1ec5a7a69da5 + hrx-system 5f4dfc8731a1; the workflow merges it into our branches (a conflict fails the run and names the files).

from to
third_party/llama.cpp (1bit-MONSTER/llama.cpp 1bit/hrx-vulkan-patched) 851fa6c8d8f2 e7e5cd08f9bb
third_party/hrx-system (1bit-MONSTER/hrx-system 1bit/main) 82804197bcbe 82804197bcbe

hrx-system HELD at 82804197bcbe by config/hrx-system-hold.config (AMD's tested pin is 5f4dfc8731a1).

llama.cpp commits new to the engine:

CI here builds without HRX. Before merging, on Strix Halo run the long-prompt correctness
probe and test-backend-ops -b HRX0; record the exact validated hrx-system pin in
config/hrx-long-prompt-validated-pin.config:
python3 tests/hrx_long_prompt.py
cmake -B build -G Ninja -DONEBIT_HRX=ON && cmake --build build --target onebit && for d in hrx cpu; do tests/serve_e2e.sh build/1bit <Qwen3-0.6B Q4_K_M .gguf> $d; done

@github-actions

github-actions Bot commented Oct 25, 2026 •

Copy link
Copy Markdown

PR Reviewer Guide 🔍

(Review updated until commit 4d79ec5)

Here are some key observations to aid the review process:

🎫 Ticket compliance analysis 🔶

144 - Partially compliant

Compliant requirements:

  • Bump actions/deploy-pages from 4.0.5 to 5.0.1
  • Update workflow files to use SHA-pinned versions of actions

Non-compliant requirements:

  • Ensure compatibility with GitHub.com and GitHub Enterprise Server

Requires further human verification:

  • Compatibility verification with GitHub Enterprise Server

143 - Partially compliant

Compliant requirements:

  • Pin actions by commit SHA in workflow files
  • Dependabot keeps the pins current

Non-compliant requirements:

  • Turn on repo setting requiring SHA-pinned actions

Requires further human verification:

  • Verification that repo setting requiring SHA-pinned actions is enabled

142 - Partially compliant

Compliant requirements:

  • Add SECURITY.md with private vulnerability reporting
  • Add CONTRIBUTING.md with RFC process
  • Add RFC discussion template

Non-compliant requirements:

  • None

Requires further human verification:

  • None
⏱️ Estimated effort to review: 3 🔵🔵🔵⚪⚪
🧪 No relevant tests
🔒 No security concerns identified
⚡ Recommended focus areas for review

Architecture Registration

The addition of "FlintForCausalLM" architecture with "flint" gguf mapping and "hrx" backend registration appears to be a new feature addition. This change should be verified to ensure it aligns with the intended architecture support and that the backend implementation is properly handled.

"FlintForCausalLM": {
 "gguf": "flint",
 "backends": [
  "hrx"
 ]
},

@bong-water-water-bong
bong-water-water-bong enabled auto-merge (squash) October 25, 2026 12:57
@github-actions

Copy link
Copy Markdown

Persistent review updated to latest commit 3a919a8

@github-actions

Copy link
Copy Markdown

Persistent review updated to latest commit 4d79ec5

@bong-water-water-bong
bong-water-water-bong merged commit f3685f3 into main Oct 25, 2026
10 checks passed
@bong-water-water-bong
bong-water-water-bong deleted the bump-hrx/e7e5cd08f9bb-82804197bcbe branch October 25, 2026 13:31
bong-water-water-bong added a commit that referenced this pull request Oct 26, 2026
…hat server for Lemonade (#580)

* os: write the onebit manifest the check reads, report skip reasons honestly

Three defects a hardware run of candidate 5 exposed, all in the image's own tooling rather than in
the release itself.

1. `/etc/1bit/onebit-models.txt` had no producer. release-check.sh read it and, when it was absent,
   failed with "the build writes it from server_models.json" - but nothing in the tree ever wrote it,
   so the `models` row could never pass on any image. mkimage.sh now derives it from the Lemonade
   catalogue it already stages at /opt/lemonade/bin/resources/server_models.json, in the format
   release-check parses: `mode=<live|installed>` then one `hrx <id>` / `npu <id>` per entry. Deriving
   it means it cannot drift from what Lemonade actually ships; a catalogue with no onebit entries
   writes a manifest with none, which the check reports as such instead of failing.
   The JSON walk accepts both a list of model dicts and a dict of sections, so a layout change
   produces a manifest rather than silently producing an empty one.

2. The `chat-hrx` and `chat-npu` skips blamed the environment for what is often a missing entry.
   Both now distinguish the two cases: no /dev/kfd (or /dev/accel/accel*) means the machine cannot run
   the entry, while a present device with no matching model id means Lemonade listed nothing to ask.
   On the hardware run this mattered: the row said "no AMD GPU in this VM" on a machine with a GPU.

3. The `secureboot` row skipped whenever mokutil was absent, though mokutil is not shipped - so a
   machine that had Secure Boot ON and had just booted our MOK-signed kernel was reported as unknown.
   It now reads the firmware's own SecureBoot EFI variable (byte 5 of SecureBoot-8be4df61-...), which
   needs no extra binary: 1 passes "Secure Boot enabled; the MOK-signed kernel booted", 0 passes on a
   firmware that reports it off, and only an unreadable variable stays a skip.

self-test passes (7/7 verdict cases). Apache-2.0 headers untouched.

* os: ship the HSA runtime beside the engine's llama-server, and name that server for Lemonade

First hardware boot of the signed image (candidate 5, 26 Oct, Secure Boot on): 14 of 16 release
checks pass, and the two onebit rows fail for reasons the VM gate cannot see.

1. Lemonade's HRX recipe starts the engine through scripts/lemonade-hrx, whose default llama-server
   is the one beside the script (hrx/llama/bin/llama-server). The image keeps it at /opt/1bit-llama,
   so lemond logged "Failed to execute: hrx/llama/bin/llama-server" and the model never started.
   init.sh now exports ONEBIT_HRX_LLAMA_SERVER=/opt/1bit-llama/llama-server (the script's override),
   for lemond and for ssh logins through /etc/profile.
2. With the server named, llama-server listed no HRX0 at all: libggml-hrx is dlopened by ggml and
   NEEDS libhsa-runtime64.so.1, which was not beside it - the stage only resolved the program's own
   NEEDED entries. The only way to load it on the stick was Lemonade's bundle on LD_LIBRARY_PATH,
   which then mixed that bundle's libloomc into the engine (undefined symbol
   loomc_link_index_builder_allocate). mkimage.sh now resolves the NEEDED entries of every lib*.so
   in /data/1bit-llama as well, copies the HSA runtime's ROCm sysdeps flat beside it (relocate()
   makes every file look in $ORIGIN only), and refuses the build if any library still misses one.
   /etc/1bit/libhsa prefers that copy; Lemonade's bundle stays as the fallback for older data
   partitions.

Not fixed here: the engine's own default llama-server path when run by hand (follow-up issue), and
the image's engine package itself, which candidate 4 and 5 inherited from candidate 3 (package-only
runs) and which predates the HRX_ALLOW_NO_SVM gate (#565); candidate 6 is a full build.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

---------

Co-authored-by: bong-water-water-bong <bong-water-water-bong@1bit.gg>
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant