基于gpu的并行优化技术

基于gpu的并行优化技术

ID:33809784

大小:375.75 KB

页数:5页

时间:2019-02-28

基于gpu的并行优化技术_第1页
基于gpu的并行优化技术_第2页
基于gpu的并行优化技术_第3页
基于gpu的并行优化技术_第4页
基于gpu的并行优化技术_第5页
资源描述:

《基于gpu的并行优化技术》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、万方数据第26卷第11期2009年11月计算机应用研究ApplicationResearchofComputersV01.26No.11NoV.2009基于GPU的并行优化技术左颢睿1’2,张启衡1,徐勇1’2,赵汝进1’2(1.中国科学院光电技术研究所,成都610209;2.中国科学院研究生院,北京100039)摘要:针对标准并行算法难以在图形处理器(GPU)上高效运行的问题,以累加和算法为例,基于Nvidia公司统一计算设备架构(CUDA)GPU介绍了指令优化、共享缓存冲突避免、解循环优化和线程过载优化四种优化方法。实验结果表明,并行优化能有效提

2、高算法在GPU上的执行效率,优化后累加和算法的运算速度相比标准并行算法提高了约34倍。相比CPU串行实现提高了约70倍。关键词:图形处理器;并行优化;累加和;统一计算设备架构中图分类号:TP391;TP311文献标志码:A文章编号:1001-3695(2009)11—4115.04doi:10.3969/j.issn.1001-3695.2009.11.034.ParalleloptimizetechnologybasedonGPUZUOHao-ruil”,ZHANGQi-hen91,XUYon91”,ZHAORu-jinl’2(1.Institut

3、eofoptics&Electronics,ChineseAcademyofSciences,Chengdu610209,China;2.GraduateSchool。ChineseAcademyof&抛,B4/i增100039,China)Abstract:StandardparallelalgorithmcannotworkefficientlyonGPU.Thispapertookreductionalgorithmforexample,intro—ducedfourparalleloptimamethodsforNVIDIA’Sgraphic

4、sprocessorunit(GPU)whichsupportedCUDAarchitecture.Thesemethodsincludedinstructionoptimizeandsharedmemoryconflictavoidandloopunrollandthreadsoverloadoptimize.Theex-perimentresultshowsthat:paralleloptimizecansignificantlyspeeduptheGPUcomputespeed.Theoptimizedreductionalgo-rithmis

5、34timesfasterthanstandardparallelalgorithmand70timesthanCPU—basedimplementation.Keywords:graphicsprocessorunit(GPU);paralleloptimize;reduction;computeunifieddevicearchitecture(CUDA)随着GPU技术的快速发展,当前的GPU已经具有很强的并行计算能力,浮点运算能力甚至可以达到同代CPU的10倍以上⋯。同时,随着Nvidia公司的CUDA(统一计算设备架构)的推出,使得GPU具有

6、更好的可编程性,因此在诸如物理系统模拟心j】、金融建模H’51以及地球表面测绘哺1等通用计算领域有着广泛的应用。如何充分利用GPU的并行计算特点实现一些复杂运算的快速求解,已经成为当今的热点问题之一。GPU具有独特的硬件结构,采用常规并行算法,很难发挥GPU的运算优势,通常需要结合GPU的硬件特点和算法的可并行性,才能有效提高GPU的计算效率¨’8o。本文以具有代表性的累加和算法在GPU上的优化实现为例介绍基于GPU的并行优化技术。1累加和算法及其并行实现已知数组名[n],累加和算法公式为nsum=.Xx[k](1)E=u累加和算法对r/,个元素进行

7、加法运算,不论采用串行还是并行算法,均需要执行/-t一1次运算。GPU是基于SIMD架构的并行处理器,因此累加和运算可以采用树型计算将串行运算改写为并行运算旧J,树型算法示意图如图1所示。图l树型算法示意图从图1中可以看到,采用树型结构将累加和运算分为s层(s=l092n),对第k层需要进行n/2‘次运算,每一层内的运算可以并行,层与层之间的计算只能串行。代码1给出了常见并行累加和算法的伪代码:代码1//声明共享缓存sdata(DSharedsdata[];//并行读取数据,tid为线程序号。i为数组下标//g__idata和g_odata分别是输入

8、输出数组蓬)parallel:sdata[tid]=g_idata[i];//k代表第k层运算,maxThr

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。