Prhub

#39421 [ROCm][CI] Resolved nvidia package deps issue

原始 PR 作者 AndreasKaratzas 合并时间 2026-04-10 00:06 文件变更 3 提交数 1 评论 2 代码增减 +44 / -11

执行摘要

修复 ROCm CI/Docker 构建因 NVIDIA 包命名变更导致的依赖问题。

根据PR body描述,动机是修复因NVIDIA包命名变更(cu12/cu13后缀及无后缀变体)导致的ROCm CI/Docker构建失败。作者AndreasKaratzas在body中说明:“Fixes ROCm CI/Docker builds broken by nvidia package naming changes (cu12/cu13 suffixed and unsuffixed variants)。”

该PR主要涉及CI/基础设施调整,对于关注ROCm构建或依赖管理的工程师值得浏览,特别是.pre-commit-config.yaml和Dockerfile.rocm的变更。建议关注:

  1. 排除列表的扩展模式如何应对NVIDIA包命名变化。
  2. Dockerfile.rocm中验证步骤的移除是否在后续PR中补回(从review看未解决)。对于一般开发者,无需精读。
讨论亮点

review中主要讨论点集中在Dockerfile.rocm的修改:gemini-code-assist[bot]指出移除了PyTorch ROCm验证步骤,认为这是重要的安全防护,建议在COPY命令后重新引入该验证。tjtanaa回复“Let's keep the original check”,但最终PR被tjtanaa批准并合并,未在讨论中明确解决此疑虑。从提交历史看,PR只有一次提交,未在合并前添加回验证步骤。

实现拆解

实现分为三个关键部分:

  1. 在.pre-commit-config.yaml中扩展--no-emit-package排除列表,新增无后缀、-cu12和-cu13后缀的NVIDIA包变体,确保uv在依赖编译时不发出这些包。
  2. 在requirements/rocm-test.txt中同步更新排除列表,匹配.pre-commit-config.yaml的变更。
  3. 修改docker/Dockerfile.rocm,将PyTorch ROCm验证步骤替换为持久化构建的wheel到/opt/vllm-wheels/,以便python_only_compile_rocm.sh在移除编译器后能重新安装。
文件 模块 状态 重要度
.pre-commit-config.yaml CI/ 构建配置 modified 7.0
docker/Dockerfile.rocm Docker 构建 modified 6.0
requirements/rocm-test.txt 依赖管理 modified 5.0

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

评论区精华

Dockerfile.rocm 中 PyTorch ROCm 验证步骤的移除 正确性

gemini-code-assist[bot] 指出移除了验证 PyTorch 是否为 ROCm 构建的步骤,认为这是防止错误使用 CUDA 版本的重要防护;tjtanaa 回复“Let's keep the original check”。

结论:PR 被批准合并,但未在讨论中明确是否重新添加验证步骤,提交历史显示未添加。 · 未解决

风险与影响

主要风险包括:

  1. 兼容性风险:Dockerfile.rocm中移除了PyTorch ROCm验证步骤,可能导致构建的Docker镜像错误使用CUDA版本PyTorch而非ROCm版本,影响ROCm环境正确性(gemini-code-assist[bot]指出)。
  2. 维护风险:.pre-commit-config.yaml和rocm-test.txt中大量手动添加的排除项可能随NVIDIA包命名进一步变更而需要持续更新,增加维护负担。
  3. 构建稳定性风险:如果python_only_compile_rocm.sh未能正确从/opt/vllm-wheels/重新安装wheel,可能导致后续步骤失败。

影响范围:

  1. 对用户:无直接影响,主要影响CI和Docker构建流程。
  2. 对系统:修复ROCm CI/Docker构建失败,确保ROCm相关测试和部署能正常运行。
  3. 对团队:提升开发效率,减少因构建失败导致的CI阻塞;但需关注移除验证步骤可能引入的潜在环境问题。影响程度中等,局限于构建基础设施。
移除关键验证步骤 依赖排除列表维护负担

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论