如果你维护着瞄准 Grace、Grace Hopper 或 Grace Blackwell 机器的 Dockerfile 或 CI,现在可以把 `--index-url https://download.pytorch.org/whl/cu128` 这个 workaround 拿掉了:PyTorch 2.11.0(2026 年 4 月)把启用了 CUDA 的 GPU wheel 发布到默认 PyPI 索引,面向 aarch64 Linux。在 2.11.0 之前,aarch64 上的 `pip install torch` 会默默拉到纯 CPU 的 wheel;传递依赖还可能以微妙的方式打破 GPU 检测。这次 fix 是 packaging 层的,不是 kernel 层的 —— 但对任何在 ARM-host 推理机器上跑 vLLM 的人来说,这一下就把一个长期的「CUDA 为什么不可用」的 debug 来源给合上了。
机制是 NVIDIA/Astral 的 Wheel Variants 标准,它让 PyPI 在同一个 package 名下能区分 architecture/accelerator-specific 的构建。PyTorch 的实现对 NCCL 和 cuBLAS 用动态链接,而不是静态打包 —— 这是 wheel 能小到放上 PyPI 的前提。点名支持的 host 平台:GB200、GB300、GH200(Grace Blackwell 和 Grace Hopper 系统)。vLLM 之前自己背了一些临时 workaround(`use_existing_torch.py` 把 torch 从安装文件里剥掉;pyproject.toml 里的 `[tool.uv] no-build-isolation-package = ["torch"]`)。这两个对 custom/nightly torch 构建还是有用,但对 stock 安装不再是必须的了。
把这件事放到更大的 stack 里看。Grace Hopper / Grace Blackwell —— 还有现在 NVIDIA 那颗为 agent 做了优化、跟 Rubin GPU 配对的 88 核 CPU Vera —— 都是 ARM-host 加 NVIDIA GPU 的拓扑。它们是 Vera Rubin NVL72 参考设计背后的系统,也是 Oracle Cloud、CoreWeave、Lambda、Nebius 这些运营商提供的 GH200/GB200 实例背后的系统。在 2.11 之前,ARM-host 的 AI 开发就意味着每个安装脚本里都得有一段知道怎么换 PyPI 索引的分支。这个分支现在是可选的了。在 PyTorch 之外更广的层面,Wheel Variants 是那个让整个 Python GPU 生态可以把「架构 × 加速器」当成一等公民的 packaging 维度,而不是靠ad-hoc 的 index URL。JAX、CuPy、Triton 等等的采用,是更长线要追的故事。
周一上手:在你 Grace/GH200/GB200 的构建里把 `torch>=2.11.0` 提上来,把 index-url override 拿掉。如果你依赖 torch nightly 或 custom 构建,vLLM 的那些 workaround 留着 —— 它们还能给你点东西。长线的动作:看 Wheel Variants 在整个 Python GPU stack 上的采用。等 JAX/CuPy/Triton 都跑在同一个标准上,你 install 脚本里 x86-vs-aarch64 的分支就整个消失了。对计划晚些时候在 Vera Rubin NVL72 级别硬件上部署的 team,这是 developer-experience 这一层管道里第一块落到稳定版的拼图。ARM-host 推理的 kernel 级 perf 故事是分开的、还在成熟 —— 但「装好就能跑」的问题现在解决了。
