frank-large: CIRU v4.4.1 Orca cutover — root unit, one stream, full context
Operator call 2026-09-19: switch the iGPU endpoint from halogen-flash-server to jcbtc/Qwen3.8-Flash-CIRU-STRIX-Orca on the CIRU v4.4.1 runtime with the QSA window hotfix (host build against the private ROCm 10 SDK), one stream of the full 262144 trained window. The service leaves the quadlet shape for a root unit (the same shape as frank-small and frank-medium: a private-SDK host binary has no image to install and no generated unit to dodge); the halogen quadlet is archived, the deploy handler retires it on the host, gates on 7770, and its stray-run sweep matches the model path so it cannot take frank-small down.
This commit is contained in:
1 parent
d374ab963f
commit
b6ce3afb1f
9 files changed
+317
-406
No files matched your search
Executable
+80
@@ -0,0 +1,80 @@
|
||||
#!/usr/bin/env bash
|
||||
# Serve jcbtc/Qwen3.8-Flash-CIRU-STRIX-Orca as frank-large on Dankclaw's
|
||||
# Strix Halo iGPU (gfx1151), using the CIRU v4.4.1 runtime with the QSA
|
||||
# window hotfix.
|
||||
#
|
||||
# Runtime: the v4.4.1 source with the QSA window hotfix pre-applied
|
||||
# (ciru-runtime-v4.4.1-qsa-hotfix-source.tar.gz, shipped in the model repo
|
||||
# under runtime/v4.4.1/qsa-window-hotfix/), built ON the host against the
|
||||
# private ROCm 10.0.0 SDK that scripts/ciru/setup-linux-amd.sh installs into
|
||||
# the runtime checkout's own venv. The launcher below re-verifies on every
|
||||
# start that the built libraries carry the v4.4.1 corrections (it greps the
|
||||
# common and HIP libraries for the fix markers) before exec.
|
||||
#
|
||||
# The launcher owns the flag list: -sm none (one iGPU, no split), -ngl all,
|
||||
# f16 KV, flash attention, cont-batching, the PLE sidecar, the MTP drafter
|
||||
# (depth 4 for the Orca variant) and the production kernel-bundle profile.
|
||||
# Tunables come from frank-large.env unless FRANK_LARGE_ENV_FILE overrides it;
|
||||
# anything not set there falls through to the launcher's own defaults.
|
||||
#
|
||||
# It replaces the halogen-flash-server quadlet, which served
|
||||
# peonist-ai/halogen-qwen3.8-flash-next on this same iGPU since 2026-09-16.
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
|
||||
ENV_FILE="${FRANK_LARGE_ENV_FILE:-$SCRIPT_DIR/frank-large.env}"
|
||||
if [[ -f "$ENV_FILE" ]]; then
|
||||
set -a
|
||||
# shellcheck disable=SC1090
|
||||
source "$ENV_FILE"
|
||||
set +a
|
||||
fi
|
||||
|
||||
# --- defaults (used when the env file does not set them) ------------------
|
||||
: "${RUNTIME_DIR:=/home/dank/GitPackages/ciru-runtime-v4.4.1-qsa-hotfix}"
|
||||
: "${MODEL_DIR:=/home/dank/models/Qwen3.8-Flash-CIRU-STRIX-Orca}"
|
||||
: "${HOST:=0.0.0.0}"
|
||||
: "${PORT:=7770}"
|
||||
: "${CONTEXT_SIZE:=262144}"
|
||||
: "${PARALLEL_SLOTS:=1}"
|
||||
|
||||
LAUNCHER="$RUNTIME_DIR/scripts/ciru/run-orca-server.sh"
|
||||
SERVER_BIN="$RUNTIME_DIR/build-gfx1151-sdk/bin/llama-server"
|
||||
|
||||
if [[ ! -x "$LAUNCHER" ]]; then
|
||||
echo "missing runtime launcher: $LAUNCHER" >&2
|
||||
echo "fetch the hotfix source tarball from the model repo" >&2
|
||||
echo "(runtime/v4.4.1/qsa-window-hotfix/) and build it:" >&2
|
||||
echo " bash $RUNTIME_DIR/scripts/ciru/setup-linux-amd.sh --install-host-deps" >&2
|
||||
exit 1
|
||||
fi
|
||||
if [[ ! -x "$SERVER_BIN" ]]; then
|
||||
echo "missing built runtime: $SERVER_BIN" >&2
|
||||
echo "build it: bash $RUNTIME_DIR/scripts/ciru/setup-linux-amd.sh --install-host-deps" >&2
|
||||
exit 1
|
||||
fi
|
||||
if [[ ! -r "$MODEL_DIR/Qwen3.8-Flash-CIRU-STRIX-Orca.gguf" ]]; then
|
||||
echo "missing target model: $MODEL_DIR/Qwen3.8-Flash-CIRU-STRIX-Orca.gguf" >&2
|
||||
echo "fetch and assemble it: bash $SCRIPT_DIR/download-frank-large-orca.sh" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# The launcher checks the MTP head and the PLE sidecar itself, but a missing
|
||||
# payload should be a deploy error with a pointer, not a runtime exit 2.
|
||||
for required in \
|
||||
"$MODEL_DIR/mtp/Qwen3.8-Flash-CIRU-STRIX-Orca-MTP-Q8_0.gguf" \
|
||||
"$MODEL_DIR/ple/ple.payload.bin" \
|
||||
"$MODEL_DIR/ple/ple.manifest.json" \
|
||||
"$MODEL_DIR/ple/ple.scale.bf16"; do
|
||||
if [[ ! -r "$required" ]]; then
|
||||
echo "missing payload: $required" >&2
|
||||
echo "fetch and assemble it: bash $SCRIPT_DIR/download-frank-large-orca.sh" >&2
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
# The Qwen3.8 family template keeps prior thinking blocks across turns when
|
||||
# preserve_thinking is set; the launcher passes --jinja but no template
|
||||
# kwargs, so name them here. A request-level chat_template_kwargs still
|
||||
# wins over this.
|
||||
exec "$LAUNCHER" --chat-template-kwargs '{"preserve_thinking":true}'
|
||||
Reference in new issue
Block a user