本文由Xiangzheng Sun、Yunquan Zhang、Ting Wang、Xianyi Zhang、Liang Yuan和Li Rao共同撰写,他们来自中国科学院软件研究所并行软件与计算科学实验室、中国科学院计算机科学国家重点实验室以及中国科学院研究生院。该研究发表于2011年的国际并行处理会议(International Conference on Parallel Processing, ICPP),题为《Optimizing SPMV for Diagonal Sparse Matrices on GPU》。
稀疏矩阵-向量乘法(Sparse Matrix-Vector Multiplication, SPMV)是科学计算中的核心计算任务之一,其性能高度依赖于稀疏矩阵中非零元素的分布。现有的稀疏矩阵存储格式(如CSR、BCSR、DIA、ELL等)各有优劣,但尚未有一种通用的最优解决方案适用于所有非零分布情况。特别是对于对角线稀疏矩阵(Diagonal Sparse Matrices),现有的DIA格式在处理长零段(idle sections)时效率较低,因为需要填充大量零值以维持对角线结构,这会导致额外的计算和内存资源消耗。
为了解决这一问题,本文提出了一种新的存储格式——压缩行段对角线模式(Compressed Row Segment with Diagonal-pattern, CRSD)。该格式通过设计对角线模式(diagonal pattern)来表示对角线分布,并利用GPU的强大计算能力,结合OpenCL编程框架,实现了高效的SPMV计算。
CRSD存储格式的设计:
SPMV在GPU上的实现:
实验评估:
CRSD格式的性能优势:
内存优化:
本文提出的CRSD格式为对角线稀疏矩阵的存储和计算提供了一种高效的解决方案。通过设计对角线模式和优化GPU上的SPMV实现,CRSD格式在处理长零段和散点时表现出色,显著提升了计算性能。该研究不仅具有重要的科学价值,还为科学计算中的稀疏矩阵处理提供了新的思路。
本文还探讨了CRSD格式在不同平台上的适用性,并提出了未来在Cell和AMD设备上进行更多评估的计划。此外,作者还计划研究更多类型的非零分布,以进一步扩展CRSD格式的应用范围。
本文得到了国家863计划、中国国家天文台和中国科学院计算机网络信息中心的支持。