论文部分内容阅读
异构计算以其较高的峰值性能和较低的能耗成为当前研究的热点。随着GPU在通用计算领域的成功,Intel也推出了基于Intel Architecture(IA)架构的MIC(Many Integrated Core)协处理器,其第二代产品Xeon Phi已经成功部署在天河二号系统上。然而,异构系统的编程困难问题和性能优化问题在异构计算兴起时一直都是限制其推广和应用的障碍。近年来,Open ACC等采用编译指导的异构编程方法成为解决异构编程问题的重要途径,与CUDA等复杂的异构编程方法相比,程序员只需在串行程序中插入指导命令就可以使其在异构系统上高效的编译运行。目前,在MIC上还没有Open ACC的实现。本文主要以Open ACC在MIC上的实现为研究对象,将Open ACC指导命令采用源到源转换的方法映射到MIC的Intel Offload(简称Offload)编程模式上,并针对Open ACC指导命令的特点与MIC的体系结构提出了具体的性能优化方法,主要取得了如下成果:1、提出了Open ACC到Offload的映射模型。本文分析了基于指导命令的异构编程的三个要素,即任务管理、并行描述和数据管理。并从这几个方面逐一分析了Open ACC的指导命令与Offload接口的映射关系,并给出了源到源转换方法;同时通过对比Open ACC特点和MIC结构特点分析了映射转换效率。为Open ACC到Offload的转换及优化提供了理论基础。2、根据映射效率问题和MIC特点,提出了具体的优化方法。主要包括任务划分优化、向量化优化;同时由于在MIC上大量线程的开销问题,我们设计并实现了一种基于SIMD的可扩展组合树同步算法。3、实现了Open ACC源程序到Offload源程序的自动转换编译框架。采用模块化设计,编译框架前端模块将Open ACC源程序转换为中间表示,经过中端模块优化,后端模块将中间表示转换成Offload源程序。4、使用矩阵乘和JACOBI迭代的Open ACC源程序在CPU+GPU系统上和转换后的Offload源程序在CPU+MIC系统上测试转换效率。在同等规模下,转换后Offload源程序在MIC上运行的效率高于Open ACC源程序在GPU上运行的效率,而且都优于8核CPU的性能。