论文部分内容阅读
近年来,并行计算技术获得了充分的发展,各种新的软硬件层出不穷。图形处理器(GPU)作为一种高度并行化的处理器架构,已得到越来越多的重视,目前已诞生了以NVIDIA CUDA(Compute Unified Device Architecture)为代表的各种GPU通用计算技术,同时多GPU并行计算也已有了实际的应用。多GPU并行计算涉及GPU与CPU两者之间的协调和交互,对数据划分和数据传输等方面有着更高的要求。为了降低多GPU程序开发的复杂度,本文提出一种基于模板的源代码生成技术,通过简单的指导语句来描述数据划分和数据传输等并行计算相关的操作,并通过生成OpenMP+CUDA源代码的方式来支持单GPU程序到多GPU的并行化移植。应用该技术,能够将单GPU程序自动生成为多GPU并行程序。本文最后给出了程序实例,通过实例表明使用本文提出的CUDA源代码移植框架能够自动生成与手写程序等价的代码,可以显著降低多GPU下CUDA程序的开发代价,提高CUDA应用程序员的生产效率。