作者 | 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](https://img-blog.csdnimg.cn/img_convert/5b4b55a1b6075fa52734c9c1319eaa9b.png)
![9e4f489993d6715a6522733e1d0056ce.png](https://img-blog.csdnimg.cn/img_convert/9e4f489993d6715a6522733e1d0056ce.png)
![713e8bdb80d933f952bdb049e54bf03d.png](https://img-blog.csdnimg.cn/img_convert/713e8bdb80d933f952bdb049e54bf03d.png)
![78be3f334f1fa851b6424e6c811b62d1.png](https://img-blog.csdnimg.cn/img_convert/78be3f334f1fa851b6424e6c811b62d1.png)
![ae208ad8db9d7f92f986ba2d3507a753.png](https://img-blog.csdnimg.cn/img_convert/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](https://img-blog.csdnimg.cn/img_convert/a4aff665a5ac2e7a683d25a1d0798e79.png)
![65b6b8b0cc61ac2bcc2f9cf49a1ec05f.png](https://img-blog.csdnimg.cn/img_convert/65b6b8b0cc61ac2bcc2f9cf49a1ec05f.png)
![c7b22de69658108bf1591f1ed67289c7.png](https://img-blog.csdnimg.cn/img_convert/c7b22de69658108bf1591f1ed67289c7.png)
![4d38f8a8071958be22c4c65a4dc9bd6c.png](https://img-blog.csdnimg.cn/img_convert/4d38f8a8071958be22c4c65a4dc9bd6c.png)
![826a3fcd1c57533e40395d66e3ddc68c.png](https://img-blog.csdnimg.cn/img_convert/826a3fcd1c57533e40395d66e3ddc68c.png)
![2c0daeafc067438b7d04afc75a8dd778.png](https://img-blog.csdnimg.cn/img_convert/2c0daeafc067438b7d04afc75a8dd778.png)
![4ced3e40234bc69f98af4380036185e2.png](https://img-blog.csdnimg.cn/img_convert/4ced3e40234bc69f98af4380036185e2.png)
![788cfb6b3baeb13a2711cbba981aa9c9.png](https://img-blog.csdnimg.cn/img_convert/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](https://img-blog.csdnimg.cn/img_convert/fd56519e620d9f9cd145820caab28f69.png)
![26a54d28abe6a0e56b3e11ed7d4997c9.png](https://img-blog.csdnimg.cn/img_convert/26a54d28abe6a0e56b3e11ed7d4997c9.png)
功能特性
协同设计:具有软件可预测性的简化硬件(例如,VLIW、暂存器)。
使用 bfloat16 脉动阵列计算密度:HBM 为计算提供支持,XLA编译器。
具有原则性线性代数框架的灵活大数据核心。
4. Edge TPU
Google发布的嵌入式TPU芯片,用于在边缘设备上运行推理。
5. TPUv4i
TPUv4i:Google于2020年发布,定位是服务器端推理芯片.
硬件架构
![64dc78bfe1fd0028cfe3cb8b9472a3ff.png](https://img-blog.csdnimg.cn/img_convert/64dc78bfe1fd0028cfe3cb8b9472a3ff.png)
![066a9e4e0792fc3d8e1a3fa5d69f5a54.png](https://img-blog.csdnimg.cn/img_convert/066a9e4e0792fc3d8e1a3fa5d69f5a54.png)
![a44b30092c62f4a8b24b1f8dda39a279.png](https://img-blog.csdnimg.cn/img_convert/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](https://img-blog.csdnimg.cn/img_convert/ddea9387acc7901ed0a7e1828dac278e.png)
![d727c8b24d0bd5f93d08addde81581e9.png](https://img-blog.csdnimg.cn/img_convert/d727c8b24d0bd5f93d08addde81581e9.png)
![e6cdf15dd1b4a49e22c80247c786197d.png](https://img-blog.csdnimg.cn/img_convert/e6cdf15dd1b4a49e22c80247c786197d.png)
![1d8fe82778d8b10c4ef60ab9ecccd136.png](https://img-blog.csdnimg.cn/img_convert/1d8fe82778d8b10c4ef60ab9ecccd136.png)
![6156e952dd98f8a835d2f5280df2e3fc.png](https://img-blog.csdnimg.cn/img_convert/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](https://img-blog.csdnimg.cn/img_convert/0284d9d2f837f58fc39a05806e1fd0f2.png)
② 国内首个自动驾驶学习社区
近2000人的交流社区,涉及30+自动驾驶技术栈学习路线,想要了解更多自动驾驶感知(2D检测、分割、2D/3D车道线、BEV感知、3D目标检测、Occupancy、多传感器融合、多传感器标定、目标跟踪、光流估计)、自动驾驶定位建图(SLAM、高精地图、局部在线地图)、自动驾驶规划控制/轨迹预测等领域技术方案、AI模型部署落地实战、行业动态、岗位发布,欢迎扫描下方二维码,加入自动驾驶之心知识星球,这是一个真正有干货的地方,与领域大佬交流入门、学习、工作、跳槽上的各类难题,日常分享论文+代码+视频,期待交流!
![3da41086b4dd80c9b1aa2c60e2302383.png](https://img-blog.csdnimg.cn/img_convert/3da41086b4dd80c9b1aa2c60e2302383.png)
③【自动驾驶之心】技术交流群
自动驾驶之心是首个自动驾驶开发者社区,聚焦目标检测、语义分割、全景分割、实例分割、关键点检测、车道线、目标跟踪、3D目标检测、BEV感知、多模态感知、Occupancy、多传感器融合、transformer、大模型、点云处理、端到端自动驾驶、SLAM、光流估计、深度估计、轨迹预测、高精地图、NeRF、规划控制、模型部署落地、自动驾驶仿真测试、产品经理、硬件配置、AI求职交流等方向。扫码添加汽车人助理微信邀请入群,备注:学校/公司+方向+昵称(快速入群方式)
④【自动驾驶之心】平台矩阵,欢迎联系我们!