刚刚,谷歌宣布 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 兑现承诺的时间不多了。