Optimizing Sparse Matrix-Matrix Multiplication for the GPU
Department of Computer Science, University of Illinois at Urbana-Champaign, Urbana, IL 61801
University of Illinois at Urbana-Champaign, Technical Report, 2013
Sparse matrix-matrix multiplication (SpMM) is a key operation in numerous areas from information to the physical sciences. Implementing SpMM efficiently on throughput-oriented processors, such as the graphics processing unit (GPU), requires the programmer to expose substantial fine-grained parallelism while conserving the limited off-chip memory bandwidth. Balancing these concerns, we decompose the SpMM operation into three, highly-parallel phases: expansion, sorting, and compression, and introduce a set of complementary bandwidth-saving performance optimizations. Our implementation is fully general and our optimizations lead to substantial efficiencies for a SpMM product.
April 7, 2013 by hgpu