执行摘要
- 一句话:恢复ROCm CI测试依赖中的通用依赖项,修复AMD CI环境。
- 推荐动作:对于负责CI或ROCm维护的工程师,建议关注此PR以理解依赖管理策略。变更较简单,但讨论揭示了-c与-r的微妙区别以及外部依赖兼容性的重要性。
功能与动机
根据PR body,作者承认在之前的PR中错误移除了通用依赖,需要添加回来以修复AMD CI测试环境。Issue评论中进一步讨论到-c和-r选项的区别以及compressed-tensors的兼容性风险。
实现拆解
实现方案简单直接:在requirements/rocm-test.in文件中添加一行'-r common.txt',引用通用依赖文件。这导致pip-compile工具更新requirements/rocm-test.txt,添加了282行新依赖并删除10行,包括FastAPI组件、AI SDKs和其他工具库。
关键文件:
requirements/rocm-test.in(模块 ci): 控制ROCm测试依赖的源文件,添加'-r common.txt'是关键变更
requirements/rocm-test.txt(模块 ci): 编译后的依赖列表,大量更新反映依赖恢复的影响
关键符号:未识别
评论区精华
Review中,hmellor询问是否因此可以移除-c选项,引发了对依赖管理设计的讨论。Issue评论中深入探讨了-c与-r的区别,以及compressed-tensors pin到transformers<5可能导致AMD CI v5失败。结论是hmellor指出添加所有通用依赖可能破坏CI,建议更精细地添加缺失依赖,但PR已合并。
- Dependency management with -c vs -r (design): hmellor指出-c可能多余,但AndreasKaratzas认为仍有作用,未达成明确结论。
- Compressed-tensors compatibility issue (correctness): 建议需要更精细修复,而不是添加所有通用依赖;后续计划修复compressed-tensors项目。
风险与影响
- 风险:主要风险:引入compressed-tensors(版本0.14.0.1),其pin到transformers<5,可能与AMD CI v5中使用的transformers v5冲突,导致测试失败。此外,大量新依赖可能增加环境复杂性和潜在冲突。
- 影响:影响范围:仅限于ROCm平台的CI测试环境。影响程度:中,修复了依赖缺失问题,但可能引入新兼容性问题,需要监控CI运行状态。
- 风险标记:依赖冲突风险, 测试环境不稳定
关联脉络
- PR #38184 [ROCm][CI] Run Kernels Core Operation Test On MI325 and mitigate flakiness: 同属ROCm CI改进,涉及测试环境配置
- PR #38959 [ROCm][CI] Fix ROCm Dockerfile conftest generation for older Docker parsers: 修复ROCm CI相关问题,属于基础设施维护
参与讨论