Litcius/Paper detail

Load-balancing Sparse Matrix Vector Product Kernels on GPUs

Hartwig Anzt, Terry Cojean, Yen‐Chen Chen, Jack Dongarra, Goran Flegar, Pratik Nayak, Stanimire Tomov, Yu‐Hsiang Tsai, Weichung Wang

2020ACM Transactions on Parallel Computing47 citationsDOI

Abstract

Efficient processing of Irregular Matrices on Single Instruction, Multiple Data (SIMD)-type architectures is a persistent challenge. Resolving it requires innovations in the development of data formats, computational techniques, and implementations that strike a balance between thread divergence, which is inherent for Irregular Matrices, and padding, which alleviates the performance-detrimental thread divergence but introduces artificial overheads. To this end, in this article, we address the challenge of designing high performance sparse matrix-vector product (S p MV) kernels designed for Nvidia Graphics Processing Units (GPUs). We present a compressed sparse row (CSR) format suitable for unbalanced matrices. We also provide a load-balancing kernel for the coordinate (COO) matrix format and extend it to a hybrid algorithm that stores part of the matrix in SIMD-friendly Ellpack format (ELL) format. The ratio between the ELL- and the COO-part is determined using a theoretical analysis of the nonzeros-per-row distribution. For the over 2,800 test matrices available in the Suite Sparse matrix collection, we compare the performance against S p MV kernels provided by NVIDIA’s cuSPARSE library and a heavily-tuned sliced ELL (SELL-P) kernel that prevents unnecessary padding by considering the irregular matrices as a combination of matrix blocks stored in ELL format.

Topics & Concepts

Computer scienceParallel computingSIMDThread (computing)Sparse matrixCUDAGraphicsMatrix (chemical analysis)Matrix multiplicationKernel (algebra)PaddingComputational scienceAlgorithmComputer graphics (images)MathematicsDiscrete mathematicsProgramming languageMaterials sciencePhysicsComputer securityQuantum mechanicsGaussianQuantumComposite materialParallel Computing and Optimization TechniquesAlgorithms and Data CompressionEmbedded Systems Design Techniques