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

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

 谷歌TPU

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

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

 NVIDIA Tesla P100

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

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

深度学习的三种运算任务

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

1. “数据中心的训练”

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

对于这方面的硬件,行业领头羊是一家最近被英特尔收购的公司NervanaSystems。该公司的计算机学者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 的霸主地位是否会动摇,我们会继续关注。