其他

李沐:如何看待谷歌既可以做 Inference,又可以做 Training 的新一代 TPU?

2017-05-21 新智元

1 新智元推荐  

来源: 知乎 李沐授权转载



谷歌此前召开的I/O大会上公布了其传闻已久的定制专用集成电路“Tensor Processing Unit”(TPU),TPU 专为谷歌深度学习平台 TensorFlow 打造。谷歌表示已在公司内部使用 TPU 超过一年。这一消息进一步印证了面向机器学习专用的处理器是芯片行业的发展趋势,而且企业尤其是使用人工智能技术的大企业对“专用芯片”的需求可能比芯片制造厂商预计得还要深。


谷歌基础设施副总裁 Urs Holzle 在 I/O 发布会上告诉记者,过去一年中,谷歌在公司数据中心部署了“上万个”TPU,但没有透露确切的数字。


以下是MxNet的创造者、后加入AWS的李沐对谷歌TPU的一些看法

【李沐】老实说看了新闻后觉得很震撼。虽然目前细节不多,但即使在宣称的数字上打个比较大的折扣,如果成本控制不错的话,大量在云上部署能够极大降低深度学习成本。


举个例子,假设实测比Nvidia Volta慢2倍,就是说一块Volta(120 TFLOPS)抵5块TPU2(45*5 TFLOPS)。假设TPU2 per die做到200刀一片,考虑到volta每块一万刀(估计)的价格,TPU2仍然有十倍受益。这个数字跟Nvidia服务器卡80+%利润率比较一致。


因为不是很懂体系架构,以下评论可能很不准确。


对TPU2觉得震撼主要是因为第一代中规中矩,本来以为第二代是进一步降低成本提升性能,但没想到一步跨到的训练,直接跟NVidia GPU拼了。


TPU一代是一个比较简单的协处理。核心是一个矩阵乘法器,准确来讲叫Systolic Matrix Multiplication (http://web.cecs.pdx.edu/~mperkows/temp/May22/0020.Matrix-multiplication-systolic.pdf),外加一个比较大的on-chip SRAM来存中间数据。比较激进的采用了int8(至少是13年的时候胆子比较大)获得了大的受益,因为int8的乘法不论是芯片面积还是功耗都10倍好于FP32。


但反过来说,简单的架构导致不是所有任务都适用,而且int8导致了在TPU上部署的困难性,所以很难成为比较通用的云上芯片。


更多细节可以参见TPU在今年ISCA上论文。虽然学术界对此的创新性评价很一般,论文里面也一再强调为了赶时间只弄了个简单的版本,而且结果并不出众原因之一是没有用“awkward artifacts assembled solely to win benchmarks"。但不妨碍Google PR机器大力鼓吹。


论文才放出来,ISCA下个月才开,结果TPU 2出来了。可能是TPU团队大量离职原因,或者想蹭一下Nvidia Volta的PR。(AMD弄出了一个Vega,4倍弱于Votla和TPU2,结果夹在两个之间发布,可想而知。。。)


TPU2目前来看至少解决了int8这一大问题。猜测它很有可能基于FP16,例如FP16和FP16做乘法,然后FP32做累加,那么目前大部分神经网络都可以不需修改的在上面部署。因为新闻稿强调了训练,他们一大改进就是针对TPU1基于DDR3的off-chip DRAM。大家基本猜测是基于HBM,可以提供5倍以上的内存带宽提升来帮助训练。


使用HBM还是会带来很多工程问题,毕竟这个技术并没有四处广泛应用。包括良品率下降,功耗上升,这个很大程度上解释了TPU2上巨大的散热器(FP16也会有功耗增加)。虽然很多人质疑TPU2功耗可能会比Volta高,但在云服务器里,只要不是特别离谱,这点额外功耗带来的电费增加是总成本的零头。


TPU2卡之间的网络连接不知道具体多快,但其格状的连接使得可能分布式最好也是要用data flow来做,没有交换机让网络成本下降,但远端之间延迟会比较大,需要上层框架好的封装。


总体而言,TPU2的优势还是在成本上,它比Volta的10倍价格优势会让Google云的成本大量降低。除非Nvidia服务器卡大降价,或者允许大量购买消费卡(例如Titan X),那么G至少领先竞争对手一到两年。当然,这个只有当神经网络计算真的占到了云计算了中相当大的比例才有意义。


实际上是,虽然增长喜人,但还远远不够。同志们还需努力。




您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存