首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

Google 公布 TPU 细节后,AI 界怎么看

Google 公布 TPU 细节后,AI 界怎么看

我们对 GoogleTPU 并不陌生,正是它支撑了 AlphaGo 强大快速的运算力,但 Google 一直未曾披露细节,使 TPU 一直有神秘感。

美国当地时间 4 月 5 日,Google 终于打破沉寂,发表官方部落格,详细介绍 TPU 各方面。 相关论文更配以彩色 TPU 模块框图、TPU 芯片配置图、TPU 印制电路等,可谓图文并茂,称其为「设计教程」也不为过。 不出意料,这之后会涌现一大批仿效者。

论文中还给了 TPU 与其他芯片的效能对比图,称「TPU 处理速度比目前 GPU 和 CPU 要快 15 到 30 倍」,有人赞叹 TPU 的惊人效能,但也有人对此种「比较」表示质疑,因其拿来的比较对象并非市场效能最好的。

这篇论文有哪些亮点? 争议点在哪里? Google 公布 TPU 细节会对业界产生什么影响? 本文要解答这几个问题。

Google 为什么要做 TPU?

这篇论文的主题为:《数据中心的 TPU 效能解析》(In-Datacenter Performance Analysis of a Tensor Processing Unit),共同作者多达 70 人,领衔第一作者是硬件大师 Norman Jouppi。


Jouppi 在接受外媒 Wired 采访时说,Google 一开始曾经考虑要用 FPGA,但是后来经过实验发现,这种芯片无法提供理想的速度。

程序化芯片制造费用太高,我们分析认为,FPGA 芯片并不比 GPU 快。
最终,他们将目光放到 ASIC(专属集成电路,一旦设计制造完成后电路就固定了,无法再改变)上,TPU 就是一种 ASIC。 在接受外媒 The Next Platform 采访时,Jouppi 表示 TPU 可适用现存各种神经网络模型,从影像辨识的 CNN 到语音识别的 LSTM,都适用。

TPU 跟 CPU 或 GPU 一样是程序化的。 TPU 不是专为某一个神经网络模型设计;TPU 能在多种网络(卷积网络、LSTM 模型和大规模全联机的神经网络模型)上执行 CISC 指令。
Google 已使用 TPU 两年,应用在各领域工作,包括:Google 影像搜寻(Google Image Search)、Google 照片(Google Photo)、Google 云视觉 API(Google Cloud Vision API)、Google 翻译以及 AlphaGo 的围棋系统中。

TPU 只是一种推理芯片

需要明确说明的是:TPU 是一款推理芯片,并不是用做训练。 根据辉达首席科学家 William J. Dally 的说法,在深度学习领域,主要有 3 种运算方式:

数据中心的训练(用于训练模型,计算机往往需要以较高的精确度运算,一般使用 32 位浮点运算)。
数据中心的推理(在云端进行实时连续运算,精确度可以适当牺牲,换取更快的速度和更低能耗)。
内嵌式装置的推理(这类应用的核心是低能耗的 ASICs)。
所以 TPU 针对的,就是第二种运算方式:数据中心的推理。 对推理运算而言,重要指针就是快速和低能耗。 在 Google 部落格里,Jouppi 特别强调 TPU 以下效能:

我们产品的人工智能负载,主要利用神经网络的推理功能,其 TPU 处理速度比目前 GPU 和 CPU 要快 15 到 30 倍。
较之传统芯片,TPU 也更加节能,功耗效率(TOPS/Watt)提升了 30 到 80 倍。
驱动这些应用神经网络只要求少量程序代码,少得惊人:仅 100~1,500 行。 程序代码以 TensorFlow 为基础。
70 多个作者对这篇文章有贡献。 很多人参与了设计、证实、实施以及配置类似这样的系统软硬件。
AI 业界如何看待这篇论文?

亮点:特定场域下的高效率

对于 Google TPU 论文里的技术特点,雷锋网采访了寒武纪科技 CEO 陈天石,他分别从架构、效能和工程 3 个角度,分析这篇论文涉及的技术问题。

并不意外,这款芯片仍然沿用传统的脉动数组机架构,也是当今许多深度学习 DSP 采用的架构。 事实上,寒武纪团队成员早期与 Olivier Temam 教授、Paolo Ienne 教授共同发表于 ISCA2015 的 ShiDianNao 学术论文已经讨论过这样的架构,同时 MIT 于 2016 年前后发表的 Eyeriss 也是类似架构。
效能上看,确实透过裁剪运算器宽度(8 位定点)达到非常高的理论峰值,在大多数卷积作业效率很好。 但在部分其他类别的神经网络作业上,效率不是太高。
从工程角度看,Google 透过 TPU 项目对深度学习硬件加速做出了有益的尝试,令人敬佩;未来 Google 一定会持续更新 TPU 架构。 寒武纪商用产品最终并没有走脉动数组机的技术路线,而是走一条通用智能处理器之路。 我们十分期待未来继续与国际工业界和学术界同行同台竞技。
虽然寒武纪与 Google 分别在硬件方面选了不同的商用形态,但是双方都从彼此身上学习。 陈天石提到 Google 这篇 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 等,一个公司选择某个方向有它的深思熟虑。 姚颂认为 Google 做 TPU 这件事情本身,其实是展现出一种「直接面对应用需求」姿态,根据最终应用来进行「自定义计算」,而他所在的深鉴科技选择的,也是类似 Google 这种「自定义化」发展型态。

大家可以很清楚看到 Google 这样的公司,从最开始使用 CPU 这样的通用芯片,过渡到 GPU 与 FPGA,再过渡到专属的 ASIC,来面对应用的需求。 沿着这一条发展曲线,不断提高效能和用户体验的同时,也降低整体执行成本。 Google 第一次透过 TPU 这个终极形态走完这条发展路径,其实为其他公司指出一条未来的发展路径,这个意义超出了 TPU 本身设计的高效性。
争议:论文里 TPU 的比较对象

论文里,TPU 的比较对象是:英特尔 Haswell E5-2699 v3 和辉达 Tesla K80。 有人对比较提出异议,因为 Tesla K80 并不是辉达最强最新的芯片产品。

外国网友 jimmy 表示:

Tesla P4 就比 Tesla K80 的效能高出至少 16 倍。 Google 拿 TPU 与 5 年前的芯片架构相比,有点狡猾。
网友 Szilárd P 则表示,拿 TPU 跟 Pascal Tesla 比较很荒谬。 因为辉达发表 Pascal Tesla 的时间是在 2016 年 9 月,但当时 Google 这篇论文是为了第 44 届 ISCA(国际计算器架构会议)准备的,论文提交截止日期是 2016 年 11 月,而辉达 Pascal Tesla 正式出货时间也要等到 10 月,所以 Google 再重新做实验测试,是不太实际的。 但他同时也表示:

Google 不拿 Maxwell M4/M40 来比较,有点说不过去。 因为 GM20x 也是 28nm,而且比 K80 效能更强。
针对这一点,陈天石认为如果纯粹考虑技术因素,这种比较是否公平要看从什么角度看:

Google TPU 采用的脉动数组机架构,在处理卷积的效率上确有其优势,在效能功耗比方面会显著胜过 GPU。 同时 TPU 是 2016 年以前的产品,与同期 K80 相比,其实不算太不公平。 但若仅考虑技术因素,TPU 使用 8 位运算器,相比之下强调高精度浮点运算的传统 GPU 会吃亏。
姚颂则从另一个方面对这种「比较」进行解读,他认为这或许是 Google 一种「韬光养晦」的策略。 他表示 Google 通常有了新一代的技术才会公开上一代技术,论文的比较对象没有采用最新 GPU 芯片,并不是 Google 有意取巧。

其实 TPU 的设计大概 4 年前就开始了,上线实用也有一段时间,在那个时间点,其实还没有出现 Tesla M40 这样的 GPU,也没有出现最新的 Tesla P40 这样 Pascal 架构的 GPU。
对外:于业界会有什么影响? 会有很多人开始仿效制造吗?

Google 以论文形式,图文并茂地将 TPU 的架构、核心部件都说明得清清楚楚,那么会不会有后来者群起仿效呢? 对于这一点,姚颂表示,Google 公布的技术虽然通常不是其最新的研究进展,但也往往非常先进和新颖,肯定会有人仿效,但仿效的话,也只会把自己的起点放在 Google 4 年前的起点罢了。

我想一定会有很多人追着 TPU 的思路设计自己的深度学习芯片,因为 TPU 已经批量在实际业务中应用并展示威力。 但是其实,TPU 是 4 年前开始研发的项目,仿效只会把自己的起点放在别人 4 年前的起点。 当你做出仿效的产品,很可能 Google 第 3 代 TPU 都已经出来了。 并且,TPU 强大的地方不完全在芯片,而是结合 TensorFlow 的软件生态,这使开发更为简单──这一点就无法效仿。
业界领先的公司要更看向未来,比如在 TPU 论文中提到「Sparsity will have priority in future designs」,比如 TPU 的硬件与软件生态一起做,那么,如何高效支持稀疏性,如何提供让用户简单得到稀疏化神经网络的软件工具,其实更为重要,这其实也是我们一直在做的。 像我们与搜狗合作的语音识别加速,就是沿着 Sparsity 这条路线更进一步,而本次 TPU 论文也参照了 3 篇深鉴团队以往论文为未来发展的参照。
而陈天石从架构角度给了另一个看法,他认为与 TPU 类似的方案之前已经存在了。

TPU 在架构面走一条保守但稳健的道路。 TPU 架构正式公开前,学术界其实已有一些类似的方案(将脉动数组机用于处理深度学习)。 脉动数组架构本身是传统技术,早在 1980 年代初,中科院计算所的夏培肃院士和李国杰院士就曾将脉动数组架构用于石油勘探。 将其用于深度学习,其实是近年来 DSP 和硬件加速领域的旧瓶装新酒。
总结

从这篇论文里,Google 的 TPU 细节一览无遗,然而 TPU 是为了 TensorFlow 自定义的,对一些 AI 芯片厂商来说,或许能从这篇论文里获得一些灵感,但一味仿效可能得不偿失。

TPU 并不是全能,只是用于数据中心的推理阶段。 深度学习模型的前期训练,也还是要依靠高精确度的 GPU。 而且 TPU 通用性差,Google 也曾在多种场合表示不会贩卖 TPU。 所以对于辉达一类的通用芯片厂商来说,并没有直接的竞争威胁。 然而,Google 带头追求特定领域应用的极致效率,对很多走自定义化路线的 AI 芯片厂商来说,是莫大的鼓舞。

陈天石和姚颂两位 CEO 各自带领的 AI 芯片公司,在进行不同种类的 AI 芯片研发和商用工作,寒武纪科技偏通用,深鉴科技偏工业自定义。 两位 CEO 也都彼此惺惺相惜,就像陈天石曾对姚颂说的那样,这个市场需要多种芯片,有偏通用,也有更专属更注重特定领域,共同进步的同时未来也一定有机会合作。

如今 AI 芯片产业处在一个「大航海时代」,真正的宝藏,需要更多人开拓。
返回列表