刚刚,谷歌宣布 TPU 全面开放,AI 芯片及云市场再迎变局

编者按:本文来自于微信公众号 “量子位”(微信公众号:QbitAI), 动点科技经授权发布。

谷歌又出手了。又是一个大招。(上一个)

这次谷歌传奇Jeff Dean亲自在推特上连发10条,满怀激动地对外宣布着这个消息:谷歌TPU首次对外全面开放。

AI芯片和公有云市场将迎来新的变局。

之前英伟达的黄仁勋在谈到谷歌TPU时,就曾强硬的表示,对TPU的威胁不以为然。当时,老黄还列了列参数:新的TPU可以实现45 teraflop的运算能力,而英伟达最新的Volta GPU则能达到120 teraflop。

但如果你关注人工智能,肯定知道TPU的威力。谷歌搜索、翻译、相册等应用,都有TPU在提供AI加速。更值得一提的是,AlphaGo也是借力TPU,称霸围棋界。

而且谷歌这款芯片还专门对AI进行了优化。

谷歌在官方博客中表示,在新发布的Cloud TPU帮助下,不到一天的时间,你就可以在ImageNet上把ResNet-50模型训练到75%的精度,成本不足200美元。

从现在起,每小时6.5美元,你也能用上谷歌TPU了。

理论上。

谷歌博客全文

Google的机器学习利器Cloud TPU,从今天开始面向更多用户开放了。

Cloud TPU今天发布了beta版,这一版本通过谷歌云平台(Google Cloud Platform, GCP)提供,想帮更多机器学习专家更快地运行模型。

Cloud TPU是谷歌设计的硬件加速器,专为加速、扩展特定的TensorFlow机器学习工作负载而优化。

每个Cloud TPU包含4个定制化的ASIC,单块板卡的计算能力达到每秒180万亿次浮点运算(180 teraflops),有64GB的高带宽内存。

这些板卡可以单独使用,也可以通过超高速专用网络连接起来,形成“TPU pod”。今年晚些时候,Google会开始通过GCP供应这种更大的超级计算机。

Google设计Cloud TPU的目标,是针对性地为TensorFlow工作负载提供一分钱一分货的差异化性能,让研究人员能更快地进行迭代。

例如:

你能通过自定义、可控制的Google Compute Engine虚拟机,对联网的Cloud TPU进行交互式的、独享的访问,而不用等待自己的工作在共享计算集群上排队。

你能连夜在一组Cloud TPU上训练出同一个模型的几个变体,第二天将训练出来的最精确的模型部署到生产中,而不用等几天、甚至几周来训练关键业务机器学习模型。

不到一天的时间,你就可以在ImageNet上把ResNet-50模型训练到75%的精度,成本不到200美元。
Google还专门为此准备了一份教程:https://cloud.google.com/tpu/docs/tutorials/resnet

更简单的机器学习模型训练

过去,为定制ASIC和超级计算机编程需要深入的专业知识技能。相比之下,要对Cloud TPU编程,用高级TensorFlow API就可以了,Google还开源了一组高性能的云TPU模型实现,上手更简单:

图像分类模型:
ResNet-50 https://cloud.google.com/tpu/docs/tutorials/resnet
其他图像分类模型https://github.com/tensorflow/tpu/tree/master/models/official

用于机器翻译和语言建模的Transformer:
https://cloud.google.com/tpu/docs/tutorials/transformer

用于对象检测的RetinaNet:
https://github.com/tensorflow/tpu/blob/master/models/official/retinanet/README.md

Google在博客中说,经过对性能和收敛性的不断测试,这些模型都达到了标准数据集的预期精度。

以后,Google会逐渐推出更多模型实现。不过,想要探险的机器学习专家也可以用他们提供的文档和工具,自行在Cloud TPU上优化其他TensorFlow模型。

现在开始用Cloud TPU,等到今年晚些时候Google推出TPU pod的时候,训练的时间-精度比能得到惊人的提升。

在NIPS 2017上,Google曾宣布ResNet-50和Transformer两个模型在完整TPU pod上的训练时间,都从大半天下降到了30分钟以内,不需要改动任何代码。

可扩展的机器学习平台

云TPU还简化了机器学习计算资源的规划和管理:

你可以为团队提供最先进的机器学习加速,并根据需求的变化动态调整生产力。

你可以直接用经过Google多年优化的高度集成机器学习基础设施,无需投入大量金钱、时间、专业人才来设计、安装、维护现场机器学习计算集群,不用考虑供电、冷却、联网、存储要求等问题。

Google Cloud TPU经过预先配置,不需要安装驱动程序,因此,也不用想方设法让一大群工作站和服务器的驱动程序保持最新。

和其他Google云服务一样,有复杂的安全机制保护着你的数据。

Google说要为客户的每个机器学习负载提供最适合的云服务,除了TPU之外,他们还提供英特尔Skylake等高性能CPU,和包括英伟达Tesla V100在内的高端GPU。

开始使用吧

Cloud TPU今天开始提供,数量有限,按秒计费。每个Cloud TPU每小时6.5美元。

要使用beta版的Cloud TPU,需要填个表,描述一下你要用TPU干什么,向Google申请配额:https://services.google.com/fb/forms/cloud-tpu-beta-request/

Google说,会尽快让你用上Cloud TPU。

2月27日,Google还要开一场在线讲座,再细致地谈一谈Cloud TPU。

在Google的博客文章中,提到了两家客户使用Cloud TPU的感受。

一家是投资公司Two Sigma。他们的深度学习研究现在主要在云上进行,该公司CTO Alfred Spector说:“将TensorFlow工作负载转移到TPU上,大大降低了编程新模型的复杂性,缩短了训练时间。”

另一家是共享出行公司Lyft。深度学习正在成为这家公司无人车研究的重要组成部分。

更多关于Cloud TPU的信息,可以去官方网站看一看:https://cloud.google.com/tpu/

何为TPU?

TPU是Tensor Processing Unit的缩写简称,是一种ASIC(专用集成电路),也是Google自己开发的一款AI专用芯片,主要用于提高人工智能计算任务的执行效率。

Google将其用在神经网络的推理环节,在此之前,业界通常在使用GPU加速的服务器上进行。在TPU推出后,谷歌表示,这比直接使用GPU或基本的x86芯片速度快很多。

TPU通过两个PCI-E 3.0 x8边缘连接器连接协处理器,总共有16 GB/s的双向带宽。TPU消耗功率达40瓦,远高于PCI-E电源规格,可为8位整数运算提供每秒92万亿次的运算,或为16位整数运算提供每秒23万亿次的运算。

在去年4月一篇有75位联合作者的论文《In-Datacenter Performance Analysis of a Tensor Processing UnitTM》中,Google团队对TPU进行了分析:与同期的CPU和GPU相比,可以提供15-30倍的性能提升,以及30-80倍的效率(性能/瓦特)提升。

第一代TPU被谷歌广泛应用在了AlphaGo、搜索、翻译、相册等背后的机器学习模型中,这为第二代TPU的迭代奠定了基础。

值得一提的是,击败李世石的AlphaGo版本中,通过Google云,耗用50个TPU进行计算;而到了击败柯洁的AlphaGo版本中,单机运行,物理服务器上部署了4个TPU;最后在最新的AlphaZero版本中,则使用了5000个一代TPU和64个二代TPU,从0开始学习24小时后,就击败了国际象棋、将棋、围棋等三个领域的世界冠军。

第二代TPU

第二代TPU在去年5月18日的Google I/O 大会上推出,也称为云TPU。云TPU对推理和训练都进行了优化。

Google大脑研究团队主管Jeff Dean表示:“我们的TPU拥有世界一流的ASIC设计团队,第二代TPU芯片采用了与第一代完全不同的设计架构,第一代芯片由于只进行推理运算所以体积较小,而在第二代芯片中我们加入了能满足训练需求的硬件结构,同时还考虑了如何将这些计算单元组合成大型系统的架构方法。”

第二代TPU通过四个TPU芯片的组合板,可以实现180Tera次每秒用于深度学习训练和推理的浮点运算,如果再将64个这样的TPU系统板通过网络连接起来,浮点性能可以达到惊人的11.5PFLOPS,远远超过世界上前五百超级计算机的算力。风头大大盖过了同一时期Nvidia推出的Volta架构GPU。

TPU 2和第一代不同的是,第一代选用了量化整数运算,而第二代用的是浮点运算。这样一来你就不用把训练好的模型转换使用量化整数做推理了。你直接用训练时用的浮点做推理就好,这样部署起来也容易很多。

实际上,第二代TPU推出之时,也能看出Google在AI芯片方面的发展思路:并非为了与GPU直接竞争,而是利用TPU在公有云行业差异化发展。

Google CEO皮查伊在I/O大会的主题演讲中强调:“我们希望谷歌云成为机器学习领域最优秀的云。这为重大进步打下了基础。”

为了使计算性能更强大,Google开发了订制的超高速网络,将64颗TPU连接至同一台机器学习超级计算机。这台超级计算机被称作“TPU舱”,带来了每秒11.5千万亿次浮点运算的能力,可用于训练单一的大型机器学习模型,或多个较小的模型。

为了证明TPU舱的性能,Google表示,如果想要训练最新的大规模翻译模型,那么使用32颗全球最强大的商用GPU需要一整天时间。作为对比,TPU舱只需1/8的性能,就能在6小时内完成对该模型的训练。

单个的云TPU和完整的TPU舱均支持谷歌开源的TensorFlow机器学习系统。

去年的Google I/O大会上,Google还发布了“TensorFlow研究云”。这是由1000颗云TPU组成的簇,在满足某些条件的情况下Google将免费提供给研究者使用。如果希望使用,那么研究者必须同意公开发表研究成果,或许还需要开源研究中的相关代码。

而对参与非公开研究的人士,Google计划启动云TPU Alpha项目,而现在,更加宏伟的计划得以正式公开。

TPU往事

早在2006年,Google就在考虑为神经网络构建一个专用集成电路(ASIC)。2013年这个需求变得更加紧迫,当时Google意识到快速增长的计算需求,可能意味着数据中心的数量需要翻番才能满足。

通常而言,ASIC的开发需要耗时数年。但具体到TPU而言,从设计到验证、构建和部署到数据中心里,只需要15个月。

具体TPU何时正式研发成功,并不得而知,但Google方面透露,从2015年开始就一直在内部使用TPU,并在2016年5月的Google I/O开发者大会上,对外公布了TPU的存在。

另外还有个趣事。

最初参与TPU研究的10个人中,有8个工程师遭遇风投挖角,创业成立了一家名为Groq的AI芯片公司,这家公司的创始人兼CEO是Doug Wightman,CTO是Jonathan Ross,COO则是原赛灵思(Xilinx)的营销副总裁Krishna Rangasayee。

挖角的风投则是Social Capital创始人、首席执行官Chamath Palihapitiya,他给了Groq团队上千万美元的启动资金。

Groq的AI芯片对标英伟达的GPU,声称是专门为人工智能重新定制一款芯片,他们还打算在2018年发布第一代AI芯片产品。

留给Groq兑现承诺的时间不多了。