原先译-文CUDA程序性能评估模型与深度优化研更改篇.docx

原先译-文CUDA程序性能评估模型与深度优化研更改篇.docx

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
原先译-文CUDA程序性能评估模型与深度优化研更改篇

SKE:CUDA平台下单个kernel函数执行时间分析模型摘要: GPGPU由于其具有极高计算性能,相对廉价的成本,较低的功耗等优点,在越来越多的领域得到了广泛的应用。从移动终端到超级计算机,使用GPU加速浮点运算已经成为了一种趋势。本文详细分析了GPU上各指令的执行周期以及多级存储器特性,并分别建立计算时间(Computation Time)和通信时间(Communication Time)的评估模型,讨论了活动线程束(active warp)和活动线程块(active block)之间在执行指令执行过程中如何互相隐藏延迟。并在此基础上,建立了基于CUDA平台的针对单个kernel函数进行全面评估的数学模型SKE(Single Kernel Estimate)。SKE是以kernel函数执行时间Execution Time为目标函数,以GPU硬件计算能力限制为约束条件的非线性规划函数。该模型有以下特点:1)适用于NVIDIA公司不同时期的多种GPU架构;2)模型中的关键输入参数只有9个,因此与文献[19]中的Kernel数学评估模型相比,该模型更简洁;3)模型中的8个限定条件使得程序员能更清晰的了解硬件设备对kernel函数执行时间的影响;4)预估的核函数时间更精确,其最大误差不超过20%。1 引言近来,CPU发展显露疲态,单核计算的频率提升遇到了瓶颈,多核的效率提升也远低于预期——同主频的八核的计算能力甚至和四核相仿。而与之相对的是,GPU浮点计算能力获得了井喷式提高,NVIDIA公司的GTX690拥有3072个流处理器,核心频率为1019MHz,单精度浮点运算能力已经达到了9.39Tflops,超过了同期CPU I7处理器的150倍!因此越来越多的超级计算机,都将GPU做为浮点运算的加速器。而随着大数据时代的来临,我们对高性能计算的处理能力需求越来越大。GPU具有极高的计算性能和相对廉价的成本。并且它以超过摩尔定律的速度更新硬件,成为实时海量数据流处理的重要解决方案。越来越多的计算密集型程序都选择GPU进行并行加速。然而,GPU在串行运算上的逻辑处理能力就比CPU弱很多。比如整数除和模运算,双精度的三角函数运算,控制流指令,还有访存指令等等,它们在GPU上的时间开销都非常昂贵,远远超过在CPU上的时间开销[6]。因此,我们把一个程序中逻辑控制指令密集,程序分支多,访存频繁的部分交给CPU来串行执行,而把计算密集型、高度并行化的部分交给GPU来并行执行,从而有效的降低程序运行时间[1]。如何确定一个给定应用程序的哪部分放入GPU,哪部分留在CPU会得到最高的加速比;放入GPU中运行的部分,又该如何划分线程粒度使程序的性能达到最优;以及如何规划每个SM的活动线程块数量,使程序执行时间最短。这是每个想通过GPU加速运算的程序都会遇到的问题。并行算法的分析与设计成为了解决上述问题的关键点。针对并行算法的设计与分析,有几个比较经典的模型,如1978年就提出的PRAM模型[12],和90年代提出的网络模型[13],Log-P模型[14],以及在PRAM模型上改进的QRQW模型。虽然这些模型曾在我们进行并行程序设计与分析时提供过许多帮助。但是他们已经远远无法满足现在GPU硬件架构下的设计需求。因为GPU上不同特性的多级存储器,众核体系架构以及多种不同功能的处理单元(ALU/DPU/SFU),都让原本的分析模型渐渐失去了优势。我们希望能建立一个基于CUDA平台的针对单个kernel函数性能的评估模型。并且该模型能满足绝大部分程序和设备的要求,使得程序员深入了解程序与硬件之间的联系,在编程前就能选择最佳的解决方案,设计出最优的线程和线程块划分方法,从而减少CUDA程序的开发周期。同时充分发挥设备固有属性的优势,使得cuda程序性能达到最优。2最近的研究自从2007年,NVIDIA公司率先提出了GPGPU(General Purpose GPU)的概念后,很多国内外学者从事了针对GPU并行架构分析模型的研究。其研究主要分为两个方面:一部分研究专注于GPU存储空间的分析与优化。文献[17]分析了NVIDIA公司Tesla架构下多级存储器的特性,而且我用此研究对H264帧内预测程序进行了优化,达到了非常理想的效果;文献[18]的作者致力于多GPU下的存储空间优化,分析了CPU与GPU间以及不同GPU之间的通信时间;文献[10]评估了cuda架构下共享内存的性能,并和其他3种并行编程模型架构:OpenMP,Intel TBB和 Intel ArBB进行了比较,发现OpenMP和Intel TBB性能较低,Intel ArBB则和cuda相当(但偏低)。另一部分研究工作与本文相似,对GPU并行程序建立分析模型。其中文献[19]建立了通过程序自动估计

文档评论(0)

jiaoyuguanliji + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档