AI 快讯Google开源TorchTPU,直攻CUDA腹地
行业快讯

Google开源TorchTPU,直攻CUDA腹地

2026-10-21T00:02:24.894Z
Google开源TorchTPU,直攻CUDA腹地

Google于10月20日开源TorchTPU,让现有PyTorch负载能以原生设备方式迁移至TPU。它没有绕开XLA,却显著降低了框架切换成本,真正瞄准的是英伟达CUDA的软件护城河。

Google终于补上TPU最缺的一块拼图

Google在10月20日开源了TorchTPU,一个面向Google TPU的原生PyTorch后端,让开发者无需改用JAX,也能沿用熟悉的PyTorch编程模型训练和部署AI模型。项目代码已经发布在google-pytorch/torch_tpu,截至2026年10月21日,这也是Google争夺AI开发者生态最直接的一次动作。

TorchTPU是一个把Google TPU注册为PyTorch原生设备、并将PyTorch算子映射到TPU执行栈的开源后端。 对已有项目而言,它的目标不是要求团队重写模型,而是尽量把迁移范围压缩到设备初始化、依赖配置以及少量硬件适配代码。

这件事的重要性不在于Google又开源了一个编译器插件,而在于它承认了一个现实:今天决定AI芯片能否进入企业机房的,不只是矩阵乘法速度,也不是单张加速卡的参数,而是现有PyTorch项目究竟要改多少代码、调试工具是否可用、分布式训练能否直接接上。

过去,TPU的硬件能力并不弱,但软件入口长期偏向JAX和XLA。对已经在PyTorch、CUDA、NCCL及相关算子库上投入数年的团队来说,迁移到TPU意味着重新学习执行语义、排查编译问题,并重做性能优化。TorchTPU要消除的正是这笔“迁移税”。

TorchTPU连接PyTorch前端、StableHLO/XLA编译层与Google TPU硬件的架构示意图

“原生PyTorch后端”到底原生在哪里

原生PyTorch后端是指TPU以一种标准PyTorch设备的身份进入调度系统,而不是把整个PyTorch模型包装、翻译成另一套框架后再执行。 TorchTPU基于PyTorch提供的设备扩展能力接入底层调度,开发者面对的仍然是普通Tensor、Module、Optimizer以及熟悉的训练循环。

这种集成方式和此前一些“PyTorch转JAX”方案有明显区别。转换方案更像是让PyTorch模型定义借道JAX运行,虽然能够复用TPU已有的软件资产,但运行时语义、调试路径和第三方组件兼容性都可能出现断层。TorchTPU则试图让TPU成为与CUDA、CPU并列的设备目标,把框架体验留在PyTorch内部。

TorchTPU的“原生”不等于绕开XLA,更不等于每个PyTorch算子都由TPU直接解释执行。 StableHLO、OpenXLA、TPU编译器以及Pallas等硬件优化组件仍然位于底层,负责算子融合、内存规划、张量布局和机器码生成。改变的是入口和集成边界,而不是TPU作为编译型加速器的基本工作方式。

这一区别非常关键。如果把TorchTPU理解成“从此不需要编译”,就会误判它的性能特征。TPU仍需要看到足够大的计算区域,才能进行融合和全局优化;动态形状、频繁的Python控制流以及大量细碎算子,仍可能带来编译次数增加或主机调度开销。

换句话说,TorchTPU不是拆掉XLA,而是把XLA藏到更符合PyTorch开发者习惯的位置。

三档Eager模式,在调试与性能之间做取舍

Eager模式是PyTorch逐条执行算子、即时返回结果的默认开发方式,优势是直观和易调试,代价则是较高的调度开销。 TorchTPU围绕这一习惯提供了从排错到生产优化的多档执行路径,项目资料将其概括为Debug、Strict和Fused等模式。

三种路径解决的不是同一个问题:

  • Debug Eager侧重可观察性,适合检查算子覆盖、数值差异和回退行为,性能不是首要目标;
  • Strict Eager更强调执行语义和错误暴露,避免某些问题被静默回退掩盖;
  • Fused Eager会聚合更多运算,再交给底层编译与融合,以减少主机和设备之间的调度次数。

项目披露的测试中,Fused Eager相对默认Eager路径可获得约50%至100%以上的性能提升。这个数字说明算子融合确实能显著减少框架开销,但它不能直接等同于“TPU比GPU快一倍”:提升基线是TorchTPU自身的默认Eager模式,实际收益仍取决于模型结构、张量形状、批量大小、精度格式以及编译缓存命中情况。

真正有价值的地方是开发阶段和生产阶段不必采用完全割裂的技术栈。 工程师可以先用更严格、更容易定位错误的模式跑通模型,再逐步启用融合和定制内核,而不是一开始就把完整训练图交给编译器,然后在庞大的中间表示中寻找数值问题。

迁移门槛降低了,但不是“改一个设备名就结束”

低代码迁移是指模型主体和训练循环可以大体保留,并不代表任意CUDA项目都能无条件运行在TPU上。 对主要使用标准PyTorch算子的模型,设备初始化可能确实是最明显的改动;但现实项目通常还包含CUDA扩展、Triton内核、NCCL通信逻辑、量化插件和针对GPU显存层级设计的优化。

这些组件不会因为TorchTPU出现而自动获得TPU实现。尤其是大模型推理框架,性能往往依赖PagedAttention、量化矩阵乘法、KV Cache管理、MoE路由和低延迟集合通信等专用内核。TorchTPU可以让框架控制层继续使用PyTorch,却不能凭空生成所有高性能内核。

一个更准确的迁移判断是:

  1. 使用标准PyTorch算子越多,初次跑通的成本越低;
  2. 自定义CUDA或Triton内核越多,需要替换和验证的工作越大;
  3. 模型张量形状越稳定,编译缓存和算子融合越容易发挥作用;
  4. 越依赖GPU特定通信与显存优化,迁移后的重新调优越不可避免;
  5. “能够运行”和“达到有竞争力的每Token成本”仍是两个阶段。

因此,TorchTPU最先受益的不会是把CUDA技巧压榨到极限的项目,而是标准算子占比较高、希望同时保留多个算力选项的训练平台和模型团队。

分布式支持决定它能不能进入大模型现场

分布式训练后端是协调多颗加速器切分模型、同步梯度和移动张量的软件层。 TorchTPU把DDP、FSDP v2和DTensor列为重点兼容对象,这比单卡跑通一个模型更有商业意义。

DDP适合每个设备持有完整模型副本的数据并行;FSDP v2会把参数、梯度和优化器状态拆分到多个设备,降低单设备内存压力;DTensor则用设备网格与张量布局描述分片,是更复杂模型并行策略的基础。它们已经成为PyTorch大规模训练的通用接口,如果TPU不能接入这些抽象,企业依旧要维护一套独立的训练基础设施。

TPU在集群层面的优势是芯片间互连与Pod级拓扑经过统一设计,适合大规模集合通信;但要让这种硬件优势被PyTorch用户真正使用,TorchTPU仍需把设备网格、分片规则和底层通信正确衔接起来。这里的难点不仅是API兼容,还包括不同拓扑下的布局选择、通信与计算重叠,以及故障恢复。

TorchTPU能否成功,最终要看数百到数千颗芯片上的稳定性,而不是单设备演示。 对前沿模型训练而言,一次运行可能持续数周,编译缓存、检查点保存、作业重启和偶发算子错误都会被放大。开源能够让外部开发者更早发现问题,但成熟度需要真实负载和时间积累。

TorchTPU与现有方案有什么区别

AI加速器软件栈的竞争,本质上是兼容性、性能可预测性和生态完整度的竞争。 TorchTPU降低了框架层切换成本,却仍要面对CUDA十多年积累的内核、工具和社区资源。

| 路线 | 开发者前端 | 主要执行方式 | 迁移现有PyTorch项目 | 分布式生态 | 当前主要优势 | 主要限制 | |---|---|---|---|---|---|---| | NVIDIA CUDA | PyTorch原生 | CUDA、cuDNN、cuBLAS及定制内核 | 最低,现有项目通常默认支持 | NCCL、DDP、FSDP等成熟 | 工具链、算子库和社区最完整 | 硬件选择被CUDA生态绑定 | | Google TorchTPU | PyTorch原生设备 | PyTorch调度后进入StableHLO、XLA和TPU后端 | 较低,标准算子项目改动较少 | 面向DDP、FSDP v2、DTensor | 保留PyTorch体验,同时使用TPU集群 | 算子覆盖、定制内核和工具成熟度仍需验证 | | PyTorch/XLA | PyTorch接口 | Lazy Tensor收集计算图,再由XLA编译 | 中等,需要理解延迟执行和图边界 | 已具备多设备能力 | 经过多年使用,覆盖多类XLA设备 | 执行语义和调试体验与常规PyTorch存在差异 | | JAX on TPU | JAX | 函数变换、显式编译与XLA执行 | 高,需要迁移框架或重写部分工程 | 设备网格与分片能力强 | TPU适配成熟,适合大规模编译执行 | 对PyTorch团队的学习和迁移成本高 | | PyTorch on AWS自研加速器 | PyTorch生态接口 | 通过厂商编译器和运行时映射到专用芯片 | 视算子与模型而定 | 依赖对应集群工具 | 提供CUDA之外的云端选择 | 同样面临自定义算子与平台绑定问题 |

价格目前无法脱离具体云区域、TPU代际、预留方式和集群规模进行统一比较,Google也没有随TorchTPU发布一组足以覆盖训练与推理场景的标准化价格性能结论。对采购团队而言,真正应该比较的是完成同一训练任务的总成本,或者在同一延迟与服务等级下的每百万Token成本,而不是只比较单颗芯片的小时价。

Google真正攻击的是CUDA的软件护城河

CUDA是英伟达面向GPU并行计算的软件平台,也是其AI硬件生态最核心的开发者锁定机制。 PyTorch虽然由Meta主导并保持开源,但大量高性能实现长期围绕CUDA、cuDNN、cuBLAS、NCCL和Triton形成,开发者写的是PyTorch,项目深处依赖的往往仍是英伟达软件栈。

这解释了为什么拥有自研芯片还不够。Google可以做出算力更高的TPU,也可以建设更大的Pod,但如果客户必须把PyTorch工程改成JAX工程,纸面性能优势很容易被迁移成本抵消。企业不会只计算一次训练账单,还会计算工程师培训、模型验证、故障排查和多平台维护的成本。

TorchTPU的策略是把硬件选择从框架选择中拆出来:团队仍用PyTorch组织模型和训练流程,底层设备可以是GPU,也可以是TPU。Amazon近期也在推动类似方向,让PyTorch负载更容易转向自研AI芯片。两家公司选择同一个突破口,说明云厂商已经接受一个事实——短期内很难让开发者离开PyTorch,但可以尝试让PyTorch离开CUDA。

这类工具首先提升的是Google与英伟达谈判时的可信度,而不是立刻改写市场份额。 当客户确实能用相近的工程栈在两类硬件上运行负载,第二供应商才不只是采购表格里的备选项。即使最终仍使用GPU,迁移可行性本身也能改善客户的议价能力。

开源能解决什么,又不能解决什么

开源后端的价值是让算子实现、兼容性问题和性能决策能够被外部审查和共同改进。 开发者可以直接查看TorchTPU的设备注册、调度逻辑和算子覆盖情况,也可以针对上游PyTorch变化提交问题与补丁。相比封闭插件,这更适合跟随PyTorch快速迭代。

开源也有助于推理框架接入。vLLM、SGLang等项目如果要支持TPU,不再只能围绕JAX分支维护完全独立的模型实现,而有机会复用更多PyTorch控制层、模型定义和社区插件。长期看,这可能减少GPU版与TPU版功能不同步的问题。

开源不能自动制造一个与CUDA等量齐观的生态。 英伟达的优势包括性能分析器、调试器、通信库、量化工具、数千个优化算子,以及开发者遇到问题后能搜索到的大量经验。TorchTPU即便接口设计正确,也需要模型框架、云平台和用户共同补齐这些长尾能力。

更现实的风险是“兼容但不够快”。一个算子拥有正确实现,只能证明模型能够运行;要在真实服务中有竞争力,还要处理数据布局、内存带宽、编译时间、动态批处理以及尾部延迟。尤其是低批量在线推理,框架开销和编译策略可能比峰值算力更重要。

我们的判断:这是关键入口,不是终局

TorchTPU是Google近年来最务实的TPU软件动作之一,因为它终于从开发者现有工作流出发,而不是要求市场适应Google偏好的框架。 对PyTorch团队来说,它把“是否要换框架”和“是否要换硬件”拆成了两个问题,这会明显降低试用TPU的心理和工程门槛。

短期内,TorchTPU更适合作为第二算力平台的验证入口。企业可以先挑选标准算子占比高、性能边界清晰的训练或批量推理任务,对比编译时间、吞吐量、稳定性和总成本,再决定是否扩大规模。直接把高度依赖CUDA扩展的核心服务整体迁移过去,风险仍然偏高。

中期胜负将取决于三个可量化指标:主流模型的算子覆盖率、同等模型下的端到端价格性能,以及上游PyTorch版本更新后后端跟进的时间。如果每次PyTorch升级都要等待数月,或者常见推理框架的TPU功能始终落后GPU版本,开发者仍会把它视为非主流分支。

长期看,TorchTPU对英伟达的威胁不在于某一轮基准测试领先,而在于它可能削弱CUDA与PyTorch之间近乎默认的绑定。只要同一套PyTorch工程能够在不同AI加速器之间相对平滑地迁移,芯片竞争就会更多回到价格、供给、能耗和实际性能,而不是被软件切换成本提前终结。

Google现在只是把这扇门推开。门后是否真有一条足够平坦的路,还要看TorchTPU能否在生产环境中证明:它不仅能跑PyTorch,也能以接近开发者预期的方式调试、扩展并持续跑得快。

参考来源

相关推荐

查看全部