基于GPU的异构系统已成为构建大规模并行计算机系统的有效途径之一。这种体系结构对程序性能优化研究提出新的挑战,需要深入研究与异构系统相适应的性能优化技术。本项目首先基于GPU的体系结构,研究多级存储层次和并发流程序的GPU性能模型,然后基于GPU的性能模型,研究提高GPU异构系统计算效率的性能优化技术。从科学计算程序中最常见的循环出发,研究DOACROSS和DOALL两种循环在异构系统上的性能优化方法,解决循环分块算法中块大小的最优化问题;针对不同负载的循环迭代,研究其在异构系统上的调度方法,使循环负载可以均衡地在CPU和GPU间进行分配,发挥两者的协同计算能力,提高系统的整体计算效率。
CPU-GPU heterogenous systems;performance model;programming model;performance optimization;workload balance
当前,异构系统是构建大规模并行计算机系统的有效途径之一。提高异构系统的使用效率,缩小异构系统理论峰值和实际应用取得的性能之间的差距是构建下一代E级超级计算系统的必要条件。本项目主要面向目前应用最为广泛的CPU-GPU异构系统展开研究。本项目取得的主要成果有(1)设计了基于性能模型的CPU-GPU异构计算结点自适应负载平衡技术和面向全系统的层次化负载均衡技术;(2)提出了基于有限状态自动机的嵌套双缓冲软件流水技术和面向GPU存储层次的访存优化技术;(3)针对强数据依赖关系的DOACROSS循环,给出了一种新的GPU循环调度和优化方法;(4)建立了MPI/OpenMP/Streaming混合编程模型和计算机专家/领域专家协作编程模型,并在CPU-GPU异构系统上对离子云网格法、冲击波传播模拟和金属粒子碰撞模拟作了加速优化实现。本项目研究期间共发表论文19篇,其中SCI源刊5篇,EI检索9篇;申请发明专利一项。超额完成了任务书中对研究结果的预期(国内外期刊及国际会议发表高质量论文8篇以上)。