ShoaibSSM's picture
Bound llama.cpp HTTP and compute threads; enable four slots
d861a68 verified
Raw History Blame Contribute Delete
2.3 kB
#!/usr/bin/env bash
set -euo pipefail
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
MODEL="${1:-qwen38}"
case "$MODEL" in
qwen38) MODEL_PATH="$ROOT/models/Qwen3.8-27B-Q6_K.gguf"; EXPECTED_SIZE=22563871392 ;;
qwen36) MODEL_PATH="$ROOT/models/Qwen3.6-35B-A3B-UD-Q5_K_M.gguf"; EXPECTED_SIZE=26456194016 ;;
*) echo "Usage: $0 [qwen38|qwen36]" >&2; exit 2 ;;
esac
[[ -f "$MODEL_PATH" && "$(stat -c %s "$MODEL_PATH")" == "$EXPECTED_SIZE" ]] || {
echo "Model missing or incomplete: $MODEL_PATH" >&2
exit 1
}
BIN="$ROOT/runtime/b11177/llama-server"
[[ -x "$BIN" ]] || BIN="$ROOT/runtime/b11177/build/bin/llama-server"
[[ -x "$BIN" ]] || { echo 'llama-server missing. Run scripts/install.sh.' >&2; exit 1; }
mkdir -p "$ROOT/secrets"
KEY_FILE="$ROOT/secrets/api_keys.txt"
if [[ ! -f "$KEY_FILE" ]]; then
umask 077
python -c 'import secrets; print(secrets.token_urlsafe(32))' > "$KEY_FILE"
fi
export LD_LIBRARY_PATH="$ROOT/runtime/b11177:/opt/conda/lib:${LD_LIBRARY_PATH:-}"
export OMP_NUM_THREADS=4
export OMP_THREAD_LIMIT=4
export OMP_DYNAMIC=FALSE
export MKL_NUM_THREADS=1
export OPENBLAS_NUM_THREADS=1
export NUMEXPR_NUM_THREADS=1
export BLIS_NUM_THREADS=1
export VECLIB_MAXIMUM_THREADS=1
CPU_SET="$(python -c 'import os; print(",".join(map(str, sorted(os.sched_getaffinity(0))[:32])))')"
SPEC_ARGS=()
if [[ "${LLM_SPEC_MTP:-0}" == 1 ]]; then
[[ "$MODEL" == qwen38 ]] || { echo 'MTP draft is only configured for qwen38.' >&2; exit 1; }
DRAFT="$ROOT/models/mtp-Qwen3.8-27B-Q8_0.gguf"
[[ -f "$DRAFT" && "$(stat -c %s "$DRAFT")" == 3164006816 ]] || {
echo 'MTP draft missing. Run WITH_MTP=1 bash scripts/install.sh.' >&2
exit 1
}
SPEC_ARGS=(--spec-type draft-mtp --model-draft "$DRAFT" --spec-draft-n-max 2)
fi
exec taskset -c "$CPU_SET" "$BIN" \
--model "$MODEL_PATH" \
--alias "$MODEL" \
--host "${LLM_HOST:-127.0.0.1}" \
--port "${LLM_PORT:-8080}" \
--api-key-file "$KEY_FILE" \
--n-gpu-layers all \
--fit off \
--flash-attn on \
--cache-type-k q8_0 \
--cache-type-v q8_0 \
--ctx-size "${LLM_CONTEXT:-65536}" \
--parallel 4 \
--threads 16 \
--threads-batch 16 \
--threads-http 4 \
--cont-batching \
--reasoning-effort "${LLM_REASONING_EFFORT:-medium}" \
--batch-size 2048 \
--ubatch-size 512 \
--jinja \
"${SPEC_ARGS[@]}"