英伟达5万亿美元的护城河,Google TPU能撼动吗?

125 阅读21分钟

在AI迅猛发展的当下,各头部大厂发起了空前规模的算力军备竞赛,仅Meta、亚马逊、Google、微软四家在今年合计资本支出就接近4000亿美元。

而作为卖铲子的英伟达,以接近90%的GPU数据中心市场份额、75%的毛利率引发全球的资金趋之若鹜,也是第一个市值超过5万亿美元的科技巨头。

说实话,我对硬件架构了解不多。但最近两个周末狂补了一波资料,一直在研究一个问题:英伟达的护城河到底有多深?

尤其是当Google的TPU在技术和生态上都越来越成熟时,它会不会对英伟达的市场份额带来实质性的冲击?Apple把自家的Foundation Model放在8000多个TPU上训练,Anthropic也承诺使用100万个TPU,甚至连OpenAI也开始租用TPU做推理。这些信号都挺值得关注。

其实这背后是两种完全不同的设计思路,英伟达走通用路线,什么都能干,而Google走专用路线,就盯着AI这一件事做到极致。那Google的专用芯片,能撼动英伟达的地位吗?

今天的文章就来聊聊这个话题,仅代表个人研究之后的观点。

两种设计思路

要理解GPU和TPU的差异,得先看看它们的架构。

GPU的灵活性:为什么需要那么多的控制单元?

英伟达GPU从游戏显卡时代演进到如今的Blackwell和未来的Rubin,始终坚持一个核心设计:SIMT(单指令多线程)

GPU的核心是SIMT架构。一块H100芯片上有成千上万个CUDA Core,每32个线程组成一个Warp,共享同一个控制单元,但每个线程有独立的寄存器。当Warp Scheduler发出指令后,Warp内的线程可以同时执行相同的指令,但处理不同的数据。关键是,每个线程可以走不同的代码分支,访问不同的内存地址。

H100或B200这样的芯片,成千上万个计算核心被组织成多个SM(流式多处理器)。每个SM里有Tensor Core专门处理矩阵乘法,有Warp Scheduler负责调度(GPU把计算任务分成一个个线程,每32个线程为一组,这一组叫Warp),还有256KB的L1缓存。最底层是80GB或192GB的HBM显存,带宽能到3.35TB/s甚至8TB/s。

当然,这种灵活性也是有代价的。虽然控制逻辑是以Warp为单位共享的(每32个线程共享一套指令解码器和调度单元),但每个线程仍需要独立的寄存器文件来存储各自的状态。而且为了支持线程的灵活调度和分支处理,SM需要配备复杂的Warp调度器和分支管理单元。这些控制逻辑和寄存器文件会占据不小的芯片面积和功耗。

也就是说,GPU把相当一部分晶体管用来做控制和存储,而不是纯计算

GPU的这种灵活性支持我们在应用层写出各种复杂的代码。比如这样一段CUDA:

if (threadIdx.x < 4) {
    AB;  // 前4个线程做这个else {
    XY;  // 后面的线程做那个
}
Z;  // 大家最后一起做

在软件层面,这是一个很正常的分支语句。但在硬件层面,它会导致Warp Divergence(线程束分歧)

一个Warp里的32个线程本来应该整齐划一地执行同一条指令。但现在有的要走if分支,有的要走else分支。GPU的处理办法也比较粗暴,串行执行。先让前4个线程干活,后28个等着,然后反过来。本来1个时钟周期能搞定的事,现在需要花2个时钟周期。

所以看到了么,GPU能应对各种算法,从图形渲染到科学计算到AI训练,啥都能干。但为了这种通用性,它必须堆控制单元、堆寄存器、堆缓存,最终导致能效比打折扣。

TPU的极简主义:脉动阵列

Google走的则是另外一条极致的路线:脉动阵列

脉动队列的核心思想是让数据在计算单元之间流动(很贴合脉动这个词)。数据从一侧流入,经过每个计算单元处理一下,然后直接传给下一个单元,最后从另一侧流出,数据不需要像GPU一样频繁回到内存或者寄存器,而是直接在计算单元之间传递。

TPU的核心是MXU(矩阵乘法单元),这是一个巨大的计算单元阵列,比如128x128的规模。深度学习中,大概90%的计算量是矩阵乘法,所以Google在设计时选择直接把芯片面积全投在这上面。

跟GPU不一样的是,权重矩阵一旦加载进MXU,就直接存在计算单元里,不再动了。输入数据从一侧流入,像波浪一样扫过整个阵列。每个计算单元只做一件事,拿到数据,乘一下,加到累加器上,然后把数据递给隔壁邻居单元。

而提升能效的关键也就在这里。在GPU中,每次计算都要去寄存器文件读数据,算完再写回去。而在TPU的脉动阵列里,数据从HBM读出来一次后,在128个计算单元之间传递,中途完全不回内存。

从能量消耗的角度来看,从HBM显存读取一次数据,消耗的能量足够做1000次乘法运算。TPU通过数据复用,把这个比例反转过来,读一次数据,接着在计算单元中使用128次甚至更多次。Google内部数据显示,TPU v4的能效比是NVIDIA A100的1.2到1.7倍,而最新的Ironwood (TPU v7) 能效比相比v6e又翻了一倍。

从上图也可以看出TPU的效率来源。数据从HBM(容量大但慢)流到VMEM(片上缓存,快但小),再到VREGs(向量寄存器),最后进入VPU或MXU进行计算。整个流程的带宽是经过精心设计的,HBM带宽是O(1000) GiB/s级别,VMEM带宽到O(10000) GiB/s,而MXU的算力达到O(100-1000) TFLOPS。数据越往上走,离计算单元越近,复用次数越多。

核心区别:计算开销近乎免费,搬数据才昂贵

我认为这两种架构背后,是对瓶颈在哪里的不同判断。

从GPU的架构设计来看,AI算法还在快速迭代,今天是Transformer,明天可能是全新的架构。所以必须保持灵活性,宁可牺牲一些能效。每个线程都有独立的指令指针,可以处理复杂的控制流、不规则的内存访问,甚至在训练过程中动态调整计算图。

而TPU的设计则意味着,深度学习的核心就是矩阵乘法,这个不会变。算法再怎么复杂,最终都可以被XLA转换成标准的矩阵乘法运算。既然目标是明确的,那就把所有的资源都投在这件事上,砍掉多余的控制逻辑,把省下的晶体管全部用来堆计算单元。

这里解释一下XLA是什么?它是Google专门为TPU开发的编译器。前面也说过,TPU的硬件设计走的是极简路线,本质就是就一个巨大的矩阵乘法流水线,但能用上这个流水线的前提是,算法得能被转换成规整的矩阵乘法。实际的深度学习代码往往不那么规整,里面有各种复杂的操作。XLA的工作就是把这些非标准化的代码,拆解、重组、排列成TPU能高效执行的整齐格式。比如,它会把多个操作合并成一个(算子融合),提前规划好数据在芯片里的流动路径(内存编排),让数据能像流水线一样在计算单元之间顺畅传递。

在芯片的物理层面有个基本规律,执行一次加法或乘法运算,消耗的能量大约是1 pJ(皮焦耳)。但从寄存器读数据要5-10 pJ,从L1缓存读要20-50 pJ,从HBM读要1000+ pJ。也就是说,计算本身几乎是免费的,昂贵的是数据搬运。

GPU通过庞大的缓存体系(L1/L2 Cache)和高带宽内存(HBM3e)来缓解这个问题,但本质上还是在搬数据。每次计算,数据都要在计算单元和寄存器文件之间往返一趟。

TPU则通过脉动队列,让数据在计算单元之间直接传递。单元A算完,通过一根很短的导线(一般是纳米级距离)把数据传给单元B,单元B接着算,再递给单元C。这种相邻计算单元之间数据传输,电容非常小,能耗几乎可以忽略不计。

在处理超大规模的矩阵运算时,TPU的能耗比能达到GPU的2 ~ 3倍。并不是TPU的计算单元更快,而是它省掉了成千上万次昂贵的内存访问。

网络互联:芯片之间如何通信

单芯片的能力再强,也撑不起万亿参数的大模型。训练GPT-5或者Gemini 3.0这样的超大模型,需要成千上万张卡协同工作。这时候,芯片之间的互联网络就成了决定性能的关键瓶颈。

在互联网络的设计上,Google和英伟达再次选择了不同的技术路线。

英伟达的奢华技术路线:NVLink + InfiniBand

英伟达的互联方案是交换机中心架构。所有的数据通信PU的核都经过交换机,无论是相邻GPU之间的通信,还是跨节点的远程通信。这套系统灵活且强大,但是建设成本也非常高。

从上图可以看到,在一个节点内部,通过有8张GPU通过NVLink互联。NVLink不仅仅是数据传输通道,更重要的是实现了内存语义的互联,GPU A可以直接读写GPU B的显存,就像访问自己的内存一样,这对于模型的并行训练来说非常重要。在H100这代芯片上,单个NVLink的双向带宽可以达到900 GB/s,而通过NVSwitch芯片,8张卡可以实现全互联。

那跨节点呢?那就要靠InfiniBand或者RoCE(基于以太网的RDMA)。这些都是成熟的数据中心网络技术,通过多层交换机把成百上千个节点连起来。

这套方案的优势很明显,非常灵活并且性能均衡。不管工作流或者通信模式有多复杂,只要带宽足够,交换机都能搞定。如果某张卡或线路损坏,交互机自动路由绕开,不影响整体。

但这套方案的代价也不低,非常烧钱。购买H100集群时,网络设备(交换机、光模块、线缆)的成本可能占到总成本的20% ~ 30%。一个IB交换机就要几十万美元,光模块一个上千美元,还要配专业的网络工程师调优。更别说功耗了,交换机本身就是耗电大户。

Google的经济适用性技术路线:ICI + 3D Torus

Google则又一次选择了极简的路线:芯片直连,砍掉交换机。

TPU芯片上直接集成了ICI(芯片间互联)接口。芯片A通过铜缆直接连到芯片B,B连到C,C连到D,最终形成一个环状或网格状的拓扑。最经典的是3D Torus(三维环面) 结构。

从上图可以看到,每个芯片只和上下左右前后的邻居直连。如果芯片A要给芯片Z发数据,数据包得经过中间十几个节点,每个节点既是计算单元,也是数据转发站。

这种设计最大的好处就是省钱省电。不需要购买价格昂贵的交换机,也不需要光模块。Google宣称TPU网络的成本不到GPU网络的五分之一。

但TPU的这种网络结构也有个致命的弱点,通信延迟和带宽非常依赖距离。相邻的芯片因为直连,通信非常快,但如果距离得比较远,延迟会随跳线数增加。更麻烦的是,如果中间某个节点坏了,整个环路就断了。

这里需要关注的是,Google之所以能以这种极简的架构设计芯片通信网络,主要还是因为Transformer模型的通信特点。训练和推理大模型时,绝大部分通信发生在算子并行和流水线并行中,数据主要在相邻的芯片之间传递,很少需要跨越整个Pod的远距离通信。而且XLA编译器会提前规划好整个计算图,它知道哪些芯片需要频繁通信,就把它们在物理上放得近一点,从而尽量保障硬件的物理结构和软件的算法逻辑完美重合。

那要如何解决单节点的故障导致整个通信网络损坏的问题?Google的解决方案是OCS(Optical Circuit Switching,光路交换)

传统的交换机是电子式的,需要解析数据包、查路由器、转发。OCS的原理完全不同,它是一组可以旋转的微型镜面,通过调整镜面角度来反射光束,把光从一个端口折射到另一个端口。

它不关心你传什么数据,只是在物理层面建立光路连接,就像用镜子把阳光反射到不同的方向。几秒钟内,OCS可以重新配置整个Pod的拓扑结构。如果某个机柜坏了,OCS调整镜子角度,跳过坏机柜,把好的连起来。

OCS的另一个优势是可以根据模型的通信模式动态优化拓扑。比如训练一个用3D并行策略的模型,OCS会把拓扑调整成最适合3D通信的形状。这在传统的固定交换机网络里很难做到。

为什么英伟达和Google选择不同的技术路线?

我觉得核心原因是,两家公司面向的客户和场景不同。

英伟达卖的的是通用的计算能力。买了H100,你可以训练GPT,也可以训练MoE(混合专家)模型,甚至可以跑科学计算或图形渲染。像MoE这种模型,最近一两年很流行,在运行过程中,Token 会被随机分配给不同的专家模型,如果 Token 在 A 芯片,而它需要的专家在 Z芯片(物理距离很远),TPU的这种芯片间互联的拓扑结构就不合适,而英伟达的交换机中心网络却能轻松应对。

而谷歌用的是定制的整体方案,TPU之前主要跑Google自家的模型,而谷歌的软硬一体的生态能将优势发挥到极致。硬件团队设计芯片时,就知道软件团队会用什么通信模式。XLA编译器在编排计算图时,会特意把需要频繁通信的算子放在拓扑网络上距离近的节点。这种软硬件协同设计,外部客户是很难复制的。

从经济规模来衡量,对于超大规模集群(10万+ 芯片),Google的直连方案优势非常大。省下来的交换机和光模块成本,足够多买几千个TPU芯片。而且直连网络的延迟波动很小(几乎可以忽略不计),让XLA编译器可以做更激进的优化,进一步榨干硬件性能。

但这也意味着锁定。TPU只能在Google Cloud上租用,你不能买一个Pod放在自己机房。而且如果你的模型通信模式不符合TPU通信网络的"邻居通信"规律,性能可能会大打折扣。

市场格局:裂痕正在慢慢显现

上文对比了双方选择的技术路线,现在再看看两种技术路线在市场的版图情况。

当前的市场版图

截止到现在,英伟达在商用AI芯片市场依然一枝独秀,市场份额遥遥领先(接近90%)。

但是,如果把Google TPU、AWS Trainium/Inferentia、Azure Maia这些云厂商自研ASIC算进去,情况就不一样了。

在实际部署的总算力中,英伟达的份额会下降不少。TrendForce预测,到2026年,云服务提供商自研ASIC的年增长率将达到44.6%,而GPU的增长率只有16.1%。这至少表明,全球一些大的算力消费者正在加速摆脱对单一供应商的依赖。

市场上的现实案例也在说明这种转变。Anthropic近期承诺未来将使用多达100万个TPU进行模型训练。虽然他们也在用AWS Trainium和NVIDIA GPU,但这种规模的TPU部署,代表着一家顶级AI公司与Google生态的深度绑定。

还有OpenAI最近放出来的消息。OpenAI已经开始租用Google TPU用于推理工作。即便OpenAI和英伟达的合作关系那么密切,在面临成本压力和单一供应风险时,也不得不寻求替代方案。

还有个更直接的数据,Midjourney在将图像生成工作负载迁移到TPU后,推理成本降低了65%。这种量级的成本优势,对于任何需要大规模服务用户的公司来说,都极具吸引力。

市场的分化趋势

也正是由于TPU这类极简但极致提升能耗比的ASIC芯片越来越成熟,近一两年市场上关于训练用GPU,推理用ASIC的声音逐渐多了起来。

在训练市场,英伟达依然是绝对主导。因为要改变一个耗资数亿美元、历时数月的训练任务的硬件平台,风险非常高。CUDA生态的调试工具、社区支持、以及大型GPU集群经过验证的稳定性,使得它成为头部AI厂商的首选。当你在和竞争对手竞速GPT-5或Gemini-3时,没人愿意承担换芯片省了20%的钱但晚上线三个月的风险。

当然,也只有谷歌敢,据说这次Gemini 3 Pro的训练全部用的都是TPU

而且模型的技术路线还在迭代。今天的Transformer可能明年就被新架构取代。这种不确定性就会让通用性成为刚需。英伟达的Rubin架构(2026年)会继续推高单芯片性能的极限,配合成熟的CUDA软件栈,我觉得在训练端的领先地位短期内难以撼动。

但在推理市场,格局正在快速变化。推理任务是稳定的、重复的,而且在AI商用普及率越来越高后也是对成本极度敏感的。像Ironwood(TPU v7)这样拥有192GB显存、专门为推理优化的芯片,在综合成本上能击败通用GPU。

买芯片只是一次性投入,但推理要7x24小时不停地跑,真正烧钱的是电费。TPU的能效比高,同样处理一亿次推理请求,可能只需要GPU一半的电力,长期下来省下的钱远超芯片差价。

英伟达的生态护城河:CUDA

硬件上的领先只是英伟达护城河的一半,通过前文分析可知,这一半护城河很可能在将来会被TPU为代表的ASIC专用芯片侵蚀一部分。

英伟达护城河的另一半是它深耕多年的CUDA生态。在CUDA发展的17年里,可能有数百万行线上代码、定制的高性能算子、各种高度优化的库(cuBLAS、cuDNN、TensorRT、FlashAttention),都是基于CUDA编写。想要将这些代码移植到其它架构,难度可想而知。

开发者的惯性也很重要。可以看看目前发布的那些AI领域的新论文,参考实现基本都是使用的PyTorch + CUDA。当一个工程师遇到性能问题时,Stack Overflow和GitHub上有成千上万个CUDA相关的解决方案。这种网络效应也确保了英伟达的硬件是当前阻力最小的路径。

但是,这另一半的护城河,谷歌也在想办法对抗。

Google的策略就是基于编译器的路径:XLA。

开发者不再需要像CUDA一样手写和深度优化CUDA Kernel,而是用Google定义的更高级的语言JAX描述计算图,然后让XLA编译器把整个图编译成机器码。理论上,同一份代码可以在TPU、GPU、甚至CPU上运行,无需修改。

举个例子,英伟达提供了一套性能极高的CUDA算子库(cuDNN),里面包含卷积、relu、加法等算子。当我们的计算逻辑是Add -> ReLU -> Softmax时,执行过程如下:

  • 从显存读数据,跑 Add 算子,写回显存。
  • 从显存读数据,跑 ReLU 内核,写回显存。
  • 从显存读数据,跑 Softmax 内核,写回显存。

前文讲到过,计算开销非常小,搬运数据的代价才是最昂贵的。所以哪怕单个算子再快,中间的读写显存会浪费大量的时间。除非工程师专门手写一个Add_ReLU_Softmax融合算子,否则很难避免浪费。

而XLA的技术路线就是提供抽象层级来优化这个手写算子的成本。开发者只要使用JAX定义好先做ADD、再做ReLU、最后做Softmax的计算图,XLA编译器在运行时就能实时生成一段性能最优的Kernel,这个Kernel的逻辑是:从显存读数据 -> 寄存器里做加法 -> 寄存器里做 ReLU -> 寄存器里做 Softmax -> 写回显存,数据只读取了一次。

XLA希望最好的就是,无论是 TPU、GPU 还是 CPU,编译器会自动根据硬件特性(比如 TPU 的脉动阵列大小),生成最适合这块硬件的代码。

很明显,在任何场景下,XLA是否都能将计算图实时编译成性能最优的硬件相关的代码,完全取决于XLA是否足够强大。而Google也正是押注于这一点:在长跑中,编译器终将会战胜人类工程师。

未来展望:英伟达护城河有多深?

现在回到开头的问题,英伟达的护城河到底有多深?Google TPU会不会给它带来实质性地冲击。

请过前面的分析,我的答案是,护城河很深,但无论是硬件生态,还是软件生态,都逐渐被谷歌侵入。

TPU不会杀死NVIDIA,但未来很可能会影响英伟达75%毛利的定价权。

英伟达无论是从技术、生态到市场的网络效应,这条护城河确实很深。短期内(5年之内),英伟达在训练市场的主导地位大概率难以被撼动。

但护城河也不是永恒的。谷歌TPU代表的专用ASIC路线,已经在能效和成本上证明了自己。Apple、Anthropic、OpenAI的选择,也标志着高端客户开始多元化算力来源。更深层的威胁还来自于谷歌编译器技术的进步(XLA),当软件层面的抽象足够好时,CUDA和英伟达卡的硬件锁定效应会减弱很多。

当然,这对于整个行业其实是件好事。单一供应商的垄断对AI生态的发展并不利。竞争会推动技术进步,降低成本,最终能让AI平权。

我之前已经写过很多分析谷歌的文章,还是那句话,谷歌从未让人失望。