游客

谷歌公布了TPU细节,AI业界怎么看?

游客 2017-04-08 17:27:51    200640 次浏览

谷歌公布了TPU细节,AI业界怎么看?

按:我们对于谷歌的 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。

谷歌公布了TPU细节,AI业界怎么看?

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 的说法,在深度学习领域,主要有三种运算方式:

  1. 数据中心的训练(用于训练模型,计算机往往需要以较高的精确度运算,一般使用 32 位浮点运算)

  2. 数据中心的推理(在云端进行实时连续运算,精确度可以适当牺牲,换取更快的速度和更低的能耗)

  3. 嵌入式设备的推理(这类应用的核心是低能耗的 ASICs)

所以 TPU 针对的,就是第二种运算方式:数据中心的推理。而对于推理运算而言,重要的指标就是快速和低能耗。在谷歌博客里,Jouppi 突出强调了 TPU 以下性能:

  1. 我们产品的人工智能负载,主要利用神经网络的推理功能,其 TPU 处理速度比当前 GPU 和 CPU 要快 15 到 30 倍。

  2. 较之传统芯片,TPU 也更加节能,功耗效率(TOPS/Watt)上提升了 30 到 80 倍。

  3. 驱动这些应用的神经网络只要求少量的代码,少的惊人:仅 100 到 1500 行。代码以 TensorFlow 为基础。

  4. 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 芯片产业处在一个“大航海时代”,真正的宝藏,需要更多的人去开拓。

内容加载中