状态: 问题池
谷歌的TPU有什么用途?有什么优势?
1人赞同 1人关注

新浪科技讯 北京时间2月13日早间消息,谷歌在一篇博客文章中正式宣布,将以“有限数量”向谷歌云客户开放张量处理器(Tensor Processing Unit,简称TPU)服务。

TPU是谷歌为机器学习而设计的人工智能定制芯片。将TPU开放,对于对于选择在谷歌云平台上运行机器学习模型的客户来说,可谓好事一桩。但谷歌这次开放的TPU数量有限,而且按时收费,每小时成本为6.50美元。

谷歌在2016年低调推出了TPU项目,并在去年5月的年度开发者大会上推出了第二代TPU。这次更新让谷歌进入了更为复杂的深度学习培训阶段。

TPU专用于人工智能和机器学习,可为谷歌带来两大好处:

首先,利用自主研发的芯片,谷歌可以在核心的计算基础设施方面更便宜、更有效地减少对英特尔、英伟达等芯片制造商的依赖。拥有自己的硬件使谷歌能够更快地进行实验。

其次,新的TPU也为谷歌的云计算业务带来额外收入,现在,谷歌云平台(GCP)和谷歌的业务应用程序GSuite每季度可超过10亿美元收入。

谷歌目前允许公司租用单个TPU板卡,今年晚些时候,将允许企业租用多个板卡,并连接成名为TPU pod的超级计算机网络。(斯眉)

阅读更多
收起
3月前
1 3 条评论 操作
1个回答
品大萝卜 | 品葱目标:不放过任何一个问...
7人赞同


先说一句题外话。。。这个世界是一个罗生门,每个人都在自说自话。学术圈的一小部分人也不能完全免俗,而科技圈 99% 的人都不免俗。每一套话语背后都有一个隐含的框框,只有掌握全部事实,才有可能跳出框框,获得真相。

-----------------------我是分割线----------------------

我是属于体系结构圈子里第一波(大约是2012~2013年之间)开始做神经网络加速器的。同一时间我知道的工作还有中科院陈云霁老师和清华的汪玉老师。

总的来说,TPU这次论文有很多有趣的信息,但性能并没有什么好惊艳的。

我拎出一些值得注意的地方说一说。

-----------------------我是分割线----------------------

1. 关于TPU和GPU的对比,以及一些争吵。吵来吵去,其实就是两点,性能和功能。

性能是说 Performance 和 Performance/Watt,功能是说 Training 和 Inference 。

TPU宣称自己 Performance / Watt 远高于GPU(大约25倍)。N家掌门人老黄立刻说你们用K80 比是不厚道的;你们的性能仅仅是 P40 的两倍而已,Performance / Watt 仅仅是 6倍。而且还不支持浮点和训练。媒体圈加科技圈就开始热闹非凡,资本圈早就暗流涌动抢着投钱做ASIC。

总的来说,TPU和GPU不是谁取代谁的问题(敲黑板!)而是各自都有生存的空间,谁也不能取代谁。比一比性能只是互相学习和参照罢了。

---- 吐槽人家只做 Inference 是不对的!大部分的训练算法都在后台运行,快速的部署和训练迭代是最关心的问题。N家的生态环境和性能都已经做得很好了,我怀疑Google 有没有动力非要自己做一个训练的加速器。而用于在线服务/终端的 inference 的重要性我就不多说了,90%的设备都用来做 inference 以提供实际服务了。P40的GPU是不可能插在在线服务端的,数据中心的功耗限制大多数都在 100 w 以下,有的甚至只有50w,比如 MS 和 FB。嵌入式端就更是这样了,手机和无人机,在应用需求真正起来之后,我们是可以展望另一种形式的TPU被集成的。当然,这一天也不会来的太快。毕竟TPU太专用了,目前只有Google这样体量的公司,会有应用这种专用加速的动力。

---- 只比较性能(Tera Operations / Sec)是不全面的!只比较 Performance / Watt 也是不对的!刚才说了。不能单纯做除法,50 Watt,5Watt,3Watt,都是云端/嵌入式终端的硬性限制。满足这个限制基础上,再来谈 Performance / Watt 才有意义。另一方面,TPU一片才几百刀,老黄家GPU动辄几千上万刀。难怪大体量的数据中心会选择自己做芯片。太划算了 !数据中心的功耗密度已经是一个非常严峻的问题了。微软采用了FPGA的路子是另一条有趣的技术路线。成功与困难并存。大家可以移步李博杰大神的文章(如何评价微软在数据中心使用FPGA代替传统CPU的做法? - 知乎)讲的很透彻。

所以,我很好奇。老黄为何用 P40 做比较。P4 不是更好么?22 TOPs(INT8)的性能,50 Watt。跟 Google TPU 的 Performance / Watt 的比较,只有 4x 的差距。


2. 关于TPU的一些有趣的观察。

----- a) 正确分析处理器带宽很重要。号称 90 TOPS 的性能。在 MLP 上只有 10 TOPs 的实际性能。而Google又号称 MLP 占据了 60%的应用。这才是真正的槽点。敢情只有 1/9 的性能被用上了。其实原因也简单,主要是被带宽限制住了,34GB/s 还有很大改进空间。改到 340GB/s就能用上剩下 8/9了。

因为带宽问题,文中大量出现 Roofline Model,但却被大家忽略了。我们在北京大学的工作,是世界上第一个提出使用 Roofline Model 对神经网络加速器进行设计优化的( 最初的Roofline Model 由David Patterson老爷子提出,他也是TPU作者之一)。可惜这个概念目前还没有被大家很好地使用,目前只有TPU和我们的工作使用了Roofline Model。

------ b) 8 Bit 的做法在当时很激进。算上论文发表的时间,算上ASIC设计与迭代周期等等,Google在秘密开始TPU项目可能是在2015年以前(个人猜测)。那个时间段做 8 Bit 真的是非常激进了。学术圈(计算机视觉)里的低定点化研究大约在2016 年才出现。(更新:以下猜测并不准确,请大家移步贾扬清大神的评论)猜测TPU也有可能以浮点设计开始,到2016年才开始改成定点的。如果是这样,那么从学术圈研究到工业界的应用,只用了一年不到的时间。而且还是代价巨大的ASIC,Google这么做确实吓人一跳。当然,这一跳不是在看到论文时吓的。圈里早就传说TPU是 8-Bit了。

更新一下贾扬清大神的评论:

Google是在2013年左右开始研发TPU,而且当时就确定了8bit计算的方法,当时敢上8bit的缘故是speech证明了8bit可行(可以参见Vanhoucke的论文),所以的确还是很先进的。 (都是公开信息,没有内幕)

----- c) TPU文中许多应用的存储量都很小。5M-100MB的参数,片上再挤一挤其实也能放下了。一方面,模型的压缩和稀疏化能够派上用场了。另一方面,可以使用有两块/多块芯片,各自处理神经网络的一部分。这样即使有很大的权重,也可以通过分配到多个芯片的缓存上,来解决这个问题。这样就没有带宽的后顾之忧了。这也将是很有意思的研究方向。当然这件事工程上并不容易,我们在多FPGA上进行了一些探索,但是ASIC上暂时还没有看到公开发表的研究。

----- d) TPU不是终点,而只是开始。神经网络算法一直在演变和发展,这套方法的理论还不成熟,应用场景也会在未来几年发生巨大的变化。大家可以想象一下安防、无人机、智慧大楼、无人驾驶,等等等等。每一个子领域都有 系统/功耗/性能 一系列问题和各种权衡。一方面,是算法多变的情况下,如何发掘计算的内在并行性,又给上层程序员提供一个高效的编程接口,是一个很重要很实际的问题。另一方面,也有可能会做得极其定制化。牺牲大量编程性以求极低的功耗和性能,比如手机上专门做一个只识别人脸的芯片。

未来很精彩,让我们拭目以待。

----------------

转自如何看待谷歌公开 tensorflow 专用处理器 TPU? - 张宸的回答 - 知乎 https://www.zhihu.com/question/46692744/answer/158897410


---------------


这块芯片的硬件架构本身只能说是平平无奇,构建在其之上的应用才是真有技术含量的。这里只谈谈芯片,功能其实非常简单,就是矩阵乘法以及矩阵乘法之后的一些非线性计算,论文中看到所谓非线性功能指的应该是比较器功能。

号称比K80等有几十倍的能效提升,很重要的一点是因为它使用的是8bit的定点乘加运算。所以其加法的资源要比16bit浮点加法器要少非常多。乘法器资源也少一些。显然精度要差很多,但论文中号称8bit足够精确,那是从软件和系统层面的考虑,程序都是你们写的,你们说够精确就够精确好了。其他人表示摊手。

另外TPU的核心运算单元的矩阵乘法阵列是一个256x256的MAC阵列,看起来它最拿手的运算是计算AxB=C,其中A是Nx256的矩阵,N是一个远大于256的数,B是256x256的系数矩阵,C是结果,全部运算耗时n个cycle。系数是预加载的,数据是每拍输入一行数据,C的每一行的结果需要耗费256个cycle,当然了行与行是流水的计算的,所以每拍都可以出一行的结果。这么看来效率达到了最大值了。每个MAC都充分利用了,所以其能效比非常高。

但是缺点也很明显:太专用了。只能完成乘+加+乘+加......这样规则的运算,无法应付诸如复数乘法,求倒,求平方根倒数,等常见算法。这和GPU,CPU的通用设计理念的不符的,所以你拿一个专用器件和通用器件比能效,这本身只能是博眼球的做法,这如果是国内本土厂商的做法,是会被扒光皮然后被喷出翔的。

另外这个矩阵乘法阵列本身没有任何可编程的特性,如果遇到小规模矩阵的乘法,其每行的输出看起来仍然需要256cycle的延时(待证实),这是一个不小的可改进点。

阅读更多
收起
3月前 ▫ 3月前修改过
7 10 条评论 操作