详解Google第二代TPU 既能推理又能训练 性能霸道
详解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 既能推理又能训练 性能霸道的更多相关文章
- 详解Google Chrome浏览器(操作篇)(一)
开篇概述 在上篇博客中详解Google Chrome浏览器(理论篇)一文中,主要讲解了Chrome 搜索引擎使用.Chrome安装和基本操作.Chrome 基本架构.多线程等原理性问题,这篇将重点讲解 ...
- 详解Google Chrome浏览器(操作篇)(下)
开篇概述 由于最近忙于公司产品的架构与研发,已经三个多月没有写博客了,收到有些朋友的来信,问为什么不及时更新博客内容呢,他们说他们正期待着某些内容.对此,非常抱歉,那么我在此也给各位朋友一些承诺,从即 ...
- 详解Google Chrome浏览器(操作篇)(上)
开篇概述 在上篇博客中详解Google Chrome浏览器(理论篇)一文中,主要讲解了Chrome 搜索引擎使用.Chrome安装和基本操作.Chrome 基本架构.多线程等原理性问题,这篇将重点讲解 ...
- 详解google Chrome浏览器(理论篇)
注解:各位读者,经博客园工作人员反馈,hosts涉及违规问题,我暂时屏蔽了最新hosts,若已经获取最新hosts的朋友们,注意保密,不要外传.给大家带来麻烦,对此非常抱歉!!! 开篇概述 1.详解g ...
- 分布式专题——详解Google levelDB底层原理
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是分布式专题的第10篇文章,我们继续来聊聊LSMT这个数据结构. LSMT是一个在分布式系统当中应用非常广泛,并且原理直观简单的数据结构 ...
- Android Design Support Library使用详解
Android Design Support Library使用详解 Google在2015的IO大会上,给我们带来了更加详细的Material Design设计规范,同时,也给我们带来了全新的And ...
- 详解googe Chrome浏览器(理论篇)
开篇概述 1详解google Chrome浏览器,这个标题似乎抽象了一些,我想应该把它拆分成如下几个问题,也许会更加理解一些. 问题1:目前开发中,主选浏览器有Google Chrome,IE,Fir ...
- C++的性能C#的产能?! - .Net Native 系列《二》:.NET Native开发流程详解
之前一文<c++的性能, c#的产能?!鱼和熊掌可以兼得,.NET NATIVE初窥> 获得很多朋友支持和鼓励,也更让我坚定做这项技术的推广者,希望能让更多的朋友了解这项技术,于是先从官方 ...
- [面试专题]Web缓存详解
Web缓存详解 标签(空格分隔): 缓存 缓存之于性能优化 请求更快:通过将内容缓存在本地浏览器或距离最近的缓存服务器(如CDN),在不影响网站交互的前提下可以大大加快网站加载速度. 降低服务器压力: ...
随机推荐
- Struts2 在登录拦截器中对ajax请求的处理
前言: 由于ajax请求不像http请求,可以直接进行页面跳转,你返回的所有东西,ajax都只会识别为一个字符串. 之前尝试的方法是在拦截器中返回一个标识给ajax,然后再在每一个ajax请求成功之后 ...
- 基于bootstarp的Dailog
oaoDailog开发帮助 1. 帮助文档关键字 boostrap模态框oaoDailog 2. 使用场景 当网页上点击某个按钮需要给予用户提示确认,用户点击确认按钮才 ...
- 笔记 — 动画效果(Css3)
/** * animation-name: 调用 @keyframes 所定义的动画 * animation-duration: 动画周期所花费的时间长度 * animation-timing-fun ...
- oracle 命令记录
监听程序启动停止查看名利: 1.切换到oracle用户:su - oracle 2.查看监听状态:lsnrctl status 3.停止监听:lsnrctl stop 4.启动监听:lsnrctl s ...
- VTK:VTK嵌入MFC成功
VTK作为医学显示库,得到较多使用.作为较为上层的设计,对OpenGL进行了封装,并且有Windows.Linux.安卓等开发版本,可移植性较强. 不过VES暂时没有编译成功. 以下是嵌入MFC-ID ...
- HDU_5810_数学,概率,方差
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5810 大意:将n个球往m个盒子中投,每个球被投入每个盒子的概率相等,求方差. 看题解说,这是二项分布( ...
- MySql数据库多表操作
一.连接查询[连表查询.多表查询] 当查询结果的列来源于多张表时,需要将多张表连接成一个大的数据集,再选择合适的列返回 mysql支持三种类型的连接查询,分别为: 内连接查询(inner join) ...
- Spring AOP --JDK动态代理方式
我们知道Spring是通过JDK或者CGLib实现动态代理的,今天我们讨论一下JDK实现动态代理的原理. 一.简述 Spring在解析Bean的定义之后会将Bean的定义生成一个BeanDefinit ...
- jboss的下载安装、环境变量配置以及部署
1. 下载安装 http://jbossas.jboss.org/downloads/ jdk为1.7 我下载的是:JBoss AS7.1.1.Final 2. 解压安装包 D:\program ...
- vfs:open.c 源码学习
nameidata路径查找辅助结构 open.c @do_sys_open @get_unused_fd_flags @do_filp_open 1.开始填充nameidata 2.开始填充file ...