来源:StarryHeavensAbove
作者:唐杉
Google在I/O大会上发布了TPU3,虽然目前详细信息不多,但下面几点还是值得讨论:8倍性能;快速迭代;云服务和Benchmark。TPU3到底哪里厉害?
8倍性能
今天的新闻中我们都可以看到如下描述“Google CEO Sundar Pichai said the new TPU is eight times more powerful than last year per pod, with up to 100 petaflops in performance.”也就是说一个TPU3 pod的总处理能力100 PFLOPS是TPU2 pod的8倍。
从下图我们可以看一下TPU3 pod和TPU2 pod的对比。
TPU2的一个pod包括4个rack,两个CPU rack(左右两边),两个TPU rack(中间两个)。每个rack有32个computing unit (板卡),每个TPU板卡有4颗TPU芯片。因此一个pod总共有64 x 4颗TPU2芯片。每颗TPU2芯片的处理能力是45TFLOPS,因此一个pod总的处理能力是45 x 4 x 64 = 11.5 PFLOPS.
对比来看,TPU3的板卡仍然包括4颗芯片。但目测TPU3 pod的rack数量和板卡的密度(这个看的不是很清楚)和TPU2相比都增加了一倍。因此,一个pod中的TPU3芯片的数量应该是之前4倍。如果pod的总处理能力是TPU2的8倍,那么TPU3单芯片的处理能力则为TPU2的2倍。
根据Google的说法,这次他们第一次在Data center采用水冷的散热方式,这可能和芯片功耗以及板卡密度增加有关系。
总得来说,如上图所描述(来自Google I/O大会的talk:Effective Machine Learning with Google TPU,可以在YouTube上搜索Google io 18 stage 8观看),TPU3实现的超过100 PFLOPS的处理能力是来自“新的芯片架构和大规模系统”。
快速迭代
从去年I/O大会发布TPU2到今天不过一年时间,Google的芯片迭代速度还是非常惊人的。“为什么Google能够实现这样的快速迭代?”这也是一个非常值得探讨的话题。
我先简单谈几点个人看法:
第一,TPU是一个Domain-specific Architecture(参考当我们设计一个专用处理器的时候我们在干什么?(上)),定位准确,架构简单,容易扩展。相比之下,传统的通用处理器必须考虑灵活性和兼容性,有太重的包袱。当然,TPU这种特点也决定它只能用于有限的应用场景,可能只有Google的体量以及云服务能够所提供的应用需求才能充分利用TPU这种专用芯片,这一点是得天独厚的。这也是目前几乎所有科技巨头都开始自研芯片的一个基本考量。而传统的芯片厂商在这一点上就有些尴尬了。
第二,Google的软件和系统能力超强,TPU以Cloud service出现,提高给客户的是整体服务。芯片硬件可做的tradeoff空间比较大,芯片本身的弱点可以在系统层面弥补。从目前得到的信息分析的,TPU3的处理能力是TPU2的8倍,其中芯片换代的贡献只有2倍,大部分改进在系统层面。另一方面,目前芯片开发离不开相关软件工具,Google的软件能力和生态也是其能够实现芯片快速迭代的一个重要因素。
第三,钱很重要。Google不差钱,在芯片实现上可以通过花钱换取时间。
总得来说,Google TPU的意义可能远远超过芯片本身。它背后的芯片设计逻辑,实现方法,应用模式和生态环境,相较传统芯片开发有很大区别,也许会成为趋势。
云服务和Benchmark
Google在发布TPU3的时候同时提到了新的云服务,在之前的Cloud TPU基础上,今年晚些时候还会发布Cloud TPU pod(不知道谁能用的起?),可以看出TPU对于Goolge的云端战略的重要意义。
有意思的是,在Google的talk中强调了cost的问题,每个例子都给出了相应的training cost,画风是这样的。
这里颇有广告的感觉,不禁让人想起黄教主的”The more GPUs you buy, The more money you save“。结合最近Microsoft对Brainwave项目的宣传,感觉云端
机器学习的价格战马上就要开始了。
另外,Google也强调了Benchmark的重要性,还专门展示了他们最近力推的MLPerf。
最近不同平台之间的对比很多,有比性能的,也有拼成本的。相信随着越来越多的厂商加入,刷榜应该会非常热闹。