行业研究 2023年4月17日 行业报告 电子 看好/维持 FPGA和CPU、GPU有什么区别?为什么越来 东越重要? 分析师 李美贤电话:13718969817邮箱limx_yjs@dxzq.net.cn 执业证书编号:S1480521080004 兴——“FPGA五问五答”系列报告二证 券 股投资摘要: 份 有近年来,诸如TPU、MPU、DPU等的“X”PU们似乎层出不穷,市场经常会对这些新创造出的名词感到困惑:为什么会出现这么限多的单元?作为我们FPGA五问五答系列报告二,在这篇报告中,我们进一步回答投资人最常问的问题之一:FPGA和CPU、GPU公有什么区别?为什么越来越重要?我们认为,这个问题不是简单回答他们的区别就可以解决的,因此我们单拎出来解答。司 证 券我们认为,众多“X”PU出现的原因,本质上是由于CPU的算力到达瓶颈了,背后是通用计算时代的终结。从发明以来, 告 研CPU算力的提升主要依靠两大法宝:一是提高时钟频率,二是增加处理器内核数,但这些方法到现在也遇到瓶颈了,人们开究始放弃使用一个超强的CPU完成所有事情,而是对某些重复的场景,卸载到专用的加速器,以达到新一阶段的降低功耗,提报升性能的目的,这就是“XPU”等加速器兴起的原因。同时,自2010年AI兴起,AI模型的训练所需的算力是爆发式的增长, 且“加&乘”的本质使得算力要求愈发偏向高并行而不是高串行,因此CPU越来越难以胜任高算力的场景,通用计算时代终结, 数据中心走向加速器时代。未来10年,在数据中心高性能计算及AI训练中,CPU这一“主角”的重要性下降,而以往的“配角们”,即GPU、FPGA、TPU、DPU等的加速器的重要性在上升。 FPGA相比CPU的巨大优势在于确定性的低时延,这是架构差异造成的。CPU的利用率越高,处理时延便越大,而FPGA无论利用率大小,其处理时延是稳定的。在汽车和工业这些需要确定低时延的场景,FPGA具有非常大的优势。此外,FPGA相比CPU,具有更高的灵活性。 FPGA相比GPU的优势在于更低的功耗和时延。GPU无法很好地利用片上内存,需要频繁读取片外的DRAM,因此功耗非常高。FPGA可以灵活运用片上存储,因此功耗远低于GPU。FPGA“无批次(Batch-less)“的架构,使其在AI推理中相比GPU具有非常强的时延优势。此外,GPU的接口单一,而FPGA在接口灵活性上具有无可比拟的优势,特别适合工业场景。 为什么FPGA是战略芯片?我们认为,未来科技发展有两个领域处于战略地位:一是AI,二是太空。AI代表人类更高级别的 生产力工具,而太空是可供人类开发探索的广阔而未知领域。FPGA凭借其架构带来的时延和功耗优势,在AI推理中具有非常大的优势。同样,FPGA独特的优势使其在航空航天领域有非常广泛的应用。 目前,我们看到太空活动发生新变化,背后是太空不断增长的算力需求。变化1:地球观测、探火活动在增加;变化2:寻求扩大AI在太空的应用,以及宽带卫星通信的快速增长,提高了算力要求;变化3:航天级器件的代际差在缩小,处理能力越 来越接近目前最高水平。当今全球地缘政治紧张的背景下,各国自有卫星星座需求激增,太空活动进入新活跃期。 FPGA在航天领域为什么更具有优势?主要有两点原因:1)FPGA可以降低项目的时间和金钱成本。航空航天存在着小批量多品种的应用,本质是一个长尾的市场,能够适配的ASSP较少,而如果专门设计一颗ASIC成本则会非常高,时间也会变 得非常长,由此造成的时间成本不是线性的。FPGA“万能”的特点,可以节省ASIC的NRE成本,设计周期也大幅缩短,避免重复的可靠性认证,加快项目进展;2)FPGA动态可重构的特点可以降低在轨错误。太空项目本质是风险厌恶的,一旦发生错误,可能导致数亿美元甚至生命的损失。航天级的FPGA可以通过定期刷新回读、动态重构的方式,避免或者减轻宇宙射线对自身造成的破坏,是其它器件所无法做到的。 风险提示:下游需求不及预期,中美贸易战超预期。 P2 东兴证券深度报告 FPGA和CPU、GPU有什么区别?为什么越来越重要?——“FPGA五问五答”系列报告二 目录 1.为什么会有这么多的“X”PU?——“配角们”的时代3 2.相比CPU,FPGA的并行性和灵活性更高,能提供确定性的时延5 3.相比GPU,FPGA的时延和功耗更有优势8 4.FPGA的战略意义:AI&Space11 风险提示14 插图目录 图1:CPU面临算力瓶颈的原因3 图2:2010年兴起以来,AI模型对算力的要求呈现爆发式增长,速度远超摩尔定律4 图3:MLP网络本质是并行的乘法和累加,非常适合在FPGA中实现4 图4:微软的Azure使用FPGA加速Bing搜索,网络吞吐量大幅上升,时延下降了80%5 图5:FPGA能完成SIMD、MISD和MIMD的处理,特别适合并行计算6 图6:将CPU的核心简化以加快执行速度,是GPU设计的思想6 图7:FPGA的时延远低于CPU,是因为其架构不需要在获取指令、编译指令、分支预测等方面花费时间7 图8:FPGA确定性的低时延,使其在工业和汽车上具有非常大的优势7 图9:FPGA可以灵活利用片上内存,不需要像CUDA一样从DRAM来回读写数据8 图10:FPGA仅用200MHz,就可以实现比CPU快43倍、比GPU快3倍的效果,而且功耗仅为GPU的20%9 图11:FPGA的时延低于GPU,无批次的结构,使其在AI推理特别有优势10 图12:FPGA更适合AI推理,在低时延、非标准化的场景非常有优势10 图13:近5年来,在地缘政治紧张的态势下,中美两国太空发射次数迅速增长11 图14:美国太空活动的新变化,反映出航空航天领域不断增长的算力需求12 图15:FPGA在航天项目的参与度非常高12 P3 东兴证券深度报告 FPGA和CPU、GPU有什么区别?为什么越来越重要?——“FPGA五问五答”系列报告二 1.为什么会有这么多的“X”PU?——“配角们”的时代 近年来,诸如TPU、MPU、DPU等的”X”PU们似乎层出不穷,市场经常会对这些新创造出的名词感到困惑:为什么会出现这么多的单元?本质上是由于CPU的算力到达瓶颈了,背后是通用计算时代的终结。从发明以来,CPU算力的提升主要依靠两大法宝:一是提高时钟频率,但时钟频率提升面临瓶颈了。因为越高的时钟频率,意味着每秒可执行的运算次数越高,但随着电压下降到0.6v的“底限”,Dennard缩放定律(Dennard Scaling)在05年开始崩溃,再提高时钟频率就会使得功耗以指数级别增长,因此我们在05年后遇到了频率墙;二是增加处理器内核数,换取频率降低带来的功耗预算,但由于核间调度同样需要时延和功耗花销,很快,核数的增长又遇到了瓶颈,由于数据中心的散热技术约束了功率增长,导致处理器上许多核无法同时工作,这就是暗硅效应。因此,人们开始放弃使用一个超强的CPU完成所有事情,而是对某些重复的场景,卸载到专用的加速器,以达到新一阶段的降低功耗,提升性能的目的,这就是“XPU”等加速器兴起的原因。 图1:CPU面临算力瓶颈的原因 资料来源:Intel,PrincetonUniversity,东兴证券研究所绘制 同时,自2010年AI兴起,AI模型的训练所需的算力是爆发式的增长,且“加&乘”的本质使得算力要求愈发偏向高并行而不是高串行。CPU越来越难以胜任高算力的场景,,将需要大规模、高密度的计算任务卸载到在某一方向做了优化的专用处理器,就产生了这些不同的“X”PU,他们之间区别在于在某些场景的专用性。 P4 东兴证券深度报告 FPGA和CPU、GPU有什么区别?为什么越来越重要?——“FPGA五问五答”系列报告二 图2:2010年兴起以来,AI模型对算力的要求呈现爆发式增长,速度远超摩尔定律 资料来源:OpenAI,东兴证券研究所绘制 通用计算时代终结,数据中心走向加速器时代。未来10年,FPGA的重要性不断上升。随着CPU算力逐渐达到瓶颈,越来越无法满足神经网络指数级增长的算力需求。在数据中心这一人类算力需求最高的设施中, 算力发展的方向愈发转向专用性,以寻求更高的性能、更低的能耗和成本。我们看到,未来10年,在数据中心高性能计算及AI训练中,CPU这一“主角”的重要性下降,而以往的“配角们”,即GPU、FPGA、TPU、DPU等的加速器的重要性在上升。 图3:MLP网络本质是并行的乘法和累加,非常适合在FPGA中实现 资料来源:FPGANeurocomputers,东兴证券研究所 P5 东兴证券深度报告 FPGA和CPU、GPU有什么区别?为什么越来越重要?——“FPGA五问五答”系列报告二 因此,从2017年开始,越来越多的大型公有云开始正式使用FPGA、GPU作为加速器,以获得数百倍于 CPU的性能提升。例如,微软的Catapult项目就使用了FPGA以加速Bing的搜索速度,AWS的F1Instances 将FPGA的算力作为服务提供给客户,阿里云使用了FPGA为其“双十一”进行了零售交易系统的加速。 图4:微软的Azure使用FPGA加速Bing搜索,网络吞吐量大幅上升,时延下降了80% 资料来源:微软,东兴证券研究所 2.相比CPU,FPGA的并行性和灵活性更高,能提供确定性的时延 处理器负责对外界输入的数据进行处理,CPU、GPU、FPGA等处理器的区别在于处理流程,CPU的处理流程使其擅长串行计算,以复杂的控制为特征,GPU和FPGA的则更擅长大规模的并行计算: CPU是冯诺依曼架构下的处理器,遵循“Fetch(取指)-Decode(译码)-Execute(执行)-MemoryAccess(访存)-WriteBack(写回)”的处理流程,数据要先通过控制单元获取存在RAM中的指令,再解码得知用户需要对数据做何种运算,然后再将数据送到ALU进行对应的处理,结束运算后存回RAM, 再获取下一个指令。这一处理流程,即SISD(SingleInstructionSingleData),决定了CPU擅长决策和控制,但在多数据处理任务中效率较低。现代的CPU可以同时做到SISD和SIMD的处理,但在并 行规模上依然不如GPU和FPGA。 GPU遵循的是SIMD(SingleInstructionMultipleData)的处理方式,通过在多个线程上运行统一的处理方式,即Kernel,来达到将CPU发送过来的数据做高并行处理的目的。由于去除了现代CPU中分支预测、乱序执行、存储预取等模块,也减少了许多cache的空间,GPU中经过简化后的“核”能实现非常大规模的并行运算,并且节省了大部分CPU需要花费在分支预测、重排的时间,但缺点是需要数据适应GPU的处理框架,例如需要数据做批次对准,因此依然无法达到最大的实时性。 FPGA则是由用户自定义处理流程,可以直接决定片上的CLB是如何相连的,数十万个CLB可以独立运算,即SIMD、MISD(MultipleInstructionSingleData)和MIMD(MultipleInstructionMultipleData)的处理都可以在FPGA实现,由于处理流程已经映射到硬件上,不需要再额外花费时间获取和编译指令,同样不需要像CPU一样花费时间在乱序执行等步骤,这使得FPGA在数据处理中具有非常高的实时性。 P6 东兴证券深度报告 FPGA和CPU、GPU有什么区别?为什么越来越重要?——“FPGA五问五答”系列报告二 图5:FPGA能完成SIMD、MISD和MIMD的处理,特别适合并行计算 资料来源:Flynn,东兴证券研究所绘制 因此,GPU和FPGA都是作为CPU的任务卸载单元,在并行计算的效率都高于CPU。在数据中心高性能计算的场景中,GPU和FPGA往往以分立的加速卡形式存在,即CPU将部分密集计算的任务“卸载”到 GPU或者FPGA,这些“器件”通过PCIe和CPU互联,以完