From cc7b405474e690b5b6a8cef362f8bc72a4403f3e Mon Sep 17 00:00:00 2001 From: bong-water-water-bong Date: Fri, 2 Oct 2026 11:21:06 -0300 Subject: [PATCH 1/2] weekly: Lemonade's suite on HRX with its own lemond state; builds at -j4 - lemonade_suite ran Lemonade's LLM suite with --backend vulkan; the engine is HRX-only since 2026-10-01, so it runs --backend hrx (the onebit recipe declares hrx in the suite's capabilities). - lemond started with the user's ~/.cache/lemonade and ~/.config/lemonade; it now gets $W/lemonade-state/{cache,config} as its positional cache_dir / config_dir (lemond's cli_parser). - WEEKLY_JOBS defaults to 4: the cron run goes through ~/lb/thermal-run.sh, which allows 4 cores. - docs/releases.md: the quick-start example uses --device auto (HRX). Found by the release pre-check (2026-10-02); to be validated by its dry run before merge. Co-Authored-By: Claude Opus 5.5 --- docs/releases.md | 2 +- scripts/weekly.sh | 13 ++++++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/docs/releases.md b/docs/releases.md index 64dd73c9..b9d68328 100644 --- a/docs/releases.md +++ b/docs/releases.md @@ -40,7 +40,7 @@ beside itself. Unpack it anywhere: ```sh tar --zstd -xf 1bit-v2026.40-linux-x86_64.tar.zst -1bit-v2026.40-linux-x86_64/1bit serve -m model.gguf --device vulkan --port 8000 +1bit-v2026.40-linux-x86_64/1bit serve -m model.gguf --port 8000 # --device auto picks HRX ``` The builds target Strix Halo: the llama.cpp backends are built with `GGML_NATIVE` on its Zen 5. HRX and the ROCm backends need TheRock in diff --git a/scripts/weekly.sh b/scripts/weekly.sh index 6c659d71..dcbf3fc9 100755 --- a/scripts/weekly.sh +++ b/scripts/weekly.sh @@ -27,7 +27,7 @@ # as the GitHub release v. with the packages # No stage: all of them, in that order. WEEKLY_DRY_RUN=1 merges and publishes nothing. # WEEKLY_REF (default main) is what build checks out; bumps always works on main. -# WEEKLY_JOBS (default 6) caps build parallelism; heavy steps wait for WEEKLY_MIN_FREE_GB (16). +# WEEKLY_JOBS (default 4, what ~/lb/thermal-run.sh allows on Strix Halo) caps build parallelism; heavy steps wait for WEEKLY_MIN_FREE_GB (16). # Needs gh (logged in, allowed to merge on the engine), TheRock in /opt/rocm-therock, and # what the build scripts each list. set -euo pipefail @@ -40,7 +40,7 @@ SRC=$W/src BUILD=$W/build OUT=$W/out LOGS=$W/logs GGUF=${ONEBIT_SERVE_TEST_GGUF:-$HOME/models/Qwen3-0.6B-Q4_K_M.gguf} DRY=${WEEKLY_DRY_RUN:-0} # the box is shared: a capped build leaves room for whatever else runs on Sunday -JOBS=${WEEKLY_JOBS:-6} +JOBS=${WEEKLY_JOBS:-4} export CMAKE_BUILD_PARALLEL_LEVEL=$JOBS # the submodules the packages are built from (linux, laya and comfyui.cpp only on their bumps) SUBMODULES=(hrx-system llama.cpp llama.cpp-vulkan llama.cpp-rocmfpx zinc xdna-driver lemonade ryzenai-server ds4 tokenizers) @@ -167,7 +167,8 @@ bump_check() { # bump_check esac } -# Lemonade's own LLM suite through the onebit recipe, on Vulkan (docs/lemonade.md) +# Lemonade's own LLM suite through the onebit recipe, on HRX (docs/lemonade.md); lemond keeps its +# state in the workdir, not in the user's ~/.cache/lemonade and ~/.config/lemonade lemonade_suite() { guard "$SRC/scripts/build-lemonade.sh" "$W/lemonade" > "$LOGS/lemonade-build.log" 2>&1 local venv=$W/lemonade-venv @@ -175,11 +176,13 @@ lemonade_suite() { "$venv/bin/pip" -q install -r "$SRC/third_party/lemonade/test/requirements.txt" # the suite's own list # the suite talks to a running lemond: ours, on a port of its own, with this build's 1bit local port=13399 pid rc=0 - LEMONADE_ONEBIT_BIN="$BUILD/1bit" "$W/lemonade/bin/lemond" --port "$port" > "$LOGS/lemond.log" 2>&1 & + mkdir -p "$W/lemonade-state/cache" "$W/lemonade-state/config" + LEMONADE_ONEBIT_BIN="$BUILD/1bit" "$W/lemonade/bin/lemond" --port "$port" \ + "$W/lemonade-state/cache" "$W/lemonade-state/config" > "$LOGS/lemond.log" 2>&1 & pid=$! ( cd "$SRC/third_party/lemonade" && PATH="$W/lemonade/bin:$BUILD:$PATH" LEMONADE_ONEBIT_BIN="$BUILD/1bit" LEMONADE_TEST_PORT="$port" \ - "$venv/bin/python" test/server_llm.py --wrapped-server onebit --backend vulkan ) > "$LOGS/lemonade-suite.log" 2>&1 || rc=$? + "$venv/bin/python" test/server_llm.py --wrapped-server onebit --backend hrx ) > "$LOGS/lemonade-suite.log" 2>&1 || rc=$? kill "$pid" 2>/dev/null; wait "$pid" 2>/dev/null || true return $rc } From a930597c8d199c4150ed041a15a3b9b999b97600 Mon Sep 17 00:00:00 2001 From: bong-water-water-bong Date: Fri, 2 Oct 2026 15:30:04 -0300 Subject: [PATCH 2/2] release: zstd on 4 threads, not all cores The release pre-check saw the 1bit OS initramfs compression (zstd -19 -T0) climb from 83 to 94 C in three seconds. The release runs on 4 pinned cores, so 4 threads loses nothing. Co-Authored-By: Claude Opus 5.5 --- os/mini/mkimage.sh | 2 +- scripts/package-linux.sh | 2 +- scripts/weekly.sh | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/os/mini/mkimage.sh b/os/mini/mkimage.sh index c74a0c71..6007cfd3 100755 --- a/os/mini/mkimage.sh +++ b/os/mini/mkimage.sh @@ -135,7 +135,7 @@ echo "== initramfs" # (Dropbear, like sshd, refuses keys when the home directory is group-writable) chmod -R go-w "$root"; chmod 1777 "$root/tmp"; chmod 700 "$root/root" # every file owned by root (Dropbear, like sshd, refuses keys in files the user does not own) -(cd "$root" && find . -print0 | cpio --null -o -H newc -R 0:0 --quiet) | zstd -q -19 -T0 > "$out/initramfs.img" +(cd "$root" && find . -print0 | cpio --null -o -H newc -R 0:0 --quiet) | zstd -q -19 -T4 > "$out/initramfs.img" echo "== 1bit-os.efi (unified kernel image)" stub=$tools/usr/lib/systemd/boot/efi/linuxx64.efi.stub diff --git a/scripts/package-linux.sh b/scripts/package-linux.sh index 2fc429aa..c53cc452 100755 --- a/scripts/package-linux.sh +++ b/scripts/package-linux.sh @@ -107,5 +107,5 @@ Keep the directory layout: 1bit finds its backends beside itself. HRX and the ROCm backends need TheRock in /opt/rocm-therock; the NPU needs the amdxdna kernel driver. Docs: https://1bit.gg/ Code: https://github.com/1bit-MONSTER/engine EOF -tar -C "$(dirname "$stage")" -cf - "$name" | zstd -q -T0 -19 -o "$out/$name.tar.zst" +tar -C "$(dirname "$stage")" -cf - "$name" | zstd -q -T4 -19 -o "$out/$name.tar.zst" ls -la "$out/$name.tar.zst" diff --git a/scripts/weekly.sh b/scripts/weekly.sh index dcbf3fc9..0553553f 100755 --- a/scripts/weekly.sh +++ b/scripts/weekly.sh @@ -248,7 +248,7 @@ stage_package() { "$SRC/scripts/package-linux.sh" "$BUILD" "$OUT" "$tag" "$W/xdna/root/opt/xilinx/xrt" > "$LOGS/package-linux.log" 2>&1 say "package $tag: Lemonade + onebit" guard "$SRC/scripts/build-lemonade.sh" "$W/lemonade" > "$LOGS/lemonade-build.log" 2>&1 - tar -C "$W/lemonade" --transform "s,^,lemonade-onebit-$tag/," -cf - bin | zstd -q -T0 -19 \ + tar -C "$W/lemonade" --transform "s,^,lemonade-onebit-$tag/," -cf - bin | zstd -q -T4 -19 \ -o "$OUT/lemonade-onebit-$tag-linux-x86_64.tar.zst" say "package $tag: Windows" rm -rf "$W/windows" @@ -258,7 +258,7 @@ stage_package() { say "package $tag: 1bit OS" rm -rf "$W/os" guard "$SRC/os/mini/mkimage.sh" "$W/os" "$BUILD" > "$LOGS/os.log" 2>&1 - zstd -q -T0 -19 "$W/os/1bit-os.img" -o "$OUT/1bit-os-$tag.img.zst" + zstd -q -T4 -19 "$W/os/1bit-os.img" -o "$OUT/1bit-os-$tag.img.zst" cp "$W/os/1bit-os.efi" "$OUT/1bit-os-$tag.efi" (cd "$OUT" && sha256sum -- * > SHA256SUMS) ls -la "$OUT"