Google 和 Meta 把 TPU 变成 PyTorch「原生设备」:TorchTPU 开源,device="cuda" 改一个词就能上 TPU

TL;DR :2026-10-20 的 PyTorch Conference 上,Google 与 Meta 联合宣布 TorchTPU 正式开源 ------一个运行时零 JAX 依赖、eager 优先的 PyTorch 原生 TPU 后端。官方口径是:model.to("cuda") 改成 model.to("tpu") 就能开箱跑(拿峰值性能当然还得调);已持续验证约 5000 个 Hugging Face 高频模型,Qwen3 235B MoE 训练一路扩到 8192 芯片的 TPU Pod,第三方 InferenceX 基准上拿下推理成本 Pareto 前沿。vLLM、SGLang、TorchTitan、TorchRec、Ray 同步接入。仓库:google-pytorch/torch_tpu。

旧方案有多难受,新方案就有多大解脱

PyTorch 用户想上 TPU,此前的标准姿势是 PyTorch/XLA------2020 年的 Lazy Tensor 路线。用过的都懂:要侵入式改源码圈出编译区域,编译等待长,eager 调试基本告别,分布式原语跟进也慢。另一条路 TorchAX 则是把 PyTorch 塞进 JAX 的执行模型,相当于换种范式写代码。

TorchTPU 官方立的原则就叫 PyTorch Citizenship :运行时零 JAX 依赖;eager 模式是一等公民;torch.compile(model, backend="tpu") 走的是 Torch Dynamo 前端(不是 Lazy Tensor);DDP/FSDP/DTensor 这些分布式惯用法靠在 Process Group API 层实现的 TPU 集合通信原生支持------没有 NCCL,集合通信直接以 StableHLO 算子下沉到芯片。

迁移的官方口径简单到离谱:

python 复制代码
device = torch.device("cuda")            # → torch.device("tpu")
dist.init_process_group(backend="nccl")  # → dist.init_process_group(backend="tpu_dist")
model = model.to(device)

⚠️ 注意别被带偏:官方同时明说,只改这一行「能跑」但拿不到峰值性能------模型的形状、切分、算子选择都是偏 GPU 架构的,要榨干 MXU 还得做 TPU 特定调优(自定义 Pallas 内核、topology_aware_mesh 等)。

底下做了什么硬活

几个值得工程人知道的细节:

  • eager 三模式 :默认 Strict(逐算子异步下发);Debug(同步执行,等价 CUDA_LAUNCH_BLOCKING);以及新发明的 DeferAndFuse ------把多个算子推迟到「物化点」(比如 .to("cpu"))聚合编译,官方数据比 Strict eager 快 50% 以上,还因算子融合降低了 HBM 峰值内存。
  • 三级编译缓存:进程内 → 本机跨进程共享内存 → 远端持久化(GCS),用 192-bit 指纹做键,Colab/数据中心场景重启也能复用编译产物。
  • Bounded Dynamism :XLA 传统上静态 shape,变长序列就得重编译;TorchTPU 在做「有界动态 shape」,编译一次自动处理 padding/slicing(torch.compile 暂时强制 dynamic=False,是已知的临时限制)。
  • view 语义魔法:StableHLO 是不可变、无原地写的函数式 IR,TorchTPU 用 view 分解 + 反转实现了 PyTorch 的 view/原地写语义------分布式训练的拼接参数数组这类模式因此可用。
  • 精度默认 medium:BF16 矩阵乘 + FP32 累加(跟 CUDA 默认 highest FP32 不同);要 FP32 精度得用 3-pass/6-pass 算法分解,代价约 3×/6× MXU 算力------从 GPU 搬过来的 FP32 代码在 TPU 上会「悄悄」降精度,这是迁移时最值得盯的一个坑。
  • 自定义内核走 Pallas :生产路线是 JAX/Pallas 写内核、torch.tpu.pallas.jax_op 包成原生 PyTorch 函数;OpenXLA 的 Tokamax 内核库(MoE grouped matmul、paged attention、MLA 等)直接可用。

官方给出的验证数据

模型覆盖是这次发布最实的部分:持续验证约 5000 个 HF 高频模型,4917 个端到端验证,Tier-1 无崩溃通过率 98%,Tier-2 架构代表模型与 GPU 基线的数值一致性 97%(638/657)。Qwen、DeepSeek、Gemma、Llama、Whisper、CLIP、BERT 系全在列表里。

性能数字(均为官方或 SemiAnalysis 提交基准,可以当「厂商成绩单」读):

场景 配置 结果
纯 PyTorch prefill Muse Glimmer 30B,TPUv7 单芯片 ~25.7k tokens/s,MFU 59%(seq 5120)
纯 PyTorch 训练 同模型,4 芯片 FSDP ~5.6k tokens/s/芯片,MFU 38%
Pod 级训练 Qwen3 235B MoE,8192 芯片 v7 2104 tokens/s/TensorCore,MFU 27.1%,1024→8192 芯片 MFU 基本持平
大模型训练 Llama 3 405B,1024 芯片 v7x,8K ctx 500 tokens/s/芯片,MFU 50%+
推理成本 SemiAnalysis InferenceX,Qwen 3.5 + vLLM 2.01 美分/百万 token(8K/1K),AgentX 0.83 美分 + SOTA 交互性
推荐系统 DLRM v2 + TorchRec,32 芯片 18.3ms/step,与 JAX 基线 100% 打平

两处值得点名的澄清:一是 64 芯片上 PyTorch/TorchTitan 跑 Qwen3 235B MoE 拿到 1828 TPS,对 JAX/MaxText 的 1937 TPS------约 94%,「接近但还差一点」比「追平」更准确;二是 InferenceX/AgentX 属于厂商提交成绩的第三方基准,目前还没有中立机构做过 TorchTPU 与 PyTorch/CUDA 同任务对比的独立评测,这点官方博客也没回避。

怎么看这件事

时间线拼起来挺有意思:2020 年 PyTorch/XLA → 2025 年中项目启动 → 2025-12 Reuters 独家报道(「Google 联合 Meta 削弱 Nvidia CUDA 软件优势」)→ 2026-10 PyTorch Conference 官宣开源四仓库(运行时 + vLLM/SGLang/TorchTitan 的 TPU 支持)。发布节点选在 PyTorch 而非 Google 自己的大会,生态卡的意味很明显:TPU 过去是「JAX 专属硬件」,现在要变成「PyTorch 又一个 device」。

对开发者的实际影响:手里有 PyTorch 技术栈(vLLM/FSDP/DTensor)又想试试 TPU 成本的团队,迁移门槛从「学一套范式」降到了「改 device 字符串 + 做性能调优」。要注意的粗糙边缘:算子覆盖约 450 个 Aten 算子(结构性/复合算子跳过)、RL colocation 暂不支持(每设备单进程限制)、FP8/FP4 量化还在 roadmap 上、MPMD 场景需要 @spmd_safe 标注或编译握手。官方给未来 6-12 个月定的主题就是「生产加固」。

一句话总结:CUDA 护城河最深处第一次被正面挖开了口子------挖得好不好,接下来看社区用脚投票。

参考来源

相关推荐
Time_Memory_cici2 小时前
在Windows系统安装Pycharm以及PyTorch方法
pytorch·windows·pycharm
田里的水稻13 小时前
FA_CNN卷积神经网络七---优化器PyTorch
人工智能·pytorch·深度学习·神经网络·cnn
田里的水稻2 天前
PyTorch_Dataloader\TensorBoard---数据加载与可视化
人工智能·pytorch·python·神经网络·机器学习
田里的水稻2 天前
FA_CNN卷积神经网络三---非线性激活函数PyTorch
人工智能·pytorch·神经网络·机器学习·cnn
打工仔折腾 AI2 天前
从零开始大模型微调:基于 PyTorch 与 ChatGLM 的 LoRA 实践指南
人工智能·pytorch·后端·python·深度学习·性能优化·ai agent 实战
燃烧的枫2 天前
Windows 下 YOLO26 的 TensorRT C++ 部署
人工智能·pytorch·windows·计算机视觉·tensorrt·cuda·yolo26
ZhengEnCi2 天前
用 YOLOv8n + 自研二分类模型做课堂行为识别:从 9000 张标注数据到 Flask 全栈落地
pytorch·python·计算机视觉
承渊政道4 天前
【从零开始大模型开发与微调:基于PyTorch与ChatGLM】(从ChatGLM本地化到LoRA、PEFT的高级微调)
android·人工智能·pytorch·chatglm·本地化部署·大模型开发与微调
Smoothcloud润云4 天前
GPU算力平台推荐:新手租GPU时,镜像环境和显存应该怎么选?
大数据·人工智能·pytorch·分布式·深度学习·gpu算力