**张量处理器(Tensor Processing Unit,TPU)**是谷歌开发的一系列专用集成电路,用于加速机器学习,尤其是人工神经网络的计算。其架构侧重于深度学习所依赖的大规模数值运算,而非通用处理器所具备的广泛、灵活的指令支持。第一代产品用于加速神经网络推理;后续各代增加了训练能力,并发展出互联系统。谷歌在内部使用TPU,也通过其云计算基础设施向外提供访问服务。(arxiv.org)
起源与发展
谷歌于2015年在数据中心部署了首批TPU,并于2016年5月18日公开宣布了这项技术。神经网络服务不断增长的计算需求推动了专用硬件的开发。最初的TPU针对TensorFlow设计,作为连接到主机服务器的加速器运行,而不是独立的通用计算机。(arxiv.org)
第一代芯片包含65,536个8位乘加单元,排列成256×256的阵列,理论峰值吞吐量为每秒92万亿次运算。其设计优先考虑推理吞吐量和可预测的响应时间。2017年的一篇研究论文使用谷歌生产环境中的工作负载,将其与当时的英特尔Haswell CPU和英伟达K80 GPU进行了比较;论文报告的优势仅适用于这些特定系统和工作负载,并不代表它与后续硬件相比始终具有同样的优势。(arxiv.org)
2017年5月17日,谷歌宣布推出同时支持训练和推理的第二代TPU,并计划通过Google Cloud提供服务。这一代产品引入了浮点运算和设备间的高速连接。谷歌将由此形成的互联系统称为“TPU pod”,确立了一种由加速器芯片及其通信网络共同构成专用超级计算机的模式。(blog.google)
计算架构
神经网络计算经常需要将输入矩阵与学习得到的权重矩阵相乘。在机器学习软件中,张量通常指多维数值数组。TPU通过将许多张量运算中计算密集的部分映射到矩阵乘法硬件上来实现加速;它们并非只用于计算数学意义上的张量积的处理器。(cloud.google.com)
其核心组件是矩阵乘法单元(MXU),以脉动阵列为基础构建。脉动阵列是由处理单元组成的规则网格,操作数和中间结果在其中按协调的阶段逐步传递。每个单元执行乘法和累加运算,相邻单元则复用数值。局部数据传递减少了对寄存器或外部存储器的重复访问,并使大量算术运算能够同时进行。(cloud.google.com)
后续TPU架构将计算组织到TensorCore中,每个TensorCore包含矩阵单元、向量单元和标量单元。向量单元执行激活函数和Softmax函数等运算,标量单元则支持控制流和地址计算。这些资源的互补作用十分重要,因为神经网络中的运算不止矩阵乘法。阵列尺寸和执行单元数量因产品代际而异。(docs.cloud.google.com)
数值格式与存储器
数值精度是架构设计中的一项重要选择。最初的TPU使用8位整数乘法进行推理。TPU v2和v3则在其MXU中采用bfloat16乘法,并以32位浮点数累加,既满足了训练对数值计算的要求,又使乘法硬件保持相对紧凑。(arxiv.org)
Bfloat16采用16位表示,但保留了标准32位浮点数的8位指数域。因此,它具有与32位浮点数相近的指数范围,但有效数位更少。这种取舍不同于传统的IEEE半精度格式。将低精度乘法与高精度累加结合,可以降低存储和算术运算成本,而不必让所有中间值都使用相同的精度。模型准确率仍取决于数值格式的具体使用方式。(cloud.google.com)
Cloud TPU系统使用高带宽内存,在靠近加速器的位置存放数据和模型参数。除算术运算吞吐量外,存储器容量、带宽和数据复用也会影响实际可达到的性能。较新的设计还包含专用的SparseCore硬件,用于嵌入查找等不规则运算,将加速范围扩展到稠密矩阵计算之外。(docs.cloud.google.com)
软件与分布式执行
TPU程序通常来自机器学习框架,而不是手工编写的加速器指令。谷歌的软件栈使用优化编译器XLA,将框架中的计算转换为TPU机器码。XLA处理计算图,其中包括线性代数、损失函数计算和梯度运算;程序的其他部分则在主机上执行。其软件生态包括TensorFlow、JAX,以及与PyTorch相关的TPU支持。(docs.cloud.google.com)
TPU pod支持通过专用芯片间链路连接多个芯片,进行并行计算。“切片”(slice)是pod内部一组相互连接的芯片。网络拓扑因代际而异,包括二维和三维结构。这些系统支持分布式计算,但其实际速度不仅取决于芯片数量,也取决于通信和工作负载的组织方式。(docs.cloud.google.com)
近期产品代际与性能限制
谷歌第七代Ironwood TPU于2025年11月向云客户开放,重点面向大规模、低延迟的推理和模型服务。2026年,谷歌介绍了第八代TPU 8t和TPU 8i系统,分别针对大规模预训练和推理进行了优化。两者仍然支持模型生命周期的各个阶段;这种区分体现的是架构优化方向,而不是能力上的绝对分离。(blog.google)
当工作负载包含大量矩阵计算,且张量维度合适时,TPU的效能最高。小规模运算、填充、频繁的形状变化,以及受内存性能限制的变换,都可能降低利用率。因此,每秒峰值运算次数并不能直接决定应用性能。与图形处理器比较时,必须考虑数值精度、模型准确率、批次大小、内存需求和延迟目标。最早的TPU评估明确测量了生产环境中的工作负载及响应时间约束,而不是仅依赖理论算术运算能力。(docs.cloud.google.com)