GPU作为一种协处置器,传统用途关键是处置图像类并行计算义务;计算机系统面对的计算义务有着复杂而不同的性能要求,当 CPU 无法满足特定处置义务时,则须要一个针对性的协处置器辅佐计算。GPU 就是针对图像计算高并行度,高吞吐量,容忍高提前而定制的并行处置器。
本文选自“ 从软件算法生态看GPU开展与局限 ”,重点引见GPU原理、GPU场景、局限性等,详细内容如下:
1、GPU是什么?
2、为什么须要GPU等协处置器?
3、GPU还无能什么?
4、GPU不适宜干什么?
5、GPU总体市场现状
GPU其原始设计针对图像计算的特性启动优化,因此也能兼职一些与图像计算特性接近的大规模并行规范浮点数计算义务,如迷信计算与数值模拟。但大规模并行计算并非一个笼统的概念,而是一个可以依照计算性能需求在6个维度上启动细分的大类别。因此GPU绝非处置大规模并行计算疑问的万金油,无法很好的允许与图形计算特性相差较大的并行计算义务。
1.1 GPU是什么?
GPU其余称号有显示**、视觉处置器、显示芯片。望文生义,GPU最关键的运行场景就是处置图像显示计算。计算机图像显示流程见 图 ,在这个环节中CPU选择了显示内容,而GPU则选择了显示的品质如何。像GPU这类辅佐CPU实现特定配置芯片统称“协处置器”,“协”字标明了GPU在计算机体系中处于附属位置。
GPU芯片可依据与CPU的相关分为独立GPU和集成GPU。独立GPU通常图形处置才干更高一些,但也有老本更高,功耗和发热较大等疑问。近年集成式GPU盛行于移动计算平台如笔记本和智能手机。例如高通的智能手机芯片通常将CPU和一个配置较弱的GPU以及其余协处置器经过SoC(System on Chip,片上系统)技术组合在一同。集成GPU图形计算性能相对独立GPU较弱但功耗/老本均针对了移动计算平台的需求做了优化,将常年占据移动计算市场。
1.2 为什么须要GPU等协处置器?
在计算机系统中,之所以出现GPU等协处置器,归根究竟在于没有一种芯片设计打算能够满足一切不同类别计算义务所需求的所有性能目的:
鱼和熊掌无法兼得;在设计计算机芯片中,以上六个目的无法能在有限的资源解放下同时满足。 图 的雷达图比拟了CPU的设计倾向(蓝线)以及图形计算的要求(红线),越接近外圈则表示要求高/性能好,如计算提前低、计算吞吐量大。
咱们可以发现CPU设计的一局部偏好,如并后退程交互才干强,低计算提前是图形计算所不须要的;但图形计算要求的高计算并行度,高计算吞吐量是CPU所不能提供的。将CPU运行在图形处置中会形成一局部性能被糜费,而另一些性能CPU无法满足要求(雷达图上红线和蓝线的清楚差异);这提供了GPU这种针对图形技术优化芯片性能目的的协处置器的生活空间。
在狭义计算系统体系中,其余类别的协处置器,如DSP,FPGA,BP等协处置器之所以独立存在,均由于其所处置的特定计算义务在计算目的雷达图中与CPU以及其余协处置器差异过大。 一个协处置器产业能否有足够的市场空间关键取决于其针对的计算义务在性能雷达图中能否共同(否则会被CPU等“兼职”),以及这种计算义务能否有足够大市场需求。
1.3 GPU还无能什么?
GPU消费厂商针对图形处置的性能要求将资源调配强化两个特定目的: 计算并行度和计算吞吐量 。除了图形计算以外,还有一些计算义务的性能雷达图落在GPU的性能范围内或相差不甚太远(见 图 ),比如数值仿真模拟、金融类计算、搜查引擎、数据开掘等。
正因看中拓展GPU在不凡计算义务的运行前景,干流的GPU厂商纷繁推出软配件联合的并行编程处置打算。例如Nvidia推出闭源的CUDA并行计算平台,而AMD推出了基于放开性OpenCL规范的Stream技术。这类技术在软件上提供一个定制的编译器,将计算义务尽或者合成成可独立并行口头的小组件(术语为“线程”);在配件上对GPU启动小幅度修正,大批提高其在提前/并行交互等传统弱项的性能。
只管GPU的并行计算才干与金融数据处置需求存在必定婚配(图4中红线和蓝线相近),但金融**账本计算中须要远超越普通计算平台的精度。GPU外部搭载的 2进制 计算单元无法保证账本分毫不差;金融业的**账本计算业务常年依赖搭载 10进制 计算单元的IBM Power系列上流处置器。假设变革GPU使其搭载 10进制 配件计算单元,则其又无法顺应图形计算的需求。这个案例充沛说明:并非 一切并行计算义务就必定适宜GPU计算,而须要依据实践状况区分 。
1.4 GPU不适宜干什么?
GPU属于大规模并行计算芯片的一个子类;但其并不能处置一切的大规模并行计算义务。 大规模并行计算芯片可粗略划分为两大组成局部:
1)并行计算单元,数目从数个至数千个不等,实现“线程”计算;
2)NoC(Network on Chip,片上通讯网络),担任在计算单元之间传递数据;
针对不同的计算需求场景,大规模并行计算芯片的设计思绪大体有两个方向:
1)处置单元优化:包含增减处置器单元数量或扭转处置器单元外部的结构等;
2)NoC网络优化:更改网络拓扑、网络路由算法、优化网络控制机制等;
这两个方向上的优化须要分享芯片上有限的资源;强化一个方向的性能/参与某个方向的资源调配往往就象征着须要就义另一个方向的性能。
多核CPU、GPU、FPGA是经常出现的并行计算架构,它们的资源调配倾向示用意见 图。
GPU将关键资源调配给了图形罕用计算单元,如浮点数的乘法和加法,而驳回了最便捷的片上网络拓扑:树状NoC网络,在基本计算单元之间传递数据,见 图
这种片上网络的优缺陷区分是:
GPU之所以驳回树状拓扑结构,概因其“主业”-图形计算仅有大批情景须要在计算节点之间做复杂数据通讯,因此驳回树状拓扑以外的打算是纯正的糜费。 但树状拓扑结构限度了相当多类别的大规模并行计算义务在GPU上施展,换句话说,下列这些并行计算义务并不是GPU裁减的强项: