Litcius/Paper detail

Variable-Sized Blocks for Locality-Aware SpMV

Naveen Namashivavam, Sanyam Mehta, Pen-Chung Yew

202116 citationsDOI

Abstract

Blocking is an important optimization option available to mitigate the data movement overhead and improve the temporal locality in SpMV, a sparse BLAS kernel with irregular memory reference pattern. In this work, we propose an analytical model to determine the effective block size for highly irregular sparse matrices by factoring the distribution of non-zeros in the sparse dataset. As a result, the blocks generated by our scheme are variable-sized as opposed to constant-sized in most existing SpMV algorithms. We demonstrate our blocking scheme using Compressed Vector Blocks (CVB), a new column-based blocked data format, on Intel Xeon Skylake-X multicore processor. We evaluated the performance of CVB-based SpMV with variable-sized blocks using extensive set of matrices from Stanford Network Analysis Platform (SNAP). Our evaluation shows a speedup of up to 2.62X (with an average of 1.73X) and 2.02X (with an average of 1.18X) over the highly vendor tuned SpMV implementation in Intel's Math Kernel Library (MKL) on single and multiple Intel Xeon cores respectively.

Topics & Concepts

Computer scienceParallel computingKernel (algebra)XeonSpeedupCUDAXeon PhiLocalityBlock (permutation group theory)Multi-core processorBlocking (statistics)Sparse matrixOverhead (engineering)Variable (mathematics)AlgorithmOperating systemMathematicsPhysicsCombinatoricsGeometryComputer networkMathematical analysisLinguisticsGaussianPhilosophyQuantum mechanicsParallel Computing and Optimization TechniquesInterconnection Networks and SystemsAdvanced Data Storage Technologies
Variable-Sized Blocks for Locality-Aware SpMV | Litcius