详解高性能处理器与AI芯片:Google TPU到底是个啥?

作者 | eyesighting  编辑 | 汽车人

原文链接:https://zhuanlan.zhihu.com/p/646793355

点击下方卡片,关注“自动驾驶之心”公众号

ADAS巨卷干货,即可获取

点击进入→自动驾驶之心【模型部署】技术交流群

本文只做学术分享,如有侵权,联系删文

前言

Google在高性能处理器与AI芯片主要有两个系列:1).针对服务器端AI模型训练和推理的TPU系列,主要用于Goggle云计算和数据中心;2)针对手机端AI模型推理的Tensor系列,主要用于Pixel智能手机

结合最近几年Google在HotChips、ISCA、ISSCC发布的论文和报告,总结了Google的TPU芯片的发展历史和硬件架构,可作为学习、研发高性能处理器与AI芯片的参考资料。本人才疏学浅,如有错漏之处,敬请指正。

1. TPUv1

Google第一代TPU芯片,服务器端推理芯片。

硬件架构

5b4b55a1b6075fa52734c9c1319eaa9b.png 9e4f489993d6715a6522733e1d0056ce.png 713e8bdb80d933f952bdb049e54bf03d.png 78be3f334f1fa851b6424e6c811b62d1.png ae208ad8db9d7f92f986ba2d3507a753.png

功能特性

1).TPU指令通过PCIe Gen3 x16总线从主机发送到指令缓冲区。矩阵乘法单元是TPU的核心,包含256x256个MAC,可以对有符号或无符号整数执行8位乘法和加法。16位乘积被收集在矩阵单元下方的32位累加器的4 MiB中。4MiB表示4096256个元素的32位累加器。矩阵单元在每个时钟周期产生一个256元素的部分和。

2).当混合使用 8 位权重和 16 位激活时(反之亦然),矩阵单元以半速计算,而当两者都是 16 位时,它以四分之一速度计算。

3).省略了稀疏架构支持。稀疏性将在未来的设计中占据高度优先地位。

4).TPU 指令遵循 CISC 传统,包括重复字段。这些 CISC 指令的平均每条指令时钟周期 (CPI) 通常为 10 到 20。总共约有 12 条指令,但以下 5 条是关键指令:Read_Host_Memory、Read_Weights、MatrixMultiply/Convolve、Activate、Write_Host_Memory。其他指令是备用主机内存读/写、设置配置、两个版本的同步、中断主机、调试标记、nop 和暂停。

2. TPUv2

Google的第二代TPU,定位是服务端AI推理和训练芯片。

硬件架构

a4aff665a5ac2e7a683d25a1d0798e79.png 65b6b8b0cc61ac2bcc2f9cf49a1ec05f.png c7b22de69658108bf1591f1ed67289c7.png 4d38f8a8071958be22c4c65a4dc9bd6c.png 826a3fcd1c57533e40395d66e3ddc68c.png 2c0daeafc067438b7d04afc75a8dd778.png 4ced3e40234bc69f98af4380036185e2.png 788cfb6b3baeb13a2711cbba981aa9c9.png

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

3. TPUv3

TPU3是是对TPU2的温和重新设计,采用相同的技术,MXU和HBM容量增加了两倍,时钟速率、内存带宽和ICI带宽增加了1.3倍。TPU3超级计算机还可以扩展到1024个芯片。

硬件架构

fd56519e620d9f9cd145820caab28f69.png 26a54d28abe6a0e56b3e11ed7d4997c9.png

功能特性

协同设计:具有软件可预测性的简化硬件(例如,VLIW、暂存器)。

使用 bfloat16 脉动阵列计算密度:HBM 为计算提供支持,XLA编译器。

具有原则性线性代数框架的灵活大数据核心。

4. Edge TPU

Google发布的嵌入式TPU芯片,用于在边缘设备上运行推理。

5. TPUv4i

TPUv4i:Google于2020年发布,定位是服务器端推理芯片.

硬件架构

64dc78bfe1fd0028cfe3cb8b9472a3ff.png 066a9e4e0792fc3d8e1a3fa5d69f5a54.png a44b30092c62f4a8b24b1f8dda39a279.png

功能特性

1).单核TPUv4i 用于推理,双核 TPUv4(可扩展至 4096 个芯片)用于训练。

2).选择编译器兼容性,而不是二进制兼容性。

3).通过通用内存 (CMEM)增加了片上 SRAM 存储。

4).四维张量 DMA 引擎充当协处理器,可完全解码和执行 TensorCore DMA 指令。

5).添加了一个共享片上互连 (OCI),用于连接芯片上的所有组件。

6).引入了四输入加法器运算单元。

7).时钟频率达到 1.05 GHz。

8).2个ICI链路链接板端4 个芯片。

9).具有广泛的跟踪和性能计数器等硬件功能。

6. TPUv4

谷歌2020年发布,服务器推理和训练芯片,芯片数量是TPUv3的四倍。

硬件架构

ddea9387acc7901ed0a7e1828dac278e.png d727c8b24d0bd5f93d08addde81581e9.png e6cdf15dd1b4a49e22c80247c786197d.png 1d8fe82778d8b10c4ef60ab9ecccd136.png 6156e952dd98f8a835d2f5280df2e3fc.png

功能特性

1).通过引入具有光学数据链路的光路交换机(OCS)来解决规模和可靠性障碍,允许 4K 节点超级计算机通过重新配置来容忍 1K CPU 主机在 0.1%–1.0% 的时间内不可用。

2).公开了 DLRM(SparseCore 或 SC)中嵌入的硬件支持,DLRM 是自 TPU v2 以来 TPU 的一部分。

3).结合了前两种功能,为超级计算机规模互连的需求添加了全对全通信模式。

总结

期待Google发布适用于自动驾驶的车载TPU/Tensor芯片及软件栈。

参考文献

HC29-2017:TPUv1 :Evaluation of the Tensor Processing Unit: A Deep Neural Network Accelerator for the Datacenter:https://old.hotchips.org/wp-content/uploads/hc_archives/hc29/HC29.22-Tuesday-Pub/HC29.22.70-NeuralNet2-Pub/HC29.22.730-TensorPU-Young-Google.pdf

ISCA-2017:TPUv1 :In-Datacenter Performance Analysis of a Tensor Processing Unit:https://dl.acm.org/doi/10.1145/3079856.3080246

HC32-2020:TPUv2 & TPUv3:Google’s Training Chips Revealed - TPUv2 and TPUv3:https://www.hc32.hotchips.org/assets/program/conference/day2/HotChips2020_ML_Training_Google_Norrie_Patil.v01.pdf

ISCA-2021:TPUv4i:Ten Lessons From Three Generations Shaped Google’s TPUv4i : Industrial Product:https://ieeexplore.ieee.org/document/9499913

ISCA-2023:TPU v4: An Optically Reconfigurable Supercomputer for Machine Learning with Hardware Support for Embeddings:https://dl.acm.org/doi/10.1145/

① 全网独家视频课程

BEV感知、毫米波雷达视觉融合、多传感器标定、多传感器融合、多模态3D目标检测、点云3D目标检测、目标跟踪、Occupancy、cuda与TensorRT模型部署、协同感知、语义分割、自动驾驶仿真、传感器部署、决策规划、轨迹预测等多个方向学习视频(扫码学习)

0284d9d2f837f58fc39a05806e1fd0f2.png 视频官网:www.zdjszx.com

② 国内首个自动驾驶学习社区

近2000人的交流社区,涉及30+自动驾驶技术栈学习路线,想要了解更多自动驾驶感知(2D检测、分割、2D/3D车道线、BEV感知、3D目标检测、Occupancy、多传感器融合、多传感器标定、目标跟踪、光流估计)、自动驾驶定位建图(SLAM、高精地图、局部在线地图)、自动驾驶规划控制/轨迹预测等领域技术方案、AI模型部署落地实战、行业动态、岗位发布,欢迎扫描下方二维码,加入自动驾驶之心知识星球,这是一个真正有干货的地方,与领域大佬交流入门、学习、工作、跳槽上的各类难题,日常分享论文+代码+视频,期待交流!

3da41086b4dd80c9b1aa2c60e2302383.png

③【自动驾驶之心】技术交流群

自动驾驶之心是首个自动驾驶开发者社区,聚焦目标检测、语义分割、全景分割、实例分割、关键点检测、车道线、目标跟踪、3D目标检测、BEV感知、多模态感知、Occupancy、多传感器融合、transformer、大模型、点云处理、端到端自动驾驶、SLAM、光流估计、深度估计、轨迹预测、高精地图、NeRF、规划控制、模型部署落地、自动驾驶仿真测试、产品经理、硬件配置、AI求职交流等方向。扫码添加汽车人助理微信邀请入群,备注:学校/公司+方向+昵称(快速入群方式)

363a81503db936e3baf5630e12516916.jpeg

④【自动驾驶之心】平台矩阵,欢迎联系我们!

e354541f62f6c66215ef5db91583bf60.jpeg

猜你喜欢

转载自blog.csdn.net/CV_Autobot/article/details/132158177