业界 | 有图有真相:深度拆解谷歌TPU3.0,新一代AI协同处理器

选自The Next Platform

机器之心编译

参与:王淑婷、刘晓坤

在今年的年度 I/O 大会上,谷歌给人留下深刻印象。它不仅推出了一系列基于 TPUv2 芯片的云计算 TPU 实例的基准测试,还透露了一些有关其下一代 TPU 芯片即 TPU3.0,以及其系统架构的简单细节。TIRIAS Research 的顶尖技术专家和首席分析师 Paul Teich 近日在 nextplatform 发文,对谷歌 TPU3.0 进行了深度揭秘。

谷歌将 TPUv2 版本升级为 TPU 3.0,但讽刺的是,据我们所知的种种细节表明,从 TPUv2 到 TPU3.0(下文称之为 TPUv3)的跨度并没有那么大;或许称其为 TPUv2r5 或类似的东西会更合适。

如果你对 TPUv2 还不太熟悉,可以了解一下我们去年所做的关于 TPUv2 的评测来增加这方面的知识结构。我们使用谷歌对云 TPU(Cloud TPU)的定义,云 TPU 是一块包含四个 TPU 芯片的主板。谷歌目前的云 TPU 测试程序只允许用户访问单个云 TPU。除了其内部开发人员,其他人无法以任何方式将云 TPU 联合使用。去年我们了解到,谷歌已经在其 TensorFlow 深度学习(DL)框架下抽取出云 TPU。除了谷歌内部的 TensorFlow 开发团队和 Google Cloud 之外,没有人可以直接访问云 TPU 硬件,可能永远也不能。

我们还认为,谷歌已经资助了一项庞大的软件工程和优化工作,以实现其当前测试云 TPU 的部署。这促使谷歌在 TPUv3 中尽可能多地保留 TPUv2 的系统接口和行为,即硬件抽象层和应用程序编程接口(API)。关于何时提供 TPUv3 服务、将其置于云 TPU 或多机架 pod 配置中,谷歌没有提供任何信息。它的确展示了基于 TPUv3 的云 TPU 板的照片和一些 pod 照片,并作出以下声明:

  • TPUv3 芯片运行温度非常高,以致谷歌首次在其数据中心引入液体冷却技术
  • 每个 TPUv3 pod 的功率将是 TPUv2 pod 的八倍
  • 每个 TPUv3 pod 性能将为每秒钟运算 100 多千万亿次(petaflops)

不过,谷歌也重申,TPUv2 pod 的时钟频率为 11.5 千万亿次每秒。8 倍的改进应该会使 TPUv3 pod 的基本频率达到 92.2 千万亿次,但 100 千万亿次的运算意味着这几乎是 TPUv2 的 9 倍了。谷歌的营销人员应该四舍五入取整了,所以这个数字可能不太准确。

POD

从 TPUv3 pod 的两张完整照片中可以明显看出,谷歌的下一代产品已经升级:

  • 每个 pod 的机架数量是原来的两倍。
  • 每个机架的云 TPU 数量是原来的两倍

如果没有其他变化,光这两点足以使 TPUv2 pod 的性能提高 4 倍。

pod:TPUv2(上)和 TPUv3(下)

机架

TPUv3 pod 机架的间隔比 TPUv2 机架的间隔更小。但是,与 TPUv2 pod 一样,TPUv3 pod 中仍然没有明显的储存组件。TPUv3 的机架也更高,以适应添加的水冷装置。

机架:TPUv2(左)和 TPUv3(右)

谷歌将不间断电源从 TPUv2 机架底部移到 TPUv3 机架顶部。我们假设现在机架底部的大体积金属盒中包含水泵或其他水冷相关装置。

TPUv2 机架顶部、底部(左)和 TPUv3 机架顶部(右)

现代超大规模数据中心不使用活动地板。谷歌的机架在加水之前就很重了,所以它们被直接置于混凝土板上,水从机架顶部进出。谷歌的数据中心有很多高架空间,如 TPUv3 pod 的照片所示。然而,悬挂重水管道和确定路径一定是额外的操作挑战。

TPUv3 的水连接(左上)、水泵(左下,猜测)和机架上的数据中心基础架构(右)

注意地板上机架前的绞合线,就在机架底部的大金属盒前面,可能是湿度传感器。

架子和主板

谷歌不仅将计算机架密度提高了一倍,还将服务器主板与云 TPU 的比率从一对一降到了一对二。这将影响功耗估计,因为 TPUv3 pod 的服务器和云 TPU 将从同一机架电源中获取电力。

谷歌将当前云 TPU beta 实例所使用的服务器主板作为计算引擎 n1-standard-2 实例计入其云平台公共云中,该云平台公共云具有两个虚拟 CPU 和 7.5 GB 内存。我们认为这很可能是一款主流双插槽 X86 服务器。

回想一下,TPUv2 pod 包含 256 个 TPUv2 芯片和 128 个服务器处理器。TPUv3 pod 将使服务器处理器增加一倍,TPU 芯片数增加三倍。

我们认为谷歌在其 TPUv2 pod 中过度调配了服务器。这对于新的芯片和系统架构来说是可以理解的。在对 pod 软件进行了至少一年的调整并对芯片进行了一次小的修订以后,把服务器的数量减少一半对 pod 性能的影响可能微不足道。其中可能有诸多原因,或许是服务器没有计算或带宽限制,又或者谷歌可能部署了新一代具有更多核的 Intel Xeon 或 AMD Epyc 处理器。

通过将服务器主板集成到云 TPU 机架中,谷歌可以用相同的机架配置使机架数量增加一倍。在一个机架上标准化配置必然有助于降低硬件部署的成本和复杂性。

电脑架:TPUv2(左)和 TPUv3(右)

但是,为了实现更高的密度,谷歌必须从 4U 云 TPU 外形规格转变为 2U 高密度外形规格。其数据中心温度很高(公布的数据在 80°F 到 95°F 之间),因此 TPUv2 风冷散热器必须很大。谷歌使用开放式机架,所以利用风来冷却密集外形规格的热插槽变得非常昂贵,使得水冷成为可行的替代方案。特别是对于像深度学习这样的高价值服务。

将服务器主板转移到 TPUv3 机架中还会缩短连接电缆,因此我们一般认为谷歌节省了大量电缆成本,并除去了 TPUv2 Pod 服务器机架中的闲置空间。

计算机架特写:TPUv2(顶部)和 TPUv3(底部)

谷歌没有展示主板与机架水互连的照片。

云 TPU

但是,它确实显示了 TPUv3 云 TPU 的两张照片。TPUv3 云 TPU 具有与 TPUv2 云 TPU 相似的布局。明显的变化是水冷却的增加。主板电源接头的背面看起来相同。但是,主板前面还有四个附加连接器。照片正面(左)的两个银色大正方形是由四个连接器组成的集群。

TPUv3 主板(左上),TPUv2 主板(左下)和 TPUv3 主板特写(右)

谷歌没有提及其他连接器。我们认为最有可能的解释是 Google 为环形超网格(hyper-mesh)添加了一个维度,也就是从 2D 环形超网格到 3D 环形超网格。

环形超网格互连图:2D(左)和 3D(右)

去年,我们推测了几种类型的互连,并将其称为错误的互连——谷歌使用 32 条有线 PCI-Express 3.0(每条链路 28GB / s)将服务器连接到云 TPU 上。我们认为,谷歌不太可能增加服务器主板和云 TPU 之间的带宽,因为 PCI-Express 带宽和延迟可能不是什么重要的性能限制因素。

虽然互连拓扑将有助于深度学习任务在 pod 中更好地扩展,但它不会对原始的理论性能带来贡献。

TPU 芯片

现在,我们要深入到芯片层面来回答以下问题:「剩下的 2 倍性能改进来自哪里?」谷歌概括其 TPUv2 核心为:

  • 有两个矩阵单元(MXU)
  • 每个 MXU 都有 8GB 的专用高带宽内存(HBM)
  • 每个 MXU 的原始峰值吞吐量为 22.5 万亿次
  • 但是 MXU 不使用标准浮点格式来实现其浮点吞吐量

谷歌创造了自己的内部浮点格式,称为「bfloat」,意为「大脑浮点(brain floating point)」(在谷歌大脑之后)。Bfloat 格式使用 8 位指数和 7 位尾数,而不是 IEEE 标准 FP16 的 5 位指数和 10 位尾数。Bfloat 可以表示从~1e-38 到~3e38 的值,其动态范围比 IEEE 的 FP16 宽几个数量级。谷歌之所以创造 bfloat 格式,是因为它发现在 IEEE 标准 FP16 的训练中需要数据科学专家,以确保数据保持在 FP16 较为有限的范围内。

我们相信谷歌已经在 MXU 内部实现了硬件格式转换,真正消除了转换延迟和软件开发难题。从 FP16 到 bfloat 的格式转换看起来像是直接把精度截断到较小的尾数。将 FP16 转换为 FP32,然后再将 FP32 转换为 FP16 是已知的实践;可以使用相同的技术把格式从 FP32 转换成 bfloat,然后再从 bfloat 转换成 FP16 或 FP32。

谷歌声称,随着数据流通过 MXU 的收缩阵列,中间结果得到了「极大」的重复使用。

考虑到 MXU 的表现,我们相信谷歌不太可能在从 TPUv2 到 TPUv3 的转变中将 MXU 做出改变。更有可能的结果是,谷歌将把 TPUv3 的 MXU 数量增加一倍。

框图:TPUv2(左)和 TPUv3(右)

距离上次芯片发布只有一年,因此芯片设计节奏非常短,没有时间进行重要的架构开发。但是,足够将现有的 MXU 核心压缩为新的制造工艺、调整功耗和速度路径,然后做一点额外的平面规划工作,以在模具上冲压更多的 MXU 核心。下表包含了我们所掌握的少量硬信息,以及我们对谷歌 TPUv3 芯片发展方向的最佳估计。

去年,我们估计 TPUv2 每个芯片需要消耗 200 瓦至 250 瓦。现在我们知道,每个包中还包含 16GB 的 HBM,其 MXU 和 HBM 之间的带宽为 2.4 TB /秒。

我们将坚持去年估计的 36 千瓦机架电源(一个 TPUv3pod 总共需要 288 千瓦)。如果假设每台双插槽服务器的功率为 400 瓦,我们会把每台 TPUv3 芯片的功率将向后降至 200 瓦左右,其中包括 32GB 的 HBM。如果这些芯片没有密集地封装在主板和机架上,或者被部署在较冷的数据中心,那它们可能不需要水冷。另一种选择可能是谷歌正在他们的新 TPUv3 集群中部署单插槽服务器。将服务器功率降至 250 瓦以下可能会为 TPUv3 提供足够的扩展空间,以达到 225 瓦。

假定最初 TPUv2 MXU 设计保守,随后 TPUv3 工艺收缩、HBM 变宽且更快,并且路径调整速度加快,则可以合理地期望每个核的性能在两代之间保持不变,而无需彻底地对 MXU 进行重新设计。

市场回顾

谷歌仍在部署 TPUv1 外接程序卡,用于推理任务,四个 TPUv1 用于一台服务器上。谷歌部署了 TPUv1 来加速网页搜索和其他大规模推理任务——如果你最近使用了谷歌搜索引擎,你可能已经使用了 TPUv1。

谷歌仅通过其测试云 TPU 实例提供 TPUv2 访问,并未预测何时通过服务级别协议供应可用产品。谷歌本周确实表示,它将在「今年年底」向客户提供 TPUv2 pod 服务,但尚不清楚这是否为一项产品服务。我们最大的猜测是,谷歌将继续等待,直到验证和调试完 TPUv3 pod,以便在全球范围内部署 TPU pod。谷歌内部正在使用 TPUv2 pod 进行一些训练任务。本周,谷歌没有就何时部署基于 TPUv3 芯片的任何功能或服务发表任何声明。我们认为,TPUv3 的发布旨在强调谷歌长期致力于控制自己内部生态的承诺,以加速其 TensorFlow 深度学习框架。

然而,我们认为 TPUv3 更多的应该算 TPUv2.5,而不是新一代芯片。大多数新硬件开发似乎都是围绕 TPUv3 芯片级别的系统展开的。

原文发布于微信公众号 - 机器之心(almosthuman2014)

原文发表时间:2018-05-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏AI研习社

硅谷老司机 Siraj 教你找工作:简历写得好,工作跑不了

大家好,这里是 Siraj 的新课,在教你如何成为一名自由职业者之后,我又将和大家分享如何写一份优秀的简历,来申请有关机器学习或者数据科学的职位。

14010
来自专栏哲学驱动设计

学习过程反思

    本篇反思总结了一般的学习过程。掌握学习的方法,可以让你更高效地进行学习。这对于天天要学新技术的IT人员来说,是非常重要的。     本文反思了自己学习W...

207110
来自专栏机器之心

资源 | 关于大数据,你应该知道的75个专业术语

选自DataConomy 机器之心编译 近日,Ramesh Dontha 在 DataConomy 上连发两篇文章,扼要而全面地介绍了关于大数据的 75 个核心...

40760
来自专栏程序员互动联盟

程序员该如何学习数据结构与算法?

一个成熟的程序员数据结构和算法属于基本必备素质,很多程序员觉得算法距离自己有点距离,正常情况下算法不是渗透到每个角落。但程序的执行效率散布在每个角落。所以学习数...

11410
来自专栏SDNLAB

ONOS构建开源Leaf-Spine Fabric

On.Lab ONOS项目组领导下的一个工作组近日发布了一个开源的leaf-spine fabric架构,以期进一步推动开放网络的发展。 开放网络基金会(ONF...

389160
来自专栏无原型不设计

这样的UX设计师简历,HR分分钟给你来电话

BLS调查显示,软件开发和IT,用户体验设计,产品经理和项目管理这三个职位在未来有非凡的发展前景。其中,用户体验设计师是目前最有需求的创意产业工作之一。10年...

37260
来自专栏凌帅的阅读思考与实践

OKR和凌帅的OKR

OKR是所有目标管理、时间管理、精力管理、任务管理、甚至员工管理、组织管理、公司管理、社区管理、家庭管理、国家管理的集大成者,终结者,没有之一。只要涉及管理,就...

12720
来自专栏Spark学习技巧

终于有人把云计算、大数据和人工智能讲明白了!

17630
来自专栏CDA数据分析师

数据科学入门丨选Python还是R

对于想入门数据科学的新手来说,选择学Python还是R语言是一个难题,本文对两种语言进行了比较,希望能帮助你做出选择。

15600
来自专栏一个爱吃西瓜的程序员

成为一名数据分析师,应该掌握怎样的技术栈?

数据分析师是不易被人工智能取代的新兴职业,相比算法工程师、人工智能工程师而言比较好入门。学好数据分析,也可为进一步的数据科学、机器学习打下一定的基础。 最近我知...

52660

扫码关注云+社区

领取腾讯云代金券