FPGA如何成为新时代的“宠”儿,FPGA技术未来将会独领风骚

电子说

1.2w人已加入

描述

高性能运算的需求逐渐高涨

随着人工智能和深度学习技术的不断升级,对数据存储和数据处理的要求越来越大。据麦肯锡的Nicolaus Henke估计,如今90%的可访问数据两年前还不存在,而IDC预测,到2020年,全球大数据投资将超过2030亿美元,所有这一切都对下一代计算芯片提出了指数级增长的要求。

英特尔一直以来主导的摩尔定律逐渐很难再持续,因为Dennard Scaling规律(单位面积晶体管数不断增加而功耗保持不变)逐渐失灵了,晶体管体积的缩小并没有带来速度的指数增长。所以,未来CPU和GPU已经无法继续满足新领域对数据存储和数据处理的要求,人们不断探索新的领域来满足逐渐增加的数据处理的需求。

FPGA如何成为新时代的“宠”儿

最初FPGA是用来做纯逻辑设计的,一开始用来替换简单的数字电路,由于其设计的灵活性,逐渐可以做接口通信。

后来随着通信行业的蓬勃发展,FPGA由于其并行执行特性,收到了通信行业的青睐,逐渐成为信号处理的宠儿,其并行执行特性和灵活升级的优势,将ASIC和DSP都竞争下去了。

再后来,软件工程师也对这个一直以来处于硬件阵营的家伙感兴趣了,所以Xilinx为了进一步蚕食CPU的市场,打起来软件工程师的注意,也就是目前流行的HLS,软硬件协同设计等新概念。

随着人工智能和深度学习对运算要求越来越高,人们逐渐认识到并行处理、低延时、低功耗和可重配置的重要性,FPGA本身是一张白纸,蓝图全靠工程师来设计,也正是因为这种无限制,才造就了其功能的无限强大。所以,新时代下,FPGA逐渐成为高性能运算的“宠儿”。

FPGA在高性能运算中的真正优势

FPGA相比于CPU,最大的优点在于速度,简单来讲,FPGA是靠控制每个时钟(Cycle)来驱动信号与寄存器传输的,也就是说可以通过时钟来精确控制任务。而且,FPGA是并行执行的,每个Cycle可以同时执行上百万个数据流任务,所以,和CPU相比,FPGA是通过较慢的时钟频率,同时并行执行数据流,而CPU虽然主频高,但是并行执行能力差,综合起来对于同样的代码,应用程序在FPGA上的运行速度可能比在传统CPU上运行要快100倍。如图所示。

人工智能

FPGA中包含上千万的可编程逻辑资源,具有并行性和并发性的优点。在设计时,工程师可以利用这种并行体系结构,将设计分解为结构良好的数据执行流。

例如,一帧图像,如果按照传统处理方式,可以按像素来处理整个图像。但是当并行处理时,它被分解成不同的碎片,由不同的进程同时进行处理,然后再拼凑回一起。过程虽然变复杂了,但是速度快了许多,要求输入数据必须以最优的方式分解,并有效地分配给每个进程,然后将处理后的数据收集并重新组装,从而大大提高了效率。

在一个普通的CPU中,这一过程涉及到数据从内存中存入和取出,以及使进程对当前内存状态保持一致的复杂协议。即使是最大的英特尔CPU也只有18个内核。相比之下,在FPGA中,数据流可以被设计,因此它永远不会离开芯片。数以万计的并发进程可以同时存在,并且处理的时间得到了优化,因此吞吐量始终是最大的。

通过FPGA实现还有给优势就是成本。使用FPGA可以节省大量成本,因为提高速度的同时减少了硬件需求,一个FPGA可以执行许多服务器的任务。

最后,FPGA具有强大的新一代互联互通和增强的灵活性,可以利用最新的技术发展在器件上重新编程。一旦启动并运行,FPGA就可以随时改变以满足不断变化的业务需求。

FPGA技术面临的挑战

FPGA技术面临的最大挑战就是其使用的复杂性,FPGA的编程一直以来定位于硬件描述编程,也就是电路设计,而不是简单的编程。

需要硬件工程师能够用复杂、底层的硬件定义语言如Verilog、VHDL进行编程。

硬件工程是一门高度专业化的技能,需要多年的经验才能将知识付诸实践,硬件配置所需的专业芯片设计技能使FPGA成本一直很高,这也意味着创新是有限。

所以,一直以来FPGA技术作为一种高门槛的设计技术,只有有实力的大型公司才有实力采用FPGA来设计,只有一些能够创造高额利润的行业才会采用FPGA技术,如军品、通信、视频等领域。

FPGA技术未来将会独领风骚

虽然FPGA在应用方面门槛较高,但最近人们正在稳步打破这种障碍。例如亚马逊网络服务集成FPGA 的F1实例,旨在构建定制的加速器处理计算密集型问题,外界对其发布产生了格外积极的响应。

FPGA厂商和平台提供商也可以使用不同语言进行编程,如OpenCL,并且FPGA的发展逐渐让软件工程师越来越容易在内嵌的基于云的环境下对FPGA进行编程。这可以使用更方便的语言,如GO,它对于来自不同背景和语言的用户来说更容易,更高效。微软已经表示,未来它的Azure云服务也将让开发者能够使用FPGA。

人工智能

过去,FPGA只用来处理大量的数据,但价值回报已经足够高,足以证明投资的深度,或者用于非常复杂和具有挑战性的问题,例如军事或金融部门的问题。但随着FPGA变得越来越容易访问,该技术适用于任何速度和成本都很重要的项目。

通过FPGA进行的并行计算通过在单个服务器上同时运行大量计算过程,加快了对海量数据的处理和分析工作,意味着FPGA可用于图像和视频处理、在线语音识别、实时数据分析、广告技术以及软件定义网络(SDN)。

云FPGA正被用于许多研究方向。安全部门正在用它研究加密算法加速,电信公司用它研究网络和安全,航空公司用它处理卫星数据和应用机器学习算法,金融服务用它进行硬件加速和确定衍生产品组合的信用风险。

虽然这些使用案例令人兴奋,但它们仅仅是FPGA能力的冰山一角,发掘这项技术的全部潜力还需要时间。虽然在硬件世界中新产品层出不穷,但这些产品的创新往往是渐进式的。但是,随着平台的出现,并行设计和创新在硬件开发中成为可能,对所有企业,无论大或小,FPGA的使用将变得越来越便宜和现实,也会得到越来越多的应用。

业界对它的使用仍然停留在起步阶段,但随着使用量的增加,FPGA将让每个企业,无论是单人初创企业还是已经成立的跨国企业,都可以利用高性能并行计算来持续推动技术创新。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分