yy-fighting 5c749cda03 feat(pro6000/GLM-5.3): 方案 D/E/F 部署资产入库(TP2PP4 生产配方 / TP8+DFlash2 / PD 分离四角色链)
- scripts: 11 个服务器原样脚本入库(md5 对照表更新至 README);D=60.1 生产原样配方、
  E=v5 DFlash 底稿、F=PD 链四角色部署+launch+双场景压测驱动
- profiles: 新增 6 个 .env(D/E 单机 + F 四角色,均带镜像 digest
  sha256:28e0d260…,对齐 kimi3 PD 多角色先例)
- deploy/PD_CHAIN.md: 方案 F 编排手册(启动顺序 mc-master→prefill→decode→router、
  基础设施依赖表、质量门口径、拆链恢复、÷2 单机等效判决)
- platforms/patches/pro6000/glm53_pd_chain/: sglang 补丁树 vs 镜像原版 11 文件
  unified diff 快照——宿主树无 .git,此为唯一版本记录(DFlash+PP+PD 解锁全集)
- deploy/manifests/: GLM-5.3-NVFP4(47分片)/GLM-5.3-DFlash2(单分片) 权重 md5 清单
- deploy/CURRENT.md: 全集群现役状态页(2026-09-08 八机实测)
- deploy/verify_profile.sh: 防漂移核验工具(digest+参数 token 比对+端口/health,
  已在 60.1 生产容器实测 PASS)
2026-09-08 16:36:15 +08:00

sskj — 多平台大模型推理性能基准测试项目

历史更新见 git log。项目目的与工作流见下方。 项目目的当新显卡GPU/NPU到货时用最短时间完成大模型在该平台上的推理性能评估与部署配置选型。 当前模型DeepSeek-V4-FlashFP8 / INT8后续接入 GLM5.2完全复用本项目的实验与报告流程。 新平台接入 SOPdocs/NEW_PLATFORM_GUIDE.md

这个项目解决什么问题

  1. 新卡快速评估:新平台到货后,按 SOP 复制实验目录、改少量配置,即可跑起与既有平台口径一致的 benchmark横向可比。
  2. 部署配置选型:通过 TP×DP 并行矩阵 + 自适应并发搜索,回答"该平台上哪种并行配置在什么并发下满足 SLO、吞吐最高"。
  3. 数据资产化每轮实验产出结构化结果jsonl/csv/manifest汇总成飞书性能报告并回填多维表格形成可检索的历史数据库。

标准工作流(全流程)

① 跑实验        experiments/<platform>/<experiment>/run_adaptive_concurrency*.sh
                └─ 公共搜索逻辑: scripts/common/adaptive_bench_lib.sh
② 落盘          adaptive_results/<run_id>/
                └─ adaptive_points.jsonl / adaptive_shapes.jsonl / adaptive_summary.* / run_manifest.json
③ 分析          用 Python 从 jsonl 实算禁止目测SLO 口径见 docs/SLO_STANDARDS.md
④ 飞书报告      按飞书 wiki「性能报告编写指南README」写到「显卡性能报告/<平台>」节点下
⑤ 回填多维表格  飞书「模型推理适配 Bench 迭代跟踪」:每成功探测点一行
  • SLO 口径S2 层DSV4-Flash / GLM5.2 均适用):TTFT P95 < 3sTPOT P95 < 50ms,严格小于。详见 docs/SLO_STANDARDS.md
  • 报告编写规范(章节骨架、分析口径、发布流程)以飞书 wiki「显卡性能报告 / 性能报告编写指南README」为准。
  • 多维表格每行 = 一个成功探测点config、Concurrency、Throughput、Input/Output TPS、TTFT/TPOT/E2E P95、SLO达标状态、开发文档链接

目录结构

仓库的目录布局、scripts/common/ 组件职责、结果命名规范与 results.json schema统一见 docs/EXPERIMENT_GUIDE.md(单一权威来源)与 docs/BENCHMARK_WORKFLOW.md

实验索引

TP/DP matrix + 自适应并发(当前主流形态)

实验 说明
experiments/h20/dsv4_h20_vllm_tp_dp_matrix/ H20 + vLLMTP2/DP4、TP4/DP2、TP8/DP1
experiments/h20/dsv4_h20_sglang_tp_dp_matrix/ H20 + SGLang同上
experiments/h200/dsv4_h200_vllm_tp_dp_matrix/ H200 + vLLM
experiments/h200/dsv4_h200_sglang_tp_dp_matrix/ H200 + SGLang
experiments/p800/dsv4_p800_sglang_tp_dp_matrix/ P800 + SGLangINT8TP2/DP4 启动 OOM 无数据,见 config.env 注释)
experiments/pro6000/dsv4_pro6000_vllm_tp_dp_matrix/ RTX 6000D + vLLM
experiments/pro6000/dsv4_pro6000_sglang_tp_dp_matrix/ RTX 6000D + SGLang
experiments/pro6000/kimi3_pro6000_sglang_tp32ep32/ RTX 6000D + SGLangKimi-K3TP32×EP32部署手册见 docs/KIMI_K3_DEPLOY.md
experiments/pro6000/kimi3_pro6000_pd_rdma/ RTX 6000D + SGLangKimi-K3 PD 分离MoonCake RDMA8 节点,见 deploy_pd.sh + docs/KIMI_K3_DEPLOY.md 附录 B

每个目录内:run_bench.sh 跑固定并发矩阵;run_adaptive_concurrency.sh 从 C=1 指数倍增搜饱和点;run_adaptive_concurrency_add16.sh 从 C=16 线性 +16 步进、带 TTFT SLO 停止与回退(当前主力用法,见 experiments/ADAPTIVE_CONCURRENCY_USAGE.md)。

其他实验H200 老形态 & 专项)

实验 说明
experiments/h200/dsv4_h200_sglang/ …/dsv4_h200_vllm/ H200 单引擎 baseline
experiments/h200/dsv4_h200_sglang_vs_vllm/ H200 引擎控制变量对比
experiments/h200/dsv4_h200_dspark/ …/dsv4_h200_vllm_dspark_vs_default/ DSpark 投机解码相关
experiments/h200/dsv4_h200_vllm_mtp_vs_default/ vLLM MTP 对比
experiments/h200/dsv4_h200_vllm_tp{2,4,8}_custom_bench/ 自定义压测客户端(多服务负载均衡)
experiments/h200/dsv4_h200_max_context_length/ …/dsv4_h200_long_context_matrix/ …/dsv4_h200_256k_4k_probe/ …/dsv4_h200_64k_sglang_vs_vllm/ 长上下文专项
experiments/p800/dsv4_p800_sglang/ …/dsv4_p800_max_context_length/ …/dsv4_p800_long_context_matrix/ …/dsv4_p800_256k_4k_probe/ P800 baseline 与长上下文专项
experiments/pro6000/glm53_nvfp4_pro6000d_sglang_dual_scenario_bench/ RTX 6000D + SGLangGLM-5.3-NVFP4 双场景压测标准16k/512 高并发 + 128k/64k 90% 命中低并发;真实语料 run-id 窗口纪律 + 三套部署配置 A/B/CAR基线与口径见目录 README部署 profile 见 deploy/profiles/pro6000/glm53_nvfp4_*
experiments/TEMPLATE/ 老式固定场景实验模板

快速复现

以 H20 vLLM 自适应并发搜索为例(其他平台同理,换目录即可):

# 1. dry-run只打印搜索计划不加载模型
cd experiments/h20/dsv4_h20_vllm_tp_dp_matrix
DRY_RUN=1 bash run_adaptive_concurrency_add16.sh

# 2. 单组合冒烟:只测 TP=8、1K/128并发上限 8
RUN_ID=smoke-$(date +%Y%m%d-%H%M%S) \
TP_LIST="8" ISL_LIST="1024" OSL_LIST="128" GRID_LIMIT=1 SEARCH_MAX_CONCURRENCY=8 \
bash run_adaptive_concurrency_add16.sh

# 3. 正式跑(放 tmux
tmux new-session -d -s h20-vllm-adaptive \
  "cd $(pwd) && bash run_adaptive_concurrency_add16.sh"

更多用法(断点续跑 RESUME_RUN_ID、常用覆盖参数experiments/ADAPTIVE_CONCURRENCY_USAGE.md

新平台 / 新模型接入

  • 新显卡:按 docs/NEW_PLATFORM_GUIDE.md 执行,核心动作是复制 experiments/h20/dsv4_h20_<engine>_tp_dp_matrix、改 config.env / adaptive_config.env / matrix.json 三件套,再加 platforms/<chip>.env
  • 新模型GLM5.2:复用同一实验目录结构,新增 experiments/<platform>/glm52_<platform>_<engine>_tp_dp_matrix/改模型路径、量化与引擎启动参数即可SLO 口径、报告流程、多维表格结构不变。

环境要求

  • 公共bash、Python 3、sglang.bench_serving 压测客户端Docker 或 venv绘图分析用 envs/charts/matplotlib
  • 各平台的镜像 / venv / 模型路径见对应实验目录的 config.envplatforms/<chip>.env模型与数据集路径是机器相关的,换机器时按实际路径调整。
  • 环境搭建规范见 envs/README.mdenvs/UV_ENV_SETUP.md

运维与部署分层

  • 模型团队用 deploy/profiles/<platform>/<model>-<engine>.envpython -m sskj.deploy start|stop|status 管理服务生命周期。
  • 运维只跑测试:python -m sskj.bench run --url http://<host>:<port> --platform <platform> --experiment <name> --profile smoke|matrix
  • 运维手册见 ops/README.md,统一测试层复用现有 scripts/common/parse_backend.py 等指标口径。

注意事项

  • 提交内容:实验代码 + 最终产物results.json / report.md / adaptive 的 jsonl 与 summary日志、raw_outputs、gpu_logs 不入库(.gitignore 已排除)。
  • 仓库会clone到多台机器实验脚本内引用公共组件一律用 ${SCRIPT_DIR}/../../../scripts/commonTEMPLATE 为 ../../),不要写绝对路径。
Description
No description provided
Readme 1.4 GiB
Languages
Python 63.9%
Shell 32.8%
Cuda 3.3%