雷锋网(公众号:雷锋网)按:我们对于谷歌的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也是类似的架构。
性能上看,确实通过裁剪运算器宽度(8位定点)达到了非常高的理论峰值,在大多数卷积操作上效率很好。但在部分其他类型的神经网络操作上,效率不是太高。
从工程角度看,Google通过TPU项目对深度学习硬件加速作出了有益的尝试,令人敬佩;未来Google未来一定会持续更新TPU的架构。而寒武纪商用产品最终并没有走脉动阵列机的技术路线,而是走一条通用智能处理器之路。我们十分期待未来继续与国际工业界和学术界同行同台竞技。”
虽然寒武纪与谷歌分别在硬件方面选择了不同的商用模式,但是双方都在从彼此身上学习和借鉴。陈天石提到谷歌这篇TPU文章,引用了寒武纪团队成员前期发表的6篇学术论文,并有专门的段落回顾他们一系列学术工作。
“论文中在提到DaDianNao/PuDianNao/ShiDianNao时还专门用英文注释这几个名字的含义(Big computer, general computer, vision computer),对我们前期学术工作显示了相当的尊重。非常值得骄傲的是,我们早期与Olivier Temam教授共同开展的这一系列开拓性学术工作,已经成为智能芯片领域引用次数最多的论文。而Olivier Temam教授本人在几年前就已经加入了Google。相信他会把DianNao系列的学术思想融入TPU后续的版本,把TPU的事业继续推向新高度。”
与此同时,雷锋网也采访了深鉴科技CEO姚颂,业界已经对TPU文章里的设计亮点评论颇丰了,姚颂从另一个角度看待这个问题,他认为“TPU的最大亮点其实是TPU这件事本身”。并行计算有很多种架构,如GPU、FPGA等等,一个公司选择某个方向有它的深思熟虑。姚颂认为谷歌做TPU这件事情本身,其实是展现出一种“直面应用需求”的姿态,直接根据最终应用来进行“定制计算”,而他所在的深鉴科技所选择的,也是类似谷歌这种“定制化”发展模式。
“大家可以很清楚的看到Google这样直面应用的公司,从最开始使用CPU这样的通用芯片,过渡到GPU与FPGA,再过渡到专用的ASIC,来直面应用的需求。沿着这样一条发展曲线,在不断提高性能和用户体验的同时,也降低了整体运行成本。Google第一次通过TPU这样一个终极形态走完了这样一条发展路径,其实为其他很多公司指出了一条未来的发展路径,这个意义超出了TPU本身设计的高效性。”
-
争议:论文里TPU的比较对象
论文里,TPU的比较对象是:英特尔 Haswell E5-2699 v3和英伟达Tesla K80。有人就对这个比较提出异议,因为Tesla K80并不是英伟达最强最新的芯片产品。
外国网友 jimmy 表示:
“Tesla P4就比Tesla K80 的能效高出至少16倍。谷歌拿TPU与5年前的芯片架构相比,有点狡猾。”
网友 Szilárd P 则表示,拿TPU跟Pascal Tesla做比较的说法很荒谬。因为英伟达发布Pascal Tesla的时间是在2016年9月,但当时谷歌这篇论文是为了第44界ISCA(国际计算机架构会议)准备的,论文提交截止日期是2016年11月份,而英伟达Pascal Tesla的正式出货时间也要等到10月份,所以谷歌再重新做实验测试,是不太现实的。但他同时也表示:
“谷歌不拿Maxwell M4/M40来做比较,有点说不过去。因为 GM20x也是28nm,而且比K80性能更强。”
针对这一点,陈天石认为如果纯粹考虑技术因素,这种比较是否公平要看从什么角度看:
“Google TPU所采用的脉动阵列机架构,在处理卷积的效率上确有其优势,在性能功耗比方面会显著胜过GPU。同时TPU是2016年以前的产品,与同期K80相比,其实不算太不公平。但若仅仅考虑技术因素,TPU使用8位运算器,相比之下强调高精度浮点运算的传统GPU会吃亏。”
姚颂则从另一个方面对这种“比较”进行解读,他认为这或许是谷歌一种“韬光养晦”的策略。他表示谷歌通常有了新一代的技术才会公开上一代技术,这篇论文里的比较对象没有采用最新的GPU芯片,并不是谷歌有意在取巧。
“其实TPU的设计大概在四年前就开始了,上线实用也已经有了一段的时间,在那个时间点,其实还没有出现Tesla M40这样的GPU,也没有出现最新的Tesla P40这样Pascal架构的GPU。”
-
对外:于业界会有什么影响?会有很多人开始仿效制造吗?
谷歌以论文的形式,图文并茂地将TPU的架构、核心部件都描述地清清楚楚,那么会不会有后来者群起而仿效之呢?对于这一点,姚颂表示谷歌公布的技术虽然通常不是其最新的研究进展,但也往往是非常先进和新颖的,肯定会有人仿效,但仿效的话,也只会把自己起点放在谷歌4年前的起点罢了。
“我想一定会有很多人去追着TPU的思路设计自己的深度学习芯片,因为TPU已经批量在实际业务中应用并展示了它的威力。但是其实,TPU是个四年前左右开始研发的项目,仿效它只会把自己起点放在别人4年前起点。当做出来仿效的产品,很可能Google第3代TPU都已经出来了。并且,TPU强大的地方不完全在于芯片,而在于结合TensorFlow的软件生态,这使得开发更为简单——这一点不是可以效仿的。
业界领先的公司还是需要更多地看到未来,比如在TPU论文中提到‘Sparsity will have priority in future designs’,比如TPU的硬件与软件生态一起做,那么,如何高效支持稀疏性,如何提供让用户简单得到稀疏化神经网络的软件工具,其实更为重要,而这其实也是我们一直在做的。像我们与搜狗合作的语音识别加速,就是沿着Sparsity这条路线更进一步,而本次TPU论文也引用了3篇深鉴团队以往论文作为未来发展的参考。”
而陈天石从架构的角度给出了另一个看法,他认为与TPU类似的方案之前已经存在了。
“TPU在架构方面走了一条保守但稳健的道路。在TPU架构正式公开之前,在学术界其实已经有一些类似的方案(将脉动阵列机用于处理深度学习)。脉动阵列架构本身是个传统技术,早在1980年代初,中科院计算所的夏培肃院士和李国杰院士就曾将脉动阵列架构用于石油勘探。将其用于深度学习,其实是近年来DSP和硬件加速领域的旧瓶装新酒。”
总结
从这篇论文里,谷歌的TPU细节一览无余,然而TPU是为了TensorFlow定制的,对于一些AI芯片厂商来说,或许能从这篇论文里获得一些灵感,但一味仿效可能得不偿失。
TPU并不是全能的,只是用于数据中心的推理阶段。深度学习模型的前期训练,也还是要依靠高精度的GPU。而且TPU通用性差,谷歌也曾在多种场合表示自己并不会售卖TPU。所以对于英伟达一类的通用芯片厂商来说,并没有直接的竞争威胁。然而,谷歌带头追求特定领域应用的极致效率,对于很多走定制化路线的AI芯片厂商来说,这是一种强大的鼓舞。
陈天石和姚颂两位CEO各自带领的AI芯片公司,在进行不同种类的AI芯片研发和商用工作,寒武纪科技偏通用,深鉴科技偏行业定制。两位CEO也都彼此惺惺相惜,就像陈天石曾经对姚颂说的那样,这个市场需要多种芯片的,有偏通用,也有更专用更注重特定领域的,共同进步的同时未来也一定有机会合作。
如今的AI芯片产业处在一个“大航海时代”,真正的宝藏,需要更多的人去开拓。
。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/79768.html