详解Google第二代TPU 既能推理又能训练 性能霸道

转自:http://www.cnbeta.com/articles/tech/613639.htm

5月18日凌晨,Google CEO Sundar Pichai在I/O大会上正式公布了第二代TPU,又称Cloud TPU或TPU 2.0,这一基于云计算的硬件和软件系统,将继续支撑Google最前沿的人工智能技术。第一代TPU于去年发布,它被作为一种特定目的芯片而专为机器学习设计,并用在了AlphaGo的人工智能系统上,是其预测和决策等技术的基础。

随后,Google还将这一芯片用在了其服务的方方面面,比如每一次搜索都有用到TPU的计算能力,最近还用在了Google翻译、相册等软件背后的机器学习模型中。

今天凌晨,Google宣布第二代的TPU系统已经全面投入使用,并且已经部署在了Google Compute Engine平台上。它可用于图像和语音识别,机器翻译和机器人等领域。

新的TPU包括了四个芯片,每秒可处理180万亿次浮点运算。Google还找到一种方法,使用新的计算机网络将64个TPU组合到一起,升级为所谓的TPU Pods,可提供大约11500万亿次浮点运算能力。

强大的运算能力为Google提供了优于竞争对手的速度,和做实验的自由度。Google表示,公司新的大型翻译模型如果在32块性能最好的GPU上训练,需要一整天的时间,而八分之一个TPU Pod就能在6个小时内完成同样的任务。之所以开发新芯片,部分也是因为Google的机器翻译模型太大,无法如想要的那么快进行训练。

除了速度,第二代TPU最大的特色,是相比初代TPU它既可以用于训练神经网络,又可以用于推理。初代的TPU只能做推理,要依靠Google云来实时收集数据并产生结果,而训练过程还需要额外的资源。

机器学习的能力已经逐渐在消费级产品中体现出来,比如Google翻译几乎可以实时将英语句子变成中文,AlphaGo能以超人的熟练度玩围棋。所有这一切都要靠训练神经网络来完成,而这又需要计算能力。所以硬件越强大,得到的结果就越快。如果将每个实验的时间从几周缩短到几天或几个小时,就可以提高每个机器学习者快速迭代,并进行更多实验的能力。由于新一代TPU可以同时进行推理和训练,研究人员能比以前更快地部署AI实验。

过去十多年来,Google已经开发出很多新的数据中心硬件,其中包括服务器和网络设备,主要目的是扩张自己的在线帝国。而过去几年中,在AI方面Google也选择开发自己的硬件,为其软件做优化。神经网络是复杂的数学系统,通过分析大量数据来学习,这种系统从根本上改变了技术的构建和运行方式,影响范围也包括硬件。

在某种程度上,初代的TPU被设计来是为了更好地支持TensoFlow机器学习框架。而归功于Google在软硬件上的进步与集成,TensorFlow已经成为构建AI软件的领先平台之一。这种优化,再加上Google大脑及其DeepMind子公司的内部人才,正是Google在AI领域保持领先的部分原因。

芯片厂商NVidia的GPU几乎主宰了机器学习的市场,而现在,Google想通过专门设计用于训练神经网络的芯片,来改变市场提格局。

亚马逊和微软通过自己的云服务提供GPU处理,但他们不提供定制的AI芯片。

 

不过Google也不能因此而高枕无忧,因为短期内竞争就会加剧。目前已经有几家公司,包括芯片巨头英特尔和一大批初创公司,正在开发专门的AI芯片,它们都可能替代Google TPU。

首先开发出新的芯片并不能保证Google成功,要使用TPU 2.0,开发者要学习一种构建和运行神经网络的新方法。它不仅仅是一个新的芯片,TPU 2.0也是专门为TensorFlow设计。虽然Tensorflow是开源软件,但也有许多研究人员使用Torch和Caffe等类似的软件。新硬件需要新的软件优化,这需要不少时间。

在Google推出TPU 2.0的几周之前,Facebook的AI研究主管Yann LeCun质疑称,市场可能不需要新的AI专用芯片,因为研究者已经对使用GPU所需的工具非常熟悉了。新的硬件意味着新的生态系统。

另外,Google云服务的成功不仅取决于芯片的速度,以及使用的容易程度,还要考虑成本。所以,如果Google以比现有GPU服务更低的成本提供TPU服务,会得到更广泛的用户基础。

Google自己当然会使用新TPU系统,但也会将它的能力开放给其它公司使用。Google表示,不会将芯片直接出售,而是会通过其新的云服务(年底前公布)提供,任何开发者都可以使用新处理器带来的计算能力。

Google也重申了其对开源模式的承诺,表示会向同意发布研究结果的研究人员提供TPU资源,甚至可能开源代码。他甚至呼吁开发者加入TensorFlow Research Cloud计划,它会免费提供一组1000台TPU。

新TPU的速度优势肯定会吸引到不少研究人员,毕竟AI研究要在大量硬件上广泛试错。就此而言,Google愿意免费提供计算资源对全世界的AI研究者来说都是有好处的,当然,这对Google来说也是有好处的。

详解Google第二代TPU 既能推理又能训练 性能霸道的更多相关文章

  1. 详解Google Chrome浏览器(操作篇)(一)

    开篇概述 在上篇博客中详解Google Chrome浏览器(理论篇)一文中,主要讲解了Chrome 搜索引擎使用.Chrome安装和基本操作.Chrome 基本架构.多线程等原理性问题,这篇将重点讲解 ...

  2. 详解Google Chrome浏览器(操作篇)(下)

    开篇概述 由于最近忙于公司产品的架构与研发,已经三个多月没有写博客了,收到有些朋友的来信,问为什么不及时更新博客内容呢,他们说他们正期待着某些内容.对此,非常抱歉,那么我在此也给各位朋友一些承诺,从即 ...

  3. 详解Google Chrome浏览器(操作篇)(上)

    开篇概述 在上篇博客中详解Google Chrome浏览器(理论篇)一文中,主要讲解了Chrome 搜索引擎使用.Chrome安装和基本操作.Chrome 基本架构.多线程等原理性问题,这篇将重点讲解 ...

  4. 详解google Chrome浏览器(理论篇)

    注解:各位读者,经博客园工作人员反馈,hosts涉及违规问题,我暂时屏蔽了最新hosts,若已经获取最新hosts的朋友们,注意保密,不要外传.给大家带来麻烦,对此非常抱歉!!! 开篇概述 1.详解g ...

  5. 分布式专题——详解Google levelDB底层原理

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是分布式专题的第10篇文章,我们继续来聊聊LSMT这个数据结构. LSMT是一个在分布式系统当中应用非常广泛,并且原理直观简单的数据结构 ...

  6. Android Design Support Library使用详解

    Android Design Support Library使用详解 Google在2015的IO大会上,给我们带来了更加详细的Material Design设计规范,同时,也给我们带来了全新的And ...

  7. 详解googe Chrome浏览器(理论篇)

    开篇概述 1详解google Chrome浏览器,这个标题似乎抽象了一些,我想应该把它拆分成如下几个问题,也许会更加理解一些. 问题1:目前开发中,主选浏览器有Google Chrome,IE,Fir ...

  8. C++的性能C#的产能?! - .Net Native 系列《二》:.NET Native开发流程详解

    之前一文<c++的性能, c#的产能?!鱼和熊掌可以兼得,.NET NATIVE初窥> 获得很多朋友支持和鼓励,也更让我坚定做这项技术的推广者,希望能让更多的朋友了解这项技术,于是先从官方 ...

  9. [面试专题]Web缓存详解

    Web缓存详解 标签(空格分隔): 缓存 缓存之于性能优化 请求更快:通过将内容缓存在本地浏览器或距离最近的缓存服务器(如CDN),在不影响网站交互的前提下可以大大加快网站加载速度. 降低服务器压力: ...

随机推荐

  1. P1796 汤姆斯的天堂梦_NOI导刊2010提高(05)

    题目描述 汤姆斯生活在一个等级为0的星球上.那里的环境极其恶劣,每天12小时的工作和成堆的垃圾让人忍无可忍.他向往着等级为N的星球上天堂般的生活. 有一些航班将人从低等级的星球送上高一级的星球,有时需 ...

  2. 设置浏览器让js报错

    ie-工具---internet选项--高级--“禁用脚本提示”前面那个框的勾去掉---“显示每个脚本错误的通知”给该项打勾 注意:此时是静态页面很容易提示出错误的行号,但是当js是动态页面的时候,浏 ...

  3. 人脸检测的harr检测函数

    眼球追踪需要对人脸进行识别,然后再对人眼进行识别,判断人眼张合度,进而判断疲劳... 解析:人脸检测的harr检测函数使用方法 代码理解: 利用训练集,检测出脸部,画出框 void CAviTestD ...

  4. PJAX全局无刷新的设置方法~

    先添加必要文件: <script src="http://cdn.bootcss.com/jquery/1.11.1/jquery.min.js"></scrip ...

  5. sql server 查询时间 格式化输出

    use test select * from vote insert into vote (contents) values(GETDATE()) insert into vote (contents ...

  6. 初识cocos creator的一些问题

    本文的cocos creator版本为v1.9.01.color赋值cc.Label组件并没有颜色相关的属性,但是Node有color的属性. //如果4个参数,在ios下有问题let rgb = [ ...

  7. BZOJ 4278: [ONTAK2015]Tasowanie 后缀数组 + 贪心 + 细节

    Code: #include <bits/stdc++.h> #define setIO(s) freopen(s".in", "r", stdin ...

  8. null值处理

    一,在实体类的上面加注解 import com.fasterxml.jackson.annotation.JsonInclude @JsonInclude(JsonInclude.Include.NO ...

  9. SQL第一节课

    phpmyadmin create table 表名( 列名 数据类型 是否为空 (是否主键|是否唯一|外键关系), 列名 数据类型...(最后一列不加逗号)) create database 数据库 ...

  10. swift-教你如何实现导航上的UISearchController动画效果。

    这个代码片段是我这周我从网上找了各种资料然后经过自己的修改终于弄好了导航的上下动画效果: step1:==>因为这个搜索要有动画效果,所以这个页面必须要有一个导航控制器: //1.自定义创建导航 ...