算力#芯片#模型训练#模型推理

谷歌开源 TorchTPU,PyTorch 只需少量改动即可跑在 TPU 上

TorchTPU 10 月 20 日以 Apache 2.0 开源。谷歌称 PyTorch 程序少量改动即可跑在 TPU 上,适合想减少英伟达依赖的团队。

深色背景上,一簇发光的橙色与紫色网格方块堆在一起,外侧绕着几道光环

TorchTPU 是谷歌为 TPU 做的 PyTorch 原生软件栈,与 Meta 的 PyTorch 团队共同开发。谷歌在 10 月 20 日的 PyTorch Conference 2026 上宣布,TorchTPU 已在 GitHub 以 Apache 2.0 许可证开源。谷歌称,现有 PyTorch 程序只需少量代码改动即可跑在 TPU 上;开发者博客则说,训练脚本切到 TPU 只需改动设备初始化代码,并给出原生后端的写法 torch.device("tpu")。

要点

  • 许可与版本:GitHub 仓库 google-pytorch/torch_tpu 的 README 与 LICENSE 正文都是 Apache 2.0;PyPI 上的 0.2.0 版本在 10 月 19 日就已上传,比公告早一天。
  • 改动范围:谷歌称现有 PyTorch 负载只需少量代码改动;要达到生产级性能,它建议改用 torch.compile。开发者博客也写道,多数模型要达到好的利用率,靠的是一连串配置调整。
  • 性能数字:谷歌称 TorchTitan 在 Qwen 3 8B 上最高达到 52% MFU,并扩展到 8,192 块 Ironwood TPU。这些都是厂商自报的数字,我们没有找到独立测试。

背景

2026 年 4 月 7 日,谷歌开发者博客已经讲过 TorchTPU 的设计,并公布了当年的路线图。路线图里有一项是“公开 GitHub 仓库”。仓库本身 3 月 9 日就已创建,我们没有查到它哪天转为公开。

在此之前,要在 TPU 上跑 PyTorch,开发者得二选一:把整套代码改写成 JAX,或者使用老的 torch_xla。谷歌现在的思路是让 TPU 直接作为 PyTorch 的原生设备出现。

同一周,亚马逊在 10 月 19 日发布了面向 Trainium 芯片的 PyTorch 后端 TorchNeuron,TechCrunch 把两件事放在一起写。谷歌称,用户可以沿用已经在用的工具在 TPU 上训练、部署模型,列出的包括 vLLM、SGLang、llm-d、TorchTitan 和 Ray。其中 vLLM 的 TPU 后端与 Inferact 合作开发,SGLang 的后端与 RadixArk 合作开发。llm-d 1.0 也在 10 月 20 日发布,细节见 llm-d 1.0 发布。Inferact 在 9 月公布过自己的 TPU 推理测试,见 Inferact 的 TPU 推理测试,那是它自己的数字。

事实部分

下表是本文核对过的数字。它们都来自谷歌或合作方,条件写在同一行里。

项目数字出处与条件
许可证Apache 2.0README 第 231 行与 LICENSE 正文。GitHub 页面显示为 “Other”,因为 LICENSE 首行多了 Files: ./*
PyPI 0.2.02026 年 10 月 19 日上传提供 Python 3.11 至 3.14 的 wheel,全部为 Linux x86_64,没有源码包
Qwen 3 8B 训练最高 52% MFU谷歌博客;TorchTitan 训练路径,扩展到 8,192 块 Ironwood TPU
Llama 3 405B 训练约 57% MFU谷歌开发者博客;TPU v7x,128 到 1,024 块芯片
Qwen3 235B(MoE)32.42%(单个 1,024 芯片切片);30.51%(8,192 芯片)谷歌开发者博客;TPU v7x
推理吞吐(Zenteiq)提高 4 倍以上谷歌博客引述的合作方数字;GKE 上的 llm-d 路由,每 1,000 块 TPU v6e

MFU(模型算力利用率)衡量的是芯片的峰值算力有多少用在模型计算上。这些数字来自特定模型和特定规模的集群,换一个模型或一个集群,结果不一定相同。

eager 模式是最容易上手的入口,但不是性能配置。开发者博客直接写道,每个算子都会单独成为一个程序,TPU 在两次启动之间会空转。它适合先把模型跑起来、调试,再切换到 torch.compile 或 TorchTitan 的图训练器。谷歌博客给出的路径相同:先用 eager 模式调试,再用 torch.compile 达到生产级性能。

各方说法

TechCrunch 的 Julie Bort 写道,开发者可以用一个简单的配置改动把应用迁到 TPU,不用重写代码;同一篇文章也说,这并不意味着 AI 应用开发者会自动、大规模地放弃英伟达硬件。SiliconANGLE 的 Mike Wheatley 则说只需要几处简单的配置调整。他引用 Constellation Research 分析师 Holger Mueller 的看法:重建 PyTorch 确实让迁移更容易,但两家云厂商能在英伟达根深蒂固的地位上撬开多少,还要看。

媒体与谷歌的说法并不完全一致。谷歌的原文是“少量代码改动”,开发者博客把它限定在设备初始化代码上,TechCrunch 和 SiliconANGLE 则都说是配置层面的改动。本文以谷歌的原文为准。

Hacker News 上,这条仓库提交在我们读取时有 327 分、74 条评论。两条评论代表了两种经验。一位说他们所在的团队评估过 TPU,但“至少再等一代”,仍然留在英伟达上;另一位回忆过去要和 XLA 较劲才能让 PyTorch 跑在 TPU 上,欢迎这次的第一方支持。这些都是个人经验,不代表整体判断。

编辑判断

对已经在 Google Cloud 或自有 TPU 上训练、推理的团队,这件事的实际意义是:PyTorch 有了官方的原生路径,代码不必为了 TPU 改写成 JAX。只用英伟达 GPU 或只调用托管 API 的团队,这次没有直接影响。

有三件事我们还没有答案。一是独立性能测试:文中所有吞吐和利用率数字都来自谷歌或合作方,我们没有找到第三方复现。二是成熟度:PyPI 上的版本是 0.2.0,VeRL 的 TPU 后端和 TPU agent suite 仍在预览。三是价格与可用地区,谷歌的两篇文章和 README 都没有写。

如果想评估这条路,可以先用一个小模型在 TPU 虚拟机上跑通 eager 模式,再单独测性能。不要直接拿谷歌的 MFU 数字做预算。

怎么试

最快的路径是 README 里的安装命令,要求 Python 3.11 或更新版本:

pip install torch_tpu==0.2.0 --extra-index-url https://download.pytorch.org/whl/cpu

--extra-index-url 不能省:README 写明,不加它会装上 CUDA 版的 torch。PyPI 上的 0.2.0 只有 Linux x86_64 的 wheel,没有源码包,所以按文件列表推断,这条命令在 macOS 和 Windows 上装不上。我们没有在这两个系统上实际执行。

设备的写法是 torch.device("tpu")。如果用 Hugging Face 的模型,谷歌博客称在 Transformers v5 里写 device_map="tpu" 即可部署到 TPU。教程 notebook 要在 TPU 虚拟机上运行,README 推荐 v6e 的 GCE 实例。

接下来

接下来要看三件事:VeRL 的 TPU 支持和 TPU agent suite 何时结束预览;0.2.0 之后的版本号和接口是否稳定;有没有第三方在不同代际的 TPU 上复现谷歌的 MFU 数字。我们还没有找到价格和可用地区的公布。