- scripts: serve-pp-head/worker, envs, systemd units, pp-test.sh orchestrator, pp-bench.py - head design verified in b10433 source + live 4B smoke test: * no --device with --rpc (RPC device silently dropped otherwise) * default device selection = [RPC0, ROCm0] (HIP registers before Vulkan) * default split proportional to reported free mem = ~20/80 here, pin 1,1 * -dio required for large model over RPC - docs: qwen3.8-strix-optimizations (ranked no-quant-downgrade levers, quant landscape, 2026-08-16 test matrix), PP deployment runbook, index updates, Dankclaw Improvements corrections (Vulkan0, no power_profile sysfs) - worker built at 9b05354ec in /home/dank/llama-cpp-rpc worktree (CUDA+RPC) - second head build build-vulkan-rpc (HIP off) for backend A/B
48 lines
1.5 KiB
Bash
Executable File
48 lines
1.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Serve the Qwen3.8-27B pipeline-parallel RPC worker on Dankserver.
|
|
#
|
|
# Runs ggml-rpc-server from the b10433 CUDA+RPC build and exposes the RTX
|
|
# 3090 as a remote device for the head on Dankclaw.
|
|
#
|
|
# Tunables come from frank-pp-worker.env in this directory unless the
|
|
# FRANK_PP_WORKER_ENV_FILE environment variable overrides that path.
|
|
#
|
|
# Security note (upstream): the RPC server is "fragile and insecure". No
|
|
# authentication, no encryption. Keep it on the trusted LAN only.
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
ENV_FILE="${FRANK_PP_WORKER_ENV_FILE:-$SCRIPT_DIR/frank-pp-worker.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) -------------------
|
|
: "${RPC_BIND:=192.168.0.235}"
|
|
: "${RPC_PORT:=50052}"
|
|
: "${DEVICE:=CUDA0}"
|
|
: "${THREADS:=7}"
|
|
: "${CACHE:=1}"
|
|
: "${WORKER_BIN:=/home/dank/llama-cpp-rpc/build/bin/ggml-rpc-server}"
|
|
|
|
if [[ ! -x "$WORKER_BIN" ]]; then
|
|
echo "missing worker binary: $WORKER_BIN" >&2
|
|
echo "Build it: cd /home/dank/llama-cpp-rpc && cmake -B build -DBUILD_SHARED_LIBS=OFF -DGGML_CUDA=ON -DGGML_CUDA_FA_ALL_QUANTS=ON -DGGML_RPC=ON -DCMAKE_BUILD_TYPE=Release && cmake --build build --config Release -- -j 8" >&2
|
|
exit 1
|
|
fi
|
|
|
|
ARGS=()
|
|
if [[ "${CACHE}" == "1" ]]; then
|
|
ARGS+=(--cache)
|
|
fi
|
|
|
|
exec "$WORKER_BIN" \
|
|
--host "$RPC_BIND" \
|
|
--port "$RPC_PORT" \
|
|
--device "$DEVICE" \
|
|
--threads "$THREADS" \
|
|
"${ARGS[@]}"
|