Performance Optimization of Deep Learning Sparse Matrix Kernels on Intel Max Series GPU
This work addresses performance bottlenecks in sparse matrix computations for machine learning applications on Intel GPUs, representing an incremental improvement over existing methods.
The paper tackled optimizing sparse matrix operations (SPMM, SDDMM, FusedMM) for machine learning on Intel GPUs using the ESIMD API, achieving performance close to peak and outperforming Intel's oneMKL library and a CUDA implementation on NVIDIA V100 GPU.
In this paper, we focus on three sparse matrix operations that are relevant for machine learning applications, namely, the sparse-dense matrix multiplication (SPMM), the sampled dense-dense matrix multiplication (SDDMM), and the composition of the SDDMM with SPMM, also termed as FusedMM. We develop optimized implementations for SPMM, SDDMM, and FusedMM operations utilizing Intel oneAPI's Explicit SIMD (ESIMD) SYCL extension API. In contrast to CUDA or SYCL, the ESIMD API enables the writing of explicitly vectorized kernel code. Sparse matrix algorithms implemented with the ESIMD API achieved performance close to the peak of the targeted Intel Data Center GPU. We compare our performance results to Intel's oneMKL library on Intel GPUs and to a recent CUDA implementation for the sparse matrix operations on NVIDIA's V100 GPU and demonstrate that our implementations for sparse matrix operations outperform either.