Prhub

#32719 [CI] Re-enable GB300 CI jobs

原始 PR 作者 alisonshao 合并时间 2026-08-01 05:22 文件变更 3 提交数 2 评论 6 代码增减 +81 / -84

执行摘要

恢复 GB300 CI 任务,nightly、PR 与 DeepGEMM 测试回线

GB300 是 Blackwell 系列重要推理平台,此前因 runner 不可用(个别 pod 丢失、宿主重启后无法恢复)在 #31764 中禁用相关 CI。作者在 PR body 中说明:两个 GB300 runner 已重新上线并携带 4-gpu-gb300 标签,重新创建的 gb300-4-gpu-03 这次使用了 restartPolicy: Always,宿主重启也不会再让它永久离线;并在真实安装路径(GRACE_BLACKWELL=1 ci_install_deepep.sh)上 smoke test 通过,因此可以恢复被禁用的任务。

值得快速浏览,作为“runner 恢复后如何回滚禁用 CI 的模板”;对源码阅读没有价值。重点关注两点:restartPolicy 对 runner 可用性的保障方法,以及评论中对 EADDRINUSE 的系统性排查(ephemeral 范围、外部占用排除)。不建议精读。

讨论亮点
  1. alisonshao 第一次 rerun 后,bot 回报 4-gpu-gb300 上 4 个测试中 test_deepseek_v3_cutedsl_4gpu 失败(两次在 torch-dist init 因 EADDRINUSE 退出,端口 39539、39537,exit code -3),其余通过;4-gpu-b200test_numa_utils 通过。
  2. alisonshao 的归因分析:失败端口落在宿主 ephemeral 范围 32768-60999 内,属于服务器自己端口规划冲突;主机上该范围 0 监听、0 socket 绑定,排除外部占用;test_flashinfer_a2a 通过说明 NVSHMEM bootstrap 正常。她明确指出这是 main 上 #31731 修复的竞态,与本 PR 无关(本 PR 只取消注释)。
  3. 第二次 rerun 后,4-gpu-gb300 4 个测试与 4-gpu-b200 1 个测试全部通过,恢复的 job 在真实 runner 上稳定;reviewer Fridge003 直接 approve。

实现拆解

  1. 恢复夜间性能套件:在 .github/workflows/nightly-test-nvidia.yml 中取消 nightly-test-perf-4-gpu-gb300 job 的注释,恢复 4 个 model 矩阵(glm5-nvfp4、qwen35-fp8、deepseek-v4-pro-fp4、kimi-k25-nvfp4),并在 workflow 调度列表(on: 事件与 consolidate-metrics 的依赖项)中重新加入该 job。该 job 使用 GRACE_BLACKWELL=1 ci_install_deepep.sh 安装依赖,通过 run_suite.py --hw cuda --suite ... --nightly --continue-on-error 运行,并保留 trace 发布与 coredump 上传步骤。
  2. 恢复 PR 门禁:在 .github/workflows/pr-test.yml 中恢复 base-c-test-4-gpu-gb300,复用 _pr-test-stage.yml 模板,设置 runner_config: 4-gpu-gb300、单文件超时 1800 秒,并把该 job 加回 pr-test-finishneeds 列表,使 GB300 测试重新成为每次 commit 合并前的必过门禁。
  3. 恢复 wheel 构建:在 .github/workflows/release-whl-deepgemm.yml 中恢复 sm100-aarch64 矩阵项(runner: 4-gpu-gb300),保留 sm120 的注释状态(#32193 的 skip 与本次恢复无关)。
  4. 配套说明:三个改动均为 workflow 配置,无产品代码、测试或 schema 变更;实际验证依赖 GitHub Actions 的 rerun(/rerun-test)与两次真实 job 运行。
文件 模块 状态 重要度
.github/workflows/nightly-test-nvidia.yml 夜间测试 modified 5.23
.github/workflows/pr-test.yml PR 测试 modified 4.32
.github/workflows/release-whl-deepgemm.yml 发版构建 modified 3.29

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

评论区精华

首次 rerun 结果:GB300 测试失败报告 测试

github-actions bot 回报 4-gpu-gb300 上 4 个测试只有 3 个通过,test_deepseek_v3_cutedsl_4gpu 失败;4-gpu-b200 上 test_numa_utils 通过。

结论:失败仅限单个 DeepSeek 4-GPU 测试,其余 GB300 测试(test_numa_utils、test_flashinfer_a2a、test_disaggregation_aarch64)均通过。 · 已解决

EADDRINUSE 失败归因讨论 正确性

alisonshao 分析:端口 39539/39537 都在宿主 ephemeral 范围 32768-60999 内,属于服务器自身端口规划冲突;主机上该范围 0 监听、0 socket 绑定,排除外部占用;该问题是 #31731 修复的 get_free_port() 竞态,是 main 上已存在的问题,本 PR 只是取消注释。

结论:确认失败非本 PR 引入,不阻塞恢复 GB300 任务。 · 已解决

二次 rerun 验证 测试

再次 /rerun-test 后,4-gpu-gb300 上 4 个测试与 4-gpu-b200 上 1 个测试全部通过。

结论:恢复的 GB300 CI 任务在真实 runner 上稳定通过,Fridge003 approve。 · 已解决

风险与影响

  1. nightly-test-nvidia.yml 的 job 使用 runs-on: 4-gpu-gb300-nightly,body 明确当前没有任何 runner 携带该标签,恢复的 nightly perf suite 会一直排队,直到运维添加标签——这是最直接的配置与资源不匹配风险。
  2. pr-test.ymlbase-c-test-4-gpu-gb300 重新纳入 pr-test-finish 门禁,若 GB300 runner 再次离线(尽管有 restartPolicy: Always,仍可能因其他原因下线),PR 合并会被 pending 阻塞。
  3. GB300 上曾出现的 EADDRINUSE 失败被定位为 main 上已存在的端口竞态(get_free_port() 与 ephemeral 端口范围冲突),本 PR 不包含修复,依赖 #31731/#33044 等后续 PR;合入时 main 已含修复,残余风险低。
  4. 三个 workflow 文件都是纯注释解除与矩阵恢复,没有本地可执行验证手段,只能依赖 Actions 实际运行;一旦 YAML 缩进或 key 错误会静默失效,但已通过 rerun 实测。

对用户无运行时影响,整个 PR 仅涉及 CI/CD 配置。对开发者:GB300/Blackwell 相关改动会重新触发 4-gpu-gb300 的 PR 测试;nightly 恢复 4 个模型的 GB300 性能基准(glm5-nvfp4、qwen35-fp8、deepseek-v4-pro-fp4、kimi-k25-nvfp4)。对发布流程:sm100-aarch64 DeepGEMM wheel 重新进入构建矩阵。对团队:恢复 Grace-Blackwell 平台的回归防线,同时需要运维补充 4-gpu-gb300-nightly runner 标签避免夜间任务积压。

runner 标签不匹配 夜间任务可能排队 CI 配置无本地验证

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论