- New experiments/dsv4_h200_sglang_vs_vllm/ with TP=8 on all 8 H200 cards - Phase1 short-context throughput + Phase2 long context up to 200k - Unified scenario matrix, warmup, parsing, and side-by-side comparison report - H200 SGLang vs vLLM entry added to root README
77 lines
2.0 KiB
Bash
Executable File
77 lines
2.0 KiB
Bash
Executable File
#!/bin/bash
|
|
# Start SGLang server for the comparison, in either phase1 or phase2 mode.
|
|
set -e
|
|
|
|
PHASE="${1:-phase1}"
|
|
if [[ "$PHASE" != "phase1" && "$PHASE" != "phase2" ]]; then
|
|
echo "Usage: $0 {phase1|phase2}"
|
|
exit 1
|
|
fi
|
|
|
|
cd /data/user1/yy
|
|
mkdir -p logs
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
# shellcheck source=/dev/null
|
|
source "${SCRIPT_DIR}/config.env"
|
|
|
|
export PATH="${VENV_SGLANG}/bin:$PATH"
|
|
export PYTHONUNBUFFERED=1
|
|
export SGLANG_LOG_LEVEL=info
|
|
export TMPDIR=/data/user1/yy/tmp
|
|
export CUDA_VISIBLE_DEVICES="${CUDA_VISIBLE_DEVICES}"
|
|
|
|
if [[ "$PHASE" == "phase1" ]]; then
|
|
MAX_MODEL_LEN="$PHASE1_MAX_MODEL_LEN"
|
|
MAX_RUNNING="$PHASE1_MAX_RUNNING"
|
|
else
|
|
MAX_MODEL_LEN="$PHASE2_MAX_MODEL_LEN"
|
|
MAX_RUNNING="$PHASE2_MAX_RUNNING"
|
|
fi
|
|
|
|
LOG="/data/user1/yy/logs/dsv4_h200_sglang_vs_vllm_sglang_${PHASE}_$(date +%Y%m%d_%H%M%S).log"
|
|
PID_FILE="/data/user1/yy/dsv4_h200_sglang_vs_vllm_sglang.pid"
|
|
|
|
rm -f "$PID_FILE"
|
|
|
|
echo "=== Starting SGLang server (TP=$TP, phase=$PHASE, max_model_len=$MAX_MODEL_LEN) ==="
|
|
echo "Model: $MODEL_PATH"
|
|
echo "Port: $SGLANG_PORT"
|
|
echo "Log: $LOG"
|
|
|
|
nohup sglang serve \
|
|
--trust-remote-code \
|
|
--model-path "$MODEL_PATH" \
|
|
--tp "$TP" \
|
|
--moe-runner-backend marlin \
|
|
--max-model-len "$MAX_MODEL_LEN" \
|
|
--max-running-requests "$MAX_RUNNING" \
|
|
--mem-fraction-static 0.88 \
|
|
--host 0.0.0.0 \
|
|
--port "$SGLANG_PORT" \
|
|
> "$LOG" 2>&1 &
|
|
|
|
PID=$!
|
|
echo $PID > "$PID_FILE"
|
|
echo "PID: $PID"
|
|
echo "Waiting for health..."
|
|
|
|
for i in $(seq 1 240); do
|
|
if curl --fail --silent --show-error --max-time 5 "http://127.0.0.1:${SGLANG_PORT}/health" >/dev/null 2>&1; then
|
|
echo "SGLang server is ready at http://127.0.0.1:${SGLANG_PORT}"
|
|
echo "Log: $LOG"
|
|
exit 0
|
|
fi
|
|
if ! kill -0 $PID 2>/dev/null; then
|
|
echo "ERROR: SGLang server exited early"
|
|
tail -200 "$LOG"
|
|
exit 1
|
|
fi
|
|
echo "Waiting... ($i/240)"
|
|
sleep 5
|
|
done
|
|
|
|
echo "ERROR: SGLang server not healthy after 240 retries"
|
|
tail -200 "$LOG"
|
|
exit 1
|