稀疏矩阵是计算科学与工程中最为重要的研究内容之一。由于其 非零元的位置并不规则且难以预测,稀疏矩阵计算相比于稠密矩阵在 现代并行处理器上的优化难度更高。过去数十年间,稀疏线性代数子 程序(BLAS)中最重要的三个操作:稀疏矩阵-向量乘(sparse matrix-vector multiplication, SpMV),稀疏三角解(sparse triangular solve, SpTRSV )和稀疏矩阵 - 矩 阵 乘 ( sparse matrix-matrix multiplication, SpGEMM)一直是人们研究的热点,也面临着不同的 性能挑战。本次报告将介绍我们针对现有挑战开发的利用分块结构优 化稀疏矩阵计算的开源软件包 BeidouBLAS(注:“北斗”寓意为一 个稀疏矩阵分块后的包含七个稀疏块的块稀疏结构)。首先,我们将 稀疏矩阵存储为大小相同的块,以获得更好的访存局部性和更高的带 宽利用率。其次,将稀疏块作为基本的计算单元,可以为每个块选择 最佳的存储格式和算法,从矩阵局部稀疏结构的角度提高性能。最后, 这种块结构可以让一个高层应用不经格式转换就调用优化的 SpMV, SpTRSV 及 SpGEMM 操作。我们将 BeidouBLAS 与最新的方法进行 了比较,实验表明,本工作性能明显优于现有方法。