Prhub

#40669 [Build] Bump CUDA to 13.0.2 to match PyTorch 2.11.0

原始 PR 作者 dmitry-tokarev-nv 合并时间 2026-04-24 18:27 文件变更 6 提交数 3 评论 7 代码增减 +13 / -13

执行摘要

统一 CUDA 版本至 13.0.2 以对齐 PyTorch 2.11.0

PR描述指出,PyTorch 2.11.0(当前在requirements/cuda.txt中锁定)是基于CUDA 13.0.2构建的。vllm的Dockerfile、Buildkite发布流水线和GB300文档之间存在版本漂移(分别为13.0.0、13.0.1和13.0.1),需要对齐至13.0.2以保持一致性和可靠性。

该PR值得合并,因为它统一了版本漂移,提高了构建系统的一致性。建议阅读者关注以下细节:

  • 在review中关于架构列表12.1的讨论,理解了vllm对不同硬件架构的支持策略(GH10仅arm64)。
  • cuBLAS版本的说明,了解当前CUDA 13.0.2附带的cuBLAS版本及其与最新版本的差异。
    此PR是构建系统维护的良好实践,不涉及功能逻辑,适合快速合并。
讨论亮点

Review核心讨论:

  • gemini-code-assist[bot] 指出:在.buildkite/release-pipeline.yaml中,aarch64 CUDA 13.0 wheel构建的torch_cuda_arch_list缺少架构12.1,而后续的release image构建包含了12.1,建议同步以保持一致的硬件支持。
  • 作者(dmitry-tokarev-nv)回应:已修复aarch64的arch list(补上12.1)。对于x86_64的release image构建,指出架构12.1仅用于GH10芯片,而该芯片没有x86_64(AMD64)变体,因此无需在x86_64的arch list中添加。该解释被接受,讨论解决。
  • Harry-Chen 评论:建议在#39878合并后rebase,作者随后将PR范围缩小为仅CUDA版本升级,架构部分由#39878处理。

实现拆解

变更分为以下步骤:

  1. 更新Dockerfile默认版本:在docker/Dockerfile中将ARG CUDA_VERSION13.0.0改为13.0.2,这是所有Docker构建的基础。
  2. 同步versions.json:通过运行python tools/generate_versions_json.py自动更新docker/versions.json,其中的CUDA_VERSIONBUILD_BASE_IMAGEFINAL_BASE_IMAGE默认值随Dockerfile同步变化。
  3. 更新Buildkite发布流水线:在.buildkite/release-pipeline.yaml中,将CUDA 13.0构建步骤(aarch64、x86_64 wheel以及x86_64 release image)的--build-arg CUDA_VERSION--build-arg BUILD_BASE_IMAGE13.0.1改为13.0.2。CUDA 12.9步骤不变。
  4. 更新夜间构建脚本:在.buildkite/image_build/image_build_torch_nightly.sh中将NIGHTLY_CUDA_VERSION13.0.0改为13.0.2
  5. 更新文档和依赖图:在docs/getting_started/installation/gpu.cuda.inc.md中更新GB300构建示例的CUDA版本和基础镜像;重新生成docs/assets/contributing/dockerfile-stages-dependency.png(仅标签变化,拓扑不变)。
文件 模块 状态 重要度
.buildkite/release-pipeline.yaml CI 流水线 modified 3.81
docker/versions.json Docker 构建 modified 3.25
docker/Dockerfile Docker 构建 modified 2.78
.buildkite/image_build/image_build_torch_nightly.sh 夜间构建 modified 2.31
docs/getting_started/installation/gpu.cuda.inc.md 用户文档 modified 1.9
docs/assets/contributing/dockerfile-stages-dependency.png 文档资产 modified 1.53

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

评论区精华

aarch64 CUDA 13.0 wheel 构建缺少架构 12.1 正确性

gemini-code-assist[bot] 指出在 `.buildkite/release-pipeline.yaml` 中,aarch64 CUDA 13.0 wheel 构建的 `torch_cuda_arch_list` 缺少架构 `12.1`,而后续 release image 构建包含了 `12.1`,建议同步以确保一致的硬件支持。

结论:作者确认并修复,将 `12.1` 加入 aarch64 的 arch list。 · 已解决

x86_64 CUDA 13.0 release image 缺少显式 torch_cuda_arch_list 正确性

gemini-code-assist[bot] 指出 x86_64 CUDA 13.0 release image 构建缺少显式 `torch_cuda_arch_list` 覆盖,会回退到 Dockerfile 默认值,可能不支持 `12.1`。建议显式指定以包含 `12.1`。

结论:作者解释 `12.1` 仅用于 GH10 芯片,该芯片没有 x86_64 变体,因此无需在 x86_64 构建中添加。该解释被接受。 · 已解决

风险与影响

本次变更为纯版本号升级,技术风险较低:

  • 回归风险:CUDA 13.0.2是PyTorch 2.11.0的构建版本,已被广泛测试,因此base image升级不会引入新的不兼容。cuBLAS版本仍为13.1.0.3,而最新cuBLAS 13.1.1.3包含一些修正,但PyTorch官方pin未强制更新,故风险可控。
  • 构建流程:Buildkite流水线中的版本参数被正确更新,其他步骤(如CUDA 12.9)未受影响。
  • 文档:GB300构建示例的版本号已同步,避免用户使用错误的基础镜像。
    • 无代码逻辑变更,不影响运行时行为。

影响范围包括:

  • Docker镜像构建:默认CUDA版本从13.0.0变为13.0.2,所有基于Dockerfile的构建(包括本地开发和CI)将使用更新的基础镜像。
  • 发布流水线:CUDA 13.0的wheel和release image将基于13.0.2构建,确保与PyTorch 2.11.0完全一致。
  • 文档用户:GB300构建示例中的版本号正确,避免混淆。
    影响程度中等,但变更本身简单且经过验证,实际影响可控。
版本对齐 低风险 构建系统

关联 Issue

#39878 [Build] Switch default CUDA to 13.0, update CUDA architecture lists, clean up stale build-args

完整报告

参与讨论