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
@article{dalton2013optimizing,
title={Optimizing Sparse Matrix-Matrix Multiplication for the GPU},
author={Dalton, Steven and Bell, Nathan and Olson, Luke N},
journal={Matrix},
volume={3},
year={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