谷歌与 Meta 发布 TorchTPU,可在 TPU 上原生运行 PyTorch
该团队表示,这一开源后端于 2025 年年中由谷歌与 Meta 的 PyTorch 团队共同启动,目前已被部分最大的 Google Cloud 客户用于生产环境。
AI 插图谷歌与 Meta 推出了 TorchTPU,这是一个开源后端,可让 PyTorch 在谷歌的 TPU 芯片上原生运行。项目团队表示,该项目于 2025 年年中在谷歌启动,与 Meta 的 PyTorch 团队合作,目前仍在积极开发中。
据该团队介绍,部分最大的 Google Cloud 客户已将 TorchTPU 用于推理和训练工作负载的生产环境。团队指出,TPU 过去一直与 TensorFlow 和 JAX 生态系统绑定。
团队称 TorchTPU 与此前的尝试截然不同。谷歌曾在 2020 年发布 PyTorch/XLA,这是基于 Lazy Tensors 的首个面向 TPU 的 PyTorch 编译版本。团队表示,该集成需要对源代码进行侵入式修改,编译时延严重,不支持 PyTorch 的即时执行模式,并且在较新的分布式计算功能上落后。相比之下,TorchTPU 将即时执行视为首要任务,其运行时不依赖 JAX。
其既定目标是,将工作负载迁移到 TPU 时,只需在代码中把目标设备从 GPU 切换为 TPU 即可。团队提醒说,仅做这样的更改并不能发挥 TPU 的峰值性能,因为模型的形状、分片和算子可能是针对 GPU 调优的,但模型仍应能开箱即用。
团队表示,到目前为止,该项目已经:
- 新增对即时模式和编译模式的支持,包括名为 DeferAndFuse 的全新即时模式;
- 新增对约 450 个 ATen 算子的支持;
- 支持通过 JAX/Pallas 和 Helion DSL 编写的自定义内核;
- 在下载量最高的 5,000 个 Hugging Face 模型上验证了开箱即用的执行;
- 验证了与 vLLM、SGLang、TorchTitan、Ray 和 TorchRec 的集成。
团队还列出了一些限制。一个 TPU 设备只能被一个用户态进程访问,因此无法开箱即用地支持强化学习协同部署,团队表示正在研究解决办法。由于底层编译器和运行时假定张量形状在编译时已知,团队也在添加对有界动态性的支持。
在精度方面,TorchTPU 默认采用中等模式,以 bfloat16 进行乘法运算,以 FP32 进行累加。更高的模式可恢复更多 FP32 精度,但计算成本约为 3 倍或约 6 倍,团队建议大多数深度学习工作负载使用默认模式。