LOw-cOst yet High-Performant Sparse Matrix-Matrix Multiplication on Arm SME Architectures
Fuente:
arXiv
Enregistré dans:
| Auteurs principaux: | , , , , , , , , , , |
|---|---|
| Format: | Preprint |
| Publié: |
2025
|
| Sujets: | |
| Accès en ligne: | |
| Tags: |
Ajouter un tag
Pas de tags, Soyez le premier à ajouter un tag!
|
| _version_ | 1866909900310839296 |
|---|---|
| author | Lei, Kelun Yang, Hailong Zhang, Kaige Ma, Kejie Wang, Yiqing You, Xin Xu, Yufan Quintana-Orti, Enrique S. Luan, Zhongzhi Liu, Yi Qian, Depei |
| author_facet | Lei, Kelun Yang, Hailong Zhang, Kaige Ma, Kejie Wang, Yiqing You, Xin Xu, Yufan Quintana-Orti, Enrique S. Luan, Zhongzhi Liu, Yi Qian, Depei |
| contents | Sparse matrix-dense matrix multiplication (SpMM) is a critical kernel in both scientific computing and emerging graph learning workloads. The recent Armv9 architecture introduces Scalable Matrix Extension (SME), enabling tile-based matrix operations with high throughput. However, effectively exploiting both SME and traditional SIMD resources for unstructured sparse workloads remains an open challenge. To address this, we propose LOOPS, a hybrid execution framework that combines row-wise CSR-part with vector-wise BCSR-part layout, enabling cooperative utilization of vector instructions (NEON) and Scalable Matrix Extension (SME) resources. LOOPS supports multi-precision SpMM across FP64, FP32, and FP16 via an adaptive two-level parallelization scheme guided by a lightweight performance model. Experimental results on the entire SuiteSparse on an Apple's M4Pro CPU show that LOOPS achieves average speedups of 9.93$\times$ (FP32)/14.4$\times$ (FP64) against the CPU baseline TACO and 71.3$\times$ (FP32)/54.8$\times$ (FP64) with respect to Armadillo. A comparison of LOOPS running on the same CPU with two GPU methods (cuSPARSE, Magicube) executed on an NVIDIA A100 GPU show average speedups for LOOPS between 19.8$\times$ and 33.5$\times$, depending on the precision. Notably, LOOPS delivers significantly better energy efficiency than the GPU codes on the A100 GPU. |
| format | Preprint |
| id |
arxiv_https___arxiv_org_abs_2511_08158 |
| institution | arXiv |
| publishDate | 2025 |
| record_format | arxiv |
| spellingShingle | LOw-cOst yet High-Performant Sparse Matrix-Matrix Multiplication on Arm SME Architectures Lei, Kelun Yang, Hailong Zhang, Kaige Ma, Kejie Wang, Yiqing You, Xin Xu, Yufan Quintana-Orti, Enrique S. Luan, Zhongzhi Liu, Yi Qian, Depei Distributed, Parallel, and Cluster Computing Sparse matrix-dense matrix multiplication (SpMM) is a critical kernel in both scientific computing and emerging graph learning workloads. The recent Armv9 architecture introduces Scalable Matrix Extension (SME), enabling tile-based matrix operations with high throughput. However, effectively exploiting both SME and traditional SIMD resources for unstructured sparse workloads remains an open challenge. To address this, we propose LOOPS, a hybrid execution framework that combines row-wise CSR-part with vector-wise BCSR-part layout, enabling cooperative utilization of vector instructions (NEON) and Scalable Matrix Extension (SME) resources. LOOPS supports multi-precision SpMM across FP64, FP32, and FP16 via an adaptive two-level parallelization scheme guided by a lightweight performance model. Experimental results on the entire SuiteSparse on an Apple's M4Pro CPU show that LOOPS achieves average speedups of 9.93$\times$ (FP32)/14.4$\times$ (FP64) against the CPU baseline TACO and 71.3$\times$ (FP32)/54.8$\times$ (FP64) with respect to Armadillo. A comparison of LOOPS running on the same CPU with two GPU methods (cuSPARSE, Magicube) executed on an NVIDIA A100 GPU show average speedups for LOOPS between 19.8$\times$ and 33.5$\times$, depending on the precision. Notably, LOOPS delivers significantly better energy efficiency than the GPU codes on the A100 GPU. |
| title | LOw-cOst yet High-Performant Sparse Matrix-Matrix Multiplication on Arm SME Architectures |
| topic | Distributed, Parallel, and Cluster Computing |
| url | https://arxiv.org/abs/2511.08158 |