GPU协同并行计算研究.docx

上传人:b****9 文档编号:25512040 上传时间:2023-06-09 格式:DOCX 页数:21 大小:33.85KB
下载 相关 举报
GPU协同并行计算研究.docx_第1页
第1页 / 共21页
GPU协同并行计算研究.docx_第2页
第2页 / 共21页
GPU协同并行计算研究.docx_第3页
第3页 / 共21页
GPU协同并行计算研究.docx_第4页
第4页 / 共21页
GPU协同并行计算研究.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

GPU协同并行计算研究.docx

《GPU协同并行计算研究.docx》由会员分享,可在线阅读,更多相关《GPU协同并行计算研究.docx(21页珍藏版)》请在冰豆网上搜索。

GPU协同并行计算研究.docx

GPU协同并行计算研究

第38卷 第3期

2011年3月

计算机科学

Computer Science

Vol.38No.3

Mar 2011

到稿日期:

2010-04-13 返修日期:

2010-07-15  本文受国家自然科学基金(40505023)资助。

卢风顺(1982-),男,博士生,CCF会员,主要研究方向为新型体系结构下的并行算法研究、大型数值模拟等高性能计算应用,E-mail:

lufengshun

@nudt.edu.cn;宋君强(1962-),男,研究员,博士生导师,主要研究方向为数值天气预报、高性能计算等。

CPU/GPU协同并行计算研究综述

卢风顺 宋君强 银福康 张理论

(国防科学技术大学计算机学院 长沙410073)

 

摘 要 CPU/GPU异构混合并行系统以其强劲计算能力、高性价比和低能耗等特点成为新型高性能计算平台,但其

复杂体系结构为并行计算研究提出了巨大挑战。

CPU/GPU协同并行计算属于新兴研究领域,是一个开放的课题。

根据所用计算资源的规模将CPU/GPU协同并行计算研究划分为三类,尔后从立项依据、研究内容和研究方法等方

面重点介绍了几个混合计算项目,并指出了可进一步研究的方向,以期为领域科学家进行协同并行计算研究提供一定

参考。

关键词 异构混合,协同并行计算,GPU计算,性能优化,可扩展

中图法分类号 TP301   文献标识码 A

 

Survey of CPU/GPU Synergetic Parallel Computing

LU Feng-shun SONG Jun-qiang YIN Fu-kang ZHANG Li-lun

(College of Computer Science,National University of Defense Technology,Changsha 410073,China)

 

Abstract With the features of tremendous capability,high performance/price ratio and low power,the heterogeneous

hybrid CPU/GPU parallel systems have become the new high performance computing platforms.However,the architecture

 complexity of the hybrid system poses many challenges on the parallel algorithms design on the infrastructure.According

 to the scale of computational resources involved in the synergetic parallel computing,we classified the recent researches

 into three categories,detailed the motivations,methodologies and applications of several projects,and discussed

some on-going research issues in this direction in the end.We hope the domain experts can gain useful information about

synergetic parallel computing from this work.

Keywords Heterogeneous hybrid,Synergetic___€?

____ parallel computing,GPU computing,Performance optimization

 

1 引言

当前,高性能计算机体系结构正处于变革期,各种新型体

系结构不断涌现。

采用通用多核微处理器与定制加速协处理

器相结合的异构混合体系结构成为构造千万亿次计算机系统

的一种可行途径。

甚至有专家预言,今后的高性能计算平台

将会成为以异构混合体系结构为主的格局。

在众多异构混合平台中,基于CPU/GPU异构协同的计

算平台具有很大的发展潜力。

正由于GPU所具有的强劲计

算能力、高性能/价格比和高性能/能耗比,在当今追求绿色高

性能计算的时代,GPU的计算优势受到越来越多的关注。

专业图形应用外,GPU已用于大量的通用计算问题,并形成

了GPU通用计算研究领域,即GPGPU(General-purpose

computing on graphics processing units),又称GP2U。

鉴于

GPU在通用计算领域的优异表现,Macedonia[1]断言GPU将

成为未来计算的主流,甚至还有人将GPU的概念解释为

General Computing Unit。

GPU和CPU在设计思路上存在很

大差异:

CPU为优化串行代码而设计,将大量的晶体管作为

控制和缓存等非计算功能,注重低延迟地快速实现某个操作;

GPU则将大量的晶体管用作ALU计算单元,适合高计算强

度(计算/访存比)的应用[2]。

在协同并行计算时,CPU和

GPU应各取所长,快速、高效协同地完成高性能计算任务。

另外,除管理GPU计算任务外,CPU也应当承担一部分科学

计算任务。

以“天河一号”巨型机为例,其计算结点采用Intel

Xeon E5540/E5450通用CPU和AMD ATI Radeon HD

4870x2加速GPU,计算阵列的峰值性能为214.96万亿次,加

速阵列的峰值性能为942.08万亿次。

如果不发挥CPU的计

算能力,则相当于损失了一台200万亿次的高性能计算机。

因此,需要充分挖掘CPU和GPU的计算潜能,使其达到高效

协同的计算效果。

新型异构混合体系结构对大规模并行算法研究提出了新

的挑战,迫切需要深入研究与该体系结构相适应的并行算法。

针对CPU/GPU异构混合体系结构的高性能计算平台,研究

相应的协同并行计算技术,设计并实现大型科学及工程计算

问题的新型并行算法,具有重大的理论和实际意义。

2 CPU/GPU协同并行计算研究进展

自nVidia公司在1999年提出GPU概念以来[3],随着半

·5·

导体技术的不断发展,芯片上集成的集体管数目不断增加,

GPU峰值性能一直以超过摩尔定律的速度增加,平均每6个

月翻一番。

GPU具有浮点计算能力强、带宽高、性价比高、能

耗低等优点,目前已被广泛用于图形处理以外的应用中,如数

值天气预报[4]、地质勘探[5]、代数计算[6,7]、分子动力学模

拟[8]、数据库操作[10]、频谱变换和滤波[11,12]等。

特别是统一

渲染架构发布以来,越来越多的科研人员(包括无任何图形

API编程经验的科研人员)开始GPU非图形应用的研究,逐

渐形成了新的GPGPU研究领域。

对于GPGPU领域的研究工作,文献[2,13-14]等优秀的

综述已从GPU的发展历史、体系结构、编程模型、软件环境

和成功案例等方?

_?

_?

面进行了系统阐述。

本文仅从CPU/GPU

协同并行计算的角度对国内外的研究工作进行回顾和分析。

2.1 协同计算概念及GPGPU研究分类

CPU/GPU协同并行计算,其关键在于如何实现两者的

高效“协同”。

从国内外大量的研究工作来看,“协同”分为两

个层次:

1)CPU仅负责管理GPU的工作,为GPU提供数据

并接收GPU传回的数据,由GPU承担整个计算任务;2)除

管理GPU外,CPU还负责一部分计算任务,与GPU共同完

成计算。

第一层次的“协同”比较简单,CPU与GPU间分工

明确,但浪费了宝贵的CPU计算资源。

如IBM的Power7处

理器具有32个核心,因此CPU也具有强大的计算能力。

见,第二层次的“协同”是未来协同并行计算的发展方向。

目前,“协同并行计算”还没有统一的定义。

鉴于许多文

献[4,8,15-16]将GPU视为加速部件或协处理器,刘钦等[5]将其

定义为CPPC(co-processing parallel computing)。

在异构混

合并行系统中,CPU和GPU都是并行计算资源,只是体系结

构及计算方式不同,无须区分两者的主从关系。

因此,本文将

“协同并行计算”定义为“synergetic parallel computing”。

CPU/GPU异构机群的组织形式通常是将一定数量的多

核CPU和GPU封装到一个节点内(如图1所示),继而由若

干节点互联成异构机群。

将CPU/GPU异构机群的计算资

源简单抽象为三元组PG=[NC,CC,GC],各分量分别表示节

点数目、每个节点的CPU数目和GPU数目;如果该机群存在

节点间异构特性,那么PG定义为[NC,CC[NC],GC[NC]],

各分量分别表示节点数目、相应节点的CPU数目和GPU数

目。

根据参与协同计算的CPU和GPU硬件资源规模,目前

国内外GPGPU研究可以划分为三类:

GPU通用计算研究

(PG=[1,0,G>0])、CPU/GPU协同计算研究(PG=[1,C>

0,C>0])以及CPU/GPU协同并行计算研究(PG=[N>1,

C>0,G>0])。

图1 节点内CPU/GPU组织形式

2.2 GPU通用计算研究

GPU通用计算研究(PG=[1,0,G>0]),其计算规模限

于单个节点,计算任务完全由GPU承担,因此该“协同”属于

第一层次。

由于GPU硬件以及软件开发环境的限制,早期

的GPGPU研究[7,17]必须紧密结合GPU硬件细节并借助图

形API来实现GPGPU程序。

随着统一架构GPU及CUDA

[18]和Brook+[19]等编程模型的出现,越来越多的领域专

家利用GPU加速其具体应用问题。

Liu等[20]基于CUDA研

究分子动力学模拟问题;Cevahir等[21]利用GPU求解稀疏对

称线性系统,并实现了混合精度的多GPU共轭梯度求解器;

Chen等[22]基于CUDA实现了可支持更多的元素类型的快速

排序算法,并针对GPU体系结构进行了性能优化;Igual

等[22]基于GPU研究了线性代数和图像处理问题,并总结出

数值算法在GPU上获得高性能应具备的特点。

2.3 CPU/GPU协同计算研究

CPU/GPU协同计算研究(PG=[1,C>0,C>0]),其计

算任务由CPU和GPU两者共同完成,属于第二层次的“协

同”,但是协同计算规模较小,仅限于单节点。

方旭东[24]基于

CPU/GPU异构平台,研究了矩阵乘、LU分解和Mygrid等

科学计算程序的新型并行算法,提出了3种任务划分模型及

4种GPGPU程序优化策略;在单节点规模下,CPU/GPU协

同并行版本的矩阵乘、LU分解和Mygrid等分别获得了CPU

版本133.8倍、88.86倍和15.06倍的性能加速。

刘钦等[5]

实现了非对称走时Kirchhoff叠前时间偏移的CPU/GPU协

同并行计算,使其运算速度提高到单核CPU版本的100~

300倍,且基于此成果开发出油气勘探地震处理CPU/GPU

协同并行计算商业系统。

2.4 CPU/GPU协同并行计算研究

CPU/GPU协同并行计算研究(PG=[N>1,C>0,G>

0]),涉及到N个节点,每个节点的C颗CPU和G颗GPU协

同完成计算任务。

鉴于大型科学及工程计算问题对高性能计

算资源的巨大需求,针对这些问题的GPGPU研究基本属于

该类,这也是本文关注的重点。

目前,国内外已有大量的研究

机构开展多核CPU/GPU异构混合平台的协同并行计算研

究,此处仅列举几个影响较大的项目,重点介绍其立项依据、

研究内容和研究方法等。

2.4.1 WRFGPU

数值天气预报的发展与高性能计算机及计算技术的不断

进步密切相关,当前气象科学家通常使用包含大量处理器的

机群系统进行超大规模数值模拟。

但时效性要求较高的应用

(如实时预报或者气候预报等)应具有较好的强可扩展性,因

此需要更快而不仅是更大规模的高性能计算平台。

为此,

WRF模式团队启动了WRFGPU项目[25],基于新的多核

CPU和GPU异构混合平台开发WRF模式中的细粒度并行

性,提高WRF模式的强可扩展性。

其目标包括:

1)确定

WRF模式物理和动力过程的关键内核,针对各内核的计算访

存比、数据并行性、内存使用等建立数学模型;2)实现内核基

准程序集,用来评测当前及未来异构高性能计算平台在天气

和气候研究中的加速效果。

目前的内核基准程序集包含5个

内核:

WSM5云微过程[4]、WFOPD标量平流[26]、WCK化学

动力求解器[27]、RRTM长波辐射物理过程和SWRAD短波

辐射物理过程,其中前3个内核已发布CUDA版本。

WSM5云微过程模块的代码量仅占WRF模式的0.4%,

但运行时间占串行总时间的1/4。

Michalakes等[4]研究了该

计算密集模块的CPU/GPU协同并行计算技术,采用MPI/

CUDA并行编程模式,每个MPI进程绑定一个CPU-GPU组

合。

作者基于Illinois大学NCSA机群进行了大量的数值试

验,结果表明该模块性能可提高9.4倍,而WRF模式的整体

·6·

性能可提高1.23倍。

标量平流[26]模式模拟大气标量要素场

在风场驱动下的输送过程,其计算量与标量的数目成正比,如

WRF常规运行下5个雾标量的计算时间占串行总时间的

10%。

标量平流具有计算访存比低(0.76)、线程间数据依赖

关系强和CPU-GPU数据传输量大等特点,为其协同并行计

算提出了巨大挑战。

作者采用如下措施对该内核GPU版本

进行性能优化:

1)借助三维硬件纹理(CUDA2.0及以上版本

支持)减少了计算内核数量和CPU-GPU数据传输次数;2)在

主机端使用页锁定内存,提高了CPU与GPU间__________的数据传输

速率,性能提高了1.25倍。

WRF-Chem模式支持许多化学

动力求解器,文献[27]重点研究了RADM2模型的异构混合

并行技术。

在WRF-Chem模式中,RADM2求解器作用于固

定区域网格内的每个格点,即该模式包含大量的数据并行性;

同时在RADM2求解器内部,线性代数操作中存在一定的指

令级并行。

因此,作者提出了三层并行处理技术,即CPU核

心内的指令级并行、GPU流处理单元上的数据并行以及多核

心(多线程)或者节点间(MPI)的数据并行。

2.4.2 Folding@Home

蛋白质是生命体系中重要的功能物质,被称为生物机体

的“纳米计算机”[28]。

蛋白质分子由氨基酸残基组成,通过折

叠成特定形状来体现其功能(如酶和抗体等);如果折叠过程

出错,则会导致癌症、疯牛病、帕金森氏症、阿兹海默症等疾

病。

Folding@Home[28]是分布式分子动力学项目,通过个人

和组织捐献的家庭及办公计算资源来研究蛋白质的折叠行

为,目前其GPU版本已得到广泛部署[29]。

据统计1),目前

GPU贡献的计算能力达到3214TFLOPS,占总计算资源的

56.3%,已超过CPU和PS3提供的计算资源的总和。

1)客户端统计信息:

2010年4月4日05:

01:

35更新。

蛋白质折叠模拟可抽象为N体模拟问题,目前已有基于

“成对相加”思想的O(N2)力学模型以及基于邻接表、树等数

据结构的O(N)力学模型。

由于蛋白质折叠模拟涉及大量的

粒子(103-106)及积分步(106-1015),因此巨大的计算需求

限制了问题规模和模拟时间,最终限制了所获得的有用信息

量。

鉴于GPU与CPU间巨大的浮点计算性能差异,目前已

有相关研究利用GPU来完成基于O(N2)模型的蛋白质折叠

模拟。

Elsen等[29]利用GPU加速几种通用的力学模型,使其

性能超过高度优化CPU版本的25倍以上,并指出N体模拟

为计算受限问题,随着GPU峰值性能的不断提高,其问题规

模及时间尺度必定会不断增大。

Friedrichs等[31]在GPU上

完整实现了全原子蛋白质分子动力学模拟程序,包括所有的

标准力场项、积分、约束等。

作者首先讨论了GPU版本实现

所面临的算法可扩展性、访存、CPU与GPU间通讯、流程控

制等挑战,然后分别介绍了ATI和NVIDIA版本程序的实现

细节,最后基于ATI Radeon HD 4870和NVIDIA GeForce

GTX 280GPU对该模拟程序进行数值实验,获得比传统

CPU单核版本性能快700倍的超高性能。

2.4.3 MAGMA

从Intel,AMD,IBM和NVIDIA等工业界主流芯片厂商

最新发布的处理器来看,异构混合体系结构将成为未来处理

器以及高性能计算机系统的发展方向。

目前多核CPU技术

发展迅速,其核心数目不断增加,如IBM最新的超级计算机

Blue Waters使用的Power7处理器具有32个核心,而Intel

集成度最高的单硅CPU原型包括48个可编程IA处理器内

核;同时,GPU具有非常高的浮点计算性能,且GPGPU应用

开发已具有友好的编程环境。

面对混合计算环境提出的复杂

挑战,最优的软件解决方案是将不同算法的优势集中到一个

软件框架内,即软件本身也是混合的。

基于此思想,MAGMA

项目[32]针对多核CPU/GPU异构混合平台,开发类似LAPACK

的稠密线性代数(DLA)库和软件框架,从而使应用程

序充分利用混合系统内各种处理器提供的计算资源。

无论针对多核CPU还是GPU平台,高效DLA算法的设

计要求都是统一的,即算法应该具备并行度高和计算强度高

等特点。

对于CPU/GPU异构混合平台,DLA算法的设计须

同时考虑执行过程中的负载平衡问题,且计算任务的划分应

密切结合各平台的优势。

Tomov等[33]利用有向无环图

(DAG)来开发DLA算法的并行度,将算法的执行过程表示

为一系列的子任务及其相互依赖关系,其中“结点”表示子任

务,“边”表示子任务间的依赖关系。

各子任务的粒度根据

CPU和GPU的计算能力进行划分,其中大任务由GPU负责

执行,而小任务在多核CPU上执行。

为提高DLA算法的计

算强度,作者修改了基于BLAS1库的DLA算法,在其最内层

循环采用块矩阵操作。

Tomov等[34]提出基于“混合技术”的

算法设计思想,以充分利用异构平台各处理器类型的计算优

势。

作者利用CUDA编程模型,基于BLAS和LAPACK(多

核CPU)及CUBLAS(GPU)等第三方库,设计了Cholesky,

LU和QR分解等混合DLA算法。

关于异构平台上可扩展

DLA算法的设计,Ltaief等[35]充分利用DLA算法的两级并

行度,首先将其计算任务划分为块,映射到多个CPU-GPU组

合并发执行,然后对每个块内的计算任务继续开发细粒度并

行性以使CPU和GPU协同计算。

数值实验表明,以CPUGPU

组合为计算资源单位,当计算资源线性增加时,基于

DLA算法求解器的浮点性能也呈线性增长趋势,表现出较好

的强可扩展性。

2.4.4 FEASTGPU

FEAST[36,37]是解决大规模有限元问题的高效软件包,可

支持多种现代体系结构上的软件开发,其应用领域覆盖计算

流体力学和计算结构力学,主要构件包括稀疏带状BLAS、可

扩展递归聚类(ScaRC)以及FEASTGPU。

稀疏带状BLAS

是BLAS的一种扩展,封装了cache感知和平台优化的通用

线性代数操作例程。

ScaRC是一种广义的求解模式,融合了

区域分解和并行多重网格的优势,可提供层次式的求解器、数

据和矩阵结构。

FEASTGPU[15]作为局部平滑子完全工作在

ScaRC模式内部,因此基于FEAST的应用程序可直接利用

GPU提供的强大计算能力和超高内存带宽,无须对代码作任

何修改(即“最小扰动”)。

FEASTGPU运行在单精度状态,

且采用混合精度迭代求精法以保证迭代过程的收敛速度。

FEASTGPU在整个FEAST软件包中的抽象层次及工

作方式,使得混合系统的异构性完全封装到节点内,因此对

MPI而言该并行系统是同构的。

FEASTGPU并非针对线性

代数操作进行加速,而是针对局部子问题加速整个多重网格

·7·

求解器,避免了GPU计算内核的多次配置及数据传输开销。

Goddeke等[15,16,38]基于FEAST构建了FEASTSolid和Navier-

Stokes求解器,并使用FEASTGPU来加速其本地求解

器,分别取得了5倍和12倍的局部加速及1.6倍和2.3倍的

全局加速。

根据Amdahl定律,如果可加速部分的计算时间

小于整体的50%,那么FEASTGPU局部加速引起的i_________全局性

能提升将非常有限。

为此,作者指出两种解决方案:

1)修改原

有算法,使可加速部分的比例增大;2)松弛“最小扰动”条件,

将更多的计算过程迁移到GPU上运行。

2.4.5 其它研究项目

除上述几个代表性的项目外,国内外还有大量的相关研

究,如Zhe等[40]较早开展了GPGPU研究,用格子Boltzmann

模型(LBM)实现了并行流模拟程序;东京工业大学基于

TSUBAME异构混合机群开展了加速计算(Accelerated

Computing)研究[41-44];国防科学技术大学成功研制出“天河

一号”,开展了线性代数[45]、粒子模拟[46]、GPGPU程序性能

优化[47,48]等相关研究;中国科学院过程工程研究所及联想、

曙光公司共同设计并研制出千万亿单精度峰值性能的Mole-

8.7系统[49],该系统主要应用于多相流、分子动力学等研究领

域。

3 进一步研究的方向

3.1 面向异构混合系统的新型并行算法研究

在CPU/GPU异构混合平台中,CPU和GPU具有不同

的硬件特点和计算方式,因此基于异构混合平台进行并行算

法设计时,必须密切结合其底层硬件特点,使算法充分利用混

合系统中各类型处理器的性能优势。

鉴于GPGPU研究属于

新兴领域,目前大部分算法研究工作是已有算法向异构混合

平台的移植,针对该平台的全新算法较少。

CPU和GPU都存在存储墙[50]问题,CPU主要通过多层

次存储结构来缓解该问题,而GPU则使用硬件多线程技术

来隐藏高开销的访存延迟。

面向异构混合系统的高效并行算

法应具有以下特点:

1)异构感知的:

根据底层硬件特点设计算

法,使体系结构—算法组合发挥出最大性能;2)计算强度高:

高计算强度是并行程序高计算效率的普遍要求,对GPU尤

其重要,否则GPU的高浮点计算性能优势根本得不到发挥;

3)CPU与GPU交互开销小:

包括数据传输开销及同步开销;

CPU与GPU间交互是协同并行计算不可避免的,应通过优

化算法来减少数据传输次数和数据量以及同步开销。

3.2 CPU/GPU高效协同方式研究

CPU/GPU高效协同计算是发挥异构混合平台性能的关

键因素,因此必须根据两者的计算能力和执行特点确定合理

的协同方式,以保证CPU和GPU间的计算负载平衡,降低各

种交互开销,进而提高程序的执行效率。

研究内容包括:

计算

任务的划分模型、任务的调度策略以及计算任

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1