Learning Sparse Matrix Row Permutations for Efficient SpMM on GPU Architectures

Achieving peak performance on sparse operations is challenging. The distribution of the non-zero elements and underlying hardware platform affect the execution efficiency. Given the diversity in workloads and architectures, no uniquesolution always wins. In this paper, we improve SpMM efficiency on GPUs. We propose several simple, but effective, sparse data permutations on the CSR data structure. Picking the right permutation over 1,688 datasets improves performance by 1.4x, on average, compared to plain CSR and 2.6x against NVIDIA cuSPARSE. Furthermore, we propose a set of novel features to describe sparsity patterns and their interactions with the kernel and hardware. Using these features, we develop a predictor to select the best permutation for each matrix. Predicted permutations’ average gain achieves 96% of oracle gains.

Authors

Atefeh Mehrabi (Duke University)
Danial J. Sorin (Duke University)
Benjamin C. Lee (University of Pennsylvania)

Publication Date

Uploaded Files