来源:半导体行业观察
2025-12-26 09:58:29
(原标题:英伟达的最大威胁:谷歌TPU凭啥?)
公众号记得加星标,第一时间看推送不会错过。
在科技世界,速度往往决定着可能与不可能的界限。
谷歌的 TPU 从最初的概念,到完整部署在数据中心,仅仅用了 15 个月。不到一年半的时间里,团队将架构设想化为硅片,将计算理论落地为可量产硬件,将软件工具与硬件紧密结合,使新加速器能够承载现实工作负载。每一次脉动,每一次数据流动,都见证了工程与创新的极致协作。
TPU 并未止步于首次部署。随后的每一年,团队都在不断迭代:他们提升计算单元的性能,提高内存带宽以适应日益增长的模型规模;优化能效,使每瓦功耗所能完成的计算量大幅增加;扩展功能,让 TPU 不仅能执行矩阵乘加运算,还能支持越来越复杂的神经网络架构和推理任务。每一次迭代都像为系统注入新的脉动,使其更加敏捷、可靠,并能承载更广泛的工作负载。随着 TPU 系列版本不断更新,它逐步成为谷歌深度学习生态的核心基础设施,从搜索和翻译,到地图、街景,再到 AlphaGo 等前沿 AI 项目,无一不依赖这一硬件加速器的力量。
这种持续、逐年的优化不仅体现了硬件设计与工程执行的极致协作,也展示了谷歌将实验室研究快速转化为生产力的能力,使 TPU 在现实世界的应用中愈发不可或缺。TPU的故事似乎证明了:
NVIDIA 的GPU也许是第一,但绝不是唯一。
在故事开始之前:一些与TPU(张量处理单元)有关的概念
TensorFlow:谷歌的机器学习框架
谷歌张量处理单元(Tensor Processing Unit,TPU):谷歌的自定义数据中心加速器
Tensor Core:Nvidia 最新 GPU 中的一个执行单元
谷歌 Tensor:最新的 Pixel 智能手机中的基于 Arm 的系统级芯片
那么什么是张量呢?
在数学中,张量是一种代数对象,它描述了与向量空间相关的一组代数对象之间的多线性关系。张量可以映射不同对象之间的关系,如向量、标量,甚至其他张量。
实际上,我们可以简化这一定义,几乎完全依赖于张量的一种表现形式:张量可以表示为一个(可能是多维的)数组。
因此,根据张量的性质,它可以被表示为一个 n 维数组,其中 n 是 0、1、2、3 等等。这些表示形式中的一些有更熟悉的名字:
维度 0 - 标量
维度 1 - 向量
维度 2 - 矩阵
为什么称之为张量处理单元(TPU)?因为它设计来加速涉及张量的操作。具体来说,是哪些操作呢?我们原始的维基百科定义中提到的操作,将张量描述为“在不同对象之间的映射(多线性关系),如向量、标量,甚至其他张量”。
让我们举个简单的例子。一个二维数组可以描述两个一维数组之间的多线性关系。数学倾向的人会认识到,这个过程是通过将一个向量乘以一个矩阵来得到另一个向量。
这可以推广到表示更高维数组之间关系的张量。然而,尽管张量描述了任意高维数组之间的关系,实际上我们将考虑的 TPU 硬件是设计来执行与一维和二维数组相关的计算。或者,更具体地说,向量和矩阵操作。
谷歌TPU的起源:从机器学习到深度学习
要理解 TPU 的诞生,就必须回到谷歌在机器学习与深度学习领域的长期积累。作为一家每天处理数百亿次搜索请求、管理全球最大规模信息检索系统的公司,谷歌自成立起就对机器学习保持高度依赖。其使命是“组织全球信息,使人人皆可访问并从中受益”,而机器学习正是实现这一使命的核心技术途径。
在 2000 年代中期,谷歌已经在搜索排序(如 PageRank 的机器学习扩展)、垃圾邮件过滤、推荐系统和广告点击率预测(CTR)中大规模应用机器学习模型。
当然,还有在谷歌每年赚取数十亿美元的广告业务中的众多应用。对谷歌来说,机器学习至关重要。因此,谷歌对机器学习的兴趣始于 2000 年代初。随着时间的推移,公司的关注点开始转向深度学习。
在深度学习尚未全面兴起的年代,谷歌已经意识到大规模机器学习对算力的巨大需求。早期的研究显示,用通用服务器集群即可支撑相当复杂的模型训练。例如,在后来被广泛引用的论文《Building High-level Features Using Large Scale Unsupervised Learning》中,作者记录了他们如何使用一个由 1,000 台机器、共 16,000 个 CPU 核心组成的大规模集群,连续运行约三天来训练论文中的模型。换言之,当时的模型规模尚可通过谷歌既有的数据中心算力“堆出来”,无需依赖任何专用加速芯片。
(论文地址:https://static.googleusercontent.com/media/research.google.com/zh-CN//archive/unsupervised_icml2012.pdf?utm_source=chatgpt.com)
这一结果不仅反映了谷歌早期在机器学习领域投入的规模,也说明在当时的技术背景下,通用硬件依然能够支撑实验级别的深度学习研究。然而,随着模型急速扩张、神经网络的计算密度不断提升,这种依赖通用 CPU 集群的方式很快触及性能与能耗的瓶颈,并最终促使谷歌在几年后走向专用机器学习加速器(TPU)路线。
到2011年,由 Jeff Dean、Greg Corrado 和 Andrew Ng 主导的深度学习研究项目 Google Brain 最初作为 Google X 内部的探索性计划启动。该项目旨在验证大规模分布式计算能否推动深度神经网络获得突破,并由此开启了谷歌在深度学习方向的系统性研究。
Google Brain 的核心目标是将深度神经网络与谷歌庞大的计算基础设施 — 大规模分布式服务器 + 海量数据 — 结合起来,从而训练、部署此前规模难以企及的神经网络系统。这个思路的基础是:与其用传统、同步、单机/少量机器跑神经网络,不如充分利用谷歌现成的云/服务器资源,构建“分布式、可扩展”的深度学习平台。
为实现这一目标,团队构建了一个名为 DistBelief 的系统 —— 基于谷歌云基础设施,支持将深度神经网络分布到成千上万台机器上,并通过异步参数更新(asynchronous parameter update)的方式进行训练。这种设计当时颠覆了主流研究中“同步训练 + 少量机器 + 高性能单机/GPU”的做法。
使用 DistBelief 系统,在 2012 年左右,Google Brain 曾用“数千台 CPU/成百上千台服务器 + 数百万/数千万图像/视频数据”进行训练。通过对来自 YouTube 的大量未标注图像 / 视频进行无监督学习,他们训练出的网络“自发地”学会识别诸如猫、人脸等概念 — 这就是广为人知的“猫实验”/“猫论文”(“cat paper”)。
(论文地址:https://arxiv.org/pdf/1112.6209)
使用这个大规模神经网络,该团队还显著提高了标准图像分类测试的状态——事实上,我们看到了 70% 的相对准确性改进。通过利用网络上大量的未标记数据来增强有限的标记数据集来实现这一点。这是该团队非常关注的一个方向——如何开发能够很好地扩展的机器学习系统,以便可以利用大量的未标记训练数据。
这一实验既证明了深度神经网络 + 海量数据 + 分布式训练在无监督/半监督学习上的潜力,也标志着将深度学习从学术研究领域推进到可以影响实际产品/服务的阶段。
Google在这段深度学习奋力发展的路上,也逐渐暴露了一个巨大的技术问题:
全部技术都只基于CPU运行。
Cade Metz 的书《天才制造者》回顾了当 Alex Krizhevsky(AlexNet 作者)在 2013 年来到谷歌时,他发现他们现有的模型都在 CPU 上运行。Krizhevsky 需要 GPU,所以他亲自解决了这个问题:
在公司的最初几天,他从当地的电子商店购买了一台 GPU 机器,把它放在离他的办公桌不远的走廊的衣橱里,将其接入网络,并开始在这台独立的硬件上训练他的神经网络。
最终,Krizhevsky 的新同事们意识到,他们需要 GPU,而且是很多 GPU。2014 年,谷歌决定购买大约 40,000 个 NVIDIA GPU,花费约 1.3 亿美元。这些 GPU 被用于训练谷歌业务中使用的深度学习模型。顺便说一句,像谷歌这样的公司购买 40,000 个 GPU 并不会被忽视。如果 NVIDIA 需要一个信号,说明将 GPU 应用于深度学习可能是一个规模可观的业务,那么谷歌几乎可以肯定在 2014 年提供了这个信号。
然而,这些 GPU 并不一定能解决谷歌面临的最大挑战。GPU 非常适合训练谷歌正在开发的深度学习模型,但当需要在全球范围内大规模部署这些模型时,情况就不同了。比如,语音识别等深度学习应用一旦投入使用,可能会迅速被大量用户采用,这种潜在的高需求就带来了巨大的计算压力。类似地,谷歌的核心产品——搜索服务——每天处理数十亿次请求,也面临着相同的问题:如何以可接受的延迟和能耗水平,将训练好的模型在全球范围内高效运行。
谷歌搜索对任何拥有网络浏览器和互联网连接的人来说都是免费的。这种搜索的质量以及它的免费性,是推动其爆炸性增长和迅速占主导地位的关键因素。据估计,到 2023 年,谷歌提供了大约两万亿次搜索结果。要能够以这种规模免费提供搜索,谷歌需要能够非常便宜地提供每一组搜索结果。
谷歌团队可以预见到使用这些新的深度学习技术构建的一系列服务将会非常受欢迎。谷歌可以利用其品牌,以及将这些服务与其现有广受欢迎的产品如搜索、Gmail 和 Android 集成,再次使这些服务占据主导地位。
然而,这带来了一个重大问题。在如此大规模下,这些服务将需要大量额外硬件投入。谷歌团队在 2013 年设计了一个语音识别示例,用以说明所需计算资源的规模:假设每位用户每天在 Android 手机上仅使用三分钟语音输入,而这些语音又需要通过深度学习在 CPU 上转换为文本,那么公司将不得不将服务器数量增加两到三倍,而这些服务器本身已经在处理现有工作负载。这种扩张所需的成本将非常高昂。
一个可行的替代方案是扩大 GPU 的使用,而 NVIDIA 的 GPU 显然是首选。
到 2013 年,NVIDIA 的 GPU 及其成熟的软件生态系统已经成为机器学习研究的重要工具,既可用于训练,也可用于推理。NVIDIA 于 2006 年推出了首款支持通用计算任务的 GPU,而其 CUDA 框架则于 2007 年问世,使得在 GPU 上进行通用计算编程成为可能。更关键的是,NVIDIA GPU 可直接购买并部署,这为加速深度学习模型提供了即时可行的硬件选择。
正如我们所看到的,谷歌确实采购了NVIDIA GPU 并将其部署在数据中心中。然而,依赖 GPU 并不一定是技术上或战略上的最佳选择。虽然 GPU 在深度学习所需的矩阵运算和并行计算方面比 CPU 更高效,但它们并非专门为深度学习设计,因此存在潜在的效率损失。在谷歌这种规模下,这些效率损失意味着巨大的成本增加。此外,完全依赖单一供应商提供对公司战略至关重要的硬件,也会带来显著的战略风险。
接下来,谷歌来到了下一个叉路口:
有两条可行路径可供选择。其一是使用 FPGA,这种可编程逻辑器件能够执行深度学习所需的专用计算。
其二是设计和构建自家的定制硬件,即特定应用集成电路(ASIC)。与 FPGA 或 GPU 相比,ASIC 可以针对深度学习任务进行专门优化,从而释放更高的效率潜力,同时减少对单一供应商的依赖。
尽管 FPGA 的性能在某些情况下仍有优势,但在与 GPU 的对比中很快就显示出局限性。FPGA 并未完全被淘汰:它们仍在谷歌的数据中心中使用,比 ASIC 提前约六个月投入生产,承担着一个“清洁管道”的角色,用于验证和支持所有新加速器在生产环境中的部署流程。
真正的重点是 ASIC。谷歌的目标是开发一种定制芯片,在推理任务中相较 GPU 实现约 10 倍的成本性能优势。然而,定制硬件的开发需要时间,而时间对该项目至关重要。这不能是一个拖延多年的研究实验;硬件必须快速交付至谷歌的数据中心,并能够实现大规模部署。为此,该项目必须充分利用谷歌现有的资源和技术积累,以确保快速开发和高效交付。
15个月的奇迹:TPU登场
一个关键问题是:在没有现成内部团队的情况下,谷歌如何能快速设计出复杂且具有创新性的硬件?令人惊讶的是,谷歌很快就组建起了一支高效团队。那么,他们是如何做到的呢?
谷歌本身已有为数据中心设计定制硬件的经验,因此可以从现有团队中召集部分成员,参与新项目。然而,公司此前从未自行开发过处理器芯片,因此必须引入拥有相关经验的新成员。这些新成员大多来自芯片设计和半导体行业,具备设计高性能 ASIC 的专业知识和实践经验。通过将内部资源与外部专家相结合,谷歌能够迅速组建一支既熟悉公司运作,又具备尖端硬件设计能力的跨学科团队,从而在短时间内推动定制深度学习加速器的研发。
其中一位新成员 Norm Jouppi 回忆道,他是在一次会议上与 Jeff Dean 交谈后,被招募加入 TPU 团队的。他对这一创新的“greenfield”项目产生了浓厚兴趣,决定参与其中。加入团队的其他知名成员还包括 David Patterson(图灵奖得主),他既是原始 Berkeley RISC 架构的开发者,也是 RISC-V 指令集架构的重要推动者。这些高水平人才的加入,使团队在硬件设计、指令集架构以及系统优化等方面具备了强大的专业能力,为 TPU 的快速开发奠定了坚实基础。
谷歌很快组建了一支才华横溢且经验丰富的团队。然而,即便如此,如果他们从零开始设计全新的系统架构,也仍然可能难以在既定时间内实现目标。幸运的是,谷歌能够借鉴一种已有的架构方法,这一方法早在 TPU 开发之前三十多年就已提出。
在 1978 年的论文 Systolic Arrays (for VLSI) 中,卡内基梅隆大学的 H.T. Kung 和 Charles E. Leiserson 提出了他们所谓的“systolic system(脉动系统)”。这一设计理念为高吞吐量、可并行化的计算提供了理论基础,使其非常适合深度学习中大规模矩阵运算的实现,并最终为 TPU 架构提供了重要启发。
(论文地址:
https://www.eecs.harvard.edu/htk/static/files/1978-cmu-cs-report-kung-leiserson.pdf
Systolic system(脉动系统)是一种处理器网络,它以有节奏的方式执行计算并在系统中传递数据。在这种脉动计算机系统中,每个处理器的功能类似于心脏:它们周期性地接收输入、进行简短计算,然后输出数据,以确保网络中的数据保持连续流动。
Kung 和 Leiserson 随后将 systolic system 的一个重要应用定位于 矩阵计算。许多基本的矩阵运算能够在具有数组结构的脉动网络上高效且优雅地进行流水线处理。例如,六边形连接的处理器阵列可以在执行矩阵计算时实现最优性能。这些脉动阵列具有通信路径简单且规则的特点,并且网络中几乎所有处理器都是同构的。正因如此,基于脉动阵列的专用硬件能够利用 VLSI 技术以低成本构建。
作为当时技术环境的一个实例,Kung 和 Leiserson 展示了如何将脉动系统作为 DEC PDP-11 小型计算机的附件来使用,表明这一理念不仅具有理论价值,也可应用于实际硬件系统。
该论文描述了脉动阵列的处理元素可能连接的替代方式。
其中一个提议的安排 - 正交连接 - 与 ILLIAC IV 超级计算机中处理元素的安排产生了共鸣,在 ILLIAC IV 超级计算机:DARPA、SIMD、Fairchild 和 Stanley Kubrick 的'2001'中讨论了这一点)。
Kung 和 Leiserson 描述了如何使用六边形连接的脉动阵列来执行矩阵乘法。
Kung 和 Leiserson 的这项开创性工作在随后的十年里得到了广泛研究,并催生了多篇论文,展示了如何使用脉动阵列解决各种计算问题。
那么,脉动阵列是如何工作的呢?基本思想是:数据从数组的一侧或多侧输入系统,并随着每个“脉冲”沿处理器阵列流动,数据和中间结果在每一步被处理。经过足够的脉冲后,所需的计算完成,结果便从数组的一侧或多侧输出。
到 2013 年,Kung 和 Leiserson 当年提出脉动阵列时针对 1970 年代制造技术的原始动机已不再适用。然而,这种方法在矩阵乘法等任务上固有的高效性仍然显著,尤其是在当时相对较低功耗的前提下。因此,TPU 的设计选择了采用脉动阵列。
谷歌拥有工程师团队和成熟的架构方法,但在将概念转化为实际硅片的能力上仍存在差距。为此,他们与 LSI 公司(现为 Broadcom 的一部分)展开合作。乍看之下,Broadcom 可能并不是典型的机器学习硬件合作伙伴,但它们能够与制造伙伴如 TSMC 合作,将谷歌的设计转化为可量产、可大规模部署的芯片。
此外,要让 TPU 支持实际工作负载,工作不仅限于制造大量芯片。还必须开发配套的软件,使谷歌现有的深度学习工具能够在新架构上运行。这意味着全新的指令集架构需要被支持,而编译器也必须为新架构进行适配——这本身就是一项巨大的工程挑战。
因此,TPU团队的目标就变成了:
快速构建硬件
实现高性能
在大规模环境下稳定运行
对新工作负载开箱即用
同时保持成本效益
他们确实实现了快速构建:项目启动仅 15 个月后,第一款 TPU 就在 2015 年初部署到了谷歌的数据中心。
那么,他们是如何在短短 15 个月内完成这一壮举的呢?在论文 “In-Datacenter Performance Analysis of a Tensor Processing Unit” 中,总结了一些关键因素:
(论文地址:
https://arxiv.org/pdf/1704.04760
尽管我们有时会吹嘘 TPU 从项目启动到部署到数据中心仅用了 15 个月,远远短于标准的生产芯片周期,实际情况是谷歌依赖后续 TPU 的设计和优化往往需要多年的迭代。快速上市的成功得益于团队的单一日程焦点——不仅在架构设计上,例如 700 MHz 的时钟频率便于实现时间闭环,以及完全调试的 28nm 工艺,还在于数据中心部署团队的高效执行和协调。
虽然使用成熟的 28nm 工艺和相对较低的时钟速率确实帮助缩短了开发周期,但这一切的背后,更关键的是谷歌能够调动所需资源,全力支持这一项目,从而实现快速从概念到部署的转化。
TPU 很快就在谷歌内部广泛投入使用。其中一个引人注目的高调示例是 DeepMind 在 AlphaGo Zero 项目中的应用。AlphaGo Zero 是在 2016 年 3 月击败世界围棋冠军李世石的模型。
AlphaGo Zero 从自我对弈的强化学习中学习,起始于随机初始化的权重,不依赖人类棋谱指导,也不使用搜索树展开,仅使用原始棋盘状态作为输入特征。令人惊讶的是,它仅使用谷歌云中的一台机器配备 4 个 TPU,就完成了训练。
2016 年 AlphaGo Zero 的成功标志着一个重要时刻:以如此有限的硬件实现如此高水平的人工智能成果,展示了 TPU 在大规模深度学习任务中高效、低功耗的潜力,也验证了谷歌定制加速器设计的实际价值。
像谷歌这样的公司通常不会公开其数据中心的内部运作细节。因此,TPU 在 2015 年首次部署后一年的时间里仍然保持相对神秘。
直到 2016 年 5 月 18 日,谷歌 CEO Sundar Pichai 在 Google I/O 大会主题演讲中首次正式公开宣布:
“我们在数据中心内部署 TPUs 已超过一年,并发现它们在机器学习任务中提供了每瓦性能的数量级提升。”
这一声明不仅揭示了 TPU 的存在,也向业界展示了谷歌在定制加速器和深度学习硬件上的领先优势。
这一发布还伴随着一篇简短的官方博客,介绍了谷歌如何使用 TPU 定制芯片来增强机器学习任务的计算能力。除了提供一些简要的技术细节外,博客还展示了 TPU 如何支持谷歌的实际服务。
TPU 已经为谷歌的多项应用提供了动力,包括用于提升搜索结果相关性的 RankBrain,以及用于增强地图和导航准确性与质量的 街景查看(Street View)。在 AlphaGo 与围棋世界冠军李世石的比赛中,TPU 为其提供了计算能力,使程序能够“更快地思考”,并在棋局中规划更远的移动。
15个月后:TPU的架构与迭代
正如我们所看到的,TPU v1 团队采用的方法源自 H.T. Kung 和 Charles E. Leiserson 在 1978 年论文 “Systolic Arrays (for VLSI)” 中首次提出的架构理念。
脉动系统(systolic system)是一种由处理器组成的网络,这些处理器有节奏地执行计算并传递数据。在脉动计算机系统中,每个处理器的功能类似于心脏:它周期性地接收输入、进行简短计算,然后输出结果,从而保持网络中数据的连续流动。
那么,TPU v1 如何利用脉动方法高效执行矩阵乘法呢?我们可以用一个 2x2 矩阵乘法示例来说明。
假设我们有一个 2x2 的乘法单元(MAC)阵列,这些单元在一个简单的网格中连接。如果我们按正确顺序将矩阵元素输入到网格中,那么矩阵乘法的结果便会自然从阵列中产生。每个角落的方块代表一个 乘法累加单元(MAC),可以执行乘法和加法操作,从而完成矩阵乘法的流水线处理。
在这张图中,黄色的值是从顶部和左侧输入矩阵的输入值。浅蓝色的值是存储的部分和。深蓝色的值是最终结果。
让我们一步步来分析。
第 1 步:值 a11 和 b11 被加载进左上角的乘法/累加单元(MAC)。它们被相乘,结果被存储。
第 2 步:值 a12 和 b21 被加载进左上角的 MAC。它们被相乘,并加到之前计算的结果上。这给出了结果矩阵的左上角值。与此同时,b11 被传输到右上角的 MAC,在那里它与新加载的值 a21 相乘,结果被存储。同时,a11 被传输到左下角的 MAC,在那里它与新加载的值 b12 相乘,结果被存储。
第 3 步:b21 被传输到右上角的 MAC,在那里它与新加载的值 a22 相乘,结果被加到之前存储的结果上。同时,a12 被传输到左下角的 MAC,在那里它与新加载的值 b22 相乘,结果被加到之前存储的结果上。在这一步中,我们计算了结果矩阵的右上角和左下角值。与此同时,a12 和 b21 被传输到右下角的 MAC,在那里它们被相乘,结果被存储。
第 4 步:最后,a22 和 b22 被传输到右下角的 MAC,在那里它们被相乘,结果被加到之前存储的值上,给出了结果矩阵的右下角值。
因此,矩阵乘法的结果沿着 MAC 矩阵中移动的“对角线”显现出来。
在我们的示例中,进行 2x2 矩阵乘法需要 4 个步骤,但这仅是因为在计算开始和结束时一些 MAC 没有被利用。实际上,一旦 MAC 变为空闲,新的矩阵乘法就会从左上角开始。因此,该单元每两个周期就能完成一次新的矩阵乘法。
这是对脉动阵列工作方式的简化表示,我们简要地介绍了 TPU v1 中脉动阵列实现的一些细节。我希望这种架构工作的原理已经清楚。
这是最简单可能的矩阵乘法,但可以扩展到更大的矩阵和更大的乘法单元阵列。
关键点是,如果数据以正确的顺序输入到脉动阵列中,则通过系统的值和结果的流动将确保所需结果随时间从阵列中出现。没有必要将中间结果存储并从“主存储”区域提取。由于矩阵乘法单元的结构和输入被输入到单元的顺序,中间结果在需要时自动可用。
当然,矩阵乘法单元不是孤立存在的,整个系统的最简单呈现如下:
首先要注意的是,TPUv1 依赖于通过 PCIe(高速串行总线)接口与主机计算机的通信。它还可以直接访问自己的 DDR3 动态 RAM 存储。
我们可以将其扩展为设计的更详细展示:
让我们从这个设计的展示中挑选一些关键元素,从顶部开始,大致顺时针移动:
DDR3 DRAM / Weight FIFO:权重存储在通过 DDR3-2133 接口连接到 TPU v1 的 DDR3 RAM 芯片中。权重是从主计算机的内存通过 PCIe 预加载到这些芯片上的,然后可以转移到“Weight FIFO”内存中,为矩阵乘法单元的使用做好准备。
矩阵乘法单元:这是一个“脉动”阵列,拥有 256 x 256 的矩阵乘法/累加单元,由顶部的 256 个“权重”值和左侧的 256 个数据输入供给。
累加器:结果从脉动矩阵单元的底部出现,并存储在“累加器”内存存储中。
激活:在此应用上述神经网络中描述的激活函数。
统一缓冲区/脉动数据设置:应用激活函数的结果存储在“统一缓冲区”内存中,准备作为输入反馈到矩阵乘法单元以计算下一层所需的值。
乘法/累加单元(MACs)
到目前为止,我们还没有具体说明矩阵乘法单元执行的乘法的性质。TPU v1 执行 8 位 x8 位整数乘法,利用量化来避免对更占用更多硅片面积的浮点计算的需求。
指令集
TPU v1 采用 CISC(复杂指令集计算机)设计,大约只有 20 条指令。值得注意的是,这些指令是由主计算机通过 PCIe 接口发送给它的,而不是从内存中获取的。
五个关键指令如下:
Read_Host_Memory
通过 PCIe 从主计算机的内存读取输入值到统一缓冲区。
Read_Weights
从权重内存读取权重到 Weight FIFO。注意,权重内存将已经通过 PCIe 从计算机的主内存中读取了权重。
Matrix_Multiply / Convolve
根据论文,这条指令:使矩阵单元执行矩阵乘法或卷积,从统一缓冲区到累加器。矩阵操作接受一个变量大小的 B*256 输入,将其与一个 256x256 的恒定权重输入相乘,产生一个 B*256 的输出,完成 B 流水线周期。这是实现脉动阵列矩阵乘法的指令。它还可以执行卷积计算,这对卷积神经网络是必需的。
Activate
根据论文,这条指令:执行人工神经元的非线性函数,有 ReLU、Sigmoid 等选项。它的输入是累加器,输出是统一缓冲区。如果我们回到我们简单的神经网络模型,隐藏层中的值是将“激活函数”应用于输入的权重乘以输入的总和的结果。ReLU 和 Sigmoid 是两种最受欢迎的激活函数。在硬件中实现这些将提供应用激活函数的有用加速。
Write_Host_Memory
通过 PCIe 将结果从统一缓冲区写入主计算机的内存。
值得暂停一刻,反思这五条指令在提供几乎完整的 TPU v1 推理实现方面的优雅。在伪代码中,我们可以大致描述 TPU v1 的操作如下:
Read_Host_Memory
Read_Weights
Loop_Start
Matrix_Multiply
Activate
Loop_End
Write_Host_Memory
强调脉动单元在使这成为可能和高效中的重要性也是有用的。正如 TPU v1 团队所描述:
矩阵单元使用脉动执行以节省能量,通过减少对统一缓冲区的读写....它依靠来自不同方向的数据在数组中的单元以规律间隔到达时被组合。数据从左侧流入,权重从顶部加载。给定的 256 元素乘法-累加操作以对角线波前的形式通过矩阵移动。
软件
没有软件支持的 TPU v1 硬件将毫无用处。谷歌开发并使用了 Tensorflow,因此创建“驱动程序”以使 Tensorflow 能够与 TPU v1 协同工作是主要步骤。
TPU 软件栈必须与为 CPU 和 GPU 开发的软件栈兼容,以便应用程序可以快速移植到 TPU。在 TPU 上运行的应用程序的部分通常用 TensorFlow 编写,并编译成可以在 GPU 或 TPUs 上运行的 API。
与 GPUs 一样,TPU 栈分为用户空间驱动程序和内核驱动程序。内核驱动程序很轻量级,仅处理内存管理和中断。它设计用于长期稳定。用户空间驱动程序变化频繁。它设置和控制 TPU 执行,将数据重新格式化为 TPU 顺序,将 API 调用转换为 TPU 指令,并将它们转换为应用程序二进制文件。
制造和模具
TPU v1 是由 TSMC 使用相对“成熟”的 28nm TSMC 工艺制造的。谷歌表示,与谷歌此时在其数据中心使用的更先进工艺制造的 Intel Haswell CPU 和 NVIDIA 的 K80 GPU 芯片相比,模具面积不到一半。
我们已经看到了 TPU v1 的指令集有多简单,只有 20 条 CISC 指令。ISA 的简单性导致 TPU v1 的模具中用于解码和相关活动的“开销”非常低,仅占模具面积的 2%,标记为“控制”。
相比之下,24%的模具面积专用于矩阵乘法单元,29%专用于存储输入和中间结果的“统一缓冲区”内存。
性能
此时,回顾一下 TPU v1 旨在使推理——即在谷歌规模的真实世界服务中使用已经训练好的模型——更高效是有用的。它不旨在提高训练的速度或效率。尽管推理和训练有一些共同的特征,但在开发专用硬件时,推理和训练提供了完全不同的挑战。
那么 TPU v1 的表现如何呢?
2013 年,TPU v1 的关键比较是与 Intel 的 Haswell CPU 和 NVIDIA 的 K80 GPU。
TPU v1 拥有 K80 GPU 的 25 倍 MAC 和 3.5 倍的片上内存。
TPU v1 在推理方面比 K80 GPU 和 Haswell CPU 快大约 15X - 30X。
并且关键的是 TPU v1 在能源效率方面远超 GPU:TPU v1 的相对增量性能/瓦特是 GPU 的 25 到 29 倍。
TPU v1 只是故事的开始。TPU v1 设计得很快,唯一的目标是使推理更快和更节能。它有一些明显的限制,不是为训练设计的。不仅谷歌内部,外部公司很快就开始考虑如何改进 TPU v1。
2017年 TPUv2
Google的第二代TPU,定位是服务端AI推理和训练芯片。
硬件架构
TPUv2的改变
单个向量存储器,而不是固定功能单元之间的缓冲区。
通用向量单元,而不是固定功能激活管道。
连接矩阵单元作为向量单元的卸载。
将 DRAM 连接到内存系统而不是直接连接到矩阵单元。
转向 HBM 以获得带宽。
添加互连以实现高带宽扩展。
TPUv2 Core
超长指令字架构:利用已知的编译器技术。
线性代数ISA:标量、向量和矩阵,为通用性而构建。
TPU 核心:标量单元
322b VLIW 捆绑包:
2 个标量槽
4 个向量槽(2 个用于加载/存储)
2 个矩阵插槽(推入、弹出)、
1 个杂项插槽
6 个立即数
标量单元执行:
完整的 VLIW 捆绑获取和解码
标量槽执行
存储系统
针对 SRAM 暂存器进行加载和存储
在核心内提供可预测的调度
可能会因同步标志而停止
可通过异步 DMA 访问
在同步标志中指示完成
互连器
具有 4 个链路的片上路由器
每个链路 500 Gbps
组装成2D环面
软件视图:使用 DMA,就像 HBM 一样;限制推送 DMA;只需定位另一个芯片 ID
2018年:TPUv3
TPU3是对TPU2的温和重新设计,采用相同的技术,MXU和HBM容量增加了两倍,时钟速率、内存带宽和ICI带宽增加了1.3倍。TPU3超级计算机还可以扩展到1024个芯片。它的算力进一步提升至 420TFlops,内存达到了 128GB(HBM) ,并且首次引入了分布式训练框架,这一创新使得多台 TPU 可以协同工作,大大提高了训练效率,能够应对大规模的深度学习任务。此外,TPU v3 还采用了当时最新的液冷技术,有效解决了芯片在高负载运行时的散热问题,确保了芯片的稳定性能,为 AI 训练的大规模应用提供了可能。
功能特性
协同设计:具有软件可预测性的简化硬件(例如,VLIW、暂存器)。
使用 bfloat16 脉动阵列计算密度:HBM 为计算提供支持,XLA编译器。
具有原则性线性代数框架的灵活大数据核心。
2020年: TPUv4i
TPUv4i:Google于2020年发布,定位是服务器端推理芯片.
硬件架构
功能特性
1)单核TPUv4i 用于推理,双核 TPUv4(可扩展至 4096 个芯片)用于训练。
2)选择编译器兼容性,而不是二进制兼容性。
3)通过通用内存 (CMEM)增加了片上 SRAM 存储。
4)四维张量 DMA 引擎充当协处理器,可完全解码和执行 TensorCore DMA 指令。
5)添加了一个共享片上互连 (OCI),用于连接芯片上的所有组件。
6)引入了四输入加法器运算单元。
7)时钟频率达到 1.05 GHz。
8)2个ICI链路链接板端4 个芯片。
9)具有广泛的跟踪和性能计数器等硬件功能。
2021年:TPUv4
谷歌2020年发布,服务器推理和训练芯片,芯片数量是TPUv3的四倍。它用了更为先进的 7nm 工艺,晶体管数大幅提升,峰值算力达到了 275TFLOPS ,性能表现全球领先。TPU v4 在内存带宽和能效比等方面也有了显著的提升,并且进一步优化了分布式训练框架,使得其在大规模模型训练中的表现更加出色。
硬件架构
功能特性
1)通过引入具有光学数据链路的光路交换机(OCS)来解决规模和可靠性障碍,允许 4K 节点超级计算机通过重新配置来容忍 1K CPU 主机在 0.1%–1.0% 的时间内不可用。
2)公开了 DLRM(SparseCore 或 SC)中嵌入的硬件支持,DLRM 是自 TPU v2 以来 TPU 的一部分。
3)结合了前两种功能,为超级计算机规模互连的需求添加了全对全通信模式。
同时,TPU v4 还支持 3D 堆叠封装技术,进一步提高了芯片的集成度和性能,为 AI 芯片的发展开辟了新的道路。
2023年:TPU V5e
Google定制设计、构建和部署 Cloud TPU v5e,以经济高效地满足这些不断增长的计算需求。
成本效益:与 TPU v4 相比,每美元性能提高高达 2.5 倍,推理(Inference)延迟降低高达 1.7 倍。
可扩展:八种 TPU 互连结构支持全系列 LLM 和生成式 AI 模型大小,最多 2 万亿个参数。
多功能:强大的人工智能框架和编程支持。
Cloud TPU v5e 支持对各种模型大小进行推理。单个 v5e 芯片最多可以运行具有 13B 参数的模型(16GB HBM)。可以基于数百个芯片运行具有多达 2 万亿(2000B)参数的模型,支持从BERT到GPT-4量级的不同模型。
在 TPU PodSlice 中,TPU 芯片使用高速互连。每个 TPU 芯片直接与 TPU PodSlice 中的其他区域通信。TPU 软件会自动将数据分发到 PodSlice 中的每个 TensorCore。这里借用v4的连接结构作为图示说明。
这一结构看起来有些像NVIDIA GPU的连接架构,但实际上比NVLINK的连接灵活度更高,使用了可重构的MEMS光学连接,也可获得更大的计算带宽。
业界有一个传说,就是本届的TPU v5e是通过TPU v4,借助AI的力量设计出来的。根据业内传出的消息,大部分由AI(跑在TPU v4上)做的版图摆放优于人类专家(26 of 37),此项工作由Google Brain Team和TPU Team共同完成。再结合前段时间使用GPT大模型设计电路的工作看,机器设计机器的时代,似乎在逐渐开启。
每个 v5e 芯片包含一个 TensorCore。每个 TensorCore 有 4 个矩阵乘法单元 (MMU)、一个向量单元(VU)和一个标量单元(SU),每个单元其实是大量计算电路组成的电路模块。可支持Training和Inference。
与TPUv4相比,TPU v5e专为大模型和生成式 AI 模型打造,有专用的embedding电路模块。与前代 TPU v4 相比,每美元训练性能提升高达 2 倍、每美元推理性能提升高达 2.5 倍。并且 TPU v5e 的成本不到 TPU v4 的一半。看起来似乎是借助AI技术,对微架构和电路进行了升级,使得综合的计算效率更高。
2023年:TPU v5P
以下是TPU v5p的主要功能和亮点:
高效能:TPU v5p采用了先进的制程技术和硬件加速器,实现了更高的计算性能。它能够更快地处理大规模的张量计算任务,为机器学习和科学计算等领域提供了更强大的支持。TPU v5p 在浮点运算次数和内存带宽方面分别提升了 2 倍和 3 倍。在大语言模型(LLM)训练速度上实现了 2.8 倍的代际提升,相较于 TPU v5e 还有约 50% 的进步。
低延迟:TPU v5p采用了低延迟的内存访问机制,减少了数据传输的延迟。这使得TPU v5p能够更快地响应用户的请求,提高了整体系统的响应速度。谷歌称,TPU v5p是其迄今为止最强大的,能够提供459 teraFLOPS(每秒可执行459万亿次浮点运算)的bfloat16(16位浮点数格式)性能或918 teraOPS(每秒可执行918万亿次整数运算)的Int8(执行8位整数)性能,支持95GB的高带宽内存,能够以2.76 TB/s的速度传输数据。
兼容性:TPU v5p与现有的硬件和软件兼容良好。TPU v5p 提供了丰富的API和工具,能够无缝集成到现有的计算系统中,减少了迁移和升级的成本。同时,TPU v5p还方便开发者进行开发和优化。可以根据不同的需求进行升级,满足各种规模的 AI 应用。每个 TPU v5p Pod 由多达 8,960 个芯片组成,使用最高带宽的芯片间连接(每芯片 4,800 Gbps)进行互连,确保快速传输速度和最佳性能。
扩展性:TPU v5p支持横向和纵向扩展。这意味着用户可以根据需求增加或减少TPU的数量,以适应不同规模的计算任务。谷歌加强了对流行的机器学习框架(如 JAX、TensorFlow 和 PyTorch)的支持,并提供了开箱即用的功能。此外,TPU v5p 还采用了开放且独特的多片训练和多主机推理软件,使得扩展、训练和服务工作负载变得简单且高效。
安全性:TPU v5p具有先进的安全特性。它采用了硬件级的加密和安全机制,保护了用户的数据和隐私。这使得TPU v5p能够在安全敏感的应用场景中得到广泛应用。
2024年:TPUv6(Trillium)
TPUv6的主要的几个优化点是MXU更大频率更高,浮点能力基本上到H100,HBM带宽和容量翻倍换了HBM3,ICI带宽也升级了。
以下是 Trillium 相对于上一代产品的一些主要改进:训练效果提高 4 倍以上推理吞吐量提高 3 倍能源效率提高67%每块芯片的峰值计算性能显著提升 4.7 倍高带宽内存 (HBM) 容量加倍芯片间互连 (ICI) 带宽加倍单个 Jupiter 网络结构中有 100K 个 Trillium 芯片每美元可将训练性能提高 2.5 倍,每美元可将推理性能提高 1.4 倍
这些增强功能使 Trillium 能够在各种 AI 工作负载中表现出色,其中包括:扩展 AI 训练工作负载训练 LLM,包括密集模型和混合专家 (MoE) 模型推理性能和收集调度嵌入密集型模型提供训练和推理性价比让我们看一下 Trillium 在每种工作负载下的表现。
训练像 Gemini 2.0 这样的大型模型需要大量的数据和计算。Trillium的近线性扩展能力可以有效地将工作负载分配到通过 256 芯片舱内的高速芯片间互连和我们最先进的Jupiter 数据中心网络连接的大量 Trillium 主机上,从而使这些模型的训练速度显著加快。这是通过 TPU 多切片和用于大规模训练的全栈技术实现的,并通过Titanium进一步优化,Titanium 是一个动态数据中心范围的卸载系统,范围从主机适配器到网络结构。 Trillium 通过部署 12 个由 3072 个芯片组成的 pod 实现了 99% 的扩展效率,并通过 24 个 pod(包含 6144 个芯片)对 gpt3-175b 进行预训练实现了 94% 的扩展效率,即使在跨数据中心网络运行以预训练 gpt3-175b 时也是如此。
与前几代产品相比,Trillium TPU 的扩展效率明显更高。下图中,我们的测试表明,与同等规模的 Cloud TPU v5p 集群相比,Trillium 在 12 个 Pod 规模下的扩展效率高达 99%(总峰值浮点运算次数)。
训练 LLM,包括密集模型和混合专家 (MoE) 模型像 Gemini 这样的 LLM 本身就很强大且复杂,拥有数十亿个参数。训练如此密集的 LLM 需要巨大的计算能力以及共同设计的软件优化。与上一代 Cloud TPU v5e 相比,Trillium 为 Llama-2-70b 和 gpt3-175b 等密集 LLM 提供了高达 4 倍的训练速度。
除了密集的 LLM,使用混合专家 (MoE) 架构训练 LLM 是一种越来越流行的方法,它结合了多个“专家”神经网络,每个网络专门处理 AI 任务的不同方面。与训练单个整体模型相比,在训练期间管理和协调这些专家会增加复杂性。与上一代 Cloud TPU v5e 相比,Trillium 为 MoE 模型提供的训练速度提高了 3.8 倍。
此外,与 Cloud TPU v5e 相比,Trillium TPU 提供了 3 倍的主机动态随机存取内存 (DRAM)。这将部分计算卸载到主机,有助于在规模上最大限度地提高性能和Goodput。Trillium的主机卸载功能在训练 Llama-3.1-405B 模型时可将性能提高 50% 以上,以模型 FLOPs 利用率 (MFU) 衡量。
Trillium 代表了 Google Cloud 人工智能基础架构的重大飞跃,为各种人工智能工作负载提供了令人难以置信的性能、可扩展性和效率。Trillium 能够使用世界一流的共同设计软件扩展到数十万个芯片,让您能够更快地实现突破并提供卓越的人工智能解决方案。此外,Trillium 卓越的性价比使其成为寻求最大化人工智能投资价值的组织的经济实惠的选择。
2025年:TPU v7(Ironwood)
Google TPU V7,作为 TPU 家族的最新成员,更是集历代 TPU 技术之大成,实现了全方位的突破。它采用了 3nm 制程工艺,在芯片制造工艺上达到了行业领先水平,为更高的性能和更低的功耗奠定了基础。在架构设计上,TPU V7 进行了大胆创新,引入了全新的计算核心和互联技术,使其在性能、内存带宽、芯片间通信等方面都取得了巨大的飞跃。例如,它支持 FP8 计算,这在 TPU 系列中尚属首次,能够在保证计算精度的同时,大大提高计算效率;内存带宽提升至 7.2 TBps ,是上一代的 4.5 倍,能够更快地读取和处理数据,满足了现代 AI 应用对内存带宽的高要求;芯片间通信带宽也有了显著提升,双向带宽达到 1.2 Tbps ,是上一代的 1.5 倍,实现了更快的芯片间通信,促进了大规模高效分布式训练和推理。
在算力方面,TPU V7 的 FP8 峰值算力高达 4614TFlops ,这一数据相较于 2017 年的第二代 TPU,性能提升了 3600 倍,与 2023 年的第五代 TPU 相比,也有着 10 倍的巨大飞跃。从具体数据来看,第二代 TPU 的算力在当时处于一个基础水平,而 TPU V7 经过多年的技术迭代,算力实现了指数级增长,成为了 AI 计算领域的强大动力源。与英伟达的 B200 相比,TPU V7 的 FP8 算力为 4614TFlops ,略高于 B200 标称的 4.5PFlops(4500TFlops) ,在算力比拼中占据了上风,能够为大规模的 AI 计算任务提供更强大的计算支持。
内存方面,TPU V7 配备了 192GB 的 HBM3E 显存 ,这一容量是上一代的 6 倍,如此巨大的显存容量,使得它能够轻松运行万亿参数级别的大模型。在当今 AI 模型不断向大规模、复杂化发展的趋势下,大显存能够有效减少数据在内存与存储之间的频繁交换,提高模型的运行效率。例如,在训练一些参数规模庞大的语言模型时,充足的显存可以保证模型在运行过程中能够快速读取和处理数据,避免因显存不足导致的性能瓶颈。与英伟达 B200 的显存容量相比,虽然具体数值可能因产品版本略有差异,但 TPU V7 的 192GB HBM3E 显存也具备很强的竞争力,能够满足大多数复杂 AI 任务对内存的高需求。
内存带宽是衡量芯片性能的另一个重要指标,TPU V7 的单芯片内存带宽提升到了 7.2TBps ,是上一代的 4.5 倍,这意味着它能够在单位时间内传输更多的数据。形象地说,内存带宽就像是数据传输的高速公路,带宽越高,数据传输的速度就越快。以每秒传输的数据量来计算,7.2TBps 的带宽相当于每秒可以传输 230 部 4K 电影的数据量,如此高的带宽能够确保芯片在处理内存密集型工作负载时,如深度学习中的大规模矩阵运算,能够快速获取所需数据,大大提高计算效率。相比之下,英伟达 B200 的内存带宽为 8TBps ,TPU V7 虽然稍低一点,但差距不大,二者基本处于可对标水平,都代表了当前 AI 芯片内存带宽的顶尖水平。
TPU V7 的卓越性能,离不开其独特且创新的架构设计,这些设计在提升性能与能效方面发挥了关键作用。
首先是 3D 堆叠技术的应用,TPU V7 通过混合键合(Hybrid Bonding)将逻辑层与内存层以 10 微米间距堆叠 ,这种设计极大地减少了信号延迟和功耗。从物理层面来看,3D 堆叠使得芯片内部的各个组件之间的距离更近,信号传输路径缩短,从而有效降低了信号延迟。在实际应用中,当芯片需要频繁读取内存中的数据进行计算时,较短的信号传输延迟可以让数据更快地到达计算单元,提高计算效率。同时,由于减少了芯片间的数据搬运,功耗也降低了 30% ,这在大规模数据中心部署中,能够显著降低能源消耗和运营成本。例如,在一个拥有大量 TPU V7 芯片的 AI 计算集群中,功耗的降低意味着可以减少散热设备的投入和运行成本,同时也更加符合绿色计算的理念。
新型计算核心 FlexCore 也是 TPU V7 架构设计的一大亮点。每个 FlexCore 包含 4096 个 MAC(乘积累加单元) ,支持 FP32、FP16、BF16、FP8 混合精度计算。这种混合精度的支持,使得芯片能够根据不同的计算任务需求,灵活选择最合适的精度模式,在保证计算精度的同时,提高计算效率。比如在一些对精度要求不高的快速推理任务中,可以选择较低精度的计算模式,加快计算速度;而在对精度要求较高的科学计算或复杂模型训练中,则可以采用高精度模式。FlexCore 还采用了三级缓存结构(L1/L2/L3) ,L3 缓存容量达 64MB / 核心 ,这一设计有效减少了外部内存访问。缓存就像是一个高速的数据暂存区,当计算单元需要数据时,首先会在缓存中查找,如果能够找到,就可以避免从外部内存中读取数据,大大提高了数据访问速度。此外,FlexCore 还集成了稀疏计算加速器,通过动态稀疏化(Dynamic Sparsity)技术,在训练中自动屏蔽 80% 零值数据 ,进一步提升了计算效率。在深度学习模型中,很多参数在计算过程中实际上是零值,这些零值数据的计算会浪费计算资源和时间,动态稀疏化技术能够自动识别并跳过这些零值数据的计算,使得芯片能够将计算资源集中在有效数据上,从而提高整体计算效率。
在芯片间通信方面,TPU V7 采用了光互联(Optical Interconnect)技术,通过在芯片上直接集成激光器和光调制器,实现了硅光子集成 ,避免了传统电缆延迟。同时,利用波分复用(WDM)技术,通过不同波长光信号并行传输,单链路带宽达 1.6TB/s ,大大提高了通信带宽。这种光互联技术使得芯片间通信延迟从第六代的 20 微秒降低到了 5 微秒 ,减少了 87.5%。在大规模分布式计算中,芯片间的通信效率至关重要,低延迟的通信能够确保各个芯片之间的协同工作更加高效,避免因通信延迟导致的计算等待时间,从而提高整个集群的计算性能。例如,在训练超大规模的 AI 模型时,需要多个 TPU V7 芯片协同工作,光互联技术能够使得各个芯片之间的数据传输更加迅速,实现高效的分布式训练。
Google TPU V7 强大的硬件性能,离不开与之紧密配合的软件层面优化,这些优化措施就像是为高性能硬件这把利刃配上了精致的剑鞘,使其能够发挥出最大的威力 。
在编译器方面,XLA(Accelerated Linear Algebra)编译器得到了显著改进。XLA 编译器专为 TPU 设计,能够将机器学习模型的计算图进行优化,从而更高效地在 TPU 上运行。它通过一系列的优化技术,如常量折叠、循环不变代码外提、死代码消除等,减少了不必要的计算和内存访问,提高了计算效率。例如,在处理复杂的神经网络模型时,XLA 编译器可以对计算图进行分析,将一些在编译时就可以确定结果的计算提前完成,避免在运行时重复计算,从而节省了计算资源和时间。在编译一个包含大量卷积层和全连接层的图像识别模型时,XLA 编译器能够通过常量折叠优化,将一些固定的卷积核参数在编译阶段就计算出结果,减少了运行时的计算量,使得模型在 TPU V7 上的运行速度提高了 30% 。
分布式训练框架也得到了升级。随着 AI 模型规模的不断增大,分布式训练变得越来越重要。TPU V7 的分布式训练框架针对大规模集群进行了优化,能够实现高效的多节点协同训练。它通过改进的通信协议和同步机制,减少了节点之间的通信开销和同步等待时间。在传统的分布式训练中,节点之间在进行参数更新时,往往需要花费大量时间进行通信和同步,导致训练效率低下。而 TPU V7 的分布式训练框架采用了异步更新和高效的通信压缩技术,使得节点可以在本地进行更多的计算,减少了与其他节点的通信频率,同时通过压缩通信数据的大小,进一步提高了通信速度。在训练一个万亿参数的语言模型时,使用 TPU V7 的分布式训练框架,与上一代相比,训练时间缩短了 40% ,大大提高了训练效率,使得大规模模型的训练变得更加可行和高效。
TPU V7 配备了增强版 SparseCore,这是一款专为处理高级排序和推荐工作负载中常见的超大嵌入而设计的数据流处理器。SparseCore 最初是为加速推荐模型而设计的,它利用嵌入技术对不同类别的用户进行推荐。在实际应用中,推荐系统需要处理海量的用户数据和物品数据,其中存在大量的稀疏矩阵,传统的计算方式效率低下。SparseCore 通过硬件加速和优化的算法,能够快速处理这些稀疏矩阵,提高推荐系统的计算效率。例如,在一个拥有数亿用户和数千万商品的电商推荐系统中,使用 SparseCore 可以将推荐计算的时间从原来的几分钟缩短到几秒钟,大大提升了用户体验和系统的响应速度。此外,Ironwood 芯片中的第三代 SparseCore 还编码了各种算法,用于加速金融和科学计算,虽然具体细节尚未透露,但这无疑为 TPU V7 在更多领域的应用拓展了空间。
Pathways 是 Google DeepMind 开发的机器学习运行时,它在 TPU V7 的跨芯片计算中发挥着关键作用。Pathways 能够跨多个 TPU 芯片实现高效的分布式计算,它提供了一种统一的编程模型和运行时环境,使得开发者可以轻松地利用数万个 TPU 芯片的综合计算能力。在训练超大规模的 AI 模型时,需要多个 TPU 芯片协同工作,Pathways 通过优化的任务调度和资源分配算法,能够将计算任务合理地分配到各个 TPU 芯片上,实现高效的并行计算。它还支持动态资源分配,根据模型的计算需求和 TPU 芯片的负载情况,实时调整资源分配,确保每个芯片都能充分发挥其性能。在训练一个包含多个 Transformer 模块的大型语言模型时,Pathways 可以将不同的 Transformer 模块分配到不同的 TPU 芯片上进行计算,同时协调各个芯片之间的数据传输和同步,使得整个训练过程更加高效和稳定,与传统的分布式计算框架相比,使用 Pathways 能够将训练效率提高 50% 。
在超大规模模型训练领域,Google TPU V7 展现出了卓越的性能和显著的优势 。随着 AI 技术的不断发展,模型规模呈现出爆发式增长,万亿参数模型已逐渐成为研究和应用的热点。训练这些超大规模模型,对计算资源的需求堪称巨大,不仅需要强大的算力来加速矩阵运算和参数更新,还对内存带宽和存储容量有着极高的要求,以确保能够高效处理海量的数据。
TPU V7 的出现,为超大规模模型训练带来了新的曙光。其高达 4614TFlops 的 FP8 峰值算力 ,能够在单位时间内完成更多的计算任务,大大缩短了模型训练的时间。例如,在训练一个万亿参数的语言模型时,使用 TPU V7 集群进行训练,与上一代 TPU 相比,训练时间可以缩短数周甚至数月。这是因为 TPU V7 强大的算力可以更快地完成模型中的矩阵乘法、卷积运算等核心计算任务,使得参数更新的速度大幅提高,从而加速了整个训练过程。
除了算力,TPU V7 的大内存和高带宽也为超大规模模型训练提供了有力支持。192GB 的 HBM3E 显存 ,使得模型可以一次性加载更多的参数和数据,减少了数据在内存与存储之间的频繁交换,提高了训练效率。同时,7.2TBps 的单芯片内存带宽 ,确保了数据能够快速地传输到计算核心,避免了因数据传输瓶颈导致的计算等待时间。在训练图像生成模型时,大量的图像数据需要快速读取和处理,TPU V7 的高内存带宽可以保证图像数据能够及时传输到计算单元进行运算,使得模型能够更快地学习到图像的特征,提升训练效果。
从成本角度来看,TPU V7 也具有明显的优势。由于其高效的计算性能和较低的能耗,使用 TPU V7 进行超大规模模型训练,可以降低对计算资源的需求,从而减少硬件采购成本和数据中心的运营成本。与传统的 GPU 集群相比,TPU V7 集群在完成相同规模的模型训练任务时,所需的设备数量更少,能耗更低,这意味着可以节省大量的电力费用和设备维护费用。据估算,使用 TPU V7 进行超大规模模型训练,成本可以降低 30% - 50% ,这对于大规模的 AI 研究和应用来说,是一笔相当可观的节省。
在 AI 推理场景中,Google TPU V7 针对混合专家模型(MoE)推理进行了专门优化,展现出了出色的性能 。随着 AI 应用的不断普及,推理任务在实际应用中的需求日益增长,对推理速度和成本的要求也越来越高。混合专家模型(MoE)作为一种新兴的 AI 模型架构,通过将多个专家模型组合在一起,能够在处理复杂任务时表现出更高的性能和灵活性,但同时也对推理计算提出了更高的要求。
TPU V7 在执行 MoE 推理时,通过硬件和软件的协同优化,实现了低延迟和低成本的推理过程。从硬件层面来看,TPU V7 的新型计算核心 FlexCore 以及光互联技术,为 MoE 推理提供了强大的计算能力和高效的通信支持。FlexCore 的混合精度计算能力和稀疏计算加速器,能够根据 MoE 模型的特点,快速处理大量的稀疏矩阵运算,提高推理效率。光互联技术则大大降低了芯片间的通信延迟,使得多个 TPU 芯片在协同处理 MoE 推理任务时,能够实现高效的数据传输和同步,减少了推理过程中的等待时间。
在软件层面,TPU V7 的编译器和分布式训练框架也进行了针对性的优化。XLA 编译器针对 MoE 模型的计算图进行了深度优化,通过自动并行化和混合精度自动转换等技术,提高了模型在 TPU 上的运行效率。分布式训练框架则通过优化任务调度和资源分配算法,实现了 MoE 模型在多个 TPU 芯片上的高效并行推理。在处理一个包含多个专家模型的 MoE 语言模型推理任务时,TPU V7 的分布式训练框架可以将不同的专家模型分配到不同的 TPU 芯片上进行计算,同时协调各个芯片之间的数据传输和同步,使得整个推理过程更加高效和稳定,与传统的推理框架相比,推理延迟降低了 50% 以上 。
这些优化措施使得 TPU V7 在 AI 推理场景中能够显著降低推理延迟,提高响应速度。对于实时性要求较高的 AI 应用,如智能客服、智能驾驶等,低延迟的推理至关重要。在智能客服系统中,使用 TPU V7 进行推理,可以快速响应用户的问题,提供准确的回答,提升用户体验。TPU V7 的高效推理性能还能够降低推理成本。通过提高计算效率和减少硬件资源的浪费,TPU V7 在完成相同推理任务时,所需的计算资源更少,从而降低了硬件采购成本和运行成本。据统计,使用 TPU V7 进行 MoE 推理,与传统的推理方案相比,成本可以降低 40% 以上 ,这对于大规模部署 AI 推理应用的企业来说,具有重要的经济意义。
TPU的快速推出与逐步迭代,似乎证明了:
NVIDIA的GPU也许是第一,但绝不是唯一。
(素材来源于公开文献和网络,文章观点仅供交流讨论,不代表任何机构或立场)
(来源:转自黄大年茶思屋科技网站,作者:齐涵宇,谢谢~)
*免责声明:本文由作者原创。文章内容系作者个人观点,半导体行业观察转载仅为了传达一种不同的观点,不代表半导体行业观察对该观点赞同或支持,如果有任何异议,欢迎联系半导体行业观察。
今天是《半导体行业观察》为您分享的第4268期内容,欢迎关注。
加星标第一时间看推送,小号防走丢
求推荐
半导体行业观察
2025-12-27
半导体行业观察
2025-12-27
半导体行业观察
2025-12-27
半导体行业观察
2025-12-27
半导体行业观察
2025-12-27
半导体行业观察
2025-12-27
证券之星资讯
2025-12-26
证券之星资讯
2025-12-26
证券之星资讯
2025-12-26