47 lines
1.7 KiB
Bash
47 lines
1.7 KiB
Bash
# TP×DP matrix experiment for DeepSeek-V4-Flash on H200 (8 GPUs).
|
||
# Tests vLLM with three parallel configurations:
|
||
# TP=2, DP=4 -> 2 GPUs per replica, 4 replicas
|
||
# TP=4, DP=2 -> 4 GPUs per replica, 2 replicas
|
||
# TP=8, DP=1 -> 8 GPUs, no data parallelism
|
||
|
||
EXPERIMENT="dsv4_h200_vllm_tp_dp_matrix"
|
||
MODEL_NAME="DeepSeek-V4-Flash"
|
||
MODEL_PATH="/data/models/DeepSeek-V4-Flash"
|
||
SERVED_MODEL_NAME="deepseek-v4-flash"
|
||
|
||
VLLM_PORT="${VLLM_PORT:-30030}"
|
||
# vLLM 0.24.0 multi-port DP supervisor listens on this hard-coded port.
|
||
VLLM_DP_SUPERVISOR_PORT="${VLLM_DP_SUPERVISOR_PORT:-9256}"
|
||
# The bench client does NOT talk to the supervisor directly; we put a
|
||
# round-robin proxy in front of the DP child servers.
|
||
VLLM_DP_PROXY_PORT="${VLLM_DP_PROXY_PORT:-30040}"
|
||
|
||
VENV_VLLM="${VENV_VLLM:-/data/user1/yy/envs/vllm}"
|
||
VENV_SGLANG="${VENV_SGLANG:-/data/user1/yy/envs/sglang}"
|
||
# The benchmark client is sglang.bench_serving, even when the backend is vLLM.
|
||
VENV_CLIENT="${VENV_CLIENT:-$VENV_SGLANG}"
|
||
|
||
export CUDA_VISIBLE_DEVICES="${CUDA_VISIBLE_DEVICES:-0,1,2,3,4,5,6,7}"
|
||
|
||
# Parallel configurations to test. Format: "TP DP"
|
||
declare -a PARALLEL_CONFIGS=(
|
||
"2 4"
|
||
"4 2"
|
||
"8 1"
|
||
)
|
||
|
||
# Matrix and concurrency rules are defined in matrix.json by default.
|
||
# This file is consumed by generate_scenarios.py.
|
||
MATRIX_FILE="${MATRIX_FILE:-${SCRIPT_DIR:-.}/matrix.json}"
|
||
MATRIX_MODE="${MATRIX_MODE:-Y}"
|
||
|
||
# Sampling density for concurrency. 0 means use the default heuristic in
|
||
# generate_scenarios.py (6-8 points, or all integers when range is small).
|
||
CONCURRENCY_SAMPLES="${CONCURRENCY_SAMPLES:-0}"
|
||
|
||
# Per-scenario timeout to avoid hangs (seconds).
|
||
SCENARIO_TIMEOUT_S="${SCENARIO_TIMEOUT_S:-1800}"
|
||
|
||
# GPU memory sampling interval (seconds).
|
||
GPU_MEM_SAMPLE_INTERVAL_S="${GPU_MEM_SAMPLE_INTERVAL_S:-1}"
|