FPGA和CPU、GPU有什么区别?为什么越来越重要?

1.为什么会有这么多的XPU?——“配角们”的时代

近年来,诸如 TPU、MPU、DPU等的”X”PU们似乎层出不穷,市场经常会对这些新创造出的名词感到困惑:为什么会出现这么多的单元?本质上是由于CPU的算力到达瓶颈了,背后是通用计算时代的终结。从发明以来,CPU算力的提升主要依靠两大法宝:一是提高时钟频率,但时钟频率提升面临瓶颈了。因为越高的时钟频率,意味着每秒可执行的运算次数越高,但随着电压下降到0.6v的“底限”,Dennard缩放定律(DennardScaling)在05年开始崩溃,再提高时钟频率就会使得功耗以指数级别增长,因此我们在05年后遇到了频率墙;二是增加处理器内核数,换取频率降低带来的功耗预算,但由于核间调度同样需要时延和功耗花销,很快,核数的增长又遇到了瓶颈,由于数据中心的散热技术约束了功率增长,导致处理器上许多核无法同时工作,这就是暗硅效应。 因此,人们开始放弃使用一个超强的CPU完成所有事情,而是对某些重复的场景,卸载到专用的加速器,以达到新一阶段的降低功耗,提升性能的目的,这就是“XPU”等加速器兴起的原因。

1CPU面临算力瓶颈的原因


同时,自2010AI兴起,AI模型的训练所需的算力是爆发式的增长,且“加&乘”的本质使得算力要求愈发偏向高并行而不是高串行。CPU越来越难以胜任高算力的场景,,将需要大规模、高密度的计算任务卸载到在某一方向做了优化的专用处理器,就产生了这些不同的“X”PU,他们之间区别在于在某些场景的专用性。


22010年兴起以来,AI模型对算力的要求呈现爆发式增长,速度远超摩尔定律


通用计算时代终结,数据中心走向加速器时代。未来10年,FPGA的重要性不断上升。随着CPU算力逐渐

达到瓶颈,越来越无法满足神经网络指数级增长的算力需求。在数据中心这一人类算力需求最高的设施中,

算力发展的方向愈发转向专用性,以寻求更高的性能、更低的能耗和成本。我们看到,未来10年,在数据

中心高性能计算及AI训练中,CPU这一“主角”的重要性下降,而以往的“配角们”,即GPU、FPGA、

TPU、DPU等的加速器的重要性在上升。


3MLP网络本质是并行的乘法和累加,非常适合在FPGA中实现

因此,从2017年开始,越来越多的大型公有云开始正式使用FPGAGPU作为加速器,以获得数百倍于CPU的性能提升。例如,微软的Catapult项目就使用了FPGA以加速Bing的搜索速度,AWS的F1Instances 将FPGA的算力作为服务提供给客户,阿里云使用了FPGA为其“双十一”进行了零售交易系统的加速。

4:微软的Azure使用FPGA加速Bing搜索,网络吞吐量大幅上升,时延下降了 80%



2.相比CPUFPGA的并行性和灵活性更高,能提供确定性的时延

处理器负责对外界输入的数据进行处理,CPUGPUFPGA等处理器的区别在于处理流程,CPU的处理流程使其擅长串行计算,以复杂的控制为特征,GPU和FPGA的则更擅长大规模的并行计算:

CPU是冯诺依曼架构下的处理器,遵循“Fetch (取指)-Decode (译码)-Execute (执行)-MemoryAccess (访存)-Write Back (写回)”的处理流程,数据要先通过控制单元获取存在RAM中的指令, 再解码得知用户需要对数据做何种运算,然后再将数据送到ALU进行对应的处理,结束运算后存回RAM,再获取下一个指令。这一处理流程,即SISD (SingleInstruction Single Data),决定了CPU擅长决策和控制,但在多数据处理任务中效率较低。现代的CPU可以同时做到SISD和SIMD的处理,但在并行规模上依然不如GPU和FPGA。

GPU遵循的是SIMD (SingleInstructionMultipleData)的处理方式,通过在多个线程上运行统一的处

理方式,即Kernel,来达到将CPU发送过来的数据做高并行处理的目的。由于去除了现代CPU中分支预测、乱序执行、存储预取等模块,也减少了许多cache的空间,GPU中经过简化后的“核”能实现非常大规模的并行运算,并且节省了大部分 CPU需要花费在分支预测、重排的时间,但缺点是需要数据适应GPU的处理框架,例如需要数据做批次对准,因此依然无法达到最大的实时性。

FPGA则是由用户自定义处理流程,可以直接决定片上的CLB是如何相连的,数十万个CLB可以独立

运算,即SIMD、MISD(MultipleInstructionSingleData)和MIMD(MultipleInstruction Multiple Data)的处理都可以在FPGA实现,由于处理流程已经映射到硬件上,不需要再额外花费时间获取和编译指令,同样不需要像CPU一样花费时间在乱序执行等步骤,这使得FPGA在数据处理中具有非常高的实时性。

5FPGA能完成SIMDMISDMIMD的处理,特别适合并行计算


因此,GPUFPGA都是作为CPU的任务卸载单元,在并行计算的效率都高于CPU。在数据中心高性能计算的场景中,GPU和FPGA往往以分立的加速卡形式存在,即CPU将部分密集计算的任务“卸载”到GPU或者FPGA,这些“器件”通过PCIe和CPU互联,以完成高并行的计算加速。

6:将CPU的核心简化以加快执行速度,是GPU设计的思想

FPGA相比CPU的巨大优势在于确定性的低时延,这是架构差异造成的。CPU的时延是不确定的,当利用率升高时,CPU需要处理更多的任务,这就需要CPU进行任务调度重排,因此造成处理时延往往是不可控制地变大,即任务越多算得越慢。而 FPGA的时延之所以是确定的,是因为在布局布线阶段,设计工具就已经确保能够让最差路径满足时序要求,不需要再花费时间在获取指令、解码指令等通用处理器需要的步骤,也避免了随之而来的重排执行顺序、指令调度等待的问题。

7FPGA的时延远低于CPU,是因为其架构不需要在获取指令、编译指令、分支预测等方面花费时间


CPU的利用率越高,处理时延便越大,而FPGA无论利用率大小,其处理时延是稳定的。FPGA可以提供

纳秒级的处理时延,而CPU通常在毫秒级。例如,在自动驾驶系统中,将摄像头的数据直接传输到FPGA

的MIPI接口中,其最好和最差情况下的处理时延差距仅为22ns,而在有CPU参与数据传输的情况下,这

一差距在23ms以上,相当于CPU在繁忙情况下时延翻倍。此外,当利用率上升到90%时,CPU的处理时

8FPGA确定性的低时延,使其在工业和汽车上具有非常大的优势

间长达46ms,对于以100km/h的速度行驶的汽车,46ms意味着摄像头从看到障碍物,到汽车系统采取制动措施时,车子已经开出了至少1.28 米的距离,而FPGA仅有3米,即可以等同为瞬间就能反应,省去的这1.28m的距离,就可能减少许多碰撞事故的发生概率。因此, 在汽车和工业这些需要确定低时延的场景,FPGA具有非常大的优势。

FPGA相比CPU,具有更高的灵活性。在工业现场往往有许多需要细微调整,例如, 根据传送带磨损情况对马达进行细微的控制调整,为设备更新新的协议等等,CPU往往难以做到,由于 FPGA是动态可重构的,可以在使用现场调整,随时适应新的变化。此外,FPGA还可以同时融合工业现场的PLC、网关、传感器、马达、HMI等设备,实现不同设备的实时控制和通信。


3.相比GPUFPGA的时延和功耗更有优势

GPU的功耗非常高,因为其无法很好地利用片上内存,需要频繁读取片外的DRAM。尽管在吞吐量上的优势使得GPU几乎垄断了深度学习领域,但 GPU依赖片外存储的处理流程,使其在功耗和时延上对比FPGA有非常大的弱势。以英伟达的 GPU为例,使用 CUDA进行训练,主要有四个步骤:1)将数据从CPU的外部存储(DRAM)复制到GPU的存储中;2)CPU加载(Lauch)需要进行的计算,即 Kernel到GPU中;3)GPU执行CPU发送过来的指令;4)GPU将结果最终存回CPU的DRAM中,再进行下一个Kernel的计算。因此,CUDA涉及了两次存储读写。而FPGA可以将第一个Kernel的结果缓存到片上星罗棋布的BRAM中,完全可以不需要读写外部存储就能完成整个算法。由于读取DRAM所消耗的能量是SRAM的100倍以上,是加法的6400倍,GPU这一需要频繁读取DRAM的处理,使其功耗远高于FPGA,而且DRAM的带宽往往成为了性能的瓶颈。一片FPGA的典型功耗通常是30W~ 50W,而单片GPU功耗就可以高达

9FPGA可以灵活利用片上内存,不需要像CUDA一样从DRAM来回读写数据


250W~ 400W,使得单机柜的功率密度可能高达28kw,这对数据中心的现有的散热造成了巨大压力,往往需要专门更改制冷和供电系统,以适应单柜 15kw以上的功率密度,而 FPGA数十瓦的功耗可以和现有数据中心散热兼容,不需要额外改造。

FPGA可以灵活运用片上存储,因此功耗远低于GPU。FPGA完全可以不需要读DRAM,整个算法在片上完成。例如, 深鉴科技利用FPGA做出了ESE的模型并在不同的处理器(CPU/GPU/FPGA)上运行,发现FPGA上训练时长最短,能耗最小。在能耗上,CPUDense 耗能11W、CPUSparse 耗能38W、GPUDense 耗能202W,这是耗能最大的一种情况、GPUSpare 耗能136W,相比之下FPGA仅需41W;在训练时延上,FPGA用时82.7μs,远小于CPU的6017.3μs,也仅为GPU训练时长的三分之一。

10FPGA仅用200MHz,就可以实现比CPU43倍、比GPU3倍的效果,而且功耗仅为GPU20%


FPGA无批次(Batch-less)“的架构,使其在 AI推理中具有非常强的时延优势。受限于网络条件和时延,许多决策来不及上传云端,只能本地执行,这就是边缘计算。边缘计算通常面临时延和功耗两大约束。GPU需要等待批次的特点,使其时延要高于FPGA。GPU通常需要将不同的训练样本划分成固定大小的“Batch(批次)”,为了最大化达到并行性,需要将数个Batch都集齐,再统一进行处理,每个Batch的数据一般有近百个。这使得GPU在训练大型样本时非常有优势,但在做涉及小样本的推理时,这一优点成为了劣势,因为推理通常只需要很小的输入数据,而GPU的架构额外引入了时延。FPGA的架构是无批次(Batch-less)的,可以根据数据特点确定处理方式,不需要像GPU一样将输入的数据划分成Batch,因此可以做到最低的时延,使得FPGA在进行AI推理时具有非常大的优势。

FPGA在接口灵活性上具有无可比拟的优势,特别适合工业场景。工业实质是高度分散的小批量场景,存在大量的非标准的接口,例如,工业的图像传感器的LVDS编码格式往往没有统一的标准,工程师很难找到对应的专用芯片去对接。GPU的接口单一,只有 PCIe一种,而FPGA的可编程性使其能与任何的器件进行通信,能够适应任何的标准和非标准的接口,这种硬件可编程带来的高度灵活性是FPGA在工业场景的优势。

目前,阻碍FPGA市场进一步扩大的原因是其较高的使用门槛,正通过HLS等工具解决。CPU使用人员更多是软件工程师,语言基本为C/C++等编程语言,GPU亦有CUDA等非常完善的开发框架,而 FPGA的使用者更多像是硬件工程师,需要自行定义电路功能、进行时序优化等步骤,语言基本为Verilog/VHDL 这两种

11FPGA的时延低于GPU,无批次的结构,使其在AI推理特别有优势

硬件描述语言,需要使用者精通软件和硬件,难度因此更大。 因此,为了降低使用门槛,FPGA学界和业内合作推出了HLS (High-levelSynthesis,高层次综合)的工具,可以通过C/C++语言直接生成能供FPGA使用的RTL网表,跳过中间的硬件描述环节,让工程师更加专注AI算法的开发和迭代。

12FPGA更适合AI推理,在低时延、非标准化的场景非常有优势


4.FPGA的战略意义:AI&Space

为什么FPGA是战略芯片?我们认为,未来科技发展有两个领域处于战略地位:一是 AI,二是太空。AI代表人类更高级别的生产力工具,而太空是可供人类开发探索的广阔而未知领域。FPGA凭借其架构带来的时延和功耗优势,在AI推理中具有非常大的优势。同样, FPGA独特的优势使其在航空航天领域有非常广泛的应用。

全球地缘政治紧张下,各国自有卫星星座需求激增,太空活动进入新活跃期。上一个太空发射活跃期在1957-1977 年,美苏在太空领域展开激烈竞争,两国年平均发射活动均超40次。随着美苏太空竞赛结束,20年间太空发射数大幅回落。而在近年地缘政治紧张态势下,各国部署自有通信卫星星座需求激增。中美两国在近3年的太空发射活动剧升,仅去年全年,中美发射次数合计占全球76%。由于频段和低轨空间是不可再生资源,各国的低轨卫星计划实际承担“占频保轨”的任务。随着大批的低轨卫星计划在未来4-5年内完成发射组网,太空活动实际已进入新的活跃期。

13:近5年来,在地缘政治紧张的态势下,中美两国太空发射次数迅速增长

目前,我们看到太空活动发生了三大新变化,背后反映的是太空不断增长的算力需求。美国 JPL (JetPropulsion Laboratory,喷气推进实验室)是美国国家航空航天局(NASA)负责无人太空探测的机构,我们统计了JPL 目前的所有任务目标,发现了以下三大变化:1)地球观测、探火活动在增加。以地球为目标的太空活动占比35%,目的主要有气象和环境观测,构建与外太空交流的深太空网络(DSN),利用合成孔径雷达对地面进行高精度观测等,主要是出于军事及科研目的;而火星相关的活动占比高达15%,是因为火星是与地球最相似的行星,了解火星表面的岩石、气候,目的是了解火星在过去是否有生命存在,可以为人类探索和开发火星做准备。

2)寻求扩大AI太空的应用,以及宽带卫星通信的快速增长,提高了算力要求。以观测卫星为例,地球60%

14:美国太空活动的新变化,反映出航空航天领域不断增长的算力需求

以上的面积常年被云层覆盖,只有 10%的区域是晴空无云的状态,以往观察卫星都是不加甄别,将拍摄的照片全部回传地面处理。如今,在观察卫星上使用 AI识别出含有云层的照片并丢弃,只回传清晰的照片,可以节省本就有限的星地通信的带宽。除此之外,宽带卫星通信要求卫星具备星上处理和转发数据的能力,以降低时延,减少对地面站的依赖;

3)航天级器件的代际差在缩小,处理能力越来越接近目前最高水平。过去,航天级FPGA的推出时间一般晚于对应商业级器件3-5年,长期落后于当时最领先的器件1-2个代际,10-15年前的FPGA依然在航天器上广泛使用。然而,近两年来,我们看到FPGA 龙头赛灵思加快了宇航级FPGA 的推出。目前,赛灵思最先进的FPGA产品是19年推出的Versal(7nm),而赛灵思在21年初就推出了宇航级的VersalXQR,做到了和商业级同代际。VersalXQR不仅逻辑单元数相比往代大幅增加,还嵌入了AI处理单元、高速的收发器等,大幅提高了低轨卫星的处理能力和反应时间。

15FPGA在航天项目的参与度非常高


#AI#GPU#FPGA#CPU#Niusousou


展开阅读全文

页面更新:2024-03-29

标签:火星   功耗   数据中心   指令   架构   太空   处理器   场景   优势   数据

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top