OpenHMPP+到CUDA源到源翻译系统的设计与实现

来源 :中国科学技术大学 | 被引量 : 0次 | 上传用户:qpzm007
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
通用计算图形处理器(GPGPU,General Purpose Computation on GPU)具有较强的计算能力和较大的存储带宽,使得它在高性能计算方面有着CPU无法替代的优势。随着CUDA、OpenCL等异构并行计算架构的出现,GPGPU在编程效率方面得到了一定程度的提升,进而在通用计算的大道上迈进了大大的一步。尽管如此,编写高性能的GPU程序仍然是一项非常繁琐的工作,并且对程序员有很高要求:一方面,程序员需要分析特定应用的计算模式和访存模式等程序特征;另一方面,程序员需要掌握特定GPU的计算核心和存储系统等硬件特征。除此之外,GPU硬件的升级使得原有的高效的GPU程序变得低效,缺乏有效的兼容性机制。OpenHMPP+(开放的异构多核并行编程)是一种基于制导语句的编程模型,它解决了GPU编程的复杂性,但程序性能无法得到保证。本文提出了源到源翻译器框架HMPPCompiler,能够将带有OpenHMPP+制导语句的C语言自动翻译成优化的CUDA代码,从而大大提高了GPU在通用计算方面的编程效率。   本文的主要研究成果包括:(1)设计了OpenHMPP+到CUDA的源到源翻译系统。该系统需要集成到Cetus编译器框架内部,借助Cetus的内部表示完成源到源的翻译。该系统的内部组件包括HMPP词法分析器、并行循环探测器、CUDA代码生成器。其中CUDA代码生成器为核心组件,它包含了Host端CUDA代码生成和CUDA核心代码生成两个模块。(2)实现了OpenHMPP+串行程序到CUDA并行程序的自动翻译。源到源翻译的核心思想是将串行代码中的for循环映射为CUDA线程。在实现过程中,提出了最优循环搜索算法,并将算法得出的最优循环映射为CUDA线程,用于获得更好的性能。(3)对源到源翻译系统进行了改进。在原有设计的基础之上,对源到源翻译系统实施了改进,用于生成更加高效的CUDA代码,这些改进策略主要包括存储分配、并行性挖掘、CUDA配置参数的选择。在存储分配方面,主要考虑了全局存储器的合并访问,共享存储器和寄存器的合理使用;在并行性挖掘方面,主要考虑了循环展开、循环切片、循环展开;在CUDA配置参数选择方面,提出了最优配置参数的选择机制。首先,编译器通过参数搜索空间精简算法生成包含候选参数集的CUDA kernel模板程序;然后,运行CUDA kernel模板程序,并选出最优的CUDA参数配置。   本文采用完整的Rodinia基准测试程序包对HMPPCompiler框架进行了性能评测。通过实验分析,HMPPCompiler生成的代码的性能能够达到手写代码性能的70%~84%。
其他文献
首先,马太效应或累积优势(CA)在各个领域都被广泛研究。它被认为是造成劳动工资、教育,健康以及职业的不平等因素,甚至很大程度上是影响科学活动如拨款申请、期刊出版、同行的认
在当代人类生活中,选举已经成为每个公民一项必不可少的政治活动。在选举过程中,人民参与政治主要是通过投票来实现的。因此,投票成为民主国家下广泛的政治行为之一。而这载
关键词抽取是自然语言处理中的基础与核心技术。通常对非结构化文本的自动处理,如自动文摘、文本聚类、自动问答等,均需要先进行关键词抽取。关键词是表达文档主题意义的最小单
贝叶斯网络是一种概率图模型,能够高效表示随机变量之间复杂的独立依赖关系;即使在数据不完整的情况下,仍然具备高效的推理能力,因此越来越广泛的用于决策、诊断和复杂系统的控制
Web2.0时代的来临,向人们呈现了一个丰富多彩的英特网,同时也掀开了信息爆炸时代的序幕。海量数据的涌现不仅为英特网带来了无限可能,更对传统数据索引结构乃至整个计算机产业带
随着计算机和网络技术的飞速发展,计算机在企事业管理中应用的普及,利用计算机实现电子文档的管理势在必行,办公自动化是企事业单位在信息化建设基本阶段的典型需求,目的是为了规
现代信息技术的发展以及各种图像处理软件的出现,使得伪造图像和篡改图像变得越来越容易,如何鉴别收到的图像是否是原始图像,是否经过篡改,是否是人为伪造,通过各种图像采集
李群机器学习既继承了流形学习的优点,又充分利用了李群的代数结构和几何结构的数学本质,自提出以来就引起了许多研究者的关注。本文是在李群机器学习的理论框架上,以李群机器学
嵌入式远程监控系统是一种以嵌入式技术、视频编码技术及网络传输技术为核心的新型视频监控系统,它在监控系统的实时性、网络化、小型化等方面比传统远程监控系统有着突出的
随着网络应用的迅速扩张,IPv4地址资源枯竭的问题已无法回避亦不可调和,发展下一代网络IPv6已成为必然而紧要的工作。可以预见,在未来几年里,全世界将迎来IPv6网络规模化部署