版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
未来GPU、FPGA和SoC的重要性CathalMurphy/YaoFu为了满足不断攀升的数据处理需求,未来的系统需在运算能力上进行改善。传统解决方案(如x86处理器)再也无法以高效率、低成本的方式提供所需运算带宽,因此系统设计人员须寻找新的运算平台。越来越多系统设计人员将现场可编程门阵列(FPGA)和绘图处理器(GPU)视为能够满足未来需求的运算平台。本文将分析未来GPU、FPGA和系统单芯片(SoC)组件,能为新时代提供哪些必要的运算效率和弹性。云端数据中心和自动驾驶汽车等未来系统,需在运算能力上进行改善,以支持不断增加的工作负载,以及不断演进的底层算法[1]。例如,大数据分析、机器学习、视觉处理、基因体学以及先进驾驶辅助系统(ADAS)的传感器融合工作负载都超出现有系统(如x86系统)所能提供的效率与成本效益。系统架构师正在寻找能满足需求的新运算平台,且该平台需要有足够的弹性,以便整合至现有架构中,并支持各种工作负载及不断演进的算法。此外,许多这类系统还须提供确定性低延迟效能,以支持如自动驾驶汽车在实时系统上所需的快速反应时间。因GPU在机器学习训练的高效能运算(HPC)领域获得的成果,因此GPU厂商非常积极地将GPU定位为新时代运算平台的最佳选择。在此过程中,GPU厂商已修改其架构来满足机器学习推论的工作负载。然而,GPU厂商一直忽视GPU基本架构的局限性。而这些局限会严重影响GPU以高效率、低成本方式提供必要的系统级运算效能之能力,例如,在云端数据中心系统中,工作负载需求在一天内会发生很大的变化,且这些工作负载的底层算法也正快速地演进。GPU架构的局限性会阻碍很多现今与未来的工作负载映像到GPU,导致硬件闲置或低效率。本文稍后提及的章节,将针对这些局限进行更详细的介绍。相反地,FPGA与SoC具有众多重要特质,将成为解决未来系统需求的最佳选择。这些独特特质包括:・针对所有数据类型提供极高的运算能力和效率・针对多种工作负载提供极高弹性,并将运算和效率之优势最大化・具备I/O弹性,能方便地整合到系统中并达到更高效率・具备大容量芯片内建高速缓存,以提供高效率及最低延迟率看清背景/应用/优劣势绘图处理器大拆解GPU的起源要追溯到PC时代,辉达(NVIDIA)声称在1999年推出世界首款GPU,但其实许多显卡推出时间更早[2]。GPU是一款全新设计的产品,用于分担及加速图像处理任务,例如从CPU进行像素数组的遮蔽和转换处理,使其架构适用于高并行传输率处理[3]。本质上,GPU的主要作用为替视觉显示器(VDU)提供高质量影像。图1GPU模块图多年来,如大规模矩阵运算的医疗影像应用,此类少量非影像但需大规模平行及受内存限制的相关工作负载,已从GPU而非CPU上实现。GPU厂商意识到有机会将GPU市场拓展到非影像应用,因此如OpenCL这类的GPU非影像编程语言应运而生,而这些编程语言将GPU转化成通用GPU(GPGPU)。・机器学习最近,能够良好映像到GPU运行方案的工作负载之一,便是机器学习训练。透过充分运用GPU,能明显缩短深度神经网络的训练时间。GPU厂商试图利用机器学习训练的成功,来牵动其在机器学习推论上的发展(部署经过训练的神经网络)。随着机器学习算法与所需数据精度的演进,GPU厂商一直在调整其架构以保持自身地位优势。其中一个例子就是,NVIDIA在其TeslaP4产品中支持INT8,然而现今许多用户探索着更低的精度,如二进制和三进位[4]。若要利用机器学习与其它领域的发展,GPU用户必须等待新硬件推出之后再购买。GPU厂商想运用机器学习作为基础,使自身成为此新运算时代的首选运算平台。但若要清楚了解GPU是否适合未来系统,仍需做更全面的系统级分析、考虑GPU架构的局限性,以及系统要如何随时间发展演进。・GPU架构局限性本章节将深入研究典型的GPU架构,来揭露其局限性及如何将其应用于各种算法和工作负载。・SIMTALU数组图1展示典型的GPU模块图。通用GPU运算功能的核心是大型算术逻辑单元(ALU)或运算核心。这些ALU通常被认为是单指令多线程(SIMT),类似于单指令多数据(SIMD)。基本原理是将工作负载分成数千个平行的线程(Thread),ALU需要大量的GPU线程来预防闲置。在对线程进行调度后,不同的ALU组便能平行执行相同的(单一)指令。GPU厂商透过使用SIMT,能提供相较于CPU占位面积更小和功效更高的方案,因为许多核心资源能与同组的其他核心共享。然而,显然特定工作负载(或部分工作负载)能被有效地映射到这大规模平行的架构中[5]。倘若构成工作负载的线程不具足够的共通性或平行性,例如连续或适度平行的工作负载,ALU则会呈现闲置状态,导致运算效率降低。此外,构成工作负载的线程预期要将ALU利用率最大化,进而产生延迟。即使在NVIDIA的Volta架构中使用独立线程调度的功能,其底层架构仍保持SIMT,如同需要大规模平行工作负载。对于连续、适度平行或稀疏的工作负载,GPU提供的运算与效率低于CPU所能提供的[6]。其中一个量化实例为在GPU上执行稀疏矩阵运算;假使非零元素数量较少,并从效能和效率的角度来看,GPU低于或等同于CPU[7][8]。有趣的是,很多研究人员正在研究稀疏卷积式类神经网络,来利用卷积式类神经网络中的大规模冗余[9],这趋势显然代表GPU在机器学习推论中所遇到的挑战。稀疏矩阵运算也是大数据分析中的关键环节[10]。多数包含大量平行运算任务的工作负载亦包含一些连续或适度平行元素,这意味着需要GPU-CPU混合系统来满足系统效能要求[11]。显然,对于高阶CPU的需求会影响平台的效率与成本效益,而且CPU与GPU之间的通讯需求为系统增添潜在瓶颈。SIMT/GPU架构的另一个局限性是ALU的功能取决于其固定指令集和所支持的数据类型。・离散数据类型精度支援系统设计人员正在探索简化数据类型精度,以此达到运算效能的跳跃式提升,而且不会明显降低精度[12][13][14]。机器学习推论导致精度下降,首先是FP16,接着是INT16和INT8。研究人员正在探索进一步降低精度,甚至降到二进制[4][15]。GPUALU通常原生支持单精度浮点类型(FP32),而有些情况下支持双精度浮点(FP64)。FP32是影像工作负载的首选精度,而FP64通常用于一些HPC应用。然而低于FP32的精度通常无法在GPU中获得有效支持,因此相较于降低所需的内存带宽,采用标准GPU上降低精度较有优势。GPU通常提供一些二进制运算功能,但通常只能每ALU进行32位运算,且32二进制运算有很大的复杂度和面积需求。在二值化神经网络中,算法需要XNOR运算,紧接着进行族群(Population)统计。由于NVIDIAGPU仅能每四个周期进行一次族群统计运算,因此对二进制运算有极大的影响[18]。如图2所示,为了跟上机器学习推论空间的发展脚步,GPU厂商持续进行必要的芯片修改,以支持如FP16和INT8的有限降低精度数据类型。其中一个实例为,TeslaP4和P40运算卡上的NVIDIAGPU支持INT8,为每ALU/Cuda核心提供4个INT8运算。图2NVIDIA降精度支援然而,依NVIDIA在TeslaP40上的GoogLeNetv1Inference推出的机器学习推论基准显示,INT8方案与FP32方案相比效率仅提升3倍,此结果显示在GPU架构中强行降低精度,并取得高效率存在较大难度[16]。随着机器学习和其他工作负载转向更低精度和客制化精度,GPU厂商需要在市场上推出更多新产品,且厂商的现有用户亦需升级平台,才能受益于此领域的发展。内存多阶层把关软件定义数据到达路径艰辛与CPU类似,GPU中的数据流也由软件定义,并取决于GPU严格且复杂的内存阶层[17],而典型的GPU内存阶层如图3所示。每个线程在缓存器档案中都有自己的内存空间,用以储存线程的局部变量。同一个模块内的少量线程可透过共享内存来通讯;且所有线程皆能透过全局或芯片外内存通讯[18]。如图3所示,由于数据需从缓存器档案横跨整个内存阶层到全局内存,造成与内存存取相关的功耗和延迟分别增加100倍和80倍以上[15][17][19]。此外,内存冲突是必然的,同时亦会增加延迟导致ALU闲置,进而降低运算能力和效率。图3典型的GPU内存阶层因此,若想发挥GPU的运算和效率潜能,工作负载的数据流必须准确映像到GPU内存阶层。事实上,很少工作负载具备足够的数据局部性来有效地映像到GPU上。对多数的工作负载而言,当在GPU上运行时,实际的运算能力和效率会大打折扣,解决方案的延迟也会增加[19][20]。机器学习推论作为量化实例,能清楚展现出数据流的局限性。GPU必须进行如128笔的批处理(Batch),以获得高效率但延迟更长的解决方案。最终,批处理使机器学习处理局部化,但须付出增加延迟的代价[21],而此结果能清楚的在GoogLeNetv1Inference的NVIDIAP40基准检验中看到。对于GoogLeNetv1来说,其网络因P40内存带宽而受到运算束缚,因此减少与批处理有关的内存带宽并不会产生很大的帮助。然而,P40显然需要透过128的批处理以达到50%的GPU理论效能,但同时也增加系统的延迟[16]。某些情况下,资料可透过CPU进行前置处理,以便工作负载能更有效的映像到GPUSIMT架构和内存阶层,但其代价则是产生更多CPU运算和功耗,因而抵消了GPU的优势[7]。・有限I/O选项如本文一开始的段落所述,GPU原本的角色是作为协同处理器。为了促进与主机沟通,GPU以往只有一个PCIe接口与几个如GDDR5的芯片外接DRAM接口。近期的产品中,有些GPU采用硬件接口来进行GPU到GPU的通讯。而CPU仍须连接网络来分配任务予GPU,此不仅增加系统功耗,还会因PCIe有限的带宽而带来瓶颈。例如,支持PCIe3.0×16的NVIDIATesla40,只能拥有16GB/s的带宽。GPU厂商已开始建构小型SoC,例如NVIDIATegraX1,其能整合GPU运算、Arm处理器、一些通用汽车周边和如HDMI、MIPI、SIP、CAN的基础以太网络等。由于上述组件具备少量运算能力,因此必须倚赖额外的分离式GPU来达到必要的运算能力。然而,分离的GPU接口有很大局限性,例如TegraX1仅支持PCIe2.0×4,导致严重瓶颈,且额外SoC的功耗会更进一步降低平台的效率。・芯片内建内存资源除了延迟、效率和传输率方面的不利影响,芯片外内存的带宽要明显低于局部/芯片内建内存。因此,若工作负载需要依靠芯片外内存,不仅芯片外内存的带宽会成为瓶颈,且运算资源也会被闲置,从而降低GPU能提供的运算功能和效率。因此,更有利的做法是采用大型、低延迟且高带宽的芯片内建内存,再以机器学习推论为例,GoogLeNet共需27.2MB的内存空间;假设执行FP32,是没有GPU能提供的,这意味着需要芯片外内存[22]。在很多情况下,则需采用高成本的高带宽内存(HBM)和批处理,以防止核心处于闲置状态。若选择具更大型的芯片内建内存组件,便能避免HBM成本及额外的延迟和功耗问题。・功耗范围GPU厂商在设计板卡和GPU时通常要适用于250W的功耗上限,并依靠有效热管理来调节温度。针对机器学习推论市场,NVIDIA已开发如TeslaM4和P4等满足75W功耗范围的组件。虽然75W已远超出所允许的系统级功耗和热范围,但GPU的绝对功耗依然是阻碍GPU被广泛采用的因素之一。功能安全性GPU源于消费图像处理和高效能运算领域,其不存在功能安全性的需求。但随着GPU厂商瞄准ADAS市场,功能安全性就成了必要条件,因此为用于ADAS系统中,组件需要重新设计,以确保达到所需的功能安全性认证等级。这对GPU厂商来说不仅是一个长期且涉及各方面的学习过程,还需要新工具和设备。实现多元应用推手FPGA/SoC好处多・原始运算能力与GPU拥护者的说法不同,单一个FPGA组件能提供的原始运算能力,能达到38.3INT8TOP/s的效能。NVIDIATeslaP40加速卡以基础频率运行时提供相似的40INT8TOP/s原始运算能力,但功耗是FPGA方案的2倍多[26]。此外,FPGA组件的弹性能支持各种数据类型的精度[27]。例如,针对二值化神经网络,FPGA可提供500TOPs/s的超高二进制运算能力(假设2.5LUT/运算的情况),相当于GPU典型效能的25倍。有些精度较适用于DSP资源,有些则能在可编程逻辑中运行,还有些适合将两者结合起来使用,而这些弹性确保组件的运算和效率能随着精度降低,且降低到二进制。机器学习领域的大量研究都从运算、精度和效率角度来进行最佳精度的研究[28~32]。无论最佳点在哪,对于给予的工作负载都能随之调整。多年来,许多FPGA用户针对多种工作负载,运用脉动数组处理设计达到最佳效能,其中包括机器学习推论[33][34]。有趣的是,NVIDIA为了现今的深度学习工作负载来提高可用的运算能力和效率,在Volta架构中以TensorCore形式强化类似的功能。然而,深度学习工作负载会随着时间演进,因此TensorCore架构亦需要改变,且GPU用户也需等待购买新的GPU硬件。・效率和功耗从系统层级来看,运算平台必须在指定的功率和热范围内提供最大运算能力。为满足此需求,运算平台必须:1.处于允许的功率范围内2.在功率预算内将运算能力最大化AllProgrammable系列组件,使用户能选择与功率和热范围最相符的组件。如表1所示,从原始运算角度来看,该组件能针对固定精度数据类型提供高效通用运算平台,主要是因为FPGA架构中的间接开销较低。例如,GPU需要更多复杂性围绕其运算资源,以促进软件可编程功能。对于当今的深度学习工作负载的张量(Tensor)运算,NVIDIA的TeslaV100凭借已强化的TensorCore达到能与FPGA和SoC匹敌的效率。然而,深度学习工作负载正以非常快的速度演进,因此无法确定NVIDIATensorCore的高效率能在深度学习工作负载维持多久。由此看来,对于其他通用工作负载,NVIDIAV100亦面临效率的挑战。鉴于本文之前介绍的局限性,对于实际的工作负载与系统,GPU很难达到如表1中所提供的数字。・AllProgrammable组件弹性赛灵思透过将硬件可编程资源(如逻辑、路径和I/O)与具弹性且独立的整合核心区块(如DSP分割和UltraRAM)结合,并将全部构建在领先制程技术上,如台积电(TSMC)的16nmFinFET制程,进而达到这种平衡。硬件可编程性和弹性,意味着底层硬件通过配置可满足指定工作负载的需求。随后,数据路径甚至能在运行时,透过部分可重组功能简易地进行重新配置[35]。图4试图举例AllProgrammable组件提供的部分弹性。核心(或用户设计元素)可直接连接可编程I/O、任意其它核心、LUTRAM、BlockRAM和UltraRAM、及外部内存等。图4AllProgrammable数据路径和各种形式IO硬件可编程性组件意味着它们不存在这类的特定局限,如SIMT或固定数据路径等。无论是大规模平行、适度平行、管线连续或混合形式,都能获得赛灵思组件的运算能力和效率。此外,若底层算法改变,例如机器学习网络的发展,则平台也能随之调整。很多系统和工作负载中都能看到FPGA与SoC组件发挥弹性优势,而机器学习推论就是其中之一。其中机器学习推论的趋势就是向稀疏网络迈进,且FPGA与SoC组件用户已在利用此趋势,而NVIDIA本身就是其中一位用户。在近期与NVIDIA联合编写关于语音识别的一篇文章中提到,通过使用FPGA,相较于CPU能提升43倍速度和40倍效率,而NVIDIAGPU仅能提升3倍速度和11.5倍效率[36]。可编程数据路径还减少了FPGA的批处理需求,批处理是系统延迟对比实时效能的重要决定因素。从大数据角度来看,FPGA在处理包括在如可变长度字符串的复杂数据情况下,SQL工作负载时具高效率且快速。基因体分析则是一个实例,有人已利用GPU来加速基因体分析,其相较于In
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版跨境电商股东撤资合作协议书范本3篇
- 2025版文化产业项目履约担保合同
- 2024年项目管理与活动策划合同
- 2024年版国有企业在编员工试用期合同模板
- 2024年股权转让书:股东内部股权交易合同范本
- 保定理工学院《市场营销学》2023-2024学年第一学期期末试卷
- 保定理工学院《材料工程测试与分析方法》2023-2024学年第一学期期末试卷
- 宝鸡文理学院《建筑设计》2023-2024学年第一学期期末试卷
- 宝鸡三和职业学院《石油地质学》2023-2024学年第一学期期末试卷
- 2024年职业聘请协议模范文本版B版
- GB/T 36393-2018土壤质量自然、近自然及耕作土壤调查程序指南
- GB/T 3045-2017普通磨料碳化硅化学分析方法
- 新疆维吾尔自治区公共建筑节能设计标准实施细则2023
- 2022年西藏自治区中考英语真题卷(含答案与解析)
- 医院输血质量管理考核标准
- 七年级语文上册:15、《古代诗歌四首》教案
- 气道评估与处理课件
- 脑血管病的介入诊疗课件
- RCS-9626CN电动机保护测控装置
- 苗木供货服务计划方案
- 回转支承实验台测试系统设计毕业设计论文
评论
0/150
提交评论