In this paper, we present a new sparse matrix data format that leads to improved memory coalescing and more efficient sparse matrix-vector multiplication (SpMV) for a wide range of problems on high throughput architectures such as a graphics processing unit (GPU). The sparse matrix structure is constructed by sorting the rows based on the row length (defined as the number of non-zero elements in a matrix row) followed by a partition into two ranges: short rows and long rows. Based on this partition, the matrix entries are then transformed into ELLPACK (ELL) or vectorized compressed sparse row (vCSR) format. In addition, the number of threads are adaptively selected based on the row length in order to balance the workload for each GPU thread. Several computational experiments are presented to support this approach and the results suggest a notable improvement over a wide range of matrix structures. Keywords— SpMV, GPU, EVC-HYB format, adaptive
Dahai Guo, William Gropp, Luke N. Olson