Prhub

#28738 [CI] Publish 4-GPU nightly profiler traces

原始 PR 作者 mmangkad 合并时间 2026-06-20 06:27 文件变更 1 提交数 1 评论 1 代码增减 +46 / -0

执行摘要

4-GPU 夜间 CI 新增 trace 发布步骤

在之前其他 NVIDIA 夜间 job 已经支持了 trace 发布和 profiler 链接显示,但 4-GPU B200 和 GB300 的 job 没有包含该步骤。PR Body 明确指出目的:"Add trace publishing for the 4-GPU B200 and GB300 nightly perf jobs so their profiler links show up like the other NVIDIA nightlies"。

变更简单直接,无需深度 review,但值得关注的是团队如何通过 CI 自动化实现可见性提升。如果正在配置类似流程,可参考 publish_traces.pyPERFETTO_RELAY_URL 的使用方式。

讨论亮点

该 PR 没有 review 评论,仅由 Fridge003 直接批准。Gemini Code Assist 因文件类型不支持而未能生成 review。因此无实质性讨论。

实现拆解

  1. nightly-4-gpu-b200 job 添加 trace 发布:在 nightly-test-nvidia.yml 中,在 nightly-4-gpu-b200 suite 的 "Run test" 步骤后新增 Publish traces to storage repo 步骤。该步骤使用 always() 条件确保即使测试失败也执行,并设置 continue-on-error: true。同时,在 "Run test" 步骤中添加环境变量 TRACE_BASE_URLPERFETTO_RELAY_URLGPU_CONFIG: "4-gpu-b200",供测试和 trace 流程使用。
  2. nightly-4-gpu-gb300 job 添加 trace 发布:对 nightly-4-gpu-gb300 job 做完全相同的一组变更:添加环境变量和发布步骤,其中 GPU_CONFIG 设为 "4-gpu-gb300"
  3. 实现发布逻辑:发布步骤本身是一个 shell 脚本,遍历 test/performance_profiles_*/ 目录下的 trace 目录(由测试流程产生),若存在则调用 python3 scripts/ci/utils/publish_traces.py 上传,上传成功后删除所有 *.json.gz 本地 trace 文件以节省磁盘空间。若没有 trace 目录则跳过。
文件 模块 状态 重要度
.github/workflows/nightly-test-nvidia.yml CI 配置 modified 4.87

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

评论区精华

没有提炼出高价值讨论线程

当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。

风险与影响

  1. 新增 secret 使用GH_PAT_FOR_NIGHTLY_CI_DATA 用于向存储仓库写入,若该 secret 配置不当或权限不足可能导致发布失败,但已设置 continue-on-error: true,不会影响测试本身。
  2. 磁盘清理可能误删find test/performance_profiles_*/ -name '*.json.gz' -delete 在发布成功后删除 trace 文件。若发布步骤之前有其他步骤也在同一目录下产生了 .json.gz 文件(可能性极低),可能被误删。不过该目录命名约定明确由测试框架生成,风险可控。

影响范围:仅影响 NVIDIA 夜间 CI 的 4-GPU B200 和 GB300 job。
影响程度:低。仅新增一个 CI 步骤,不修改任何业务逻辑或测试代码。正确执行后,开发者可以在 CI 报告中看到 profiler 链接,提升调试效率。

新增 secret 依赖 磁盘清理操作可能误删

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论