微信扫一扫
分享到朋友圈

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

作者:机器之心 来源:机器之心 公众号
分享到:

05-19

选自The Next Platform

机器之心编译

参与:王淑婷、刘晓坤

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


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


如果你对 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 芯片级别的系统展开的。


原文链接:https://www.nextplatform.com/2018/05/10/tearing-apart-googles-tpu-3-0-ai-coprocessor/



本文为机器之心编译,转载请联系本公众号获得授权

✄------------------------------------------------

加入机器之心(全职记者/实习生):hr@jiqizhixin.com

投稿或寻求报道:content@jiqizhixin.com

广告&商务合作:bd@jiqizhixin.com

阅读8886
协同 处理器 
举报0
关注机器之心微信号:almosthuman2014

用微信扫描二维码即可关注
声明

1、头条易读遵循行业规范,任何转载的稿件都会明确标注作者和来源;
2、本文内容来自“机器之心”微信公众号,文章版权归机器之心公众号所有。

评论
更多

文章来自于公众号:

机器之心

微信号:almosthuman2014

邮箱qunxueyuan#163.com(将#换成@)
微信编辑器
免责声明
www.weixinyidu.com   免责声明
版权声明:本站收录微信公众号和微信文章内容全部来自于网络,仅供个人学习、研究或者欣赏使用。版权归原作者所有。禁止一切商业用途。其中内容并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。如果您发现头条易读网站上有侵犯您的知识产权的内容,请与我们联系,我们会及时修改或删除。
本站声明:本站与腾讯微信、微信公众平台无任何关联,非腾讯微信官方网站。