Prhub

#22461 [CI] Add GB200 nightly perf regression pipeline

原始 PR 作者 csahithi 合并时间 2026-04-11 06:12 文件变更 6 提交数 23 评论 10 代码增减 +749 / -0

执行摘要

新增 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

关键符号

generate_matrix.main process_result.main summarize.main

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

评论区精华

是否添加 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 链接,后续同步到相关引用后会出现在这里。

完整报告

参与讨论