QUICK REVIEW
[论文解读] A survey of sparse matrix-vector multiplication performance on large matrices
Max R. Grossman, Christopher Thiele|arXiv (Cornell University)|Aug 1, 2016
Distributed and Parallel Computing Systems参考文献 6被引用 21
一句话总结
本文使用 Intel MKL、Trilinos、CUSPARSE 和 CUSP 在 CPU 和 GPU 上评估了大规模工业级稀疏矩阵-向量乘法(SpMV)的性能。研究发现,尽管基于 GPU 的 SpMV 框架(如 CUSPARSE)在仅执行内核时可实现最高 10.8 倍的加速,但端到端性能受到数据传输开销的限制,导致实际应用中基于 CPU 的 Trilinos 和 MKL 更具竞争力,其中 Trilinos 在更大矩阵上可匹配或超越 MKL 的性能。
ABSTRACT
We contribute a third-party survey of sparse matrix-vector (SpMV) product performance on industrial-strength, large matrices using: (1) The SpMV implementations in Intel MKL, the Trilinos project (Tpetra subpackage), the CUSPARSE library, and the CUSP library, each running on modern architectures. (2) NVIDIA GPUs and Intel multi-core CPUs (supported by each software package). (3) The CSR, BSR, COO, HYB, and ELL matrix formats (supported by each software package).
研究动机与目标
- 评估由 Cahn–Hilliard 方程离散化产生的大规模真实世界稀疏矩阵上 SpMV 的性能。
- 比较主要软件库(Intel MKL、Trilinos、CUSPARSE 和 CUSP)在 CPU 和 GPU 平台上的效率。
- 为每种软件堆栈和硬件平台识别最优的矩阵存储格式(CSR、BSR、COO、HYB、ELL)。
- 评估数据移动对端到端 SpMV 性能的影响,特别是对 GPU 实现的影响。
- 通过识别最具前景的软件堆栈(Trilinos 和 CUSPARSE)为未来在大规模和分布式环境中的进一步研究提供指导。
提出的方法
- 研究使用了六组具有 611K 到 9950 万行的大规模带状稀疏矩阵,其非零密度极低(0.00001% 至 0.00172%)。
- SpMV 性能在四个软件库上进行评估:Intel MKL(CPU)、Trilinos(Tpetra,CPU)、CUSPARSE(GPU)和 CUSP(GPU),每个库均使用其支持的存储格式。
- 针对每个矩阵和软件堆栈,测试了多种矩阵格式和线程数,选择中位数性能最快的结果作为最优配置。
- 通过测量仅内核执行时间来隔离算法性能,排除数据传输成本的影响;而端到端加速比则包含 GPU 内存传输开销。
- 评估在配备 Intel X5660 CPU(12 核心,48GB 内存)和 NVIDIA M2070 GPU(2.5GB GDDR5)的系统上进行,各库均使用标准配置。
- 通过测试 CSR、BSR(阻塞因子 ≤32)、COO、HYB(ELL 宽度 10–15)和 ELL 格式,为每个库和矩阵选择最优格式。
实验结果
研究问题
- RQ1在 CPU 和 GPU 平台上,哪个软件库(MKL、Trilinos、CUSPARSE、CUSP)在大规模稀疏矩阵上实现了最高的端到端 SpMV 性能?
- RQ2不同稀疏矩阵存储格式(CSR、BSR、COO、HYB、ELL)如何影响所评估库和硬件平台上的 SpMV 性能?
- RQ3主机与设备间的数据传输成本在多大程度上抵消了基于 GPU 的 SpMV 实现的性能优势?
- RQ4Trilinos 是否能在大规模稀疏矩阵上匹配或超越 Intel MKL 的性能,特别是在使用优化的 CPU 多线程时?
- RQ5当将内核执行与内存传输开销隔离时,CUSPARSE 相较于 CUSP 的相对性能如何?
主要发现
- 所有库和矩阵的最优矩阵格式均为 CSR,尽管先前研究认为 ELL 或 HYB 更适合 GPU,但因非零密度极低,导致内存合并优势减弱。
- 在仅内核执行时,CUSPARSE 相较于单线程 MKL 最高实现 10.81 倍加速,而 CUSP 最高实现 4.11 倍加速。
- 在包含数据传输开销的情况下,CUSPARSE 和 CUSP 相较于单线程 MKL 的加速比均低于 1.0 倍,表明 GPU 性能优势被通信开销所抵消。
- Trilinos 在较大矩阵上匹配或超越了 MKL 的性能,在最大矩阵(F)上使用 2 个线程时最高实现 4.75 倍加速,表明其面向对象 API 并未损害性能。
- 最佳 CPU 实现(8 线程 MKL)相较单线程 MKL 最高实现 3.87 倍加速,且 Trilinos 在矩阵 E 和 F 上优于 MKL。
- 由于其 API 的外存限制,CUSP 无法处理最大矩阵(E 和 F),凸显了 GPU 库设计中的关键约束。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。