Skip to main content
QUICK REVIEW

[论文解读] Design Principles for Sparse Matrix Multiplication on the GPU

Carl Yang, Aydın Buluç|arXiv (Cornell University)|Mar 22, 2018
Parallel Computing and Optimization Techniques被引用 8
一句话总结

该论文提出两种新型的GPU优化稀疏矩阵-密集矩阵乘法(SpMM)算法,采用压缩稀疏行(CSR)格式,通过基于归并的负载均衡和行主序合并内存访问,实现在真实世界数据集上相对于最先进实现的4.1倍峰值加速和31.7%的几何平均加速。该方法避免了昂贵的格式转换,专注于延迟隐藏和指令级并行性,从而实现更高的GPU利用率。

ABSTRACT

We implement two novel algorithms for sparse-matrix dense-matrix multiplication (SpMM) on the GPU. Our algorithms expect the sparse input in the popular compressed-sparse-row (CSR) format and thus do not require expensive format conversion. While previous SpMM work concentrates on thread-level parallelism, we additionally focus on latency hiding with instruction-level parallelism and load-balancing. We show, both theoretically and experimentally, that the proposed SpMM is a better fit for the GPU than previous approaches. We identify a key memory access pattern that allows efficient access into both input and output matrices that is crucial to getting excellent performance on SpMM. By combining these two ingredients---(i) merge-based load-balancing and (ii) row-major coalesced memory access---we demonstrate a 4.1x peak speedup and a 31.7% geomean speedup over state-of-the-art SpMM implementations on real-world datasets.

研究动机与目标

  • 在无需将CSR格式转换为其他格式的前提下,提升GPU上稀疏矩阵-密集矩阵乘法(SpMM)的性能。
  • 解决GPU架构中SpMM存在的不规则内存访问和负载不平衡问题。
  • 识别并利用一种关键的内存访问模式,实现对输入和输出矩阵的高效合并访问。
  • 设计一种启发式方法,根据矩阵特征动态选择两种SpMM核函数变体。
  • 证明在稀疏度低于9%时,SpMM可在GPU上超越密集矩阵乘法(GEMM)的性能。

提出的方法

  • 将两种主流的SpMV算法类别——行分割与基于归并的算法——推广至GPU上的SpMM计算。
  • 设计一种基于归并的核函数,通过将线程块与密集矩阵的行对齐,并使用归并路径在不同warp间均衡工作负载,实现内存访问的合并。
  • 实现一种轻量级启发式方法,其在99.3%的准确率下实现与最优选择相当的核函数选择,显著降低运行时开销。
  • 通过确保稀疏输入矩阵和密集输出矩阵均采用行主序合并访问,优化内存访问,最小化延迟并最大化吞吐量。
  • 利用协作线程数组(CTAs)和warp级别原语,减少线程发散并最大化占用率。
  • 将负载均衡逻辑与计算逻辑紧密耦合,避免抽象层开销,同时保持高性能。

实验结果

研究问题

  • RQ1基于归并的负载均衡能否有效从SpMV扩展到GPU上的SpMM?
  • RQ2何种内存访问模式可实现在不进行格式转换的前提下,实现高性能的GPU SpMM?
  • RQ3如何以高准确率和低运行时开销实现两种SpMM变体之间的动态核函数选择?
  • RQ4在何种稀疏度水平下,SpMM在GPU上可超越GEMM?
  • RQ5在不改变输入格式的前提下,能否显著提升相对于厂商优化的CSR SpMM实现的性能?

主要发现

  • 所提出的基于归并的SpMM核函数在SuiteSparse集合中157个真实世界矩阵上,相比最先进SpMM实现,实现了4.1倍峰值加速和31.7%的几何平均加速。
  • 该方法在各类稀疏矩阵上均优于cuSPARSE的csrmm和csrmm2函数,尤其在高瘦型矩阵上表现出一致的性能增益。
  • 核函数选择的启发式方法相比最优选择实现了99.3%的准确率,实现了近乎最优性能,且开销极低。
  • 当稀疏矩阵的非零元素占比低于9%时,SpMM性能超越GEMM,证明了其在低稀疏度下的高效性。
  • 通过确保合并内存访问和均衡的工作负载分配,该方法保持了高GPU占用率并最小化了线程发散。
  • 性能提升主要归因于通过指令级并行性和行主序合并内存访问模式实现的有效延迟隐藏。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。