Sparse matrix-vector multiplication on GPGPU clusters: A new storage format and a scalable implementation
Erlangen Regional Computing Center(埃尔朗根区域计算中心);Ernst-Moritz-Arndt University of Greifswald(格赖夫斯瓦尔德恩斯特·莫里茨·阿恩特大学);German Aerospace Center (DLR)(德国航空航天中心);Los Alamos National Laboratory(洛斯阿拉莫斯国家实验室)
针对GPGPU集群上的稀疏矩阵-向量乘法,提出了一种新的pJDS存储格式以减少内存开销,并实现了可扩展的混合MPI-GPGPU并行代码。
2012-02-29 cs.DC cs.MS cs.NA
A survey of sparse matrix-vector multiplication performance on large matrices
Rice University(莱斯大学);Shell International Exploration & Production Inc.(壳牌国际勘探与生产公司)
本文调研了工业级大规模稀疏矩阵向量乘法在不同架构和格式上的性能,涵盖Intel MKL、Trilinos、CUSPARSE和CUSP等实现。
2016-08-01 cs.DC cs.NA cs.PF
A Framework for Practical Parallel Fast Matrix Multiplication
Stanford University(斯坦福大学);Sandia National Laboratories(桑迪亚国家实验室)
本文提出一个框架,展示新型快速矩阵乘法算法在中等规模问题上优于传统算法和Strassen算法,同时探讨矩阵形状对算法选择的影响,并开发代码生成工具实现多种并行变体。
2014-09-09 cs.DC cs.MS cs.NA
Verification Challenges in Sparse Matrix Vector Multiplication in High Performance Computing: Part I
本文提出SpMV的顺序和MPI并行实现,作为科学软件验证的挑战问题,基于PETSc库。
2025-10-15 cs.DC cs.LO cs.MS
Exact Sparse Matrix-Vector Multiplication on GPU's and Multicore Architectures
我们提出了有限域和环$\Zb/m\Zb$的稀疏矩阵--稠密向量乘法(\spmv{})的不同实现。我们利用图形卡处理器(GPU)和多核架构。我们的目标是提高\linbox库中的\spmv{}的速度,以及今后其黑盒算法的速度。此外,我们使用这个和一个新的并行化的sigma基算法在有限域上的并行块Wiedemann秩实现。
2010-04-21 cs.DC cs.MS cs.SC
Communication-Optimal Parallel Algorithm for Strassen's Matrix Multiplication
并行矩阵乘法是分布式高性能计算中研究最多的基本问题之一。我们得到了一个新的并行算法,该算法是基于Strassen的快速矩阵乘法和最小化通信。该算法优于所有已知的并行矩阵乘法算法,经典的和基于Strassen的,无论是渐进的,并在实践中。并行化Strassen算法的一个关键瓶颈是处理器之间的通信。Ballard,Demmel,Holtz和Schwartz(SPAA'11)使用底层计算图的扩展特性证明了这些通信成本的下限。我们的算法匹配这些下限,因此是通信最优的。它在最大可能范围内表现出完美的强缩放性。基准测试我们的实现在Cray XT4上,我们获得了超过经典和基于Strassen的算法的加速比,范围从24%到184%,对于固定的矩阵维数n=94080,其中节点的数量范围从49到7203。我们的并行化方法推广到其他快速矩阵乘法算法。
2012-02-14 cs.CC cs.DC cs.DS
Multi-threaded Sparse Matrix-Matrix Multiplication for Many-Core and GPU Architectures
稀疏矩阵-矩阵乘法是一个关键的核心,在科学计算和图分析等领域有着广泛的应用。过去已经研究了几种算法用于这个基本内核。在本文中,我们开发了稀疏矩阵矩阵乘法的并行算法,重点是跨不同的高性能计算架构的性能移植。这些算法的性能取决于它们所使用的数据结构。我们比较了这些算法中不同类型的数据结构,并展示了这些数据结构之间的性能差异。此外,我们开发了一个元算法,kkSpGEMM,选择正确的算法和数据结构的基础上的问题的特点。我们展示了三种体系结构的性能比较,并证明了社区需要开发两个阶段的稀疏矩阵矩阵乘法实现所涉及的数据结构的有效重用。
2018-01-09 cs.DC
Scaling betweenness centrality using communication-efficient sparse matrix multiplication
介数中心性(BC)是一个重要的图问题,它通过穿过顶点的最短路径的数量来衡量顶点的重要性。我们提出了最大边界介数中心性(MFBC):一种基于新颖的稀疏矩阵乘法例程的简洁BC算法,其在$p$处理器上执行比最佳已知替代方案少$p^{1/3}$倍的通信,对于具有$n$顶点和平均度$k=n/p^{2/3}$的图。我们制定,实施,并证明了MFBC的正确性加权图利用幺半群,而不是半环,这使得一个令人惊讶的简洁的配方。MFBC的规模非常稀疏和相对密集的图形。它自动搜索分布式数据分解和稀疏矩阵乘法算法的空间,以获得最有利的配置。MFBC实现的性能比著名的CombBLAS库高出8倍,并显示出更强大的性能。我们的设计方法很容易扩展到其他图形问题。
2017-08-09 cs.DC cs.DM cs.MS
Exploiting Multiple Levels of Parallelism in Sparse Matrix-Matrix Multiplication
稀疏矩阵-矩阵乘法(Sparse matrix-matrix multiplication,简称SpGEMM)是许多高性能图算法以及一些线性求解器(如代数多重网格)的关键原语。SpGEMM的现有并行实现的缩放严重受限于通信。尽管在基于Erdos-Renyi矩阵的平面MPI模型中已经提出了3D(或2.5D)算法并进行了理论分析,但这些算法还没有在实际中实现,也没有对一般情况下的算法复杂度进行分析。在这项工作中,我们提出了有史以来第一次实现的三维SpGEMM制定,也利用多个(节点内和节点间)的并行级别,实现显着的速度比国家的最先进的公开可用的代码在所有级别的并发。我们广泛评估我们的实施情况,并确定应进一步研究的瓶颈。
2016-11-16 cs.DC cs.NA math.NA
Coded Sparse Matrix Multiplication
The Ohio State University(俄亥俄州立大学)
本文提出一种稀疏编码策略,解决大规模分布式矩阵乘法中的stragglers问题,实现近最优恢复阈值、低计算开销和线性解码时间。
2018-04-17 cs.DC cs.NA math.NA
SMAT: An Input Adaptive Sparse Matrix-Vector Multiplication Auto-Tuner
稀疏矩阵向量乘法(Sparse matrix vector multiplication,SpMV)是科学和工程应用中的一个重要核心问题.前面的优化是特定于稀疏矩阵格式的,并将最佳格式的选择公开给应用程序员。在这项工作中,我们开发了一个自动调优框架,以弥合特定的优化内核和它们的通用用途之间的差距。我们提出了一个SpMV自动调谐器(SMAT),提供了一个统一的接口,基于压缩稀疏行(CSR)的程序员隐式地选择最佳的格式和最快的实现任何输入稀疏矩阵在运行时。SMAT利用一个数据采掘模型,该模型基于从UF稀疏矩阵集合中的2373个矩阵中提取的一组性能参数来制定,以快速搜索最佳组合。实验表明,SMAT在Intel上实现了单精度75 GFLOP/s、双精度33 GFLOP/s的最高性能,在AMD上实现了单精度41 GFLOP/s、双精度34 GFLOP/s的最高性能。与MKL库中的稀疏函数相比,SMAT的运行速度提高了3倍以上。
2012-10-09 cs.DC cs.MS
Highly Scalable Multiplication for Distributed Sparse Multivariate Polynomials on Many-core Systems
我们提出了一个高度可扩展的算法乘以稀疏的多元多项式表示的分布式格式。该算法不仅针对共享存储器多核计算机,而且针对计算机集群或附接到主机计算机的专用硬件,诸如图形处理单元或众核协处理器。通过在主并行步骤期间缺乏同步、锁定和假共享来确保大量核上的可扩展性。
2013-03-29 astro-ph.IM cs.DC cs.MS
Fast Strassen-based $A^t A$ Parallel Multiplication
矩阵乘法$A^t A$作为一种中间运算出现在许多问题的求解过程中。本文提出了一种新的$A^t A$乘法的高速缓存无关算法。我们的算法A $\scriptstyle \mathsf{T}$ A调用经典的Strassen算法作为子例程,将传统的$A^t A$乘法的计算成本%(以执行的产品的数量表示)降低到$\frac{2}{7}n^{\log_2 7}$。它适用于一般的矩形矩阵,并利用所得乘积矩阵的特殊对称性来节省内存。我们使用MPI范例来并行实现A $\scriptstyle \mathsf{T}$ A,并在Galileo集群的一小部分节点上测试其性能。实验结果表明,该通信系统具有良好的可扩展性和加速性,同时所设计的通信系统中交换的消息数最少。在测试的配置中,并行开销和固有的顺序时间分数可以忽略不计。
2019-02-06 cs.DC cs.MS
Blocking Techniques for Sparse Matrix Multiplication on Tensor Accelerators
张量加速器之所以受到欢迎,是因为它们提供了一种廉价而有效的解决方案,可以加速深度学习中计算成本高的任务,最近还可以加速其他科学计算应用。然而,由于它们的特性是专门为张量代数(通常是稠密矩阵乘积)设计的,因此通常认为它们不适合稀疏数据的应用。为了挑战这一观点,我们讨论的方法和解决方案,加速稀疏矩阵乘法在这样的架构。特别是,我们提出了一个1维分块算法的密度,从任意稀疏矩阵建立密集的块的理论保证。实验结果表明,即使对于非结构化和高度稀疏的矩阵,我们基于块的解决方案,利用Nvidia张量核心是比其稀疏的同行更快。我们观察到在真实世界的稀疏矩阵上高达两个数量级的显着加速。
2022-02-11 cs.DC
Scalable Task-Based Algorithm for Multiplication of Block-Rank-Sparse Matrices
基于任务的可扩展通用矩阵乘法算法(SUMMA),一个流行的矩阵乘法(MM)算法,适用于乘法的层次自由,秩结构的矩阵,出现在量子化学(QC)领域。我们制定的新功能是:(1)并发调度多个SUMMA迭代,(2)细粒度的基于任务的组合。这些功能使它容忍的负载不平衡,由于不规则的矩阵结构,并消除所有人为的来源的全球synchronization.Scalability迭代计算的平方根逆块秩稀疏QC矩阵的证明;满秩(密集)矩阵的性能,我们的SUMMA制定通常超过了国家的最先进的密集MM实现(ScaLAPACK和Cyclops张量框架)。
2015-10-09 cs.DC
Performance Modeling of Streaming Kernels and Sparse Matrix-Vector Multiplication on A64FX
A64 FX CPU是目前Top500排行榜上排名第一的超级计算机。虽然它是一个传统的基于缓存的多核处理器,但其峰值性能和内存带宽可与加速器设备相媲美。为这样一个新的体系结构生成高效的代码需要很好地理解其性能特性。利用这些功能,我们构建的执行缓存存储器(ECM)的性能模型的A64 FX处理器在FX 700超级计算机,并验证它使用流循环。我们还确定架构的特点,并获得优化提示。将ECM模型应用于稀疏矩阵向量乘法(SpMV),我们激发了CRS矩阵存储格式不合适的原因以及SELL-C-sigma格式如何通过适当的代码优化实现SpMV的带宽饱和。
2020-09-29 cs.AR cs.DC cs.PF
Efficient Distributed-Memory Parallel Matrix-Vector Multiplication with Wide or Tall Unstructured Sparse Matrices
本文提出了一种有效的技术,矩阵向量和向量转置矩阵乘法在分布式内存并行计算环境中,矩阵是非结构化的,稀疏的,有一个显着的列数比行数或反之亦然。我们的方法允许并行I/O,不需要大量的预处理,并具有相同的通信复杂性的矩阵向量乘法与列或行分区。我们使用MPI实现该方法。我们将矩阵划分为单个非零元素,而不是行或列,并使用与矩阵匹配的“重叠”向量表示。转置乘法使用矩阵特定的MPI通信和减少,我们可以建立一个有效的方式。所提出的技术实现了良好的工作每处理器的平衡,即使一些列是密集的,同时保持通信成本相对较低。
2018-12-03 cs.DC cs.MS
FlashSparse: Minimizing Computation Redundancy for Fast Sparse Matrix Multiplications on Tensor Cores
Beijing University of Posts and Telecommunications(北京邮电大学)
FlashSparse通过交换-转置策略最小化稀疏粒度,减少计算冗余并充分利用张量核心,在H100和RTX 4090上实现稀疏矩阵乘法5.5倍和3.22倍加速。
2024-12-15 cs.DC cs.LG
Improving Locality in Sparse and Dense Matrix Multiplications
本文提出运行时方法 tile fusion,通过融合稀疏与稠密矩阵乘法分块来改善数据局部性,并在多核 CPU 上相比未融合基线和 MKL 分别取得 1.97 倍和 1.64 倍的几何平均加速。
2024-06-28 cs.DC
A Framework for General Sparse Matrix-Matrix Multiplication on GPUs and Heterogeneous Processors
Niels Bohr Institute, University of Copenhagen(哥本哈根大学尼尔斯·玻尔研究所)
本文提出了一种面向GPU和异构处理器的通用稀疏矩阵-矩阵乘法框架,解决稀疏矩阵乘法中的内存预分配、并行插入操作和负载均衡问题,提升性能和效率。
2015-09-13 cs.DC cs.MS cs.NA
A sparsity-aware distributed-memory algorithm for sparse-sparse matrix multiplication
提出一种分布式内存1D SpGEMM算法,利用MPI RDMA和块获取策略降低通信成本,在多种配置下优于CombBLAS中的2D和3D实现。
2024-08-26 cs.DC
Strong Scaling of Matrix Multiplication Algorithms and Memory-Independent Communication Lower Bounds
如果并行算法在P个处理机上的运行时间是1/P线性的,包括所有的通信开销,则该并行算法具有完美的强标度性。具有完美强标度的矩阵乘法的分布式内存并行算法最近才被发现。一种是基于经典矩阵乘法(Solomonik and Demmel,2011),另一种是基于Strassen的快速矩阵乘法(Ballard,Demmel,Holtz,Lipshitz,and Schwartz,2012)。这两种算法都可以完美地扩展,但只能扩展到处理器间通信不再扩展的处理器数量。我们得到了一个内存独立的通信成本的经典和基于Strassen的分布式存储矩阵乘法算法的下界。这些界限意味着,没有经典的或基于Strassen的并行矩阵乘法算法可以强大的规模完全超出上述两个并行算法已经达到的范围。记忆无关的边界和强缩放边界推广到其他算法。
2012-02-14 cs.CC cs.DC cs.DS
Approximate multiplication of nearly sparse matrices with decay in a fully recursive distributed task-based parallel framework
在本文中,我们考虑并行实现的近似乘法的大型矩阵与指数衰减的元素。这种矩阵出现在与电子结构计算和计算科学的一些其他领域相关的计算中。通常,稀疏性通过丢弃输入矩阵的小条目(截断)来引入。另一种方法是稀疏近似乘法算法[M. Challacombe和N. Bock,arXiv preprint 1011.3534,2010]执行子矩阵乘积的截断。我们考虑这两种方法及其组合,即截断输入矩阵和子矩阵乘积。使用Chunks and Tasks编程模型和库完成的实现[E. H. Rubensson和E. Rudberg,并行计算,40:328-343,2014]被呈现和讨论。我们表明,在Frobenius范数的绝对误差表现为$O\left(n^{1/2} \right), n \longrightarrow \infty $和$O\left(τ^{p/2} \right), τ\longrightarrow 0,\,\, \forall p < 2$的所有三种方法,其中$n$是矩阵的大小和$τ$是截断阈值。我们比较了一个模型问题的方法,并表明,合并后的方法优于原来的两个。该方法也适用于矩阵来自大型化学系统与$\sim 10^6$原子。我们表明,这两种方法的结合,实现了更好的弱缩放,通过减少通信量的一个因素的$\approx 2$。
2021-02-20 cs.DC cs.NA math.NA
Arrow Matrix Decomposition: A Novel Approach for Communication-Efficient Sparse Matrix Multiplication
本文提出将稀疏矩阵分解为少量 Arrow 矩阵并利用置换连接,实现通信避免的稀疏矩阵乘法,在数亿行矩阵上优于现有方法,具有近线性扩展性。
2024-03-20 cs.DC
Task-Based Algorithm for Matrix Multiplication: A Step Towards Block-Sparse Tensor Computing
分布式存储矩阵乘法(MM)是许多领域(机器学习、量子物理)中算法的关键元素。用于密集MM的常规算法依赖于规则/均匀数据分解来确保负载平衡。这些特性与量子物理中快速方法越来越相关的不规则结构(块稀疏或块内秩稀疏)相冲突。为了处理这种不规则数据,我们提出了一种新的MM算法的基础上可扩展的通用矩阵乘法算法(SUMMA)。新的特点是:(1)多问题调度的SUMMA迭代,(2)细粒度的基于任务的制定。后者消除了显式的节点间同步的需要,与多迭代调度,这允许由于非均匀矩阵结构的负载不平衡。对于具有均匀和不均匀块大小的平方MM(后者模拟具有一般不规则结构的矩阵),我们发现在商品和高端硬件上,在弱和强缩放制度中表现出色。
2015-04-20 cs.DC
Semi-External Memory Sparse Matrix Multiplication for Billion-Node Graphs
稀疏矩阵乘法传统上在内存中执行,并使用多个节点的分布式内存扩展到大型矩阵。相比之下,我们通过以半外部存储器(SEM)方式实现稀疏矩阵密集矩阵乘法(SpMM)来扩展稀疏矩阵乘法超过存储器容量;即,我们将稀疏矩阵保存在商品SSD上,将密集矩阵保存在内存中。我们的SEM-SpMM集成了许多针对大型幂律图的内存优化。它的性能优于Trilinos和英特尔MKL的内存实现,并可扩展到十亿节点图形,远远超出内存的限制。此外,在单个大型并行机上,我们的SEM-SpMM与Trilinos的分布式实现一样快,使用五倍的处理能力。我们还在内存中运行我们的实现(IM-SpMM),以量化在SSD上保存数据的开销。当密集矩阵超过四列时,SEM-SpMM在图上实现了IM-SpMM的几乎100%性能;它在所有输入上实现了IM-SpMM的至少65%性能。我们将我们的SpMM应用于三个重要的数据分析任务-PageRank,eigensolving和非负矩阵分解-并表明我们的SEM实现显着推进了最先进的技术。
2016-10-14 cs.DC
RDMA-Based Algorithms for Sparse Matrix Multiplication on GPUs
本文针对GPU分布式环境下的稀疏矩阵乘法,提出基于RDMA和NVSHMEM的异步SpMM与SpGEMM算法,实验表明其性能优于批量同步方案,并支持工作窃取等新算法。
2024-05-31 cs.DC
A work-efficient parallel sparse matrix-sparse vector multiplication algorithm
我们设计并开发了一个工作效率高的多线程算法稀疏矩阵稀疏向量乘法(SpMSpV)的矩阵,输入向量和输出向量都是稀疏的。SpMSpV是新兴的GraphBLAS标准中的重要原语,并且是许多图算法的主力,包括广度优先搜索,二分图匹配和最大独立集。随着线程数的增加,现有的多线程SpMSpV算法可能会花费更多的时间来访问稀疏矩阵数据结构,而不是做算术。我们的共享内存并行SpMSpV算法的工作效率的意义上说,它的总工作是成比例的算术运算所需的数量。关键的见解是避免每个线程单独扫描矩阵列的列表。我们的算法是简单的实现和现有的基于列的稀疏矩阵格式。它在具有异构稀疏模式的不同矩阵和向量上表现良好。该算法的高性能实现在24核Intel Ivy Bridge处理器上实现了高达15倍的加速,在64核Intel KNL众核处理器上实现了高达49倍的加速。与现有算法的实现相比,我们的算法的性能在各种不同的输入类型上都是持续的,包括表示无标度和高直径图的矩阵。
2016-10-25 cs.DC
Tight Memory-Independent Parallel Matrix Multiplication Communication Lower Bounds
矩阵乘法算法的通信下界早已建立。然而,大多数渐近分析方法要么忽略了常数因子,要么没有得到最严格的可能值。最近的工作表明,更仔细的分析,提高了一些经典的矩阵乘法下界的最佳已知常数,并有助于确定更有效的算法,匹配的领导阶项的下界,提高实际性能。本文的主要成果是建立了并行矩阵乘法的与内存无关的通信下界。我们的常数改善以前的工作中的每三种情况下,取决于矩阵的纵横比的相对大小。
2022-05-26 cs.DC
Distributed-Memory Parallel Algorithms for Sparse Matrix and Sparse Tall-and-Skinny Matrix Multiplication
针对稀疏矩阵与高瘦矩阵乘法(TS-SpGEMM)的性能瓶颈,提出一种基于定制1D划分和稀疏感知分块的分布式内存算法,结合本地与远程计算降低通信开销,较2D和3D SUMMA平均提升5倍性能,并在512节点上验证了多源广度优先搜索等应用的可扩展性。
2024-08-21 cs.DC
Porting of the DBCSR library for Sparse Matrix-Matrix Multiplications to Intel Xeon Phi systems
稀疏矩阵相乘是模拟含有数千个原子和电子的系统的电子结构的关键运算。高度优化的稀疏线性代数库DBCSR(分布式块压缩稀疏行)专门设计用于有效地执行此类稀疏矩阵-矩阵乘法。该库是线性标度电子结构理论和CP 2K中低标度相关方法的基本构建块。它使用MPI和OpenMP进行并行化,并可以通过CUDA利用GPU加速器。我们描述了DBCSR在采用英特尔至强融核Knights Landing(KNL)处理器的系统上与采用英特尔至强CPU的系统(包括采用GPU的系统)的性能比较。我们发现,在相同数量的节点上,基于Cray XC 40 KNL的系统上的DBCSR比使用Nvidia P100卡的混合Cray XC 50慢11%-14%。与配备双插槽Intel Xeon CPU的Cray XC 40系统相比,KNL的速度最高可提高24%。
2017-08-21 cs.DC
Design Principles for Sparse Matrix Multiplication on the GPU
我们实现了两个新的算法稀疏矩阵密集矩阵乘法(SpMM)的GPU上。我们的算法期望稀疏输入流行的压缩稀疏行(CSR)格式,因此不需要昂贵的格式转换。虽然以前的SpMM工作集中在线程级并行,我们还专注于延迟隐藏与指令级并行和负载平衡。我们表明,无论是理论上和实验上,建议的SpMM是一个更好的适合GPU比以前的方法。我们确定了一个关键的内存访问模式,允许有效地访问到输入和输出矩阵,这是至关重要的SpMM获得优异的性能。通过结合这两个成分--(i)合并为基础的负载平衡和(ii)行为主合并内存访问-我们证明了4.1倍的峰值加速比和31.7%的几何加速比在现实世界的数据集上的最先进的SpMM实现。
2018-06-12 cs.DC
Communication-Avoiding and Memory-Constrained Sparse Matrix-Matrix Multiplication at Extreme Scale
稀疏矩阵-矩阵乘法(Sparse matrix-matrix multiplication,SpGEMM)是各种图、科学计算和机器学习算法中广泛使用的核心。在本文中,我们考虑在数十万个处理器上执行SpGEMM,在输出矩阵中生成数万亿个非零。这种极端规模的分布式SpGEMM面临两个关键挑战:(1)高通信成本和(2)生成输出的内存不足。我们通过集成的通信避免和内存受限的SpGEMM算法来解决这些挑战,该算法可扩展到262,144个核心(超过100万个硬件线程),并且只要输入和输出的一小部分适合聚合内存,就可以乘以任何大小的稀疏矩阵。当我们在Cray XC 40超级计算机上从16,384个核心增加到262,144个核心时,新的SpGEMM算法在乘以大规模蛋白质相似性矩阵时运行速度快了10倍。
2020-10-16 cs.DC
Node Aware Sparse Matrix-Vector Multiplication
稀疏矩阵向量乘(SpMV)运算是许多仿真和线性求解器中的关键计算内核。与并行SpMV的参考实现相关联的大的通信要求导致差的并行可扩展性。通信成本取决于发送和接收进程的物理位置:注入网络的消息比在同一节点上的进程之间发送的消息成本更高。在本文中,一个节点感知并行SpMV(NAPSpMV)被引入到利用系统拓扑结构的知识,特别是节点处理器的布局,以减少与通信相关的成本。输入向量的值被重新分配,以最小化在SpMV期间注入网络的消息的数量和大小,从而降低通信成本。各种计算实验,突出了这种方法的效率。
2017-11-15 cs.DC cs.MS
Sparse Random Khatri-Rao Product Codes for Distributed Matrix Multiplication
我们介绍了两个推广的范例,使用随机Khatri-Rao产品(RKRP)代码的分布式矩阵乘法。本文首先介绍了一类具有稀疏生成矩阵的稀疏随机Khatri-Rao乘积码。当输入矩阵稀疏时,SRKRP码比RKRP码具有更低的编码、计算和通信成本,同时它们表现出与其他现有技术方案相似的数值稳定性。我们实证研究的概率之间的关系的生成矩阵(仅限于一组非离散)的随机选择的SRKRP码是秩亏和各种参数的编码方案,包括稀疏度的生成矩阵和非离散的数量。其次,我们表明,如果主节点可以执行一个非常小的数量的矩阵产品的计算,除了由工人进行的计算,故障概率可以大大提高。
2022-05-12 cs.DC cs.IT math.IT
SHIRO: Near-Optimal Communication Strategies for Distributed Sparse Matrix Multiplication
Institute of Science Tokyo(东京科学大学);RIKEN Center for Computational Science(理化学研究所计算科学中心);Intel Corporation(英特尔公司)
本文提出SHIRO框架,通过细粒度稀疏感知通信策略和分层通信策略,减少通信开销,提升分布式稀疏矩阵乘法的性能与可扩展性。
2026-05-13 cs.DC cs.PF
Algorithms for Parallel Shared-Memory Sparse Matrix-Vector Multiplication on Unstructured Matrices
针对非结构化稀疏矩阵,提出六种混合SpMV算法,结合并行化、存储格式和非零排序优化,其中一种在多CPU架构上性能提升19%,并分析存储格式转换开销。
2025-02-26 cs.DC
Heterogeneous Sparse Matrix-Vector Multiplication via Compressed Sparse Row Format
稀疏矩阵向量乘法(SpMV)是高性能计算(HPC)中最重要的内核之一,然而SpMV通常在许多设备上表现不佳。由于性能不佳,SpMV通常需要特别注意为给定设备存储和调谐。此外,HPC面临包含多个不同计算单元的异构硬件,例如,多核CPU和GPU。因此,一个新兴的目标是产生允许关键内核的异构格式和方法,例如,SpMV,可在不同设备上执行,具有可移植的性能,对格式和方法的更改最小。本文介绍了一种基于CSR的异构格式,名为CSR-k,它可以快速调整,在Intel Xeon Platinum 8380和AMD Epyc 7742 CPU上的性能优于Intel MKL的平均性能,同时在NVIDIA A100和V100上的性能仍然优于NVIDIA的cuSPARSE和Sandia国家实验室的KokkosKernels。稀疏矩阵,其中每行的非零数具有方差$\leq$ 10,例如通常由二维和三维有限差分和单元问题生成的那些。特别是,CSR-k通过重新排序和将行分组为超级行和超级超级行的分层结构来实现这一点,这些超级行和超级超级行仅由几个额外的指针数组表示。由于其简单性,模型可以针对设备进行调整,并用于在恒定时间内选择超级行和超级超级行大小。
2023-01-06 cs.DC cs.DS cs.PF
Bandwidth-Optimized Parallel Algorithms for Sparse Matrix-Matrix Multiplication using Propagation Blocking
稀疏矩阵-矩阵乘法(Sparse matrix-matrix multiplication,SpGEMM)是各种图、科学计算和机器学习算法中广泛使用的核心。众所周知,SpGEMM是一个内存受限的操作,其峰值性能预计将受到内存带宽的限制。然而,现有的算法未能饱和的内存带宽,导致在Roofline模型下的次优性能。在本文中,我们现有的SpGEMM算法的特点,其内存访问模式的基础上,开发实用的下限和上限的SpGEMM性能。然后,我们开发了一个基于外积矩阵乘法的SpGEMM算法。新开发的算法称为PB-SpGEMM饱和内存带宽通过使用传播阻塞技术,并通过执行在缓存排序和合并。对于许多实际矩阵,PB-SpGEMM在现代多核处理器上的运行速度比最先进的堆和散列SpGEMM算法快20%-50%。最重要的是,PB-SpGEMM达到了Roofline模型预测的性能,并且其性能在矩阵大小和稀疏性方面保持稳定。
2020-02-26 cs.DC
A Recursive Algebraic Coloring Technique for Hardware-Efficient Symmetric Sparse Matrix-Vector Multiplication
对称稀疏矩阵向量乘法(SymmSpMV)是许多数值线性代数核运算或图遍历应用的重要构建块。由于需要管理结果向量上的冲突更新,因此在当今多达100个内核的多核平台上对SymmSpMV进行并行化是很困难的。着色方法可以用来解决这个问题,没有数据重复,但现有的着色算法不考虑负载均衡和深存储层次结构,阻碍了可扩展性和全芯片性能。在这项工作中,我们提出了递归代数着色引擎(RACE),一种新的着色算法和开源库实现,它消除了以前的着色方法在硬件效率和并行化开销方面的缺点。我们描述了RACE中的级别构造、距离k着色和负载均衡步骤,使用它来并行化SymmSpMV,并在两个现代多核处理器上比较了它在31个稀疏矩阵上与其他最先进的着色技术和英特尔MKL的性能。RACE大大优于所有其他方法,并根据Roofline模型进行操作。对异常值进行了详细的讨论和分析。虽然我们专注于SymmSpMV在本文中,我们的算法和软件是适用于任何稀疏矩阵操作的数据依赖关系,可以解决距离-k着色。
2019-07-15 cs.DC cs.PF
Hierarchical Parallel Matrix Multiplication on Large-Scale Distributed Memory Platforms
矩阵乘法是一个非常重要的计算内核,它本身就是许多科学应用的构建块,也是其他科学应用的流行代表。1969年提出的Cannon算法是第一个有效的并行矩阵乘法算法,它提供了理论上最优的通信开销。然而,该算法需要平方数量的处理器。在20世纪90年代中期,SUMMA算法被引入。SUMMA克服了Cannon算法的缺点,因为它也可以用于非平方数的处理器上。从那时起,HPC平台中的处理器数量增加了两个数量级,使得通信在总执行时间中的贡献更加显着。因此,应重新审视现有的并行矩阵乘法算法,以进一步降低通信成本。本文介绍了一种新的并行矩阵乘法算法--分层SUMMA(HSUMMA),它是对SUMMA的重新设计。我们的算法减少了通信成本的SUMMA通过引入一个两级的虚拟层次结构的二维安排的处理器。在IBM BlueGene-P上的实验表明,在2048核和16384核上,通信成本分别降低了2.08倍和5.89倍。
2013-06-18 cs.DC
Predicting the Output Structure of Sparse Matrix Multiplication with Sampled Compression Ratio
Zhejiang University(浙江大学);Alibaba Group(阿里巴巴集团)
稀疏广义矩阵乘法(SpGEMM)是许多科学应用中的基本构建块。SpGEMM的一个关键任务是计算或预测输出矩阵的结构(即,每个输出行的非零元素的数量),以实现有效的内存分配和负载平衡,这会影响SpGEMM的整体性能。现有的工作要么精确地计算输出结构,要么采用上限或基于采样的方法来预测输出结构。然而,这些方法要么需要很长的执行时间,要么不够准确。在本文中,我们提出了一种新的基于采样的方法,具有更好的精度和低成本相比,现有的基于采样的方法。所提出的方法首先通过利用中间产品的数量(表示为FLOP)和非零元素的数量(表示为NNZ)相同的采样结果矩阵的SpGEMM的压缩比预测。然后,通过将每个输出行的FLOP除以预测压缩比来获得预测输出结构。我们还提出了一个参考设计现有的基于采样的方法与优化的计算开销,以证明所提出的方法更好的准确性。我们构造了625个具有不同矩阵维数和稀疏结构的测试用例来评估预测精度。实验结果表明,该方法与参考设计的平均绝对相对误差分别为1.56%和8.12%,最差情况下分别为25%和156%.
2022-07-28 cs.DC cs.LG cs.NA
DBCSR: A Library for Dense Matrix Multiplications on Distributed GPU-Accelerated Systems
大多数,如果不是所有的现代科学模拟软件包利用矩阵代数运算。在线性代数的运算中,最重要的核心之一就是矩阵的乘法运算,无论是稠密矩阵还是稀疏矩阵。这样的内核的应用示例是在电子结构计算、机器学习、数据采掘、图形处理和数字信号处理中。有几个优化的库可以在分布式系统上实现高性能。其中只有少数针对分布式GPU加速系统。在大多数情况下,这些库由系统供应商针对其特定计算机系统提供和优化。在本文中,我们提出了DBCSR库(分布式块压缩稀疏行)的分布式密集矩阵矩阵乘法。尽管该库是专门为块稀疏矩阵-矩阵乘法设计的,但我们针对GPU加速系统上的密集情况进行了优化。我们表明,DBCSR优于由供应商优化的GPU版本的ScaLAPACK库提供的不同大小和形状的矩阵的乘法高达2.5倍(平均1.4倍)。
2019-10-10 cs.DC cs.MS
Increasing the Efficiency of Sparse Matrix-Matrix Multiplication with a 2.5D Algorithm and One-Sided MPI
矩阵-矩阵乘法是线性代数中的基本运算,也是各种科学领域中广泛算法的重要组成部分。理论和实现的密集,方阵的情况下是发达国家。如果矩阵是稀疏的,具有特定于应用程序的稀疏模式,那么最佳实现仍然是一个悬而未决的问题。在这里,我们探讨了通信减少2.5D算法和单边MPI通信的线性标度电子结构理论的背景下的性能。特别是,我们扩展了DBCSR稀疏矩阵库,这是线性标度电子结构理论和低标度相关方法在CP 2K的基本构建块。该库专门设计用于有效地执行占用相对较大的矩阵的块稀疏矩阵-矩阵乘法。在这里,我们比较了性能的基础上,大炮的算法和MPI点对点通信的原始实现,与基于MPI单边通信(RMA)的实现,在2D和2.5D的方法。2.5D方法用内存和辅助操作来减少通信,如果通信占主导地位,这可能会导致加速。2.5D算法在单边通信中更容易实现。的实施提供了详细的描述,也为非理想的处理器拓扑结构,因为这是重要的实际应用。考虑到精确稀疏模式的重要性,甚至是决定乘法时有效填充的实际矩阵数据,测试在CP 2K包中使用应用程序基准进行。结果显示,基于RMA的2.5D算法的性能大幅提高,高达1.80倍,这是观察到的并行化中所涉及的进程的数量增加。
2017-05-29 cs.DC cs.MS
Locality-aware parallel block-sparse matrix-matrix multiplication using the Chunks and Tasks programming model
本文提出了一种在分布式内存集群上实现并行块稀疏矩阵矩阵乘法的方法。通过使用四叉树矩阵表示,利用数据局部性,而无需有关矩阵稀疏模式的先验信息。由于我们最近开发了块和任务编程模型[并行计算],分布式四叉树矩阵表示可以直接实现。40,328(2014)]。四叉树表示与块和任务模型相结合,导致有利的弱和强缩放的通信成本与进程的数量,在理论上和数值实验中所示。矩阵由块对象的稀疏四叉树表示。层次结构中的叶子是块稀疏子矩阵。稀疏性由矩阵库动态检测,并且可以发生在层次结构中的任何级别和/或子矩阵叶内。在图形处理单元(GPU)可用的情况下,CPU和GPU都用于叶级乘法工作,从而利用每个节点的全部计算能力。的性能进行评估,为矩阵具有不同的稀疏结构,包括电子结构计算的例子。与不利用数据局部性的方法相比,我们的局部感知方法显着减少了通信,在弱缩放测试中实现了每个节点基本上恒定的通信。
2016-06-27 cs.DC
RSH-SpMM: A Row-Structured Hybrid Kernel for Sparse Matrix-Matrix Multiplication on GPUs
University of Science and Technology of China(中国科学技术大学)
RSH-SpMM通过自适应行划分和RS-Tile表示法,提升GPU上稀疏矩阵-矩阵乘法的性能,实现1.27至6.13倍的加速。
2026-02-24 cs.DC
AsyncSparse: Accelerating Sparse Matrix-Matrix Multiplication on Asynchronous GPU Architectures
Cornell University(康奈尔大学);Georgia Institute of Technology(佐治亚理工学院)
本文提出两种新内核,利用异步GPU特性优化稀疏矩阵乘法,其中WCSR内核在SuiteSparse矩阵上性能优于现有方法,BCSR内核在Qwen2.5-7B预填充任务中实现显著加速。
2026-04-20 cs.DC
Towards Efficient Sparse Matrix Vector Multiplication on Real Processing-In-Memory Systems
一些制造商已经开始将近银行内存处理(PIM)架构商业化。近库PIM架构将简单的内核放置在DRAM库附近,通过降低数据访问成本,可以在并行应用中显著提高性能和能耗。真正的PIM系统可以提供高水平的并行性、大的聚合内存带宽和低的内存访问延迟,从而很好地适合于加速广泛使用的、内存受限的稀疏矩阵向量乘法(SpMV)内核。本文提供了第一个全面的分析,SpMV在现实世界的PIM架构,并提出了SparseP,第一个SpMV库真正的PIM架构。我们做出了两个重要贡献。首先,我们设计了高效的SpMV算法,以加速当前和未来的PIM系统中的SpMV内核,同时覆盖各种稀疏矩阵与不同的稀疏模式。其次,我们提供了第一个全面的分析SpMV上一个真正的PIM架构。具体来说,我们进行严格的实验分析SPMV内核的UPMEM PIM系统,第一个公开的真实世界的PIM架构。我们广泛的评估为软件设计人员和硬件架构师提供了新的见解和建议,以有效地加速实际PIM系统上的SpMV内核。有关我们对SpMV PIM执行、结果、见解和开源SparseP软件包[26]的全面表征的更多信息,我们请读者参阅论文的完整版本[3,4]。SparseP软件包可在www.example.com上公开免费获得。
2022-04-02 cs.AR cs.DC cs.PF
An Auto-tuning Method for Run-time Data Transformation for Sparse Matrix-Vector Multiplication
本文针对稀疏矩阵-向量乘法提出基于$D_{mat}^i$-$R_{ell}^i$图的自动调优方法,用于指导CRS到ELL等格式的运行时数据变换,在地球模拟器2上实现最高151倍加速且变换开销极低。
2024-05-06 cs.DC cs.PF
Red-blue pebbling revisited: near optimal parallel matrix-matrix multiplication
我们建议宇宙空间协会:一种并行矩阵-矩阵乘法算法,对于矩阵维度、处理器计数和存储器大小的所有组合而言,该算法接近通信最优。COSMA背后的关键思想是导出一个最佳的(对于10 MB的快速内存,最高可达0.03\%)顺序调度,然后将其并行化,保持I/O最优性。为了实现这一点,我们使用红蓝卵石游戏精确建模MMM依赖,并推导出一个建设性的和紧密的顺序和并行I/O下界证明。与2D或3D算法(预先修复处理器分解,然后将其映射到矩阵维度)相比,它将通信量减少了高达$\sqrt{3}$倍。COSMA在所有场景中的性能都优于ScaLAPACK、CARMA和CTF算法,最高可达12.8倍(平均2.2倍),达到Piz Daint峰值性能的88%。我们的工作不需要任何手动调优,并且作为开源实现进行维护。
2019-12-13 cs.CC cs.DC cs.PF
Sparse and Private Distributed Matrix Multiplication with Straggler Tolerance
本文研究将两个私有稀疏矩阵乘法外包给不可信工作节点的问题,构建了推广Shamir方案的稀疏秘密共享方案,在固定阈值下提供最强隐私保证并容忍掉队者。
2023-06-27 cs.DC cs.IT math.IT
Batched Sparse Matrix Multiplication for Accelerating Graph Convolutional Networks
图卷积网络(GCN)作为一种高精度的机器学习方法,近年来在生物信息学和化学信息学领域得到了广泛的关注。GCN处理卷积运算以及图形结构,GPU用于处理大量运算,包括当图形结构表示为具有稀疏矩阵格式的邻接矩阵时的稀疏-密集矩阵乘法(SpMM)。然而,SpMM操作上的小图,其中节点的数量是几十或几百,很难利用高并行性或GPU的计算能力。因此,SpMM成为GCN应用中训练和推理的瓶颈。为了提高GCN应用程序的性能,提出了一种新的SpMM算法,特别是针对小稀疏矩阵的SpMM算法和Batched SpMM算法,该算法利用GPU的高并行性,通过单个CUDA内核处理多个SpMM操作。据我们所知,这是第一个工作的批处理方法的SpMM。我们评估了GCN应用程序在采用NVIDIA Tesla P100 GPU的TSUBAME 3.0上的性能,我们的批处理方法在训练和推理方面分别显示出高达1.59倍和1.37倍的显著加速。
2019-03-27 cs.DC
How the Dirty Set Moves: Characterizing Schedule Reuse in Incremental Sparse Matrix Multiplication
HorneSci(霍恩科学);Loyola University Chicago, Chicago, IL, United States of America(芝加哥洛约拉大学)
该研究通过实验表明,增量稀疏矩阵乘法中直接按列更新比分块调度复用更具收益,为开发者确定何时构建调度复用提供了指南。
2026-10-14 cs.DC cs.MS cs.PF
GE-SpMM: General-purpose Sparse Matrix-Matrix Multiplication on GPUs for Graph Neural Networks
图神经网络(GNN)在各个领域都取得了显著的进步。稀疏矩阵-矩阵乘法(SpMM)是GNN中的基本运算符,它执行稀疏矩阵和稠密矩阵之间的乘法。在GPU等并行硬件上加速SpMM可能面临以下挑战:从GNN应用程序的角度来看,需要考虑兼容性。一般的GNN算法需要类似于SpMM的操作(例如,池化),这在当前高性能GPU库中不支持(例如,Nvidia cuSPARSE)。此外,在以前的实现中的复杂的预处理将导致沉重的数据格式转换开销在GNN框架。从GPU硬件的角度来看,GPU上的SpMV(稀疏矩阵向量)设计中的优化并不适用于SpMM。SpMM暴露了密集输出矩阵中的列并行性,但是从SpMV直接泛化导致对全局内存中的稀疏矩阵的低效的、未合并的访问。稀疏行数据可以在GPU线程之间重用,这在从SpMV继承的SpMM设计中是不可能的。为了应对这些挑战,我们提出了GE-SpMM。GE-SpMM对以最常见的压缩稀疏行(CSR)格式表示的稀疏矩阵执行类似于SpMM的操作,因此它可以嵌入到GNN框架中,无需预处理开销,并支持通用GNN算法。我们引入了合并行缓存方法来并行处理列,并确保合并访问稀疏矩阵数据。我们还提出了粗粒度的Warp合并,以减少GPU warp之间的冗余数据加载。在真实世界的图数据集上的实验表明,GE-SpMM比Nvidia cuSPARSE和GraphBLAST的加速比分别高达1.41倍和1.…
2020-07-07 cs.DC