在互联网职业,跟着信息化的遍及,数据量的暴增使得人们对存储空间又有了新要求,一起,机器学习、人工智能、无人驾驶、工业仿真等范畴的兴起,使得通用CPU在处理海量核算、海量数据/图片时遇到越来越多的功用瓶颈,如并行度不高、带宽不行、时延高级。
为了应对核算多元化的需求,越来越多的场景开端引进GPU、FPGA等硬件进行加快,异构核算应运而生。异构核算(Heterogeneous CompuTIng),首要指不同类型的指令集和体系架构的核算单元组成的体系的核算方法。
20世纪80年代,异构核算技能就现已诞生了。所谓的异构,便是CPU、DSP、GPU、ASIC、协处理器、FPGA等各种核算单元、运用不同的类型指令集、不同的体系架构的核算单元,组成一个混合的体系,履行核算的特别方法,就叫做“异构核算”。
特别是在人工智能范畴,异构核算大有可为。众所周知,AI意味着对核算力的超高要求,现在以GPU为代表的异构核算已成为加快AI立异的新一代核算架构。
咱们为什么需求异构核算?
谈到核算,咱们通常会想到CPU,可是CPU归于通用核算,受制于摩尔定律,跟着核算多元化的开展,特别是运用类型的多样化,导致CPU在处理某些核算类型方面出现“无能为力”的状况。引进特定的单元让核算体系变成混合结构成为了必定,每一种不同类型的核算单元都能够履行自己最山拿手的使命。
CPU尽管运算不行,可是拿手办理和调度,比方读取数据,办理文件,人机交互等,例程多,辅助工具也许多;GPU办理更弱,运算更强,但由于是多进程并发,更合适整块数据进行流处理的算法;FPGA能办理能运算,可是开发周期长,杂乱算法开发难度大。合适流处理算法,不管是整块数据进仍是一个一个进。还有实时性来说,FPGA是最高的。
当人工智能等海量核算力诉求到来之后,GPU、FPGA合作CPU进行核算也就“瓜熟蒂落”了。
异构核算的两大派系——GPU和FPGA
咱们最了解的异构核算渠道便是“CPU+GPU”以及“CPU+FPGA” 架构。这些典型异构核算架构最大的长处是具有比传统CPU并行核算更高功率和低推迟的核算功用,尤其是业界对核算功用需求水涨船高的状况下,异构核算变得益发重要,整个核算职业生态无一不在此发力。
众所周知,比较CPU,GPU和FPGA具有太多的优势,GPU有更高的并行度、更高的单机核算峰值、更高的核算功率;而FPGA的优势则首要体现在它具有更高的每瓦功用、非规整数据核算更高的功用、更高的硬件加快功用、更低的设备互联推迟。
现在异构核算运用最多的是运用GPU来加快。干流GPU都选用了一致架构单元,凭仗强壮的可编程流处理器阵型,GPU在单精度浮点运算方面将CPU远远甩在死后。各个GPU厂家都推出了适用于通用核算的GPU,GPGPU(General Perpose GPU)。一时刻,整个业界都在议论GPU核算。
除了GPU,FPGA成为近年半导体工业的热门。FPGA作为一种高功用、低功耗的可编程芯片,能够依据客户定制来做针对性的算法规划。所以在处理海量数据的时分,FPGA 比较于CPU 和GPU,优势在于:FPGA核算功率更高,FPGA更挨近IO。
PGA不选用指令和软件,是软硬件合一的器材。对FPGA进行编程要运用硬件描绘言语,硬件描绘言语描绘的逻辑能够直接被编译为晶体管电路的组合。所以FPGA实际上直接用晶体管电路完成用户的算法,没有经过指令体系的翻译。
当然除了GPU和FPGA,ASIC也是现在核算芯片的一种挑选。ASIC是一种专用芯片,与传统的通用芯片有必定的差异,是为了某种特定的需求而专门定制的芯片。ASIC芯片的核算才能和核算功率都能够依据算法需求进行定制,所以ASIC与通用芯片比较,具有以下几个方面的优越性:体积小、功耗低、核算功用高、核算功率高、芯片出货量越大本钱越低。可是缺陷也很明显:算法是固定的,一旦算法改变就可能无法运用。
现在人工智能归于大迸发时期,很多的算法不断涌出,远没有到算法平稳期,ASIC专用芯片怎么做到习惯各种算法是个最大的问题。
不同处理器芯片在构建异构核算方面有着自己的鲜明特色。CPU、GPU范畴存在很多的开源软件和运用软件,任何新的技能首要会用CPU完成算法,因而CPU编程的资源丰富并且简单取得,开发本钱低而开发周期。FPGA的完成选用Verilog/VHDL等底层硬件描绘言语完成,需求开发者对FPGA的芯片特性有较为深化的了解,但其高并行性的特性往往能够使事务功用得到量级的提高;一起FPGA是动态可重配的,当在数据中心布置之后,能够依据事务形状来装备不同的逻辑完成不同的硬件加快功用。
ASIC芯片能够取得最优的功用,即面积运用率高、速度快、功耗低;可是AISC开发危险极大,需求有足够大的商场来确保本钱价格,并且从研发到商场的时刻周期很长,不合适例如深度学习CNN等算法正在快速迭代的范畴。
结语
当时核算多元化趋势不行阻挠,单一的CPU现已无法核算力的需求。在这种状况下,以GPU和FPGA为代表的异构核算大行其道。特别是人工智能、大数据、物联网等新技能的推进,运用类型出现多样化,其对核算的需求也出现差异化的特色。不管是“CPU+GPU”仍是“CPU+FPGA” ,都是为了更好地服务个性化的核算需求。
能够预见的是跟着核算工业的演进,异构核算具有广泛的开展空间,咱们也会看到越来越多的异构核算架构在承载运用方面发挥越来越重要的效果。