业界丨深度学习的三种硬件方案 ASICs、FPGAs 和 GPU,开发者需要知道什么?

AI科技评论:今年三月 AlphaGo 和李世石的“世纪之战”炒红了深度学习—— AlphaGo 采用了人工神经网络技术,充分挖掘了深度学习的潜力。简单来说,深度学习是一个包含了许多层级数据处理的神经网络,以自动化方式组合起来解决问题。

人机大战之前,相当多的人并不看好 AlphaGo,包括许多围棋、AI 业内人士 。但公众并不清楚的是:当时谷歌手中握着一张王牌——AlphaGo 的计算设备搭载了特制硬件,一个被谷歌称为“Tensor Processing Unit”(TPU)的计算卡

谷歌 TPU

深度学习的三种硬件方案:ASICs,FPGAs,GPU

人机大战落幕后的两个月,谷歌硬件工程师 Norm Jouppi 才公开了它的存在。在博客中,他解释道,谷歌给数据中心装备这些加速器卡已经有超过一年的时间。虽然谷歌对技术细节严格保密,但已透露它们专为谷歌开源项目 TensorFlow 而优化;并且,它采取了一个越来越流行的深度学习运算加速方式:ASICs。它全称为应用型专用集成电路(application-specific integrated circuit)。

而微软采用了另一种逐渐流行起来的方式:FPGAs(现场可编程门阵列,field-programmable gate arrays)它的优势是,如果计算机需要改变,它可以被重新装配。但是,最通用、最主流的方案仍旧是使用 GPU,以并行处理大量数学运算。不出预料,GPU 方案的主要推动者是该市场的霸主英伟达。

英伟达旗舰显卡 Pascal Titan X

事实上, 2009 年之后人工神经网络的复兴与 GPU 有紧密联系——那一年,几名斯坦福的学者向世界展示,使用 GPU 可以在合理的时间内训练深度神经网络。这直接引发了 GPU 通用计算——GPGPU 的浪潮。

英伟达首席科学家、斯坦福并发 VLSI 架构小组的负责人 William J. Dally 表示:“行内每个人现在都在做深度学习,这方面,GPU 几乎已经达到了最好。”

William J. Dally (又名 Bill Dally)

深度学习的三种运算任务

William Dally 进一步解释,深度学习硬件的选择有三个不同领域要考虑。

1. “数据中心的训练”

第一个被他称之为“在数据中心训练”。这里,他指的是任何深度学习系统需要做的第一步:调整神经元之间的数百万连接,让神经网络来执行分配的任务。

对于这方面的硬件,行业领头羊是一家最近被英特尔收购的公司 Nervana Systems。该公司的计算机学者 Scott Leishman 透露,他们开发出的 ASIC 深度学习加速器 Nervana Engine, 将于 2017 年中投产。他注意到,另外一项需要大量计算的任务——比特币挖矿,正从一开始在 CPU 上运行,转移到 GPU,再到 FPGAs,最终到 ASICs。这是由于提升的能耗效率。他说:“在深度学习领域我观察到了同样的趋势”

2. “数据中心的推理(inference)”

第二个深度学习硬件的任务是,“数据中心的推理(inference)”。推理在这里指代的是,基于云端、被训练来处理特定任务的神经网络的连续运行。每天,谷歌的神经网络都要运行天文数字级别的推理计算,来进行图片分类,语言翻译,语音识别。虽然现在的信息不足以证实,但据雷锋网所知,业内人士普遍推测谷歌的 TPU 是为这些任务而定制。

训练和推理通常需要不同的技能组合。对训练来说,计算机往往需要以较高的精确度运算,一般使用 32 位浮点运算。对于推理,精确度可以适当牺牲,换取更快的速度和更低的能耗。对此,Leishman 表示:“这是一个热门研究领域,能耗到底可以降低到什么程度?”

William Dally 拒绝透露英伟达的深度学习产品计划,而是强调如今做出的成绩。他说,英伟达的 GPU 在不断进化。上代 Mazwell 架构可以进行双精度(64 位)或者单精度(32 位)运算,而这一代的帕斯卡( Pascal )架构能以单精度运算两倍的吞吐量和效率进行 16 位运算。我们能想象,英伟达很可能最终会发布能进行 8 位运算的 GPU 。对于云端的推理计算来说,这十分理想,因为能耗对于降低成本十分关键。

3. “嵌入式设备的推理”

第三个深度学习运算需要考虑的是 “嵌入式设备的推理”,比如智能手机、摄像头和平板电脑。这类应用的核心是低能耗的 ASICs。近年来,深度学习软件越来越多地集成入手机应用。它已经被用来查杀恶意软件和翻译图片中的文字。

雷锋网消息,大疆已经在精灵 4 中应用了类似于深度学习 ASIC 的东西:使用加州公司 Movidius 的视觉处理芯片来识别障碍。顺便说一句,Movidius 是最近另一家被英特尔收购的神经网络公司。另外,高通也在旗舰芯片 820 中加入了优化深度学习计算的特殊电路

今天,各家公司有极强的商业动机,去开发能加速深度神经网络的硬件。但这里有一个很大的风险:如果技术迭代太快,为昨天的神经网络而设计的芯片,可能在最终生产、铺货时就已经过时了。对此,William Dally 说道:“算法正在飞速变化,所有开发这些硬件的人,都试图让产品方案覆盖尽可能多的对未来的赌注。”

目前,基于 ASICs 和 FPGAs 产品大多应用在企业端,大多数个人开发者的的首选仍然是 GPU。至于在未来 GPU 的霸主地位是否会动摇,AI 科技评论会继续关注。

via ieee

原文发布于微信公众号 - AI科技评论(aitechtalk)

原文发表时间:2016-12-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏吴伟祥

Java Calendar 类的时间操作 原

Calendar 的 month 从 0 开始,也就是全年 12 个月由 0 ~ 11 进行表示。

783
来自专栏吴小龙同學

时间工具类TimeUtil

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30...

3066
来自专栏码匠的流水账

聊聊EurekaRibbonClientConfiguration

spring-cloud-netflix-eureka-client-2.0.0.RELEASE-sources.jar!/org/springframewor...

1171
来自专栏海说

Java应用中常见的JDBC连接字符串(SQLite、MySQL、Oracle、Sybase、SQLServer、DB2)

Java应用中常见的JDBC连接字符串 Java应用中连接数据库是不可或缺的,于是便整理一些可能用到的JDBC的jar包及其相匹配的URL,以备日后查阅。 1)...

2750
来自专栏james大数据架构

C#日期格式转换

DateTime dt = DateTime.Now; // Label1.Text = dt.ToString();//2005-11-5 13:21:25 ...

1895
来自专栏xingoo, 一个梦想做发明家的程序员

windows程序设计-第四章 system1.c

/*---------------------------------------------------- SYSMETS1.C -- System M...

24010
来自专栏跟着阿笨一起玩NET

[C#]工具类—FTP上传下载

  不错的文章:http://www.cnblogs.com/greatverve/archive/2012/03/03/csharp-ftp.html

1241
来自专栏calmound

JDBC

import static org.junit.Assert.*; import java.sql.Connection; import java.sql.D...

2654
来自专栏Pulsar-V

C#下各种获取时间的姿势

直接贴代码吧 DateTime dt = DateTime.Now; Label1.Text = dt.ToString();//2005-11-5 13:21...

3236
来自专栏用户画像

java 遍历某月的所有日期

922

扫码关注云+社区