详解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. spring 九种设计模式

    spring中常用的设计模式达到九种,我们举例说明: 第一种:简单工厂 又叫做静态工厂方法(StaticFactory Method)模式,但不属于23种GOF设计模式之一. 简单工厂模式的实质是由一 ...

  2. Javascrpt核心概念(2)--操作符

    学习操作符这个章节最好回忆一下C里的惯例,因为ECMAScript的标准很多继承自C的语法 一元操作符 只能操作一个值得操作符 递增和递减操作符 var age = 29; ++age; //30 v ...

  3. Android 关于Fragment重叠问题分析和解决

    一.问题描述 相信大家在使用Fragment的过程中,肯定碰到过Fragment重叠的问题,重启应用就好了.然而原因是什么呢? 二.原因分析 首先,Android管理Fragment有两种方式,使用a ...

  4. Android学习——数据存储之文件存储

    将数据存储到文件中并读取数据 1.新建FilePersistenceTest项目,并修改activity_main.xml中的代码,如下:(只加入了EditText,用于输入文本内容,不管输入什么按下 ...

  5. linux 新添加的硬盘格式化并挂载到目录下

    需求: 新增加一块硬盘sdb,将sdb分区,只分一个区,格式化,挂载到目录/ssd下. 1.  查看现在已有的分区状态 # df –l 图中显示,没有看到sdb硬盘 2.  查看服务器安装的硬盘状态( ...

  6. 【Linux】tmpfs简介及增加方式

    一. 什么是tmpfs? tmpfs是一种基于内存的文件系统,它和虚拟磁盘ramdisk比较类似,但不完全相同,和ramdisk一样,tmpfs可以使用RAM,但它也可以使用swap分区来存储.而且传 ...

  7. 复习java基础第二天(异常处理)

    一.常见的异常类型: public class TestException { public static void main(String[] args) { int i = 10; //数学异常: ...

  8. 终极解决VS2015 安装失败问题,如 安装包损坏或丢失

    1.去微软官网下载完成ISO镜像,最好不要在线安装, 打开官方链接 https://www.visualstudio.com/zh-cn/downloads/download-visual-studi ...

  9. 我的web前端自学之路-心得篇:我为什么要学习web前端?

    时光如流水,转眼间,自己已经是大三的学长了,看着一个个学弟学妹,心中有种莫名的感觉,很怀念大学的前两年时光,但也很憧憬着自己的未来,自己将要去经历很多从未经历的事.我是我们学校信科院的一名学生,在编程 ...

  10. Python基础知识-Day4

    一.函数关键字关键字是Python内置的,具有特殊意义的标识符,自定义标识符命名时不可与之重复.可以通过以下代码查看Python内置的关键字内容. import keyword print(keywo ...