sskj/README.md
2026-08-27 14:25:34 +08:00

25 KiB
Raw Blame History

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

更新2026-08-27 13:53:26 CST

完成 Kimi-K3 八节点标准 PD 第一阶段。P 组 601-604 使用 PP8×TP4×EP4、FlashInfer MXFP4、Chunk 8KD 组 605-608 使用 PP1×TP32×EP32、Marlin通过 Mooncake 0.3.12.post1 和 4 Rail RDMA 传输;统一 P/D page_size=6416K→1 与 16K→512 的 C1/C8 共 91/91 请求成功。代表结果16K→1 C8 Input TPS 6364.31、TTFT P50/P95 20.555/21.345 秒16K→512 C8 TPOT P50/P95 63.20/66.55 ms。详见 experiments/pro6000/kimi3_pro6000_pd_pp8_standard/README.md

更新2026-08-03 10:02:07 CST

将 DeepSeek-V4-Pro 双机 Pro6000D SGLang Phase 3 正式 Run dsv4pro-phase3-20260802-003213 的六份原始 .nsys-rep 纳入 GitLab hzy 分支,并通过 Git LFS 保存;普通 Git 仅保存六份报告的 SHA256 清单。Bench 文本、请求响应、服务日志、环境快照不随原始 Trace 上传;约 2.44 GB 的临时 .sqlite 也不上传,因为它可由 .nsys-rep 重新导出且不构成独立证据。

更新2026-08-02 01:25:30 CST

完成 DeepSeek-V4-Pro 双机 Pro6000D SGLang Phase 3 时间线 Profiling。正式 Run dsv4pro-phase3-20260802-003213 在 21 分 03 秒内完成 Decode Control、Decode+128K Prefill Mixed、独立 128K Prefill 三段 CaptureHead/Worker 各生成 3 份 Nsight Systems 报告及 Stats合计 6/6 校验通过。Control 以 GEMM/MoEHead 44.7%)和 NCCL31.9%为主Mixed 中 NSA/MLA 升至 29.7%NCCL 为 23.1%,说明 Chunked Prefill 的 Sparse Attention/MLA 计算进入同一 TP16 GPU 关键路径。Prefill Trace 漏采 3 个 Rank 的 CUDA 活动,因此暂不判断固定慢 Rank也不将 NCCL 单独定性为根因。实验结束后两节点容器和 16 张 GPU 均已清理。

更新2026-08-02 00:35:00 CST

修复 DeepSeek-V4-Pro 双机 Pro6000D SGLang Phase 3 混合 Capture 时序。两轮失败 Run 证明当前镜像的 /start_profile 会阻塞 API 事件循环Profile 激活后发送的 128K 请求只能在捕获结束后进入 Scheduler因此异步调用仍无法覆盖注入。最终实现先稳定 Decode 背景,再通过原生 /generate + input_ids 送入 128K 请求;确认首个 8K Chunk Prefill 已开始后才捕获 32 个 Mixed Step。Control Trace 单独提供纯 Decode 基线Mixed Trace 捕获真实 Prefill+Decode Treatment。混合背景缩为单波 32 请求Profiling 专用 watchdog 提升至 1800 秒,异常退出会自动将 manifest 标记为 FAILED

更新2026-08-01 19:34:34 CST

完成 DeepSeek-V4-Pro 双机 Pro6000D SGLang Phase 3 正式时间线代码交付。正式 Control 与混合背景统一为 1K -> 1K, C=32;所有 /start_profile 请求显式记录 start_stepnum_stepsControl 在活跃 Decode 后跳过 2 Step混合场景先保留 2 个纯 Decode Step 再注入 128K -> 1,长 Prefill 从首个 Chunk 开始捕获。继续沿用已通过的双节点 PyTorch/Nsight smoke、16 Rank/6 份 Nsight 报告 fail-closed 门禁和单服务三段 Capture Range正式结果尚未生成因此不创建 phase3_exp.htmlphase3_code.html

更新2026-08-01 15:24:52 CST

完成 DeepSeek-V4-Pro 双机 Pro6000D SGLang Phase 2.5 RDMA 需求建模。正式 Run dsv4pro-phase2_5-20260801-130007 完成 Scout 5/5 与 Confirm 6/664K Prefill 在 C=16 已进入约 2,984 input tok/s、79.90 Gbit/s/rail 的平台C=32/64 不再显著增长。拟合通信强度为 3.332 MB/input-token/rail单 Rail 400G 需约 15,006 input tok/s约为当前平台的 5 倍,因此当前是模型计算/实现吞吐先饱和,不是 RDMA 先饱和。新增 phase2_5_exp.htmlphase2_5_code.html、精简证据集和可复用的模型部署 RDMA 需求评估流程;实验结束后双节点容器与 16 张 GPU 已清理。

更新2026-08-01 02:40:00 CST

新增 DeepSeek-V4-Pro 双机 Pro6000D SGLang Phase 2.5 RDMA 需求建模唯一入口。实验保持现有 TP16/EP2 服务参数不变,先以 64K -> 1 的 C=1/4/16/32/64 建立 Input TPS 与每 Rail HCA 带宽关系,再自动选择平台前、拐点和最大稳定并发,对 64K -> 1K 重复确认。结果将给出每 Token 跨机字节数、400G 所需 Token TPS、并发饱和曲线和“模型计算先饱和还是 RDMA 先饱和”的机器可读结论;正式结果尚未生成,因此暂不创建 Phase 2.5 HTML 档案。

更新2026-07-31 19:02:00 CST

Phase 3 Nsight smoke 已在 Head/Worker 各生成一份可解析报告;首份时间线确认 NCCL AllReduce、Sparse MLA、CUTLASS GEMM 与 MoE kernel 均可见。根据 smoke 修正正式 captureDecode 对照和混合负载必须等服务实际进入 Decode batch 后才触发;每段等待本节点全部 8 个 rank 完成,而非任一 rank双节点近同步停止以减少 Gloo 断链噪声。nsys stats 改为可写临时 SQLite、保留 Kernel/API/NVTX 高价值汇总并删除临时库,结果与报告数量均 fail-closed。

更新2026-07-31 18:53:00 CST

Phase 3 PyTorch Profiler 首轮 smoke 已证明双节点 16 个 rank 均可完成 trace 写盘Head/Worker 分别生成 8 份、约 1.5/1.4 GB 压缩 trace。修复当前 OpenSSH 不接受 scp remote:/path/. 导致 Worker 结果未回收的问题,改为 SSH tar 流式传输;正式入口不再忽略回收失败,并新增至少 16 份 PyTorch rank trace、至少 2 份 Nsight 节点报告的结果门禁。

更新2026-07-31 18:43:00 CST

为 Phase 2 实验档案第 11 节的 GPU/DCGM、CPU/进程/NUMA、双 Rail RDMA、PCIe/NCCL 四组结果补充服务器证据路径。每组同时标明结构化汇总 CSV、Head/Worker 原始采样日志、通信原始输出及实际命令文件,便于从结论直接追溯最终 Run dsv4pro-phase2-20260731-163620 的证据。

更新2026-07-31 18:38:00 CST

新增 DeepSeek-V4-Pro 双机 Pro6000D SGLang Phase 3 时间线分析唯一入口。代码提供双节点环境审计、PyTorch Profiler smoke、Nsight Systems smoke 与三段正式 capture range覆盖 Decode 对照、Decode 背景叠加 128K Prefill、独立 128K Prefill沿用 Phase 1 已验证的 TP16/EP2、CUDA Graph 与双 Rail NET/IB 配置,不重复 Phase 2 的硬件采样和通信微基准。阶段尚未产出正式结果,因此按档案门禁暂不创建 phase3_exp.htmlphase3_code.html

更新2026-07-31 17:22:20 CST

完成 DeepSeek-V4-Pro 双机 Pro6000D SGLang Phase 2 正式收口。最终 Run dsv4pro-phase2-20260731-163620 在 28 分 44 秒内完成 8/8 benchmark、8/8 精确测量窗口和 18/18 采集器启停;混合 Prefill 令 Decode Output TPS 下降 23.96%、TPOT P95 增加 66.75%。GPU/CPU/NUMA、双 Rail RDMA、PCIe P2P、8/16-GPU AllReduce 与 NCCL_CROSS_NIC=0/1/2 数据均已归档;证据排除原始 Rail 带宽饱和、整机 CPU 饱和、GPU 降频和 CROSS_NIC 选择作为首要原因。实验结束后两节点容器、端口和 16 张 GPU 均已清理。

更新2026-07-31 17:08:30 CST

修正阶段档案门禁的适用范围:规则禁止在 Phase 尚无阶段结果时提前创建 HTML但不追溯撤下已经完成正式 Run 和结果汇总的档案。Phase 2 已有正式 Run dsv4pro-phase2-20260731-130125 的 8/8 结果,因此恢复 phase2_exp.htmlphase2_code.html 及主计划、Phase 1/2 页面之间的双向导航。

更新2026-07-31 17:01:56 CST

固定阶段档案生成门禁:某个 Phase 在实验结束、结果汇总并完成汇报确认前,不创建或维护 phaseN_exp.htmlphaseN_code.html;进行中只维护代码、原始结果和主计划状态。阶段确认完成后再一次性生成两份最终 HTML。Phase 2 尚待最终正式复跑,因此暂时撤下其两份 HTML 及导航;已完成的 Phase 1 档案继续保留。

更新2026-07-31 16:46:05 CST

统一 DeepSeek-V4-Pro 推理优化档案命名与导航Phase 1/2 实验页分别更名为 phase1_exp.htmlphase2_exp.html,代码页保持 phase1_code.htmlphase2_code.html。主计划中的入口统一为“打开 Phase N 实验档案 / 代码详解”并为实验页与代码页补齐双向链接。Phase 1 状态同步为固定点 11/11、混合 A/B 3/3、阶段总结果 14/14。

更新2026-07-31 16:27:58 CST

完成 Phase 2 Worker 通信代码分发的双节点真机 smoke test。Run dsv4pro-phase2-stage-smoke-20260731-162326 依次通过 Head/Worker P2P、两组单机 8-rank AllReduce 和一组双机 16-rank AllReduce全部 wrong_values=0。两节点暂存文件 SHA256 一致;结束后 /tmp 暂存、通信容器和 GPU 进程均已清理。本次使用 1 MiB、单次迭代仅验证执行链路不作为正式性能数据。

更新2026-07-31 16:18:35 CST

修复 Phase 2 双节点通信基线在 Worker 启动后立即退出的问题。唯一入口仍只在 Head 174.1.51.5 执行;脚本现在按 RUN_IDcommunication_baseline.py 自动暂存到 Head/Worker 的 /tmp,校验 SHA256 后只读挂载进通信容器并在结果目录保存当次源码与哈希。Worker 174.1.51.7 不再依赖同路径 Git 工作树,异常退出也会清理暂存文件。新增回归测试后 Phase 2 单元测试为 9/9。

更新2026-07-31 15:59:49 CST

在 DeepSeek-V4-Pro 双机 Pro6000D 推理优化主计划和 Phase 2 实施档案中增加 phase2_code.html 的直接入口,便于从阶段状态、实验命令与结果页面跳转到对应代码调用关系和逐行实现说明。

更新2026-07-31 15:33:02 CST

完成 DeepSeek-V4-Pro 双机 Pro6000D SGLang Phase 2 最终采集代码。提交 30664faa41f8 新增正式 benchmark 精确时间窗、双节点 DCGM fail-closed 门禁、进程级 5 秒 Host 采样、机内 PCIe P2P 全矩阵、单机 8-rank 与双机 16-rank AllReduce、NCCL_CROSS_NIC=0/1/2 A/B以及与 Phase 2 第 5 节逐项对应的结构化 CSV 和 report.md。通信/NCCL 术语档案同步补充 DCGM、Host Engine、SM、Warp、NUMA、NIC、PIX/SYS、algbw/busbw 与 Linux 监控工具;最终双机复跑前不进入 Phase 3。

更新2026-07-31 14:15:00 CST

恢复并完善 Phase 2 档案中的采集命令与指标解释。第 5 节现按实际实现记录时间 Marker、nvidia-smi、DCGM Field 10011005/1009/1010、mpstatpidstatperfnumastatsarethtoolmlx5_0/mlx5_3 HCA Counter并逐项说明字段含义、分析方法及对应原始/汇总文件。同步记录首轮线程级 1 秒 pidstat 日志过重,后续应改为进程级 5 秒采样。

更新2026-07-31 13:59:12 CST

补充 Phase 2 双节点执行边界:正式实验前仅需在 Worker 174.1.51.7 启动并验证 nvidia-dcgm Host Engine完整 run_hardware_contention_attribution.sh all 入口仍然只在 Head 174.1.51.5 执行,由其通过 SSH 管理 Worker 服务与采集器。文档明确列出两台节点分别需要运行的命令,避免在 Worker 重复启动整套实验。

更新2026-07-31 13:40:03 CST

完成 DeepSeek-V4-Pro 双机 Pro6000D SGLang TP16 的 Phase 2 首轮硬件归因。正式 Run dsv4pro-phase2-20260731-130125 在 26 分 26 秒内完成 8/8 个 benchmark无 OOM混合负载下 Decode Output TPS 下降 24.03%TPOT P95 增加 66.79%。两端双 Rail NET/IB + GDRDMA 流量均衡、错误增量为 0最高每 Rail 平均约 70 Gbit/s原始 RoCE 带宽未饱和;整机 CPU 与 GPU 频率也未见全局瓶颈。档案补充了 6000D 无 NVLink、机内 PCIe P2P/IPC、跨机 GDRDMA 的真实通信路径,并记录 Worker DCGM Host Engine 未启动、Case 时间窗过宽和 pidstat 日志过大的采集限制。

更新2026-07-31 13:11:40 CST

新增 Phase 1 与 Phase 2 的独立代码详解 HTML 档案,行号固定到提交 ca1f2f63375c。文档从唯一入口展开到配置来源、文件调用关系、双机服务与 RDMA 门禁、benchmark 请求生成、混合 Prefill/Decode 时序、两节点采集器、Case 时间窗切片和结构化结果,并为 MEM_FRACTION_STATIC 等关键变量记录“默认值定义 → Shell 传递 → 服务参数 → Run 证据”的完整追踪路径。代码档案保持独立,不加入主计划 HTML 或阶段介绍 HTML 的导航。

更新2026-07-31 11:57:13 CST

实现 DeepSeek-V4-Pro 双机 Pro6000D SGLang TP16 的 Phase 2 硬件与资源竞争归因。新增唯一入口 run_hardware_contention_attribution.sh,内部复用 Phase 1 的双机服务与 benchmark不要求用户手工启动 Phase 1默认重放长/并发 Prefill、普通/持续/长上下文 Decode 和混合 Prefill/Decode A/B。Head 与 Worker 在同一诊断窗口采集 GPU、DCGM、CPU、进程、NUMA、eth0/eth3mlx5_0/mlx5_3 RDMA 数据,并保存 Case marker、完整命令、Manifest 和结构化汇总。正式执行只需运行 Phase 2 的 all 入口。

更新2026-07-31 10:45:24 CST

为 DeepSeek-V4-Pro 双机 Pro6000D SGLang TP16 的 Phase 2 硬件归因同步宿主机监控环境:174.1.51.5174.1.51.7 均安装 sysstat 12.5.2pidstatmpstatsar -n DEV,EDEV 的 1 秒实时采样验证通过。两节点的 sysstat service/timer 保持 disabled/inactive,正式实验由编排脚本显式启停采集,避免后台周期任务干扰 Case。Phase 2 必须同时保存 Head/Worker 的 sysstat、GPU、SGLang 与 RDMA 时间序列;docker top 用于 PID 映射,perf 用于 CPU 硬件事件,numastat 用于 NUMA 亲和,mlx5_0/mlx5_3 HCA 计数器用于 RoCE 数据面,均不能由 sysstat 完整替代。

更新2026-07-31 00:11:25 CST

完成 DeepSeek-V4-Pro 双机 Pro6000D SGLang TP16 的长 Decode 补测Run dsv4pro-phase1-long-decode-20260730-234236 结果 2/2 成功。1K → 4K, C=16 生成 65,536 个目标输出 tokenOutput TPS 为 310.02TPOT P95 为 50.33 ms相比 1K → 1K, C=16Output TPS 增加 4.99%TPOT P95 仅增加 0.62%。128K → 1K, C=1 生成完整 1,024 tokenTTFT P95 为 49.326 sTPOT P95 为 32.24 ms其 TTFT 与 128K → 1 纯 Prefill 仅差 2.03%TPOT P95 相比 1K Context 仅增加 2.47%。Phase 1 至此共完成 11 个固定点和 3 个混合结果14/14 成功;两节点容器和 16 张 GPU 已清理。

更新2026-07-30 23:38:42 CST

为 DeepSeek-V4-Pro 双机 Pro6000D SGLang TP16 Phase 1 增加两个最小长 Decode 补充场景:1K → 4K, C=16 用于观察持续长输出、KV 增长与稳态 Decode128K → 1K, C=1 用于观察长上下文上的 Decode Attention。继续复用唯一 run_quick_map.sh 入口和 CASE_IDS 过滤,不新增启动脚本;场景验证单测由 9 点更新为 11 点Shell、3 个 Python 单测和两点 Dry-run 已通过。

更新2026-07-30 23:06:01 CST

完成 DeepSeek-V4-Pro 双机 Pro6000D SGLang TP16 Phase 1 正式 quick-map。Head 与 Worker 均通过 mlx5_0/mlx5_3 双 Rail NET/IB + GDRDMA 门禁9 个固定点和 3 个混合 A/B 结果共 12/12 成功,总用时 28 分 36 秒。32K/128K 单请求 Prefill 输入吞吐为 2,652.76/2,710.16 token/s在 C=32 Decode 中注入一个 128K Prefill 后Output TPS 下降 24.08%TPOT P95 增加 66.55%。阶段 HTML 已重写为只保留成功结果,并补充正式汇总、运行清单和 Phase 2 三个诊断负载;两节点容器和 16 张 GPU 已清理。

更新2026-07-30 18:40:53 CST

为 DeepSeek-V4-Pro 双机 TP16 quick-map 的唯一入口新增 CASE_IDS 场景过滤和未知 Case 预检,可在完整九点实验前先跑 1K/32K Prefill 与 C1/C32 Decode 四点 Sanity运行清单会记录实际过滤条件。同步精简阶段档案正文只保留最终成功 Run 与有效结论,历史失败压缩到末尾经验教训。

更新2026-07-30 17:54:30 CST

为 DeepSeek-V4-Pro 双机 TP16 quick-map 加入 RDMA fail-closed 启动保护。唯一 Shell 入口现在只允许计算网 eth0/eth3 与其 RDMA HCA mlx5_0/mlx5_3,在两端预检并透传 rdma_cm/uverbs0/uverbs3,服务健康后必须从两端 NCCL INFO 日志证明 NET/IB 和两条 HCA 均已启用,否则 benchmark 不会开始。运行清单新增 RDMA 开关、强制校验和设备路径;语法、结果解析器单测、完整 dry-run 及非法网卡/HCA 负例均已通过,真机 NET/IB 验证与 Phase 1 重跑尚未执行。

更新2026-07-30 17:45:18 CST

修正 DeepSeek-V4-Pro 双机 TP16 quick-map 的 NCCL Socket 网卡错误。控制组确认服务容器未暴露 /dev/infinibandNCCL 实际回退 NET/Socket;旧 quick-map 又误选低速非计算网,导致冷 1K/32K Prefill 比 eth0 计算网 Socket 控制组慢约 10.9 倍/13.25 倍。默认 NCCL_SOCKET_IFNAME 已改为 eth0;旧约 65 token/s 结果降级为事故证据Phase 2 暂停并等待修正后的 Phase 1。新增双机通信/NCCL 术语 HTML、网络审计报告并保留原 /data/qqt/sskj TP16 脚本不变。

更新2026-07-30 16:38:41 CST

完成 DeepSeek-V4-Pro 双机 TP16 新旧脚本 TTFT 口径审计。确认旧产物受到 16 条 Warm-up、跨 Case 固定 Seed 递增长度、未清 Prefix Cache 及前一轮残留服务状态影响;同配置冷请求稳定复现约 16 秒/1K。新增 Phase 1 结果、脚本审计和 Phase 2 设计 HTML 档案,后续 Cold/Warm Prefix 指标分开报告。

更新2026-07-30 14:33:52 CST

新增独立的 dsv4pro_pro6000d_2node_sglang_tp16_quick_map 快速性能地图与混合干扰 A/B。实验只保留一个 Shell 入口;旧 TP16 全量脚本保持不变。首轮真机验证已确认双机 TP16 服务可用,并据实测耗时将快速矩阵缩为一波请求,同时修正 Warm-up 污染 Prefix Cache 和混合负载注入时序。

历史更新见 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/dsv4pro_pro6000d_2node_sglang_tp16_quick_map/ 双机 RTX 6000D + DeepSeek-V4-ProSGLang TP16 快速性能地图与混合干扰 A/B
experiments/pro6000/dsv4pro_pro6000d_2node_sglang_hardware_contention_attribution/ 双机 RTX 6000D + DeepSeek-V4-ProSGLang TP16 硬件与资源竞争归因
experiments/pro6000/kimi3_pro6000_pd_pp8_standard/ Kimi-K3 八节点标准 PDP=PP8/TP4/EP4、D=PP1/TP32/EP32、Mooncake 4 Rail RDMA含 16K→1/512 C1/C8 原始证据

TP/DP matrix 目录内:run_bench.sh 跑固定并发矩阵;run_adaptive_concurrency.sh 从 C=1 指数倍增搜饱和点;run_adaptive_concurrency_add16.sh 从 C=16 线性 +16 步进、带 TTFT SLO 停止与回退(当前主力用法,见 experiments/ADAPTIVE_CONCURRENCY_USAGE.md)。专项 quick-map 的入口以对应目录 README 为准。

其他实验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/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

注意事项

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