高级检索
    孙相征, 张云泉, 王 婷, 李 焱, 袁 良. 对角线稀疏矩阵的SpMV自适应性能优化[J]. 计算机研究与发展, 2013, 50(3): 648-656.
    引用本文: 孙相征, 张云泉, 王 婷, 李 焱, 袁 良. 对角线稀疏矩阵的SpMV自适应性能优化[J]. 计算机研究与发展, 2013, 50(3): 648-656.
    Sun Xiangzheng, Zhang Yunquan, Wang Ting, Li Yan, Yuan Liang. Auto-Tuning of SpMV for Diagonal Sparse Matrices[J]. Journal of Computer Research and Development, 2013, 50(3): 648-656.
    Citation: Sun Xiangzheng, Zhang Yunquan, Wang Ting, Li Yan, Yuan Liang. Auto-Tuning of SpMV for Diagonal Sparse Matrices[J]. Journal of Computer Research and Development, 2013, 50(3): 648-656.

    对角线稀疏矩阵的SpMV自适应性能优化

    Auto-Tuning of SpMV for Diagonal Sparse Matrices

    • 摘要: 稀疏矩阵向量乘(SpMV)是科学计算中常用的内核之一,其运行速率跟非零元分布相关.针对对角线稀疏矩阵,提出了压缩行片段对角(compressed row segment diagonal, CRSD)存储格式.它利用“对角线格式”有效描述矩阵的对角线分布,区别于以往通用的计算方法,CRSD通过对给定应用的对角线稀疏矩阵采样再进行特定的优化.并且在软件安装阶段,通过自适应的方法选取适合具体运行平台的最优SpMV实现.在CPU端进行多线程并行化实现时,自适应调优过程中收集的信息还被用于线程间任务划分,以实现负载平衡.同时完成CRSD存储格式在GPU端的实现,并根据GPU端计算与访存的特点进行优化.实验结果表明:在Intel和AMD的多核平台使用相同线程数的情况下,与DIA相比,使用CRSD的加速比可以达到2.37X(平均1.7X);与CSR相比,可以达到4.6X(平均2.1X).

       

      Abstract: SpMV(sparse matrix-vector multiplication) is an important computational kernel in scientific applications. Its performance is mainly affected by the nonzero distribution of sparse matrices. In this paper, we propose a new storage format for diagonal sparse matrices, called CRSD(compressed row segmented with diagonal-pattern). We design a diagonal pattern to represent the diagonal distribution. Unlike general-purpose methods, our CRSD based SpMV implementation is application specific since it needs to sample the sparse matrix of one given application. The optimal implementation is selected automatically for a given hardware platform during the software installation phase. The information collected during auto-tuning process is also utilized for parallel implementation to maintain load-balance. The implementation is also tuned on GPU platform. Experimental results demonstrate that the speedup reaches up to 2.37X(1.7X on average) in comparison with DIA and 4.6X(2.1X on average) in comparison with CSR under the same number of threads on Intel and AMD platforms.

       

    /

    返回文章
    返回