SSKJ Dev a4e38b9e33 Reorganize experiments into hardware-specific subdirectories
Move all experiments under hardware-specific folders:
- experiments/h200/     : H200 GPU experiments (15 dirs)
- experiments/h20/      : H20 GPU experiments (2 dirs)
- experiments/p800/     : Kunlun P800 experiments (3 dirs)
- experiments/pro6000/    : RTX 6000D experiments (2 dirs)

This improves discoverability and keeps hardware-specific configs
isolated from each other.
2026-07-16 04:11:07 +00:00

80 lines
2.1 KiB
Bash
Executable File

#!/bin/bash
# Start vLLM 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"
VENV="${VENV_VLLM}"
export PATH="$VENV/bin:$PATH"
export PYTHONUNBUFFERED=1
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_NUM_SEQS="$PHASE2_MAX_NUM_SEQS"
else
MAX_MODEL_LEN="$PHASE2_MAX_MODEL_LEN"
MAX_NUM_SEQS="$PHASE2_MAX_NUM_SEQS"
fi
LOG="/data/user1/yy/logs/dsv4_h200_sglang_vs_vllm_vllm_${PHASE}_$(date +%Y%m%d_%H%M%S).log"
PID_FILE="/data/user1/yy/dsv4_h200_sglang_vs_vllm_vllm.pid"
rm -f "$PID_FILE"
echo "=== Starting vLLM server (TP=$TP, phase=$PHASE, max_model_len=$MAX_MODEL_LEN, max_num_seqs=$MAX_NUM_SEQS) ==="
echo "Model: $MODEL_PATH"
echo "Port: $VLLM_PORT"
echo "Log: $LOG"
nohup vllm serve "$MODEL_PATH" \
--trust-remote-code \
--tensor-parallel-size "$TP" \
--kv-cache-dtype fp8 \
--max-model-len "$MAX_MODEL_LEN" \
--max-num-seqs "$MAX_NUM_SEQS" \
--block-size 256 \
--gpu-memory-utilization 0.90 \
--tokenizer-mode deepseek_v4 \
--reasoning-parser deepseek_v4 \
--no-disable-hybrid-kv-cache-manager \
--disable-uvicorn-access-log \
--port "$VLLM_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:${VLLM_PORT}/health" >/dev/null 2>&1; then
echo "vLLM server is ready at http://127.0.0.1:${VLLM_PORT}"
echo "Log: $LOG"
exit 0
fi
if ! kill -0 $PID 2>/dev/null; then
echo "ERROR: vLLM server exited early"
tail -200 "$LOG"
exit 1
fi
echo "Waiting... ($i/240)"
sleep 5
done
echo "ERROR: vLLM server not healthy after 240 retries"
tail -200 "$LOG"
exit 1