A Machine Learning-Based Approach for Selecting SpMV Kernels and Matrix Storage Formats

Hang CUI  Shoichi HIRASAWA  Hiroaki KOBAYASHI  Hiroyuki TAKIZAWA  

Publication
IEICE TRANSACTIONS on Information and Systems   Vol.E101-D   No.9   pp.2307-2314
Publication Date: 2018/09/01
Online ISSN: 1745-1361
DOI: 10.1587/transinf.2017EDP7176
Type of Manuscript: PAPER
Category: Artificial Intelligence, Data Mining
Keyword: 
SpMV,  code selection,  deep learning,  convolutional neural network,  

Full Text: PDF(749.4KB)
>>Buy this Article


Summary: 
Sparse Matrix-Vector multiplication (SpMV) is a computational kernel widely used in many applications. Because of the importance, many different implementations have been proposed to accelerate this computational kernel. The performance characteristics of those SpMV implementations are quite different, and it is basically difficult to select the implementation that has the best performance for a given sparse matrix without performance profiling. One existing approach to the SpMV best-code selection problem is by using manually-predefined features and a machine learning model for the selection. However, it is generally hard to manually define features that can perfectly express the characteristics of the original sparse matrix necessary for the code selection. Besides, some information loss would happen by using this approach. This paper hence presents an effective deep learning mechanism for SpMV code selection best suited for a given sparse matrix. Instead of using manually-predefined features of a sparse matrix, a feature image and a deep learning network are used to map each sparse matrix to the implementation, which is expected to have the best performance, in advance of the execution. The benefits of using the proposed mechanism are discussed by calculating the prediction accuracy and the performance. According to the evaluation, the proposed mechanism can select an optimal or suboptimal implementation for an unseen sparse matrix in the test data set in most cases. These results demonstrate that, by using deep learning, a whole sparse matrix can be used to do the best implementation prediction, and the prediction accuracy achieved by the proposed mechanism is higher than that of using predefined features.