Towards Dynamic Autotuning of SpMV in CUSP Library
Authors | |
---|---|
Year of publication | 2024 |
Type | Article in Proceedings |
Conference | IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW) |
MU Faculty or unit | |
Citation | |
Doi | http://dx.doi.org/10.1109/IPDPSW63119.2024.00012 |
Keywords | dynamic autotuning; SpMV; CUPS; Kernel Tuning Toolkit |
Description | Sparse matrix-vector product (SpMV) is a central operation in many iterative methods for solving linear systems and, as such, is an attractive candidate for acceleration on the GPU. However, the performance of the SpMV kernel can vary depending both on the target architecture as well as on the sparsity pattern of the matrix. Thus, to achieve optimal performance, the implementation might need to be adjusted for each particular matrix and architecture. This can be achieved through dynamic autotuning, a method that can optimize a source code during program runtime. In this paper, we present a dynamic autotuning of SpMV kernel included in a production-quality CUSP library. We identify and implement tuning parameters and use the Kernel Tuning Toolkit framework for autotuning of SpMV working with the DIA and ELL sparse matrix formats. The dynamic autotuning integration is fully transparent to the library users - it can be activated just by re-compiling software using our tunable version of the CUSP. The proposed autotuned library is evaluated by comparing it with the original CUSP kernels on a set of representative matrices and by examining the contribution of autotuning. The results show that the autotuned kernels can reach up to about 16.9 × speedup compared to a fixed implementation. |
Related projects: |