FPGA的过去,如今和将来

咱们知道,相对于专业的ASIC,FPGA有上市时间和成本上的优点。另外,在大多数状况下,FPGA执行某些功能较之CPU上的软件操做更高效。这就是为何咱们认为它不但会运用在数据中心的服务器、交换器、存储层的各个角落,而且具备加速整个工做流程的功能。程序员

 

然而咱们不能过度乐观,尤为是在2015年12月,Intel以167亿美圆收购了FPGA生产商Altera以后。算法

 

在2014年年末,当时还处于独立的Altera公司高层盯上了基于CPU+FPGA的数据中心并行计算的发展前景——这个当时价值大约10亿美圆的市场。而并不是数据中内心约2.5亿美圆的CPU-GPU市场和直接应用CPU处理器的90亿美圆市场。编程

 

Altera作出这个决定的缘由在于他们认为这个组合较之另外两个方案,有编程的简便性和能效优点。人们对CPU很是熟悉,并发现寻找C程序员也不会太难。所以对大部分开发者来讲,在执行运算任务的时候,持续使用这种方案不须要冒太大的风险,可是能源效率相对比较低,尤为是在密集的计算和固有的并行工做负载的状况底下。安全

 

至于CPU+GPU的方案,程序员并非很熟悉,可是拥有很高的效率。服务器

 

根据Altera的估计,使用OpenCL对混合CPU-FPGA系统进行编程比使用Nvidia的CUDA环境对于程序员来讲更容易(某些方面确定是有争议的),但用HDL来硬编程FPGA是至关困难的,所以须要OpenCL或者经过其余抽象层来将CPU中的负载转移到FPGA上。网络

 

Intel收购Altera改变FPGA格局架构

 

这个十亿美圆的数据中心市场被Altera、Xilinx和其余FPGA供应商瓜分。在Intel于2015年6月收购了Altera以后,这个市场变得更加复杂。并发

 

在收购以前的2014年,Altera的19亿美圆收入中,有16%来自于与数据中心相关的计算、网络和存储业务,其总值达到3.04亿美圆。那些在这个领域深耕十几二十年的通讯和无线设备系统制造商想要有更高的能源效率,更低的成本和更高的扩展性,这些都是FPGA所擅长的领域。另外有一点须要提一下,那就是在执行这些功能的时候,使用FPGA并不须要像使用CPU那样须要操做系统和相应的软件。这部分的营收占了Altera营收的44%,总额为8.35亿美圆。机器学习

 

Altera另外的22%收入,即4.18亿美圆,来自工业控制、军事设备和汽车制造等领域。他们面对相同的困境,所以选择FPGA来处理他们的一些工做负载。工具

 

其实早在2014年,英特尔看中了价值1150亿美圆的各类类型的芯片潜在市场。当中可编辑逻辑设备(以FPGA为主)约占4%,ASIC占18%,其他为ASSP的大杂烩。

 

在可编辑逻辑设备的领域中,英特尔预估Altera占有48亿美圆市场中的39%,Xilinx占有49%,剩下供应商则占据剩下的12%。

 

当时英特尔没有收购Altera的缘由是由于FPGA业务的增加速度几乎与其数据中心集团(为服务器,存储和交换机制造商提供芯片,芯片组和主板)的速度同样快。

 

再者,英特尔没有这样作也是由于摩尔定律逐渐缓慢下来的脚步,给FPGA带来了日益增加的竞争威胁。

 

实际上,若是应用的话,在数据中内心不止安装一个FPGA、GPU或DSP加速器,但不须要安装多个Xeon CPU。因为英特尔不能继续为Xeons提供更多的核心和加速器,因此他们得出了将FPGA当作加速器的结论。

 

除非FPGA能在数据中心创造5亿美圆的收益,或者几年后创造10亿美圆或更多的收入。否则英特尔宁愿牺牲两至三倍的Xeon收入,也不会把Xeon的收入拱手相让。

 

深度学习加持,FPGA前景可人

 

根据英特尔的预测,他们计划从如今到2023年以接近直线增加率来提高FPGA的业务。对此咱们老是抱有怀疑的态度。但FPGA业务随着时间的推移或多或少地在增加(比15年前增加约2.5倍)。

 

英特尔还预计,FPGA的营收在2014年到2023年之间将会再翻一倍。按照英特尔预测,从2014年到2023年间其复合年增加率为7%,其收入应该略低于预测的89亿美圆。有趣的是,因为英特尔的预测并无把来自数据计算中心(服务器,交换和网络)的FPGA收入份额归入计划中,这将会发生很大变化。让咱们分析一下:

 

若是Altera和Xilinx的市场份额没有发生改变,且假设Altera的收入在网络,计算和存储的部分保持不变,那么Altera这一部分的业务收入到2023年将会达到5.6亿美圆左右。咱们认为Intel这样的数据低估了数据中心在提供更有效和灵活计算所面对的压力。不给过咱们认为FPGA的前景远远优于这个预测。也就是说,许多FPGA技术的支持者一直期待FPGA在数据中心中得到计算合法化的那天很快到来。

 

讽刺的是,英特尔自己做为FPGA的编程专家,硬件描述语言的使用者,以及知名的ASIC制造商,竟成为推进FPGA成为加速器优先选择的主要参与者。这样的加速器既能做为独立的离散计算元件,又能够做为混合 CPU-FPGA器件。

 

这也是为何从2016年以来,咱们看到全部关于Altera的新闻都是昭示FPGA将会有的大规模增的增加。因此至少在短时间,他们除了为其余的FPGA制造商做嫁衣裳,几乎别无他法。

 

此次收购不只是FPGA发展的里程碑,也是英特尔对FPGA巨大的潜力的认可。FPGA做为将来强大的计算加速器,不但影响主要企业的决策和市场趋势,并且加速企业中的工做负载,促进超大规模数据中心的内部搜索,以及提升高性能计算模拟的地位。

 

在跨越2017年之际,FPGA在应用程序中等级中新增了机器学习和深度学习,这给FPGA产业敲下了又一重锤。

 

为何你们都青睐FPGA

 

首先,编程FPGA的软件栈已经演进了,尤为是在Altera的帮助下,FPGA增长了对OpenCL开发环境的支持。但不是每一个人都是OpenCL的狂热粉丝。

 

先有Nvidia为其Tesla GPU加速器建立了本身的CUDA并行编程环境。再有SRC计算机公司不但早在2002年就为国防和智能领域提供混合CPU-FPGA系统,到了2016年年中,进一步将本身研发的Carte编程环境进入了商业市场,这个编程环境可使C和Fortran程序自动转换为FPGA的硬件描述语言(HDL)。

 

另外一个推进FPGA被采用的因素是随着芯片制造技术难以持续缩进,多核CPU性能的提升愈来愈艰难。 虽然CPU的性能得到了大跳跃,但主要用于扩展CPU的性能吞吐量,而不是单个CPU内核的个体性能。(咱们知道架构加强是有难度的)。可是FPGA和GPU加速器的每瓦性能都有了使人信服的改进。

 

根据微软的运行测试,在执行深度学习算法的时候,CPU-FPGA和CPU-GPU混合计算在的每瓦性能也不相伯仲。GPU在运行中更热和有相似的每瓦性能表现,可是同时他们也带来了更强的工做能力。 

 

提升了每瓦性能解析了为何世界上最强大的超级计算机在20世纪90年代后期转移到并行集群,而且解析了为何如今他们转向了混合机器,而不是英特尔的下一个以 CPU-GPU为混合主力的Xeon Phi的处理器“Knights Landing (简称KNL)。

 

在Altera FPGA协处理器和Xeon Phi处理器Knights Landing的帮助下,英特尔不但能够保持本身的在高端的竞争优点。而且在与Nvidia 、IBM和 Mellanox组成的Open power联盟竞争中继续领先。

 

英特尔坚信超大规模计算,云端和HPC市场的工做负载会快速成长。为促进其计算业务继续蓬勃发展。这状况下只能成为FPGA的卖家,不然别人就会抢去这惟一的出路。

 

但英特尔并非这样跟你们说。他们说:“咱们不认为这是一种防守战或者其余,”英特尔的CEO Brian Krzanich在Altera收购消息后的新闻发布会上说。

 

“咱们认为物联网和数据中心都是庞大的。这些也是咱们的客户想要构建的产品。咱们30%的云端工做负载将在这些产品上,这是基于咱们对如何看待趋势变化以及市场发展的预测。

 

这是用来证实这些工做负载能以一种或另外一种方式转移到硅中。咱们认为最好的作法是使用有业界最佳性能和成本优点的Xeon处理器和FPGA组合。这将给工业领域带来更好的产品和性能。而在IoT中,这将扩展到潜在市场对抗ASIC和ASSP;而在数据中心中,则会将workload转移到硅,推进云的快速增加。

 

Krzanich解释道:“你能够把FPGA想象成一堆gate,且可以随时编程。根据他们的想法,其算法会随着时间的推移和学习变得更聪明。FPGA能够用做多个领域的加速器,能够在进行加密的同时进行面部搜索,并且能在基本上在微秒内从新编程FPGA。这比大规模的单个定制部件的成本低得多且具有更高的灵活性。”

 

英特尔看到了更大的机会

 

英特尔看到了比这更大的机会。

 

Intel首席执行官Brian Krzanich在收购完成后宣布,到2020年,将有高达三分之一的云端服务提供商使用混合的CPU-FPGA服务器节点,这是一个使人震惊的消息。这也给从2014年末就开始瞄准的数据中心的Altera带来大约10亿美圆的FPGA的机会。这数目大概是Nvidia目前流行的Tesla计算引擎营收的三倍。

 

在2014年初,英特尔展现了一个相同封装的Xeon-FPGA芯片原型,而且打算在2017年推出这个芯片。这是基于当时数据中心集团GM  Diane Bryant提出的一个带有FPGA电路的Xeon设想不久以后推出的。

 

在宣布Altera交易的电话会议上,Krzanich没有说明退出这款Xeon-FPGA设备的时间,可是他表示英特尔将建立一个面向物联网市场的单die混合Atom-FPGA设备。英特尔正在考究在混合过渡阶段,是否须要为Atom和Altera FPGA作单一封装混合。

 

在2016年的初太平洋顶峰证券的电话会议中,英特尔的云端基础设施集团总经理Jason Waxman与研究分析师讨论关于英特尔数据中心业务时表示,FPGA已经成为了热门话题。

 

首先,虽然他没有指名道姓哪家厂商或者任何设备的规格,可是Waxman肯定英特尔已经为某些客户提供了Xeon加FPGA的混合计算引擎样品。

 

在会议期间,Waxman更是畅谈了驱动英特尔收购Altera和插足可编程计算设备的缘由。 英特尔显然但愿让FPGA成为主流,即便这可能会在数据中心中蚕食Xeon的某些业务。 (咱们认为,由于英特尔认为这种自相残杀是不可避免的,控制它的最好方法是使FPGA成为Xeon阵容的一部分。)

 

Waxman说:“我认为这项收购可能涉及许多事情,并且其中一些已经超越数据中心集团的范围。”

 

首先,一个潜在的核心业务每每是由制造领先优点驱动。在这方面咱们能很好的掌控,并且这样作还有良好的协同做用。

 

再者,还有物联网“集团”对此也有很强的兴趣。

 

据咱们所知,某些大规模工做负载的扩展(如机器学习,某些网络功能)吸引了愈来愈多的人关注。咱们才意识到咱们或者能够在性能方面取得一些突破,这将是一个把FPGA从数据中心应用程序中移植到更多适合的、普遍发展领域的良好机会。

 

可是在数据中心集团里的协做,FPGA不过是给CPU作个伴,帮助解决云端服务提供商和其余类型的大规模应用程序的问题。

 

英特尔认为对FPGA加速有优先和大量需求的关键应用包括机器学习,搜索引擎索引,加密和数据压缩。正如Waxman指出,这些每每是颇有针对性的,且没有统一的使用案例。这就是Krzanich斩钉截铁说三分之一的云端服务提供商将在五年内使用FPGA加速的依据。

 

跨越FPGA的障碍

 

虽然每一个人都抱怨编程FPGA有多难,但英特尔并不为此退缩。虽然没有透露太多相关计划的状况下,Waxman提出了一些方法让FPGA更容易被运用和理解。

 

Waxman说:“咱们所拥有的是独一无二的,这是其余人不能给的。那就是咱们可以了解这些工做负载和可以推进加速的能力。

 

“咱们看到一条促进机器学习,加速存储加密,加速网络功能的捷径”,Waxman强调。这是基于咱们对这些工做负载的深刻了解,因此才让咱们看到了这样的机会。

 

但如今FPGA还须要面对一些困难,由于如今人们是写RTL的。咱们是一家写RTL的公司,因此咱们能够解决这个问题。首先咱们使它运做,而后咱们能够下降进入的门槛。第三步是真正的规模经济学,而这所有是靠集成和制造的实力。

 

为了解决这些障碍,咱们提供了一系列的方法。

 

X86+FPGA?

 

对于那些英特尔打算用FPGA来代替Xeons的猜想,Waxman表示这是一派胡言。

 

Waxman表示,对于那些对高速率和重复性有强烈需求的算法,具备先天优点的FPGA就是其最好的选择。而那些对延迟有极高需求的数据操做和转换,FPGA也是候选人。

 

考虑到Altera已经在一个SoC上集成了ARM处理器和FPGA,这很天然地会想到英特尔会试图用X86内核全面替换ARM内核来作相似的设备。但它看起来不像这会发生。

 

首先,在2016年第二季度英特尔财务声明会上,Krzanich承诺,英特尔将增强对目前使用Altera的ARM-FPGA芯片客户的支持。

 

Waxman进一步澄清:“咱们的观点是会以某种形式把FPGA集成到Xeon里。咱们已经公开宣布将会打造第一代使用这种单一封装的设备,可是咱们将根据进展状况调整方向,甚至可能会在同一个die上实现。咱们将根据客户的反馈了解什么是正确的组合。

 

顺便说一下,我仍然期待看到没有集成的系统,保持他们会作系统级的协同。咱们不会将Xeon与FPGA以多种方式组合集成,反之咱们会在市场上找到正确的目标和平衡。”

 

编程问题首当其冲

 

虽然Altera的工具集利用OpenCL编程模型得到应用程序代码,并将其转换为RTL(FPGA的原生语言),可是有趣的是,英特尔并不认为FPGA在数据中心的将来成功是基于OpenCL与RTL工具集成的改进或更普遍地采用OpenCL。

 

Waxman也强调地说:“这并非以OpenCL为基础的。”虽然咱们确实把OpenCL看做是进一步扩大FPGA应用范围的一个途径,但目前FPGA的初始云端部署可能由更具能力的公司完成,但他们并无要求咱们提供OpenCL。Waxman补充说。

 

Waxman在不能“自由”地谈论的状况下,暗示英特尔有计划使FPGA更容易编程。他表示Intel将会为程序员提供RTL库,方便他们调用在FPGA上部署的例程,并推进在其上执行应用程序的gate的造成,来实现应用程序例程的gate,而不是让他们本身建立例程。这有必定的意义,与Convey(如今是美光科技的一个部门)几年前用FPGA加速系统处理的方案同样。

 

Waxman说:“我认为有一个连续的加速。在一开始,你可能不知道你正在试图加速什么,只是作了一些尝试,所以在这个阶段加速,你想要的是一个更通用的目的。当你开始真正地想要加速的时候,你会想要更高效的,更低的功耗和更少的空间,这时你就会把焦点移到FPGA上。” 

 

Waxman还引用了Microsoft在其“Catapult”系统上使用FPGA加速的方案来讲明。

 

该系统采用其Open Cloud Server并添加FPGA夹层卡做为加速器。咱们在3月份研究了这个项目,将这些加速器应用在Google上执行相同的图像识别训练算法,得出的结果显示,25瓦的FPGA器件相对于使用Nvidia Tesla K20 GPU加速器(235瓦特)的服务器,提升了更好的性能/瓦特。

 

正如咱们所说,咱们对于微软和Google发布的性能数据毫无疑问。可是对分立的GPU或FPGA执行应用性能和对自身的热配置文件进行测量都是不公平的。你必须在服务器节点级别上看到这一点。

 

若是意识到这点,获得FPGA辅助的Microsoft服务器在系统级只稍稍领先于用Tesla K20s的Google服务器。(这些只是咱们基于每秒每瓦特图像处理性能的估计)。在这个对比中,Microsoft应该不考虑成本。并且坦白说,不一样于什么都配备的Tesla GPU,微软开放云端服务器并无使用Juice或Cooling。真正的评测怎么都会使用GPU夹层卡,同时还须要考虑热量,性能和价格等因素。

 

可是Waxman讨论的重点仍然是那个。“在某个时候,你真的很想要那个能给你惊喜,而且能作到更低功耗的方案。而这就是咱们的FPGA方案所擅长的方面。”

 

云端业务

 

最后要考虑的是英特尔的云端业务。这些客户如今占据了他们数据中心集团收入的25%。

 

总体来看,他们的购买量每一年增加约25%。预计从2016年开始,将来几年总体数据中心集团业务都将增加15%。让咱们作一些计算。

 

若是英特尔的计划如期实施,他的数据中心集团2016年收益将会达到166亿美圆。云端服务提供商(其中包括在The Next Platform上使用咱们的语言的云端构建者和超大规模计算者)占大约41亿美圆,其他归属于英特尔数据中心,销售数据大约为125亿美圆。所以,英特尔数据中心的业务增加在12%左右(除云端外),是云端速率的一半。英特尔须要以任何方式来知足云端的增加和明显的FPGA需求,即便它只占用Xeon容量的一点点。对于英特尔来讲是这个的选择比让GPU加速持续增加的方案要好。

 

编程方面多是阻碍FPGA被普遍采用的一个主因(不像其余加速器,具备丰富的开发生态系统,如Nvidia GPU的CUDA)。这就驱动程序员去基于C语言去作扩展设计,或使用OpenCL,而不是用过去困扰FPGA开发的低级模型。但即便在应用的过程当中有这么多里程碑,FPGA仍然不被主流青睐。咱们将会探索解决编程问题的方法和机会。

 

虽然咱们已经与这个相对较小的生态系统中的许多供应商(包括Altera和Xilinx,两个主要供应商)进行了交流,但按照FPGA长期研究员Russell Tessier所说,FPGA在更广阔的市场上大展拳脚的日子还在前面,新的发展意味着更普遍的采用。

 

他在马萨诸塞大学(他还在Altera工做,而且Mentor Graphics收购的虚拟机工程的创始人)研究了FPGA二十多年,他认为FPGA从科学项目到企业应用的形势正式缓变化。他认为其中的关键是来自于设计工具的改进,设计人员不断提升他们设计高水平。除此与外,工具vendor能够更好地引导芯片发展。他补充说,设备内的大量逻辑量意味着用户可以实现更多的功能,这使得FPGA对更多领域更普遍的吸引力。

 

Tessier说:“在过去几年里,FPGA的一个明显趋势就是这些设备更容易“程序化”。

 

Xilinx目前鼓励使用其Vivado产品的时候,用C语言进行设计。Altera还有一个已经开发的OpenCL环境。关键是两家公司都在试图建立一个环境,让用户可使用更熟悉的编程(如C和OpenCL),而没必要是使用RTL设计专家所擅长的Verilog或VHDL。虽然在过去几年里取得不错的成绩,但这仍然处于推动的阶段,不过这将有助于把更多的事情地移入主流。

 

其中一个对FPGA真正有利的因素就是若是将其和芯片搭配使用,创建一个快速的内部互联,它能解决memory和数据移动中的限制。这种优点就是吸引Intel收购Altera的主要诱因。另外,若是像英特尔和IBM这样的大公司可以积极推进FPGA的软件生态系统的建设,其应用市场将会迅速扩张。FPGA的主流化(至少如今没有GPU那么重要,)可能会更快地出现。

 

Tessier解释:“标准核心处理器集成的增长确定是关键所在。过去的障碍是语言和工具,随着这些障碍愈来愈少,为芯片供应商新的合做机会打开了一扇门。因为这些和其余“主流化”趋势出现,不断作出的改变的FPGA的应用领域将继续增加。例如,金融服务商店是第一个使用FPGA进行财务趋势和股票选择分析的用户,但使用案例正在扩大。如今有更强的设备能够解决更大的问题。

 

更普遍的应用领域

 

除此以外,FPGA经过的其余新领域发现新用途,包括DNA测序,安全性,加密和一些关键的机器学习任务。

 

固然,咱们但愿FPGA变得强大,并“进入”世界上最大的云端和超大规模数据中心,Xilnix数据中心部门副总裁Hamant Dhulla对此表示强烈赞同。他在2016年初,他告诉The Next Platform, “异构计算已经再也不是一种趋势,而是现实”,也就是在那个时候,微软推出了使用FPGA的Catapult案例(如今就不少或之后会不少),英特尔收购了Altera以及看到了更多FPGA将普遍应用在数据中心的声明。

 

从机器学习,高性能计算,数据分析等领域,FPGA在更多样化的应用领域中崭露头角。这些都与FPGA上嵌入了愈来愈多可用的on-chip存储器有关,这些都是FPGA制造商和潜在终端用户所期待的。 Dhulla表示,市场潜力足够大,让Xilinx可以调整其业务的方式。 过去几年,存储和网络主导了FPGA用户群。但将来五年内,计算端的需求将远远超过存储和网络,并都将沿着稳定的增加线继续发展。

 

在FPGA其余的热门领域(包括机器学习),它们的更像是一个带有GPU 的“协做”加速器。毫无疑问,对于许多机器学习工做负载的训练部分,GPU是主要的。所以为这里须要不少计算能力,就像HPC同样,其中power envelope tradeoff值得的。可是这些客户购买了数十或数百个GPU,而不是数十万个,庞大的加速器数目正使用在机器学习pipeline的推理部分,这就是市场所在。

 

正如咱们指出的,Nvidia正在使用两个独立的GPU(用M4来训练,更低功耗的M4插入来削减服务器)来抵消这一点,但Dhulla认为FPGA仍然可以经过采用PCIe方法下降功耗,也能够嵌入超大规模数据中心。

 

他们的SDAccel编程环境经过提供对C,C ++和OpenCL的高级接口,使其更实用,可是推进超大规模和HPC采用的真正途径是经过最终用户示例。

 

当涉及到这些早期的用户,就像为下一代的FPGA的应用搭建了舞台,Dhulla指向像Edico Genome这样的公司。Xilinx目前还与其余领域的客户合做,包括石油和自然气和金融方面的历史计算方面。早期客户将Xilinx 的FPGA应用在机器学习,图像识别和分析以及安全性方面,这能够看做他们计算加速业务发展的第一步。 

 

尽管双精度性能和整体价格不佳,FPGA的真正的大规模应用机会在于云端。由于FPGA能够提供GPU所不能提供的优点。若是FPGA供应商可以说服其最终用户,他们的加速器能够提供至关大的性能提高(在某些状况下他们会这样作)给关键的工做负载。提供一个经过带有其余加速器(例如CUDA)的complexity-wise的编程环境推动OpenCL开发,经过在云端中提供FPGA来解决价格问题。这多是一个新的但愿。

 

固然,这种但愿来源于将FPGA部署到有超密集服务器云端架构内,而不是在单机的销售上。这种模式已经在FPGA的金融服务中发生。

 

正如他们GPU加速器“伙伴”围绕深度学习进行拉动,以便迅速获得更多的用户, FPGA设备在探索一个经过解决神经网络和深度学习的问题的方式找寻入侵市场的真正的机会。

 

新的应用程序主机意味着新的市场,随着云端应用的推广消除了一些管理开销,它可能意味着更普遍的采用。FPGA供应商努力推进它在一些关键的机器学习,神经网络和搜索方面的应用。FPGA在诸如天然语言处理,医学成像,深度数据检测等领域中的超大规模上下文中变得愈来愈广泛。

 

在过去一年里,FPGA的多种应用获得曝光,特别是在深度学习和神经网络,以及图像识别和天然语言处理等领域。例如,微软使用FPGA在1,632个节点上提供2倍的搜索服务,并采用创新的高吞吐量网络来支持Altera FPGA驱动的工做。中国的搜索引擎巨头百度(也是许多深度学习和神经网络任务GPU用户)正在用FPGA执行存储控制,其天天的数据吞吐量在100TB到1PB之间。

 

使用FPGA的大规模数据中心和其余领域的应用正在吸引人们对FPGA的单精度浮点性能的更多关注。

 

虽然一些案例使用(包括百度示例),将GPU做为计算加速器和FPGA用在存储端,但Altera,Xilnix,Nallatech和IBM的研究人员在OpenPower联盟展现了FPGA在云端深度学习的光明前景。

 

能够说如今属于FPGA的一个黄金时代。