执行摘要
- 一句话:为 AMD 夜间测试增加 VRAM 清理步骤
- 推荐动作:建议合并此 PR。它是 CI 质量的常规维护,与 PR 测试工作流的行为对齐,能有效提升夜间测试的可靠性。对于需要维护 CI 管线的团队,本 PR 的改动模式(在容器启动前清理 VRAM)值得在其他类似场景(如共享 runner 的多租户环境)中参考。
功能与动机
PR body 指出 AMD 夜间测试频繁因 RuntimeError: The memory capacity is unbalanced 失败,根源是前序任务取消/超时/崩溃后在共享 runner 上留下孤儿进程或 HIP 上下文占用 VRAM,而夜间工作流未像 PR 工作流那样在启动容器前执行 ensure_vram_clear.sh。
实现拆解
- 问题分析:定位到
init_torch_distributed 中 VRAM 不平衡检查失败的原因为 GPU 残留进程。
- 修改文件:编辑
.github/workflows/nightly-test-amd.yml(35 个作业)和 .github/workflows/nightly-test-amd-rocm720.yml(37 个作业)。
- 添加步骤:在每个作业的
Checkout 之后、Setup docker 之前插入 Ensure VRAM is clear 步骤,运行 bash scripts/ci/amd/ensure_vram_clear.sh rocm。
- 特殊处理:对于
nightly-test-amd-rocm720.yml 中的两个 DSv4 作业,步骤放在 Resolve DSv4 image tag 之后、Setup docker (ROCm 7.2 DSv4) 之前,避免影响镜像解析。
- 测试验证:通过内部 Action run #25503286022 验证修改正确。
关键文件:
.github/workflows/nightly-test-amd.yml(模块 CI工作流;类别 infra;类型 infrastructure): 35 个测试作业均需在 Setup docker 前增加 VRAM 清理步骤,是该 PR 的主体变更之一。
.github/workflows/nightly-test-amd-rocm720.yml(模块 CI工作流;类别 infra;类型 infrastructure): 37 个作业(含 2 个 DSv4)需要新增清理步骤,DSv4 作业的步骤位置特殊处理。
关键符号:未识别
评论区精华
该 PR 无人工 review 评论(仅 Gemini 机器人的自动回复)。已获 CODEOWNER bingxche 批准,无争议。
风险与影响
- 风险:风险极低:
- 新增步骤仅清理环境,不影响产品代码逻辑。
- 镜像解析步骤的依赖关系已通过插入顺序正确维护。
- 可能轻微增加 CI 作业时间(数秒),但相比整体测试时长可忽略。
- 影响:影响范围限于 CI 基础设施:
- 对用户:无影响。
- 对开发团队:减少 AMD 夜间测试因环境问题导致的假阳性失败,节省排查时间。
- 对系统:复用已有脚本,无额外维护负担。
- 风险标记:暂无
关联脉络
参与讨论