本文作者:亚萌
按:我们对于谷歌的TPU并不陌生,正是它支撑了AlphaGo强大快速的运算力,但谷歌一直未曾披露其细节,使得TPU一直保有神秘感。
美国当地时间4月5日,谷歌终于打破了沉寂,发表官方博客,详细介绍了TPU的方方面面。相关论文更是配以彩色的TPU模块框图、TPU芯片布局图、TPU印制电路......等等,可谓图文并茂,称其为“设计教程”也不为过。不出意料,这之后将会涌现一大批仿效者。
论文中还给出TPU与其它芯片的性能对比图,称“TPU处理速度比当前GPU和CPU要快15到30倍”,有人赞叹TPU的惊人性能,但也有人对此种“比较”表示质疑,因其拿来的比较对象并非市场里性能最好的。
这篇论文有哪些亮点?争议点在哪里?谷歌公布TPU细节会对业界产生什么影响?本文要解答这几个问题。
谷歌为什么要造TPU?
这篇论文的题目为:《数据中心的TPU性能分析》(In-Datacenter Performance Analysis of a Tensor Processing Unit),共同作者多达70人,领衔的第一作者是硬件大牛Norman Jouppi。
Jouppi在接受外媒Wired采访时说,谷歌一开始曾经考虑要用FPGA,但是后来经过实验发现,这种芯片无法提供理想中的速度。
“可编程芯片制造费用太高,我们的分析认为,FPGA芯片并不比GPU跑得快。”
最终,他们将目光放到ASIC(专用集成电路,一旦设计制造完成后电路就固定了,无法再改变)上,TPU就是一种ASIC。在接受外媒The Next Platform采访时,Jouppi表示TPU可以适用于现存的各种神经网络模型,从图像识别的CNN到语音识别的LSTM,都适用。
“TPU跟CPU或GPU一样是可编程的。TPU 不是专为某一个神经网络模型设计的;TPU 能在多种网络(卷积网络、LSTM模型和大规模全连接的神经网络模型)上执行CISC 指令。”
谷歌已经使用TPU已经两年时间,将其应用在各种领域的任务里,包括:谷歌图像搜索(Google Image Search)、谷歌照片(Google Photo)、谷歌云视觉API(Google Cloud Vision API)、谷歌翻译以及AlphaGo的围棋系统中。
TPU只是一种推理芯片
需要明确的一点是:TPU 是一款推理芯片,并不是用作训练。根据英伟达首席科学家 William J. Dally 的说法,在深度学习领域,主要有三种运算方式:
数据中心的训练(用于训练模型,计算机往往需要以较高的精确度运算,一般使用32位浮点运算)
数据中心的推理(在云端进行实时连续运算,精确度可以适当牺牲,换取更快的速度和更低的能耗)
嵌入式设备的推理(这类应用的核心是低能耗的 ASICs)
所以TPU针对的,就是第二种运算方式:数据中心的推理。而对于推理运算而言,重要的指标就是快速和低能耗。在谷歌博客里,Jouppi突出强调了TPU以下性能:
我们产品的人工智能负载,主要利用神经网络的推理功能,其 TPU 处理速度比当前 GPU 和 CPU 要快15到30倍。
较之传统芯片,TPU 也更加节能,功耗效率(TOPS/Watt)上提升了30到80倍。
驱动这些应用的神经网络只要求少量的代码,少的惊人:仅100到 1500 行。代码以 TensorFlow 为基矗
70 多个作者对这篇文章有贡献。很多人参与了设计、证实、实施以及布局类似这样的系统软硬件。
AI业界如何看待这篇论文?
亮点:特定场景下的高效率
对于谷歌TPU论文里的技术特点,雷锋网采访了寒武纪科技CEO陈天石,他分别从架构、性能和工程三个角度,分析了这篇论文涉及的技术问题。
“并不意外,这款芯片仍然沿用了传统的脉动阵列机架构,也是当今许多面向深度学习的DSP所采用的的架构。事实上,寒武纪团队成员早期与Olivier Temam教授、Paolo Ienne教授共同发表于ISCA2015的ShiDianNao学术论文就已经讨论过这样的架构,同时MIT于2016年前后发表的Eyeriss也是类似的架构。