新闻中心

EEPW首页 > 智能计算 > 设计应用 > 详解人工智能芯片 CPU/GPU/FPGA有何差异?

详解人工智能芯片 CPU/GPU/FPGA有何差异?

作者:时间:2017-04-01来源:行业报告研究院收藏
编者按:CPU与GPU在各自领域都可以高效地完成任务,但当同样应用于通用基础计算领域时,设计架构的差异直接导致了两种芯片性能的差异。

  1.是什么?

本文引用地址:http://www.eepw.com.cn/article/201704/346122.htm

  场效可编程逻辑闸阵列运用硬件语言描述电路,根据所需要的逻辑功能对电路进行快速烧录。一个出厂后的成品的逻辑块和连接可以按照设计者的需要而改变,这就好像一个电路试验板被放在了一个芯片里,所以FPGA可以完成所需要的逻辑功能。

  FPGA和内都有大量的计算单元,因此它们的计算能力都很强。在进行神经网络运算的时候,两者的速度会比CPU快很多。但是由于架构固定,硬件原生支持的指令也就固定了,而FPGA则是可编程的。其可编程性是关键,因为它让软件与终端应用公司能够提供与其竞争对手不同的解决方案,并且能够灵活地针对自己所用的算法修改电路。

  2.FPGA和的性能差异

  同样是擅长并行计算的FPGA和GPU,谁能够占领人工智能的高地,并不在于谁的应用更广泛,而是取决于谁的性能更好。在服务器端,有三个指标可供对比:峰值性能、平均性能与功耗能效比。当然,这三个指标是相互影响的,不过还是可以分开说。

  峰值性能:GPU远远高于FPGA

  GPU上面成千上万个核心同时跑在GHz的频率上是非常壮观的,最新的GPU峰值性能甚至可以达到10TFlops 以上。GPU的架构经过仔细设计,在电路实现上是基于标准单元库而在关键路径上可以用手工定制电路,甚至在必要的情形下可以让半导体fab依据设计需求微调工艺制程,因此可以让许多core同时跑在非常高的频率上。

  相对而言,FPGA首先设计资源受到很大的限制,例如GPU如果想多加几个核心只要增加芯片面积就行,但FPGA一旦型号选定了逻辑资源上限就确定了。而且,FPGA里面的逻辑单元是基于SRAM查找表,其性能会比GPU里面的标准逻辑单元差很多。最后,FPGA的布线资源也受限制,因为有些线必须要绕很远,不像GPU这样走ASIC flow可以随意布线,这也会限制性能。

  平均性能:GPU逊于FPGA

  FPGA可以根据特定的应用去编程硬件,例如如果应用里面的加法运算非常多就可以把大量的逻辑资源去实现加法器,而GPU一旦设计完就不能改动了,所以不能根据应用去调整硬件资源。

  目前机器学习大多使用SIMD架构,即只需一条指令可以平行处理大量数据,因此用GPU很适合。但是有些应用是MISD,即单一数据需要用许多条指令平行处理,这种情况下用FPGA做一个MISD的架构就会比GPU有优势。

  所以,对于平均性能,看的就是FPGA加速器架构上的优势是否能弥补运行速度上的劣势。如果FPGA上的架构优化可以带来相比GPU架构两到三个数量级的优势,那么FPGA在平均性能上会好于GPU。

  功耗能效比:

  功耗方面,虽然GPU的功耗远大于FPGA的功耗,但是如果要比较功耗应该比较在执行效率相同时需要的功耗。如果FPGA的架构优化能做到很好以致于一块FPGA的平均性能能够接近一块GPU,那么FPGA方案的总功耗远小于GPU,散热问题可以大大减轻。反之,如果需要二十块FPGA才能实现一块GPU的平均性能,那么FPGA在功耗方面并没有优势。

  能效比的比较也是类似,能效指的是完成程序执行消耗的能量,而能量消耗等于功耗乘以程序执行的时间。虽然GPU的功耗远大于FPGA的功耗,但是如果FPGA执行相同程序需要的时间比GPU长几十倍,那FPGA在能效比上就没有优势了;反之如果FPGA上实现的硬件架构优化得很适合特定的机器学习应用,执行算法所需的时间仅仅是GPU的几倍或甚至于接近GPU,那么FPGA的能效比就会比GPU强。

  3.FPGA市场前景

  随着科技的进展,制造业走向更高度的自动化与智能化,对工业控制技术等领域不断产生新的需求,在未来的工业制造领域,FPGA将有更大的发展空间。目前来看,有两个领域的应用前景十分巨大:

  工业互联网领域

  作为未来制造业发展的方向,工业大数据、云计算平台、MES系统等都是支持工业智能化的重要平台,它们需要完成大数据量的复杂处理,FPGA在其中可以发挥重要作用。

  工业机器人设备领域

  在多轴向运作的精密控制、实时同步的连接以及设备多功能整合等方面,兼具弹性和整合性的FPGA,更能展现设计优势。如汽车ADAS需要对实时高清图像进行及时的分析识别与处理;在人工智能方面,深度学习神经网络也需要进行大量并行运算。

  4.FPGA现有市场

  FPGA市场前景诱人,但是门槛之高在芯片行业里无出其右。全球有60多家公司先后斥资数十亿美元,前赴后继地尝试登顶FPGA高地,其中不乏英特尔、IBM、德州仪器、摩托罗拉、飞利浦、东芝、三星这样的行业巨鳄,但是最终登顶成功的只有位于美国硅谷的两家公司:Xilinx与Altera。这两家公司共占有近90%的市场份额,专利达到6000余项之多,如此之多的技术专利构成的技术壁垒当然高不可攀。

  2015年6月,英特尔用史无前例的167亿美元巨款收购了Altera,当时业内对于英特尔此举的解读主要集中在服务器市场、物联网市场的布局上,英特尔自己对收购的解释也没有明确提到机器学习。但现在看来,或许这笔收购在人工智能领域同样具有相当大的潜力。

  5.FPGA行业的开拓者:

  英特尔能不能通过FPGA切入AI硬件市场?要讲清楚这个问题,我们必须要把视角从人工智能身上拉远,看看英特尔的整体战略布局。最近几年,英特尔的核心盈利业务CPU同时遭到了三个因素的狙击:PC市场增长放缓、进军移动市场的尝试失败以及摩尔定律逐渐逼近极限。单纯的卖CPU固然也能赚到钱,但只有研发更高端的芯片,形成自己领导者的形象,才能赚更多的钱,支撑公司的发展。

  上述三个因素的同时出现,已经让英特尔发现,如果自己仍然只是安心的守着自己的CPU业务,很快就会面临巨大的危机,事实上在过去的一年里,利润下降、裁员的新闻也一直围绕在英特尔的身边,挥之不去。

  因而英特尔十分渴望不要错过下一个深度学习的潮流,不过它缺乏自己最先进的人工智能研究,所以在过去的两年中疯狂地收购。2015年,英特尔用史无前例的167亿美元拍下了FPGA制造商Altera,2016年又相继兼并了人工智能芯片初创公司Nervana与Movidius。目前的英特尔正在试图将他们整合在一起。

  6.Intel的产品布局

  英特尔斥巨资收购Altera不是来为FPGA技术发展做贡献的,相反,它要让FPGA技术为英特尔的发展做贡献。表现在技术路线图上,那就是从现在分立的CPU芯片+分立的FPGA加速芯片,过渡到同一封装内的CPU晶片+FPGA晶片,到最终的集成CPU+FPGA芯片。预计这几种产品形式将会长期共存,因为分立器件虽然性能稍差,但灵活性更高。

  如果简单的将英特尔对于人工智能的产品布局,可以分以下几层:

  ·Xeon Phi+ Nervana:用于云端最顶层的高性能计算。

  ·Xeon+FPGA:用于云端中间层/前端设备的低功耗性能计算。

  英特尔下一代的FPGA和SoC FPGA将支持Intel架构集成,大致如下:代号为Harrisville的产品采用Intel 22nm工艺技术,用于工业IoT、汽车和小区射频等领域;代号为Falcon Messa的中端产品采用Intel 10nm工艺技术,用于4G/5G无线通信、UHD/8K广播视频、工业IoT和汽车等领域;代号为Falcon Mesa的高端产品采用Intel 10nm工艺技术,用于云和加速、太比特系统和高速信号处理等领域。

  ·Core(GT):用于消费级前端设备的性能计算、图形加速。

  ·Euclid:提供给开发者/创客的开发板,集成Atom低功耗处理器、RealSense摄像头模块、接口,可用做无人机、小型机器人的核心开发部件。

  ·Curie:提供给开发者/创客的模块,其内置Quark SE系统芯片、蓝牙低功耗无线电、以及加速计、陀螺仪等传感器,可用做低功耗可穿戴设备的核心部件。

  从产品线来看,包含了CPU与FPGA的异构计算处理器将是Intel盈利的重点。预计到2020年Intel将有1/3的云数据中心节点采用FPGA技术,CPU+FPGA拥有更高的单位功耗性能、更低时延和更快加速性能,在大数据和云计算领域有望冲击CPU+GPU的主导地位,而Intel的至强处理器Xeon +FPGA也将在2017年下半年量产。

  7.Intel的痛点:生态不完善

  FPGA对GPU的潜力在于其计算速度与GPU不相上下,却在成本和功耗上对GPU有着显著优势。当然,劣势也有,但是FPGA的潜力是非常明显的。作为一个想要推向市场的商品来说,FPGA最需要克服,也是最容易克服的问题是普及程度。

  大部分PC都配有或高端或低端的独立GPU,对于个人进行的中小规模神经网络开发和训练来说,其实它们的性能已经基本足够。而FPGA却不是在电脑里能找得到的东西,而多见于各种冰箱、电视等电器设备及实验室中,因此想要搞到一块能用来开发深度学习的FPGA其实还挺麻烦的。不仅如此,FPGA的不普及还体现在以下三个方面:

  OpenCL编程平台应用不广泛

  即使GPU有着种种不足,它也不是能够轻易被取代的。从深度学习应用的开发工具角度,具备CUDA支持的GPU为用户学习Caffe、Theano等研究工具提供了很好的入门平台。自2006年推出CUDA以来,已有超过5亿的笔记本电脑、工作站、计算集群和超级计算机安装了支持CUDA的GPU。

  如果FPGA想要攻占深度学习的市场,那么产业链下游的编程平台必不可少。目前较为流行的异构硬件编程的替代性工具是OpenCL。不同于CUDA单一供应商的做法,OpenCL对开发者开源、免费,这是一大重要竞争力。但目前来看,其获得的支持相较CUDA还略逊一筹。

  实现硬件编程困难

  除了软件编程的不普及之外,吸引偏好上层编程语言的研究人员和应用科学家来开发FPGA尤为艰难。虽然能流利使用一种软件语言常常意味着可以轻松地学习另一种软件语言,但对于硬件语言翻译技能来说却非如此。针对FPGA最常用的语言是Verilog和VHDL,两者均为硬件描述语言(HDL)。这些语言和传统的软件语言之间的主要区别是,HDL只是单纯描述硬件,而例如C语言等软件语言则描述顺序指令,并无需了解硬件层面的执行细节。

  有效地描述硬件需要对数字化设计和电路的专业知识,尽管一些下层的实现决定可以留给自动合成工具去实现,但往往无法达到高效的设计。因此,研究人员和应用科学家倾向于选择软件设计,因其已经非常成熟,拥有大量抽象和便利的分类来提高程序员的效率。

  部署环节需要定制复杂套件

  FPGA需要有一个完善的复杂生态系统才能保证其使用,不只体现在软件与硬件编程平台上,更体现在部署环节中。FPGA在安装过程中需要针对不同的IP核定制一系列复杂的工具套件,相比之下,GPU通过PCI-e接口可以直接部署在服务器中,方便而快速。因此,嵌入式FPGA概念虽好,想要发展起来仍将面临十分严峻的挑战。

  8.Intel的优势

  目前在深度学习市场FPGA尚未成气候,谷歌这样的超级大厂又喜欢自己研发专用芯片,因此可以说对于深度学习芯片来说,个人开发者及中小型企业内还有相当大的市场。这个市场目前几乎只有英伟达一家独大,英特尔想要强势进入未必没有机会。而相比于英伟达来说,英特尔有两个明显的优势:

  更熟悉CPU

  尽管目前的人工智能市场几乎只有英伟达一家独大,但英伟达的芯片也不是能够自己完成深度学习训练的。或者说,英伟达的GPU芯片还不足以取代那些英特尔的CPU,大多数环境下它们暂时只能加速这些处理器。所以,GPGPU暂时只是概念上的,GPU还不足以在大多数复杂运算环境下代替CPU,而随着人工智能技术的进步,对硬件的逻辑运算能力只会更高不会降低,所以搭载强大CPU核心的多核异构处理器才是更长期的发展方向。而论对CPU的熟悉,没有一家芯片厂商能过胜过英特尔,英特尔是最有可能让搭载了FPGA与CPU的异构处理器真正实现多核心相辅相成的芯片公司。

  曾涉足云计算

  算法的训练应该是贯穿整个应用过程的,这样可以随时为消费者提供最好体验的服务。但是如果要将所有算法都集中于本地训练,不仅会面临计算瓶颈的问题,也容易面临从单个用户处收集到的数据量太少的尴尬。我们暂时不考虑很久以后可能出现的基于小样本的无监督学习的AI,毕竟那其实已经跟人差不多了,在目前AI的发展状况下,将所有数据集中于云端进行计算显然是更理性且有效的做法。这就对通信提出了极高的要求,而英特尔恰巧在这个领域有着相当多的积累。虽然英特尔的通信部门连年亏损,但在现在的形势下,它却意外地有了新的价值与潜力。


上一页 1 2 3 4 下一页

关键词: GPU FPGA

评论


相关推荐

技术专区

关闭