论文部分内容阅读
传统单核处理器的性能由于散热、功耗等问题,已无法与硬件资源发展速度相适应,但近几年来高性能计算领域的新兴应用的发展对计算机的性能要求却越来越高。相对于传统的单核处理器,多核/众核处理器可利用线程级并行获得性能提升,从而更好地满足高性能计算领域对计算机的性能要求,目前已被学术界和产业界广泛接受。然而,多核/众核平台虽拥有较高的浮点峰值和计算能力,但它的结构和编程环境具有一定复杂性,如何充分挖掘众核处理器的强大计算能力便成为了一个突出的问题。为了解决该问题,探索众多应用中的核心算法,并针对多核/众核平台特点对其进行优化便显得尤为重要。本文以稠密矩阵向量乘法(The matrix-vector multiplication routine for general dense matrices,GEMV)、稀疏矩阵向量乘法(sparse matrix-vector multiplication,SpMV)作为规则应用核心算法与非规则应用核心算法的代表进行研究:(1)采用面向众核GPU的高速缓存分块方法设计更优的基于众核GPU稠密矩阵向量乘算法,第一种算法从提高线程并行度的角度出发,能够很好的提高GPU的利用率。利用同一个warp的线程代替传统高速缓存算法中一个线程,计算向量y中的一个对应元素。第二种算法,在第一种算法的基础上加入了寄存器上数据重用的思想。寄存器资源是是GPU众核平台上最为快速的资源,是解决访存瓶颈问题有效途径。通过实验对比分析,新的算法较传统库函数有着很好的性能提升,尤其是对小型和行数大于列数的矩阵,性能提升了10%以上。此外,本文针对GPU众核架构特点对寄存器重用次数对算法性能影响也进行了进一步研究。(2)HYB存储格式基础上提出新的存储格式对稀疏矩阵向量乘进行优化,通过多次划分使稀疏矩阵的COO存储格式部分更小,并增加ELL格式的部分,以更好地利用众核GPU的计算能力。此外,我们在实验过程中对划分参数进行了仔细分析,调优后的结果进一步的提升了算法性能。实验结果表明,与传统的基于HYB格式的算法比较,基于HYB-Ⅰ格式的稀疏矩阵向量乘法在我们的稀疏矩阵测试集上获得了更高的性能,最好的情况下性能提升比达到17%(3)针对稀疏矩阵向量乘法提出新的基于BCSR格式的高速缓存分块方法,对稀疏矩阵进行划分并以CSR格式进行存储,利用高速缓存分块思想,将向量x在共享内存中多次利用,有效地提高了了访存效率,使稀疏矩阵向量乘法性能得到提升。实验表明,最好情况下,稀疏矩阵向量乘的高速缓存分块方法比CSR格式计算结果的速度有5倍的提升。