Prhub

#22461 [CI] Add GB200 nightly perf regression pipeline

sgl-project/sglang · 作者 csahithi · 合并时间 2026-04-11 06:12

分析状态 已生成
文件变更 6提交数 23 · 评论 10
代码增减 +749 / -0
ci performance run-ci deepseek

执行摘要

新增 GB200 集群夜间性能回归测试管道,监控 DeepSeek-R1 推理基准。

根据PR body描述,动机是'添加一个夜间CI管道,在GB200集群上运行DeepSeek-R1推理基准测试',以监控性能回归并确保系统在高性能硬件上的稳定运行。

该PR主要涉及CI基础设施,值得团队负责CI的工程师精读,以学习Slurm集成和自动化测试设计。对于核心开发人员,关注配置管理和结果处理部分,但变更对核心代码无直接影响。

讨论亮点

Review中主要讨论点:1) 是否添加workflow_dispatch手动触发:Fridge003建议添加以便测试,但csahithi担心资源滥用,最终保持cron-only。2) 失败处理:Fridge003询问是否早期失败,csahithi解释脚本已使用set -e处理并设置超时避免抢占。3) 结果汇总:Fridge003建议写入GitHub summary,csahithi确认已实现。所有讨论均已解决。

实现拆解

实现拆解为以下模块:1) 工作流文件(.github/workflows/nightly-perf-regression-gb200.yml)定义CI触发和任务流;2) 配置文件(scripts/ci/slurm/nightly-configs.yaml)声明基准测试配置,便于扩展;3) 生成矩阵脚本(generate_matrix.py)动态创建GitHub Actions矩阵;4) 启动脚本(launch_gb200.sh)负责在Slurm集群上提交作业;5) 结果处理脚本(process_result.py和summarize.py)解析和汇总测试结果,生成Markdown报告。

文件 模块 状态 重要度
.github/workflows/nightly-perf-regression-gb200.yml CI/Workflow added 8.0
scripts/ci/slurm/nightly-configs.yaml CI/Configuration added 7.0
scripts/ci/slurm/launch_gb200.sh CI/Scripts added 7.0
scripts/ci/slurm/process_result.py CI/Scripts added 6.0
scripts/ci/slurm/summarize.py CI/Scripts added 6.0

分析完成后,这里会展示 LLM 生成的相对完整源码片段和详细注释。

关键符号

generate_matrix.main process_result.main summarize.main

评论区精华

是否添加 workflow_dispatch 手动触发 设计

Fridge003 建议添加以便测试,但 csahithi 担心资源滥用,最终添加后又撤销保持 cron-only

结论:保持 cron-only 触发,避免任意作业启动 · 已解决

GB200 启动失败早期失败处理 正确性

Fridge003 询问是否能在启动失败时早期失败,csahithi 解释脚本已用 set -e 处理并设置超时

结论:脚本已包含失败处理机制,无需额外调整 · 已解决

结果汇总至 GitHub summary documentation

Fridge003 建议将结果写入 GitHub summary,csahithi 确认已实现并提供了示例运行链接

结论:汇总脚本已输出 Markdown 表格至 GitHub step summary · 已解决

风险与影响

技术风险包括:1) 脚本错误可能导致CI管道失败,影响夜间测试;2) 配置错误(如路径或参数)可能使基准测试无效;3) 资源滥用风险,由于使用共享GB200集群,需确保cron-only触发;4) 依赖外部仓库(如srt-slurm)变更可能破坏管道。

对团队影响:自动化性能监控,减少手动测试负担,提升开发效率。对系统影响:新增CI任务,每日运行可能增加集群负载,但通过合理调度和资源管理缓解。对用户影响:间接通过更稳定的性能保证提升产品可靠性。

资源滥用风险 配置错误风险 外部依赖变更风险

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

执行摘要

本PR新增了一个针对GB200集群的夜间性能回归测试管道,通过GitHub Actions和Slurm集成自动化运行DeepSeek-R1推理基准。该管道旨在监控高性能硬件上的性能稳定性,减少手动测试负担,并已通过review讨论优化了安全性和可靠性。

功能与动机

为解决性能回归监控的需求,PR body明确指出“添加一个夜间CI管道,在GB200集群上运行DeepSeek-R1推理基准测试”。动机是确保系统在NVIDIA GB200等高端硬件上的表现一致,避免因代码变更引入性能下降。

实现拆解

实现分为多个模块:

  • 工作流定义.github/workflows/nightly-perf-regression-gb200.yml 文件定义了每日2 AM UTC触发的CI流程,包括矩阵生成、镜像导入和作业执行。
  • 配置管理scripts/ci/slurm/nightly-configs.yaml 以YAML格式声明基准测试配置,支持灵活扩展。
  • 脚本执行launch_gb200.sh 脚本克隆srt-slurm仓库、提交Slurm作业并监控日志;generate_matrix.py 动态生成GitHub Actions矩阵。
  • 结果处理process_result.py 解析原始JSON结果并添加拓扑元数据;summarize.py 汇总所有结果生成Markdown表格。

评论区精华

Review讨论聚焦于设计权衡:

  • 手动触发争议:Fridge003提议添加workflow_dispatch以便测试,但作者csahithi回应:“I didn't add it initially to avoid anybody from launching jobs on the GB200”。最终,为安全起见,保持cron-only。
  • 失败处理优化:Fridge003询问“Can we fail early when gb200 launching fails?”,csahithi解释脚本已用set -e处理失败,并设置360分钟超时以避免资源抢占。
  • 结果展示:Fridge003建议“Maybe write some of them to github summary”,csahithi确认已实现并提供了示例运行链接。

风险与影响

  • 技术风险:脚本错误可能导致CI管道中断;配置错误可能使基准测试无效;依赖外部srt-slurm仓库变更可能破坏集成。
  • 影响分析:对团队,自动化测试提升效率;对系统,新增夜间任务增加集群负载,但通过合理调度缓解;对用户,间接通过更稳定的性能保证受益。

关联脉络

与本PR相关的历史PR包括:

  • PR 22465(更新CI权限):同属CI基础设施改进,强化了权限管理。
  • PR 21960(统一多模态CI测试):展示了仓库在自动化测试工作流上的持续演进趋势。

参与讨论