论文部分内容阅读
以 GPU为代表的通用加速器技术已经成为目前高性能计算领域的主流发展方向之一。随着硬件存储、计算能力的增长和大数据时代的到来,如何使用具有高存储带宽、高计算性能的带有加速器的异构并行系统应对科学和工程领域中日益增长的数据密集型应用,已经成为一个迫切需要解决的课题。目前已经有一些工作研究如何利用存储受限且无法扩展的异构加速器处理超过其存储限制的应用问题,对于一些具体应用如代数求解、聚类分析等已经提出了在CPU-GPU异构单点或集群系统上能够处理大规模问题的方法。然而,如何利用由多核CPU与多个众核GPU加速器组成的单个异构结点处理超过设备内存限制的一般性问题,目前尚无理想的解决方案。 本文提出了用于 CPU-GPU异构系统的双缓冲四段流水机制,能够在带有一个或多个 GPU加速器的单结点上处理存储规模超过单个加速器设备内存限制的计算问题。双缓冲四段流水机制使用数据分块流水计算策略,在打破单个GPU存储瓶颈的同时能够通过重叠计算与传输达到很高计算性能和硬件利用率,并且支持扩展到多 GPU。对超过单个 GPU存储规模的通用稠密矩阵乘,通过重叠数据传输与计算,双缓冲四段流水机制在单GPU系统和双 GPU系统中能够分别达到理论性能值的99%和90%以上。对K-means和TNN算法,使用双缓冲四段流水机制能够大幅度地扩展所能解决的问题规模,单个 GPU的存储瓶颈不再成为限制,当扩展至双GPU系统时,性能可以达到单GPU系统的1.9倍以上。