- matrix.json: 3 个 shape(64k/128, 16k/1k, 1k/4k) - run_adaptive_concurrency_pd.sh: PD 专用 adaptive 脚本 - 复用 adaptive_bench_lib.sh(并发搜索/SLO 停止/OOM 检测/完整产物) - server 生命周期函数 no-op(PD 服务常驻,不启停) - 加 --flush-cache(配合 --disable-radix-cache 测纯净 TTFT/TPOT) - 离线环境变量 + 本地 tokenizer(避免 HF 在线下载) - adaptive_config.env: SEARCH_ADDEND=16 +16 递增,上限 64,回退 8/1 - config.env: 新增 get_ttft_slo_ms 分层 SLO(1k->4s, 16k->15s, 64k->30s)
49 lines
2.2 KiB
Bash
49 lines
2.2 KiB
Bash
# PD 分离(MoonCake RDMA)长上下文 adaptive concurrency 配置。
|
||
#
|
||
# 并发搜索:从 C=16 起 +16 递增(SEARCH_ADDEND=16),上限 64。
|
||
# SEARCH_MULTIPLIER 为占位(库日志无条件引用它),实际走 SEARCH_ADDEND 加法递增。
|
||
# 若初始并发就违反 TTFT SLO,回退 C=8 → C=1(SEARCH_INITIAL_BACKOFF)。
|
||
# 若 C=1 仍严重超 SLO 或 OOM,停止该 shape。
|
||
# SLO 方案 A:TTFT P95 随 ISL 分层递增(见 config.env 的 get_ttft_slo_ms)。
|
||
|
||
SEARCH_MULTIPLIER="${SEARCH_MULTIPLIER:-2}"
|
||
SEARCH_START_CONCURRENCY="${SEARCH_START_CONCURRENCY:-16}"
|
||
SEARCH_ADDEND=16
|
||
SEARCH_MAX_CONCURRENCY="${SEARCH_MAX_CONCURRENCY:-64}"
|
||
# add16 初始探测违反 SLO 时回退:16 -> 8 -> 1。
|
||
SEARCH_INITIAL_BACKOFF_CONCURRENCIES="8 1"
|
||
|
||
# 长上下文场景不用整组跳过(64k 单并发 TTFT 可能就较高)。
|
||
# TTFT_GROUP_SKIP_MS 留空禁用。
|
||
|
||
# TTFT_SLO_MS 是 flat fallback;config.env 定义了 get_ttft_slo_ms() 时以函数为准。
|
||
TTFT_SLO_MS="${TTFT_SLO_MS:-4000}"
|
||
ENABLE_TTFT_SLO_STOP="${ENABLE_TTFT_SLO_STOP:-1}"
|
||
|
||
# 吞吐饱和判定(沿用仓库默认)。
|
||
TPS_MIN_GAIN_PCT="${TPS_MIN_GAIN_PCT:-2.0}"
|
||
PLATEAU_PATIENCE="${PLATEAU_PATIENCE:-2}"
|
||
|
||
# Warmup 请求数上限(0=不限,按并发自适应)。长上下文大并发 warmup 昂贵,可设小上限。
|
||
BENCH_WARMUP_MAX_REQUESTS="${BENCH_WARMUP_MAX_REQUESTS:-0}"
|
||
|
||
# 每并发点的请求数 = concurrency * NUM_PROMPTS_MULTIPLIER。
|
||
NUM_PROMPTS_MULTIPLIER="${NUM_PROMPTS_MULTIPLIER:-5}"
|
||
|
||
# random 数据(ShareGPT 抽样)或 random-ids(整数 token)。长上下文建议 random-ids
|
||
# 避免 ShareGPT 前缀干扰测量;BENCH_DATASET_NAME 见 config.env。
|
||
RANDOM_RANGE_RATIO="${RANDOM_RANGE_RATIO:-1.0}"
|
||
|
||
# 长度容差与重试。
|
||
INPUT_LENGTH_TOLERANCE_PCT="${INPUT_LENGTH_TOLERANCE_PCT:-5.0}"
|
||
OUTPUT_LENGTH_TOLERANCE_PCT="${OUTPUT_LENGTH_TOLERANCE_PCT:-10.0}"
|
||
MAX_POINT_RETRIES="${MAX_POINT_RETRIES:-1}"
|
||
SCENARIO_TIMEOUT_S="${SCENARIO_TIMEOUT_S:-3600}"
|
||
GPU_MEM_SAMPLE_INTERVAL_S="${GPU_MEM_SAMPLE_INTERVAL_S:-1}"
|
||
|
||
# 过滤与限制(smoke 用)。
|
||
TP_LIST="${TP_LIST:-}"
|
||
ISL_LIST="${ISL_LIST:-}"
|
||
OSL_LIST="${OSL_LIST:-}"
|
||
GRID_LIMIT="${GRID_LIMIT:-0}"
|
||
DRY_RUN="${DRY_RUN:-0}" |