Prhub

#34644 [release 2.11] Update to torch 2.11

原始 PR 作者 atalman 合并时间 2026-04-08 09:55 文件变更 26 提交数 12 评论 78 代码增减 +114 / -88

执行摘要

升级 PyTorch 及相关依赖至 2.11 版本,涉及全平台构建和 CI 配置。

PR body 中表述为“Update to Torch 2.11”,旨在跟进 PyTorch 最新版本以获取性能改进和新特性。

建议技术管理者和工程师精读此 PR,以理解大规模依赖升级的最佳实践,特别是多平台协调和风险缓解策略。关注 Docker 镜像变更和测试跳过决策,这些是权衡兼容性与新特性的关键点。

讨论亮点

review 中的核心讨论:

  • CPU 依赖调整:fadara01 指出在 AArch64 平台上,torch==2.11.0 会安装不必要的 CUDA 库,建议使用 +cpu 后缀,此建议被采纳。
  • Docker 镜像变更:mgoin 询问为何将构建基础镜像从 Ubuntu 20.04 升级到 22.04,担心 glibc 兼容性问题;atalman 回应称 CUDA 13.0.0 只有 20.04 镜像可用,但最终镜像保持 22.04 以匹配最终镜像。
  • 测试问题:AndreasKaratzas 提到 torchao 测试在 2.11 版本中仍然失败,但问题在 nightly 版本中已存在,因此无新增风险。
  • 版本一致性:讨论确保不同平台(如 CPU、CUDA)的版本声明一致。

实现拆解

实现分为多个模块:

  1. 构建配置:更新 CMakeLists.txt 中的 TORCH_SUPPORTED_VERSION 为 2.11.0。
  2. 依赖管理:修改所有 requirements 文件(如 cuda.txt、cpu.txt、rocm-build.txt 等)中的 torch、torchvision、torchaudio 版本。
  3. Docker 配置:更新 Dockerfile 中的 CUDA 版本至 13.0.0,基础镜像从 Ubuntu 20.04 升级到 22.04,并调整 NCCL 安装逻辑。
  4. CI/CD:更新 Buildkite 配置文件(如 test-amd.yaml、quantization.yaml),升级 torchao 至 0.17.0,并跳过因 PyTorch 2.11 导致的 Helion 内核测试。
  5. 代码适配:在 vllm/utils/torch_utils.py 中更新 HAS_OPAQUE_TYPE 条件,并在 vllm/model_executor/layers/fused_moe/runner/moe_runner_base.py 中修复 FakeScriptObject 处理。
文件 模块 状态 重要度
requirements/cuda.txt 依赖管理 modified 8.0
docker/Dockerfile 容器化 modified 8.0
vllm/utils/torch_utils.py 工具函数 modified 6.0
.buildkite/test_areas/quantization.yaml CI/CD modified 5.0

关键符号

_resolve_layer_name

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

评论区精华

CPU 依赖后缀调整 设计

fadara01 建议为 AArch64 平台添加 +cpu 后缀以避免安装 CUDA 库。

结论:建议被采纳,更新了 requirements 文件。 · 已解决

Docker 基础镜像升级 设计

mgoin 询问为何将 BUILD_BASE_IMAGE 从 Ubuntu 20.04 升级到 22.04,担心 glibc 兼容性。

结论:atalman 回应 CUDA 13.0.0 只有 20.04 镜像,但最终保持 22.04 以匹配最终镜像。 · 已解决

torchao 测试失败 测试

AndreasKaratzas 指出 torchao 测试在 2.11 版本中仍然失败,但问题在 nightly 中已存在。

结论:无新增风险,问题标记为待解决。 · unresolved

风险与影响

技术风险:

  • 回归风险:PyTorch 2.11 可能引入 API 变化,导致现有代码行为异常,需全面测试。
  • 兼容性风险:Docker 镜像升级到 Ubuntu 22.04 可能改变 glibc 版本,影响二进制兼容性。
  • 性能风险:新版本可能有性能变化,需验证推理和训练性能。
  • 安全风险:依赖升级可能引入新漏洞。
  • 具体文件风险:在 vllm/utils/torch_utils.py 中 HAS_OPAQUE_TYPE 条件更新可能影响编译时行为。

影响范围广泛:

  • 对用户:需要重新安装依赖,可能遇到安装问题或运行时错误。
  • 对系统:影响所有硬件平台(NVIDIA GPU、AMD GPU、CPU、Intel XPU)的构建和部署。
  • 对团队:开发、测试和 CI 流水线需适应新版本,可能需要更新本地环境。影响程度高,因为 PyTorch 是核心依赖。
核心依赖升级 兼容性变化 测试覆盖不足

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论