Skip to content

Steps 1-2: embedded Lemonade, and HRX + Vulkan in one llama.cpp build - #6

Merged
bong-water-water-bong merged 4 commits into
mainfrom
embed-lemonade
Sep 22, 2026
Merged

bong-water-water-bong merged 4 commits into
mainfrom
embed-lemonade

Conversation

@bong-water-water-bong

@bong-water-water-bong bong-water-water-bong commented Sep 22, 2026 •

Copy link
Copy Markdown
Collaborator

Steps 1 and 2 of the port (docs/PORTING.md). Step 2 (#7) was merged into this branch, so it lands on main together with step 1 here.

Step 1: embedded Lemonade (docs/lemonade.md)

  • Vendored Lemonade: v11.9.0, complete, plus the local deltas in its UPSTREAM.md (the onebit backend and others).
  • 1bit lemonade: runs Lemonade's server in-process.
  • Smoke test (CI): health, catalog and system info.

Step 2: HRX + Vulkan (docs/hrx.md, details in #7)

  • Pinned sources: ROCm/hrx 0bc22fb, ROCm/hrx-system 6743075f (loom-link), and the llama.cpp fork on branch 1bit-engine/hrx-vulkan. patches/hrx/0001–0003 replace edits that lived only in a working tree.
  • Build: -DONEBIT_HRX=ON builds one llama-server with HRX20 and Vulkan0. 1bit lemonade uses it for llamacpp-hrx and for llamacpp/Vulkan.
  • Verified on Strix Halo, from a fresh clone:
    • 48/48 kernel artifacts byte-identical to the working build's
    • decode speed on par with it
    • Lemonade serves the same checkpoint on Vulkan0 (117 tok/s) and HRX20 (34 tok/s), and both answer correctly

CI covers the default build (ONEBIT_HRX=OFF) and the smoke test. HRX runs on Strix Halo only, since the GitHub runner has no AMD GPU.

🤖 Generated with Claude Code

Base automatically changed from remove-cpu-reference to main September 22, 2026 21:41
- third_party/lemonade: Lemonade v11.9.0, vendored complete, plus the
  local deltas in its UPSTREAM.md (the onebit backend, /v1/registry,
  the hrx-b66 pin, the embed CMake patch). Copied from 1bit-MONSTER main
  (last changed 256e68dd7).
- app/main.cpp: `1bit lemonade [lemond options]`, ported from
  run_embedded_lemonade in tools/unified_server.cpp. FLM pinning is
  dropped (FLM is eliminated); the engine-registry injection returns
  with the NPU engine (step 3).
- tests/smoke_lemonade.sh (ctest + CI): health ok, catalog with
  llamacpp-hrx, system-info. Uses scratch dirs.
- docs/lemonade.md; porting map adds step 5 (every HF model: registry +
  daily census). third_party/ is exempt from our copyright notice.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ported

CI runners have no AMD GPU, so Lemonade correctly hides llamacpp-hrx there.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* wip: step 2 HRX + Vulkan build (testing from a fresh clone)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* wip: pin the HRX submodules (gitlinks)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Step 2: HRX + Vulkan in one llama.cpp build, wired into Lemonade

- Pinned submodules: ROCm/hrx 0bc22fb (runtime), ROCm/hrx-system 6743075f
  (loom-link with --mode=selective), and the llama.cpp fork on branch
  1bit-engine/hrx-vulkan (3b33c8a9). patches/hrx 0001-0003 hold the local
  changes: build plumbing plus the gfx1151 PM4 probe fix.
- cmake/hrx.cmake (ONEBIT_HRX, off by default): clones each submodule into
  the build tree, patches it there, and builds only what ggml-hrx2 needs.
  hrx_assemble_prefix.cmake reproduces the previously hand-assembled prefix.
- 1bit lemonade uses the resulting llama-server for llamacpp-hrx (HRX20)
  and for llamacpp's Vulkan backend (Vulkan0), replacing only defaults.
- Lemonade delta: an hrx_device option (default HRX0) replaces the
  hard-coded device.
- Verified on Strix Halo from a fresh clone (217 s): 48/48 kernel artifacts
  byte-identical to the working build; decode parity; Lemonade serves the
  same checkpoint on Vulkan0 (117 tok/s) and HRX20 (34 tok/s)
  (tests/hrx_lemonade_e2e.sh).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
@bong-water-water-bong bong-water-water-bong changed the title Step 1: embed Lemonade's server core in the 1bit binary Steps 1-2: embedded Lemonade, and HRX + Vulkan in one llama.cpp build Sep 22, 2026
@bong-water-water-bong
bong-water-water-bong enabled auto-merge (squash) September 22, 2026 21:51
@bong-water-water-bong
bong-water-water-bong merged commit 71c301e into main Sep 22, 2026
1 check passed
@bong-water-water-bong
bong-water-water-bong deleted the embed-lemonade branch September 22, 2026 21:59
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant