微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > FPGA的过去,现在,未来

FPGA的过去,现在,未来

时间:10-02 整理:3721RD 点击:
自Xilinx在1984年创造出FPGA以来,这种可编程逻辑器件凭借性能、上市时间、成本、稳定性和长期维护方面的优势,在通信、医疗、工控和安防等领域占有一席之地,在过去几年也有极高的增长率。而进入了最近两年,由于云计算、高性能计算和人工智能的繁荣,拥有先天优势的FPGA的关注度更是到达了前所未有的高度。本文从基础出发谈及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来处理他们的一些工作负载。

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

深度学习加持,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作为未来强大的计算加速器,不但影响主要企业的决策和市场趋势,而且加速企业中的工作负载,促进超大规模数据中心的内部搜索,以及提高高性能计算模拟的地位。

在跨越2016年之际,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更是畅谈了驱动英特尔收购Altera和插足可编程计算设备的原因。 英特尔显然希望让FPGA成为主流,即使这可能会在数据中心中蚕食Xeon的某些业务。 (我们认为,因为英特尔认为这种自相残杀是不可避免的,控制它的最好方法是使FPGA成为Xeon阵容的一部分。)

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

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

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

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

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


跨越FPGA的障碍
虽然每个人都抱怨编程FPGA有多难,但英特尔并不为此退缩。虽然没有透露太多相关计划的情况下,Waxman提出了一些方法让FPGA更容易被运用和理解。
“我们看到一条促进机器学习,加速存储加密,加速网络功能的捷径”,Waxman强调。这是基于我们对这些工作负载的深入了解,所以才让我们看到了这样的机会。

但现在FPGA还需要面对一些困难,因为现在人们是写RTL的。我们是一家写RTL的公司,所以我们可以解决这个问题。首先我们使它运作,然后我们可以降低进入的门槛。第三步是真正的规模经济学,而这全部是靠集成和制造的实力。


编程问题首当其冲

虽然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方案所擅长的方面。”

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

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

其中一个对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制造商和潜在终端用户所期待的。

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

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

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

尽管双精度性能和总体价格不佳,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的一个黄金时代。

学习交流 群195723435

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top