对角寻址矩阵小技巧:如何提升 SpMV 性能
数值分析
2025-01-24 v1 数据结构与算法
数值分析
性能
摘要
我们提出一种在不损失信息的前提下缩减稀疏矩阵存储规模的技术。我们称之为对角寻址(DA)存储。它利用了应用中出现的矩阵通常较低的带宽。对于访存受限的算法,这种流量缩减对单精度与多精度算法均有直接益处。具体而言,我们展示如何将 DA 存储应用于压缩稀疏行(CSR)格式,并比较在计算稀疏矩阵向量(SpMV)乘积时的性能,该乘积是许多迭代算法的基本构件。我们研究了 SuiteSparse 矩阵集中适配使用有符号32位索引的 CSR 格式的1367个矩阵。其中超过95%的矩阵在使用16位列索引的 DA-CSR 格式下适配,可能需经过 Reverse Cuthill-McKee (RCM) 重排序。使用 IEEE 754 双精度标量,我们观察到当流量超过末级 CPU 缓存大小时,性能平均提升11%(单线程)或17.5%(多线程);该情形下预测提升为20%。对于位于 CPU 二级与三级组合缓存内的流量,少数测试矩阵的多线程性能提升超过40%。
引用
@article{arxiv.2307.06305,
title = {Diagonally-Addressed Matrix Nicknack: How to improve SpMV performance},
author = {Jens Saak and Jonas Schulze},
journal= {arXiv preprint arXiv:2307.06305},
year = {2025}
}
备注
8 pages, 4 figures, 2 tables, submitted to PAMM