shishi c69831f258 feat(pd): PD 长上下文 adaptive concurrency bench(SLO 方案 A,并发 +16)
- 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)
2026-08-11 14:45:36 +08:00

49 lines
2.2 KiB
Bash
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# PD 分离MoonCake RDMA长上下文 adaptive concurrency 配置。
#
# 并发搜索:从 C=16 起 +16 递增SEARCH_ADDEND=16上限 64。
# SEARCH_MULTIPLIER 为占位(库日志无条件引用它),实际走 SEARCH_ADDEND 加法递增。
# 若初始并发就违反 TTFT SLO回退 C=8 → C=1SEARCH_INITIAL_BACKOFF
# 若 C=1 仍严重超 SLO 或 OOM停止该 shape。
# SLO 方案 ATTFT 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 fallbackconfig.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}"