谷歌内部深度揭秘TPU3.0技术

人工智能架构师

    
    作为世界领先的技术领先公司之一,谷歌推出了高速定制机器学习芯片Tensor Processing Units(TPU),从而提高了标准。这些芯片最初是在2016年5月由该公司进行的 I/O 开发者大会上推出的。
    但谷歌对TPU的了解并不多,原因很明显。然而,该公司最近发布了一篇文章,其中包含对TPU的深入分析。您可以阅读该论文以获得详细摘要。在这篇博客中,我们将向您展示Google揭示的芯片的主要亮点。
    什么是TPU?
    Tensor Processing Units或TPU是由Google设计的定制机器学习芯片,用于成功执行其常规机器学习工作负载。谷歌现在正致力于实施这些TPU,而不是使用CPU,GPU和两者的组合,据称这些TPU比标准CPU和GPU快15-30倍。此外,在功耗方面,这些芯片的TeraOps /瓦特高出30到80倍。
    发展历史
    谷歌透露,该公司并不知道公司的额外硬件资源可以像TPU一样有用和强大。早在2006年,该公司就开始寻找新的方法来有效利用其过多的硬件资源,包括GPU,FPGA芯片和ASIC。在未来几年内,Google Datacenters进行了大量实验。但是,主要的转变发生在2013年,当时DNN越来越受欢迎,并且在未来几年它应该会更大。
    谷歌推断,如果发生这种情况,公司可用的硬件资源将不足以满足增强的计算要求。就在那时,公司开始着手一个高优先级项目,设计一系列定制ASIC芯片,以更低的功耗和更快的速度处理更多的任务。这些定制ASIC芯片被谷歌称为“Tensor Processing Units”。
    
    TPU芯片旨在用于处理其内部操作,以便通过先进的机器学习算法为用户改进其云平台。虽然谷歌目前不太可能在其自己的云平台之外推出TPU,但它确实展示了通向世界的道路并为新发明铺平了道路。
    TPU 3.0与Edge TPU
    2016年5月的谷歌I/O大会,谷歌首次公布了自主设计的TPU,2017年谷歌I/O大会,谷歌宣布正式推出第二代TPU处理器,在今年的Google I/0 2018大会上,谷歌发布了新一代TPU处理器——TPU 3.0。TPU 3.0的性能相比目前的TPU 2.0有8倍提升。
    之后谷歌又发布了 Edge TPU 芯片抢攻边缘计算市场。虽然都是 TPU,但边缘计算用的版本与训练机器学习的 Cloud TPU 不同,是专门用来处理AI预测部分的微型芯片。Edge TPU可以自己运行计算,而不需要与多台强大计算机相连,因此应用程序可以更快、更可靠地工作。它们可以在传感器或网关设备中与标准芯片或微控制器共同处理AI工作。
    Google在I/O大会上发布了TPU3,虽然目前详细信息不多,但下面几点还是值得讨论:8倍性能;快速迭代;云服务和Benchmark。TPU3到底哪里厉害?
    一个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的意义可能远远超过芯片本身。它背后的芯片设计逻辑,实现方法,应用模式和生态环境,相较传统芯片开发有很大区别,也许会成为趋势。
    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。
    
    最近不同平台之间的对比很多,有比性能的,也有拼成本的。相信随着越来越多的厂商加入,刷榜应该会非常热闹。