阅读总结

Google的TPU是AI_ASIC芯片的鼻祖,从论文的作者数量之庞大,及论文少有的出现了致谢,就可以看出一定是历经了一番磨砺才创造出来。该论文发表在 2017 年,让我们回到那个年代,一同看看是什么样的背景诞生了如此伟大的艺术品~

《In-Datacenter Performance Analysis of a Tensor Processing Unit》

To appear at the 44th International Symposium on Computer Architecture (ISCA), Toronto, Canada, June 26, 2017.

1. 通往TPU之路

早在2006年,Google就在考虑为神经网络构建一个专用集成电路(ASIC)。2013年这个需求变得更加紧迫,当时Google意识到快速增长的计算需求,可能意味着数据中心的数量需要翻番才能满足。

通常而言,ASIC的开发需要耗时数年。但具体到TPU而言,从设计到验证、构建和部署到数据中心里,只需要15个月

TPU ASIC采用了28nm工艺制造,主频700MHz,功耗40W。为了尽快把TPU部署到现有的服务器中,Google选择把这个芯片打包成外部扩展加速器,然后插到SATA硬盘插槽里使用。所以TPU通过PCIe Gen3 x16总线与主机相连,也就是说12.5GB/s的有效带宽。

Abstract

> 1.Deployed in datacenters.

2.Accelerates the inference phase of neural networks (NN).
3.The heart of the TPU is a 65,536 8-bit MAC matrix multiply unit that offers a peak throughput of 92 TeraOps/second (TOPS) and a large (28 MiB) software-managed on-chip memory.
4.We compare the TPU to a server-class Intel Haswell CPU and an Nvidia K80 GPU, which are contemporaries deployed in the same datacenters

摘要:
– Many architects believe that major improvements in cost-energy-performance must now come from domain-specific hardware.
本文评估了自2015年以来部署在数据中心的定制专用集成电路——称为张量处理单元(Tensor processing Unit, TPU),该集成电路可加速神经网络(NN)的推理阶段。TPU的核心是一个65,536个8位MAC矩阵相乘单元,提供了92 TeraOps/秒(TOPS)的峰值吞吐量和一个大(28 MiB)的软件管理片上存储器。
TPU的确定性执行模型比cpu和gpu的时变优化更符合我们的NN应用程序的99%响应时间要求 (缓存、乱序执行、多线程、多处理、预取……) 这些都有助于提高平均吞吐量,而不是保证延迟。
缺乏这样的功能有助于解释为什么尽管拥有无数的mac和大内存,TPU却相对较小和低功耗。我们将TPU与服务器级的Intel Haswell CPU和 Nvidia K80 GPU,部署在相同的数据中心。
我们的工作量,写在高层TensorFlow框架,使用生产NN应用(MLPs, CNNs和LSTMs),代表95%的数据中心的NN推断需求。尽管某些应用程序的利用率很低,但TPU的平均利用率约为15倍比现在的GPU或CPU快30倍,TOPS/Watt大约高出30 - 80倍。此外,使用GPU的TPU中的GDDR5内存将会三倍于TOPS,并将TOPS/Watt提高到GPU的近70倍和GPU的200倍CPU。

结论:Despite low utilization for some applications, the TPU is on average about 15X -
30X faster than its contemporary GPU or CPU, with TOPS/Watt about 30X - 80X higher. Moreover, using the GPU’s GDDR5 memory in the TPU would triple achieved TOPS and raise TOPS/Watt to nearly 70X the GPU and 200X the CPU.

算力 92TeraOps/Second(TOPS)and 28MiB software-managed on chip memory

Introduction to Neural Networks

A step called ​quantization transforms floating-point numbers into narrow integers—often just 8 bits—which are usually good enough for inference.
Eight-bit integer multiplies can be 6X less energy and 6X less area than IEEE 754 16-bit floating-point multiplies, and the 1advantage for integer addition is 13X in energy and 38X in area [Dal16]
介绍INT8,为什么需要INT8,以及量化(quantization)的概念
作为优化的第一步,Google应用了一种称为量化的技术进行整数运算,而不是在CPU或者GPU上对所有数学工作进行32位或者16位浮点运算。这能减少所需的内存容量和计算资源。

— 分割线 —

实际业务中需要多少次乘法运算?2016年7月,Google团队调查了实际业务中,六个有代表性的神经网络应用,结果如下表所示:
NN – Neural Networks ,当前主要有三类,多层感知器(MLP),CNN,RNN.

Thus, we started a high-priority project to quickly produce a custom ASIC for inference (and bought off-the-shelf GPUs for training).

为了减少延迟部署的机会,TPU没有与CPU紧密集成,而是被设计为PCIe I/O总线上的协处理器,允许它像GPU那样插入现有的服务器。此外,为了简化硬件设计和调试,主机服务器发送TPU指令让它执行,而不是自己获取指令。

我们的目标是在TPU中运行整个推理模型,以减少与主机CPU的交互,并保持足够的灵活性,以满足2015年及以后的NN需求,而不是仅仅满足2013年NN的需求。图1显示了TPU的框图

2. TPU 的起源、架构和实现

缘由:

这个话题在2013年发生了变化,当时人们每天使用语音识别dnn进行3分钟的语音搜索,这需要我们的数据中心翻倍才能满足计算需求,而传统cpu满足这一需求的成本非常昂贵。
我们的目标是比 GPU 提高10倍的性价比。考虑到这一任务,TPU的设计、验证、建造和部署在数据中心只用了15个月。

设计:

为了减少延迟部署的机会,TPU没有与CPU紧密集成,而是被设计为PCIe I/O总线上的协处理器,允许它像GPU那样插入现有的服务器,为了简化硬件设计和调试,主机服务器发送TPU指令让它执行,而不是自己获取指令

  1. TPU指令从主机通过PCIe Gen3 x16总线发送到指令缓冲区。
  2. MACs包括 256256的 8-bit 乘加,产生的 16bit 结果存放在 4MiB 做32bit的累加,4MiB 的含义是 4096, 256个元素的32bit累加(4K256*32b == 4MiB)

本单元是为稠密矩阵设计的。由于部署时间的原因,省略了稀疏的体系结构支持。在未来的设计中,稀疏性将是优先考虑的问题
它每个时钟周期读写256个值,可以执行矩阵乘法或卷积
中间结果保存在24 MiB片上统一缓冲区中, 选择24 MiB大小,一方面是为了匹配模具上Matrix Unit的间距,另一方面是为了简化编译器
一个可编程的DMA控制器传输数据到或从CPU主机内存和统一缓冲区 – M*E
Control is just 2%.

ISA

由于指令通过相对较慢的PCIe总线发送,TPU指令遵循CISC传统,包括一个重复字段。这些CISC指令的每条指令的平均时钟周期(CPI)通常是10到20。它总共有十几条指令,但这五条是关键的
为了控制MUX、UB和AU进行计算,Google定义了十几个专门为神经网络推理而设计的高级指令。以下是五个例子。


PIngPang : The philosophy of the TPU microarchitecture is to keep the matrix unit busy. The plan was to hide the execution of the other instructions by overlapping their execution with the ​MatrixMultiply​ instruction.

由于读取一个大的SRAM比算术消耗更多的能量,矩阵单元使用收缩执行,通过减少统一缓冲区的读写来节省能量

与CPU和GPU相比,TPU的控制单元更小,更容易设计,面积只占了整个Floor Plan的2%,给片上存储器和运算单元留下了更大的空间。而且,TPU的大小只有其他芯片的一半。硅片越小,成本越低,良品率也越高。

脉动矩阵

TPU采用了与传统CPU和GPU截然不同的脉动阵列(systolic array)结构来加速AI运算,脉动阵列能够在一个时钟周期内处理数十万次矩阵运算,在每次运算过程中,TPU能够将多个运算逻辑单元(ALU)串联在一起,并复用从一个寄存器中取得的结果。这种设计,不仅能够将数据复用实现最大化,减少芯片在运算过程中的内存访问次数,提高AI计算效率,同时也降低了内存带宽压力,进而降低内存访问的能耗。
MXU的脉动阵列包含256 × 256 = 65,536个ALU,也就是说TPU每个周期可以处理65,536次8位整数的乘法和加法。

算力计算:TPU以 700MHz 的功率运行,也就是说,它每秒可以运行 65,536 × 700,000,000 = 46 × 1012次乘法和加法运算,或每秒92万亿(92 × 1012), 92Tops 次矩阵单元中的运算。

4. Performance: Rooflines, Response-Time, and Throughput

TPU Log-Log

TPU的脊点出现在 1350 Oper/s. TPU的屋顶线有一个很长的“倾斜”部分,其中的操作强度意味着性能受到内存带宽的限制,而不是峰值计算
the MLPs and LSTMs are memory bound and CNNs are computation bound.
因为 MLPs 和 LSTMs 在脊点之前,CNNs在脊点之后。在脊点之前,则X轴访存能力提升,Y轴计算能力提升,说明瓶颈在访存能力,在脊点之后,X轴访存能力提升,Y轴计算能力也不变,说明瓶颈在计算能力。

尽管CNN1的操作强度非常高,但其TOPS仅为14.1; CNN0在86 TOPS;
Haswell Log-Log

K80 Log-Log

下面,是TPU、CPU、GPU在六种神经网络上的性能对比。在CNN1上,TPU性能最为惊人,达到了CPU的71倍。

这个简单的可视化模型并不完美,但它提供了性能瓶颈的原因

5. Cost-Performance, TCO, and Performance/Watt

6. Energy Proportionality

7. Evaluation of Alternative TPU Designs

8. 软件栈

TPU设计封装了神经网络计算的本质,可以针对各种神经网络模型进行编程。为了编程,Google还创建了一个编译器和软件栈,将来自TensorFlow图的API调用,转化成TPU指令。

AI算力基础 -- TPU1.0相关推荐

  1. AI算力基础 -- Nvidia TESLA V100 GPU

    – 2017年 1. Introduction to the NVIDIA Tesla V100 GPU Architecture 新的NVIDIA®Tesla®V100加速器(如图1所示)集成了强大 ...

  2. AI算力基础 -- Roofline模型

    Roofline: An Insightful Visual Performance Model for Floating-Point Programs and Multicore Architect ...

  3. 打破AI算力成本困局 趋动科技即将重磅发布全球首个AI算力池化云服务

    10月23-25日,由湖南湘江新区管委会指导,长沙工业与信息化局.长沙信息产业园管委会.CSDN联合主办的"2022 长沙·中国1024 程序员节"即将在线上隆重开启.本届大会聚焦 ...

  4. 从最强AI算力到“元脑”2.0,智算加速产业变革

    作者 | Just 出品 | AI科技大本营(ID:rgznai100) AI模型的数据量.结构的复杂程度不断增加,带来了大规模AI算力的庞大需求. 2020年7月,OpenAI实验室推出拥有1750 ...

  5. CANN 5.0黑科技解密 | 算力虚拟化,让AI算力“物尽其用”

    摘要:算力虚拟化技术对消费者而言,可有效降低算力的使用成本,对于设备商或运营商而言,则可极大提升算力资源的利用率,降低设备运营成本. 为什么要做算力虚拟化 近年来,人工智能领域呈井喷式发展,算力就是生 ...

  6. AI发展进入2.0时代!英特尔在落地中总结4大经验、分享7个案例

    欧凯 发自 凹非寺  量子位 报道 | 公众号 QbitAI AI发展和竞争,已经来到2.0时代. 这是一个落地为王关键的阶段. 在2019上海世界人工智能现场,谈论最多的话题也是AI落地和实践经验. ...

  7. 华为麒麟990发布!余承东:全球首款旗舰5G SoC,业界最强手机AI算力,友商还都是PPT...

    乾明 晓查 假装发自 柏林  量子位 报道 | 公众号 QbitAI 刚刚,华为发布新一代芯片,麒麟990 5G. 集成5G,AI算力更强,性能再提升. 在发布会上,余承东用六个"最&quo ...

  8. AI算力霸主诞生!英伟达发布首款安培架构GPU,性能提升20倍

    来源:雷锋网 由于疫情缘故,本该在今年3月英伟达(NVIDIA)GTC 2020上发布的安培(Ampere)架构曝光多次却一直未发布. 5月15日,英伟达CEO黄仁勋发布了英伟达新一代GPU架构安培, ...

  9. 新基建下 AI 算力市场崛起,华为凭什么从中分一杯羹?

    2020 年,成为真正意义上的新基建"元年",各种利好政策密集落地,全国各地都开始重视起这个频频出现在国家政策文件上的新概念.近期,国家发改委近期多次强调加快 5G 网络.数据中心 ...

  10. 华为发布AI时代数据中心交换机:让网络瓶颈不再是束缚,AI算力提升一倍

    晓查 发自 凹非寺  量子位 出品 | 公众号 QbitAI 华为正在全面拥抱AI. 在手机上使用AI芯片麒麟980,去年10月还发布了AI计算芯片"昇腾".现在华为要把AI的战略 ...

最新文章

  1. linux学习(3) 关机使命
  2. Boost:与容器相关的BOOST_TEST_EQ测试
  3. sklearn.decomposition.FastICA实现FastICA算法
  4. IntelliJ IDEA 14 创建maven项目二
  5. CTS(20)---CTS测试框架 -- V2版本
  6. python简单代码-用Python代码实现5种最好的、简单的数据可视化!
  7. python函数定义及调用-浅谈Python中函数的定义及其调用方法
  8. jquery cookie 本地不能工作的原因
  9. Hadoop 集群 傻瓜式搭建手记 (一) 软件准备
  10. 压缩解压缩工具之WinRAR
  11. 计算机应用基础制作表格的步骤,计算机应用基础_WORD制作表格_表格编辑公开课课件.ppt...
  12. Java总结及面试题
  13. 中国移动通信互联网短信网关接口协议 (China Mobile Peer to Peer, CMPP) (V2.0)
  14. 【音视频数据数据处理 7】【RGB/BMP篇】生成24色 RGB24图 和 BMP图
  15. 赵小楼:《天道》《遥远的救世主》深度解析(28)人文意识发展到今天,我们应该怎么改变?
  16. 三个真话一个假话c语言,推理题-逻辑推理题有A、B、C三个精灵,其中一个只说真话,另外一个只说假 爱问知识人...
  17. RabbitMQ快速入门及实例演示
  18. 华生:救市之争的误导和政策定位
  19. 【软件设计】六大设计原则讲解
  20. M1卡片相关(读卡,写卡,加密算法)

热门文章

  1. linux 硬盘坏块检测,Linux上检测硬盘上的坏道和坏块
  2. 几个系统级崩溃问题和h5加载页面崩溃问题及解决方案
  3. 如何使用PS改变只有一种颜色图片的颜色
  4. 数组、单链表和双链表介绍 以及 双向链表的C/C++/Java实现
  5. matlab亮度对比度调节公式,图像编辑之对比度调整(亮度对比度的算法公式)
  6. 恒生电子2019校园招聘笔试题
  7. You Only Watch Once(YOWO)
  8. 浏览器快捷键大全、常用快捷键整理
  9. C语言笔记——一些小细节
  10. 神经网络和深度学习基本原理