在HMPP框架下优化GPU程序的执行效率

来源 :北京大学 | 被引量 : 0次 | 上传用户:hjklmijk
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
作为具有极大潜力的计算硬件设备,GPU正越来越多的被用于科学计算领域,对具有大量并行性的高吞叶量计算等应用进行计算加速。但在GPU上运行的通用计算程序的编写和优化往往较难,限制了GPU通用计算的普及和发展。HMPP沿袭了多核时代OpenMP的思路,用编译制导语句加上编译器自动对代码进行变换的形式辅助程序员编写或移植GPU程序,是一种可行的解决思路。本文提出了两种在HMPP架构下对自动生成的HMPP程序进行优化,即不更改原程序代码而以程序给出指示信息,由编译器实施变换方式对程序进行优化的方式:维度变换和物理存储排列变换。维度变换被应用到循环上时就是传统的循环变换,并起到将问题数据集对应到CUDA线程模型的作用,还可以配合循环交换来改变循环的执行次序,起到对循环分块的作用。物理存储变换在程序的访存模型不能保证足够比例的凝聚访问时能起到作用,通用优化访存模式减小GPU程序的访存压力,提高整体效率。本文从理论上论证了前者的可行性,从示例程序测试的角度证实了后者的可行性,两种方法都易于加入到HMPP框架中。最后,本文用Stencil问题测试了多种优化方法的实际运行效果,并测试了多种参数对运行效率的影响,总结了不同方法的优点与不足,以及在新Fermi架构GPU下优化GPU程序的策略。
其他文献
三维空间规则数据场中等值面的构造是计算可视化的重要内容。现代科学计算所产生的数据呈现出了量大、抽象等特点,使人们很难直观形象地观察数据的属性特征。将等值面抽取应
软件测试是保证软件产品质量的重要手段。其中,如何生成最少的测试输入数据而能对程序进行最全面的测试,成为了人们研究的一个重要课题。测试方法主要分为动态测试和静态测试。
当前,由于科学技术的进步和人们生活水平的提高,对高性能计算提出了越来越高的要求。传统的超级计算机,虽然具有非常高的计算性能,但由于其价格昂贵,严重限制了其在高性能领域的应
一直以来人们都认为自我复制和自我重组只能发生在生物系统中,只有生物系统才可以通过基因的复制和重组来繁殖后代、适应环境的变化。2005年美国康奈尔大学宣布研制成功自我复
随着21世纪的到来,软件行业飞速发展,传统模式的软件越来越受到费用及软硬件环境的制约,SaaS应运而生,并迅速受到大众的接受。使用SaaS应用提供的服务,用户不必花费大量金钱
计划调度评审技术(ProgramEvaluationandReviewTechnique,PERT)是系统工程中对潜在任务进行分析的一种方法,是一种科学的组织管理技术,其建立的目的是为了简化大而复杂项目的计划
在聚变实验的数据分析中,分析等离子体行为往往需要查找某些波形的相似波形。目前寻找相似波的方式为研究人员利用可视化数据访问工具逐个查看波形的结构形状。但是随着实验数
图像变形是指初始物体(数字图像、曲线、曲面、网格等)到目标物体的连续、光滑、自然的过渡。在图像或图形上设置有限个数的控制点,通过对这些控制点的约束以及过程设计,从而使整
无论是巨型的超级计算机,还是飞速发展的移动终端,功耗都成为了衡量处理器优劣的一项重要指标。从处理器功耗的统计结果可以看出,在功耗被广泛重视之前,通用处理器的功耗密度
智能电视同步内容服务是指通过对电视节目状态进行监控,智能地向观众提供同步于所观看节目(包括电视节目和广告)的扩展内容。相应系统可以丰富用户获取的信息,大大提升用户的