深度学习方案ASIC、FPGA、GPU比较 哪种更有潜力
扫描二维码
随时随地手机看文章
几乎所有深度学习的研究者都在使用GPU,但是对比深度学习硬鉴方案,ASIC、FPGA、GPU三种究竟哪款更被看好?主要是认清对深度学习硬件平台的要求。
今天被罗振宇的跨年演讲刷爆了朋友圈。不过他讲深度学习和GPU的时候,真让人虐心。
显卡的处理器称为图形处理器(GPU),它是显卡的“心脏”,与CPU类似,只不过GPU是专为执行复杂的数学和几何计算而设计的,这些计算是图形渲染所必需的。
对深度学习硬件平台的要求要想明白“深度学习”需要怎样的硬件,必须了解深度学习的工作原理。首先在表层上,我们有一个巨大的数据集,并选定了一种深度学习模型。每个模型都有一些内部参数需要调整,以便学习数据。而这种参数调整实际上可以归结为优化问题,在调整这些参数时,就相当于在优化特定的约束条件。
百度的硅谷人工智能实验室(SVAIL)已经为深度学习硬件提出了DeepBench基准,这一基准着重衡量的是基本计算的硬件性能,而不是学习模型的表现。这种方法旨在找到使计算变慢或低效的瓶颈。 因此,重点在于设计一个对于深层神经网络训练的基本操作执行效果最佳的架构。那么基本操作有哪些呢?现在的深度学习算法主要包括卷积神经网络(CNN)和循环神经网络(RNN)。基于这些算法,DeepBench提出以下四种基本运算:
矩阵相乘(Matrix MulTIplicaTIon)——几乎所有的深度学习模型都包含这一运算,它的计算十分密集。
卷积(ConvoluTIon)——这是另一个常用的运算,占用了模型中大部分的每秒浮点运算(浮点/秒)。
循环层(Recurrent Layers )——模型中的反馈层,并且基本上是前两个运算的组合。
All Reduce——这是一个在优化前对学习到的参数进行传递或解析的运算序列。在跨硬件分布的深度学习网络上执行同步优化时(如AlphaGo的例子),这一操作尤其有效。
除此之外,深度学习的硬件加速器需要具备数据级别和流程化的并行性、多线程和高内存带宽等特性。 另外,由于数据的训练时间很长,所以硬件架构必须低功耗。 因此,效能功耗比(Performance per Watt)是硬件架构的评估标准之一。
GPU在处理图形的时候,从最初的设计就能够执行并行指令,从一个GPU核心收到一组多边形数据,到完成所有处理并输出图像可以做到完全独立。由于最初GPU就采用了大量的执行单元,这些执行单元可以轻松的加载并行处理,而不像CPU那样的单线程处理。另外,现代的GPU也可以在每个指令周期执行更多的单一指令。所以GPU比CPU更适合深度学习的大量矩阵、卷积运算的需求。深度学习的应用与其原先的应用需求颇为类似。GPU厂家顺理成章的在深度学习,找到了新增长点。
英伟达以其大规模的并行GPU和专用GPU编程框架CUDA主导着当前的深度学习市场。但是越来越多的公司开发出了用于深度学习的加速硬件,比如谷歌的张量处理单元(TPU/Tensor Processing Unit)、英特尔的Xeon Phi Knight‘s Landing,以及高通的神经网络处理器(NNU/Neural Network Processor)。
多亏了新技术和充满GPU的计算机数据中心,深度学习获得了巨大的可能应用领域。这家公司的任务中很大一部分都只是获取用来探索这些可能性的时间和计算资源。这项工作极大地扩张了设计空间。就科学研究而言,覆盖的领域已经在指数式扩张了。而这也已经突破了图像识别的范畴,进入到了语音识别、自然语言理解等其它任务中。正因为覆盖的领域越来越多,微软在提高其GPU集群的运算能力的同时也在探索使用其它的专用处理器,其中包括FPGA——一种能针对特定任务(如深度学习)编程的芯片。而且这项工作已经在全世界的技术和人工智能领域掀起了波澜。英特尔完成了其历史上最大的并购案,收购了专注FPGA的Altera。
FPGA的优势是,如果计算机需要改变,它可以被重新装配。但是,最通用、最主流的方案仍旧是使用 GPU,以并行处理大量数学运算。不出预料,GPU 方案的主要推动者是该市场的霸主英伟达。
英伟达旗舰显卡 Pascal TItan X
事实上, 2009 年之后人工神经网络的复兴与 GPU 有紧密联系——那一年,几名斯坦福的学者向世界展示,使用 GPU 可以在合理的时间内训练深度神经网络。这直接引发了 GPU 通用计算的浪潮。
英伟达首席科学家、斯坦福并发 VLSI 架构小组的负责人 William J. Dally 表示:“行内每个人现在都在做深度学习,这方面,GPU 几乎已经达到了最好。”