#!/usr/bin/env bash # Start llama-server for GLM-5.3 E192 UD-IQ2_M on one NVIDIA B200 (183 GB). # Every setting can be overridden with an environment variable; extra arguments are passed to llama-server. # LLAMA_SERVER=./build/bin/llama-server MODEL_DIR=/path/to/model ./serve_b200.sh # DRY_RUN=1 ./serve_b200.sh # print the command only set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" LLAMA_SERVER="${LLAMA_SERVER:-llama-server}" MODEL_DIR="${MODEL_DIR:-$SCRIPT_DIR/..}" MODEL="${MODEL:-$MODEL_DIR/GLM-5.3-UD-IQ2_M-E192-00001-of-00006.gguf}" HOST="${HOST:-127.0.0.1}" PORT="${PORT:-8080}" CTX="${CTX:-102400}" # shared KV pool in tokens; 102400 leaves ~1.7 GB free on a B200 NP="${NP:-10}" # parallel slots SLOT_CTX="${SLOT_CTX:-68608}" # per-slot limit: longest GPQA prompt (2821 tokens) + 65536 generated tokens CMD=("$LLAMA_SERVER" -m "$MODEL" -ngl 99 -kvu -c "$CTX" --kv-unified-per-slot "$SLOT_CTX" -np "$NP" -bs --host "$HOST" --port "$PORT" --metrics "$@") if [[ "${DRY_RUN:-0}" == "1" ]]; then printf '%q ' "${CMD[@]}"; echo exit 0 fi exec "${CMD[@]}"