Abstract
We study the sparse matrix product problem where the input matrices are sparse. Starting with an original DO- loop nest structured algorithm, different versions involving body kernels such as GAXPY, AXPY and DOT are generated by the loop interchange technique. We particularly focus on the GAXPY- Row body kernel where the matrices are acceded row-wise. Various versions corresponding to the most used sparse matrix compression formats are designed. We then derive other versions by applying improving techniques such as loop invariant motion and loop unrolling. A theoretical multi-fold performance study permits to establish accurate comparisons between the different versions. Our contribution is validated through experiments achieved on two input sets i.e. a set of randomly generated matrices and a set of benchmark matrices of different sizes and densities. This permitted to notice that the improvement procedure led to an efficient version dramatically reducing the run time up to 98%. Our algorithms were also compared with kernels from NIST Sparse Blas, CSparse and SPARSKIT2 libraries.