论文部分内容阅读
随着硬件工艺的发展和架构的创新,众核体系和异构平台越来越成为高性能计算系统的主流方式。基于众核跨平台的应用设计和程序优化正在成为高性能计算的研究热点。与传统的多核处理器相比,GPU和MIC这种众核架构集成了更多的核心,具有更高的并行度,提供更高的访存带宽和更强的浮点计算能力。以往的程序优化方法很难直接移植到众核异构平台。对于现代科学计算中最常用的稀疏矩阵向量法,研究其在众核异构平台上的算法实现及优化是非常有意义的。 稀疏矩阵向量乘(SpMV)是科学与工程计算代数解法器中的核心共性操作,属于典型的访存受限运算。其性能的优化非常具有挑战性。此外,稀疏矩阵的存储格式众多,不同的存储格式对于不同类型的稀疏矩阵和不同的硬件平台,性能差异很大。对于特定的输入,找到一个最优的存储格式将会对计算效率有很大的提高。在当今复杂的异构平台中,开发一个方便可靠、具有高效率而且具有自动调优功能的的数值计算系统是非常有挑战和重要意义的研究工作。 本文的主要工作和贡献如下: (1)设计并实现了一个跨平台,支持多种稀疏矩阵格式的稀疏算法库spBLAS。采用面向对象方法,将矩阵和向量的操作进行高层抽象,将硬件平台的具体细节屏蔽,为用户提供了一个方便且高效跨平台、高可扩展性的稀疏算法库。 (2)设计并实现了基于spBLAS库的数值解法器,并将其与SMAT自动调优技术结合,设计并实现了一个稀疏线性计算系统SMATER。通过数据挖掘的方法研究稀疏矩阵的特点、硬件平台特性以及SpMV性能之间的关系,对不同的稀疏矩阵给出最优的存储格式及SpMV算法实现。 (3)结合众核体系结构特征和稀疏矩阵自身特点,对SpMV程序进行了优化,总结了SpMV的普遍优化方案,从硬件平台、单线程、多线程和稀疏矩阵格式等各方面给出了优化方案和实现,为异构平台的程序优化提供了参考。