高性能运算的需求逐渐高涨
随着人工智能和深度学习技术的不断升级,对数据存储和数据处理的要求越来越大。据麦肯锡的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将让每个企业,无论是单人初创企业还是已经成立的跨国企业,都可以利用高性能并行计算来持续推动技术创新。
性价比高的OPPO A93上线,大内存、高刷均兼备
华为继续从美国厂商购买组件
五大要素驱动云创新助推全球社会经济发展
奥林巴斯亮相第七届国际核电运维大会,为核电安全保驾护航
荣耀20青春版与荣耀20i 得按您的需求来选择
FPGA如何成为新时代的“宠”儿,FPGA技术未来将会独领风骚
如何使用Python Turtle进行编码
什么人不适合当程序员
AI技术怎样帮助实现因材施教
金属膜电容作用以及优点
贸泽开售采用D2PAK-7L 封装的工业用 UnitedSiC 750V UJ4C/SC SiC FET
ProgPoW算法替代以太坊节点将分裂以太坊区块链
面向军事的COM-HPC:机遇与挑战
异丙醇(IPA)的解吸特性和 IPA 蒸汽干燥硅晶片中的水分
新能源CCS替代传统线束的解决方案
MAX7033集成低功耗CMOS超外差接收机
面向HarmonyOS开发者的HarmonyOS 3.0 Beta介绍
什么是插入式无线传感器?作用是什么?
果粉想要的功能iOS10.3曝光
1-7月东风汽车新能源汽车销量同比增长206.2%