accelerating sparse matrix computations via data compression
Sparse matrix computations are important for many scientific computations, with matrix-vector multiplication being a fundamental operation for modern iterative algorithms. For large sparse matrices, the primary performance limitation on matrix-vector product is memory bandwidth, rather than algorithm performance. In fact, the wide disparity between memory bandwidth and CPU performance suggests that one could trade cycles for bandwidth and still improve the time to compute a matrix-vector product. Accordingly, this paper presents an approach to improving the performance of matrix-vector product based on lossless compression of the index information commonly stored in sparse matrix representations. Two compressed formats, and their multiplication algorithms, are given, along with experimental results demonstrating their effectiveness. For an assortment of large sparse matrices, compression ratios and corresponding speedups of up to 30\% are achieved. The efficiency of the compression algorithm allows its cost to be easily amortized across repeated matrix-vector products.
sparse matrix computation data compression compression iter algorithm performance product memory bandwidth memorialized bandwidth timing paper indexing informal experimentation effect speedup efficiency cost vectorization high-performance computing