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.
翻译:本文聚焦于三种机器学习应用中相关的稀疏矩阵运算,即稀疏-稠密矩阵乘法(SPMM)、采样稠密-稠密矩阵乘法(SDDMM),以及SDDMM与SPMM的组合运算(亦称FusedMM)。我们利用英特尔oneAPI的显式SIMD(ESIMD)SYCL扩展API,为SPMM、SDDMM和FusedMM运算开发了优化实现方案。与CUDA或SYCL不同,ESIMD API支持编写显式向量化的内核代码。通过ESIMD API实现的稀疏矩阵算法,其性能接近目标英特尔数据中心GPU的峰值性能。我们将性能结果与英特尔GPU上的oneMKL库,以及基于NVIDIA V100 GPU上最新CUDA实现的稀疏矩阵运算进行了对比,结果表明我们的稀疏矩阵运算实现方案在性能上均优于上述两者。