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
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
GSoFa: Scalable Sparse Symbolic LU Factorization on GPUs
将矩阵A分解为下矩阵L和上矩阵U,也称为LU分解,是数值线性代数中的一项基本运算。对于稀疏矩阵,LU分解通常在L和U因子中引入比原始矩阵更多的非零项。需要一个符号分解步骤来识别L和U矩阵的非零结构。由于图形处理单元(GPU)的巨大潜力,一系列努力已经激增,以在GPU上部署除符号因式分解之外的各种LU因式分解步骤。本文介绍了gSoFa,第一个基于GPU的符号因式分解设计,具有以下三个优化,以实现GPU上非对称模式稀疏矩阵的可扩展LU符号因式分解。首先,我们介绍了一种新的细粒度并行符号因式分解算法,非常适合于单指令多线程(SIMT)架构的GPU。其次,我们将超级节点检测定制为SIMT友好过程,并努力平衡工作负载,最大限度地减少通信,并在超级节点检测期间饱和GPU计算资源。第三,我们引入了一个三管齐下的优化,以减少多源并发符号因式分解所面临的过度空间消耗问题。总的来说,gSoFa从1到44个Summit节点(6到264个GPU)实现了高达31倍的加速,平均性能超过最先进的CPU项目5倍。值得注意的是,gSoFa还实现了Summit中V100 GPU峰值内存吞吐量的{高达47%}。
2021-05-09 cs.DC
Efficient and High-quality Sparse Graph Coloring on the GPU
图着色已被广泛用于并行计算中的并发发现。为了加速大规模数据集的图着色,已经提出了利用现代GPU的并行算法。现有的GPU实现要么具有有限的性能,要么产生不令人满意的着色质量(分配的颜色太多)。我们提出了一个工作效率高的并行图着色的GPU上实现具有良好的着色质量。我们的方法采用了投机贪婪计划,内在地产生更好的质量比找到最大独立集的方法。为了在GPU上实现高性能,我们改进了算法,以利用有效的运算符和减少冲突。我们还结合了常见的优化技术,以进一步提高性能。我们的方法进行评估与合成和现实世界的稀疏图形的NVIDIA GPU。实验结果表明,我们提出的实现实现平均4.1倍(高达8.9倍)的串行实现的加速比。它的性能也优于现有的GPU实现从NVIDIA ® SPARSE库(2.2倍的平均加速),同时产生更好的着色质量比SPARSE。
2020-01-17 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
Parallel Sparse Matrix Solver on the GPU Applied to Simulation of Electrical Machines
如今,一些工业应用程序正在移植到并行架构。事实上,这些平台可以为系统建模和仿真提供更多的性能。在电机领域,有许多问题需要加速解决。本文研究稀疏矩阵求解器在图形处理器上的并行性。更具体地说,我们实现了共轭梯度技术与输入矩阵存储在CSR,对称CSR和CSC格式。该方法是求解麦克斯韦方程组有限元基函数的最有效的迭代法之一。GPU(图形处理单元),这是用于其实现,提供了机制,并行算法。因此,它大大提高了与基于CPU的系统上的串行代码相关的计算速度。
2010-10-22 cs.DC
Multi-threaded Sparse Matrix-Matrix Multiplication for Many-Core and GPU Architectures
稀疏矩阵-矩阵乘法是一个关键的核心,在科学计算和图分析等领域有着广泛的应用。过去已经研究了几种算法用于这个基本内核。在本文中,我们开发了稀疏矩阵矩阵乘法的并行算法,重点是跨不同的高性能计算架构的性能移植。这些算法的性能取决于它们所使用的数据结构。我们比较了这些算法中不同类型的数据结构,并展示了这些数据结构之间的性能差异。此外,我们开发了一个元算法,kkSpGEMM,选择正确的算法和数据结构的基础上的问题的特点。我们展示了三种体系结构的性能比较,并证明了社区需要开发两个阶段的稀疏矩阵矩阵乘法实现所涉及的数据结构的有效重用。
2018-01-09 cs.DC
HC-SpMM: Accelerating Sparse Matrix-Matrix Multiplication for Graphs with Hybrid GPU Cores
针对真实图不规则性导致GPU上SpMM效率低的问题,提出HC-SpMM算法,利用混合GPU核心并结合数据划分、核心选择等优化,还集成至GNN流水线,在14个数据集上实现优于现有方案的加速效果。
2024-12-12 cs.DC
Adaptive Row-grouped CSR Format for Storing of Sparse Matrices on GPU
我们提出了一种新的自适应格式,用于在GPU上存储稀疏矩阵。我们将其与其他几种格式进行了比较,其中包括CUDA中GPU上处理稀疏矩阵的最佳选择-CUDA PARSE。与使用常见CSR格式的ESPARSE相反,我们的新格式需要转换。然而,稀疏矩阵和向量的乘法对于许多矩阵来说要快得多。我们证明了它的1 600矩阵集,我们显示什么类型的矩阵,我们的格式是有利可图的。
2012-03-26 cs.DC cs.DS
FlashSketch: Sketch-Kernel Co-Design for Fast Sparse Sketching on GPUs
Department of Electrical Engineering, Stanford University(斯坦福大学电气工程系)
FlashSketch通过设计BlockPerm-SJLT稀疏Sketch和优化CUDA内核,实现了GPU上快速稀疏Sketching的高效与鲁棒性平衡,提升了Sketching质量和速度的帕累托前沿。
2026-02-02 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
DB-SpMSpV: Dual-View Blocked Sparse Matrix-Sparse Vector Multiplication for Dynamic GPU Workloads
Beihang University(北京航空航天大学)
本文提出面向动态GPU工作负载的双视角分块SpMSpV框架DB-SpMSpV,集成至DB-BFS和DB-Decoding后,在A100和RTX 4090上相比现有方法实现了显著加速。
2026-08-18 cs.DC
cu_FastTucker: A Faster and Stabler Stochastic Optimization for Parallel Sparse Tucker Decomposition on Multi-GPUs
高阶、高维和稀疏张量(HOHDST)数据源于实际的工业应用,即,社交网络、推荐系统、生物信息和交通信息。稀疏张量分解(STD)可以将HOHDST数据投影到低秩空间。本文提出了一种新的Kruskal逼近核张量的STD方法和逼近整体梯度的随机策略,该方法包括以下两个部分:(1)核张量的Kruskal积的矩阵化展开顺序遵循因子矩阵的乘法顺序,从而将指数运算量降为线性运算量;(2)随机策略采用一步随机抽样集来逼近整个梯度,抽样集的体积远小于原始样本集的体积。同时,该方法可以保证收敛性,节省内存开销。由于同阶矩阵乘法的紧凑性和随机策略的并行访问,cuFastTucker的速度可以通过GPU进一步增强。此外,针对大规模HOHDST数据无法在单个GPU上容纳的问题,提出了cuFastTucker的数据划分和通信策略,用于多GPU上的数据容纳。cuFastTucker可以实现最快的速度,并保持相同的精度和比SOTA算法低得多的内存开销,例如,P $-$ Tucker、Vest和SGD $\_$ Tucker。代码和部分数据集可在“https://github.com/ZixuanLi-China/FastTucker”上免费获得。
2022-04-14 cs.DC
At-Scale Sparse Deep Neural Network Inference with Efficient GPU Implementation
University of Illinois at Urbana-Champaign(伊利诺伊大学厄巴纳-香槟分校);NVIDIA(英伟达);IBM Research(IBM研究院)
本文介绍了2020年稀疏深度神经网络挑战赛推理模型的GPU性能优化和缩放结果。对网络质量的需求迅速增长,推动了许多神经网络的规模和内存需求,超出了可用加速器的能力。稀疏深度神经网络(SpDNN)已经显示出控制大型神经网络内存占用的前景。然而,在GPU上实现SpDNN操作还有改进的空间。这项工作提出了与ReLU函数融合的优化稀疏矩阵乘法内核。优化的内核重用来自共享存储器的输入特征图和来自寄存器的稀疏权重。对于多GPU并行性,我们的SpDNN实现复制权重并在GPU上静态划分特征图。挑战基准测试的结果表明,所提出的内核设计和多GPU并行化实现了高达每秒180 tera-edges的推理吞吐量。这些结果对于单个GPU来说最多快4.3倍,在满量程下比同一代NVIDIA V100 GPU的2019年稀疏深度神经网络图形挑战赛冠军快一个数量级。使用相同的实现,我们还显示NVIDIA A100上的单GPU吞吐量比V100快2.37 $\times$。
2020-09-02 cs.DC cs.LG
Popcorn: Accelerating Kernel K-means on GPUs through Sparse Linear Algebra
本文提出基于 SpMM 和 SpMV 的核 K-means 稀疏线性代数表述,并实现开源 GPU 系统 Popcorn,最高较 CPU 加速 123.8 倍。
2025-01-09 cs.DC
cuFasterTucker: A Stochastic Optimization Strategy for Parallel Sparse FastTucker Decomposition on GPU Platform
目前,科学数据的规模正在以前所未有的速度增长。张量形式的数据表现出高阶、高维和高度稀疏的特征。虽然基于张量的分析方法非常有效,但数据大小的大幅增加使得原始张量无法处理。张量分解将张量分解为多个低秩矩阵或张量,可以通过基于张量的分析方法来利用。Tucker分解就是这样一种算法,它将一个$n$阶张量分解为$n$低秩因子矩阵和一个低秩核张量。然而,大多数Tucker分解方法都伴随着巨大的中间变量和巨大的计算量,使得它们无法处理高阶和高维张量。本文在FastTucker分解的基础上提出了FasterTucker分解,FastTucker分解是Tucker分解的一个变种。提出了一种基于GPU平台的快速Tucker分解算法cuFasterTucker。它具有很低的存储和计算要求,有效地解决了高阶和高维稀疏张量分解的问题。与现有算法相比,该算法在因子矩阵更新和核矩阵更新方面分别实现了约$15X$和$7X$的加速比。
2022-10-12 cs.DC
A new GPU implementation for lattice-Boltzmann simulations on sparse geometries
我们描述了一个高性能的实现的格子玻尔兹曼方法(LBM)稀疏的3D几何图形处理器(GPU)。这项工作的主要贡献是一个数据布局,允许在LBM的传播步骤,以尽量减少冗余的内存事务的数量。我们表明,通过使用小的三维瓦片的均匀网格和仔细的数据放置,可以利用D3Q19网格和双精度的数的最大理论GPU内存带宽的70%以上。我们的实现的性能进行了彻底检查,并与其他GPU实现的LBM。所提出的方法执行最好的稀疏的几何形状具有良好的空间局部性。
2017-10-07 cs.DC cs.PF
SparseDitto: An Agentic Sparse Compilation Framework through Architecture-Aware Synthesis on GPUs
University of Minnesota(明尼苏达大学);Northeastern University(东北大学)
SparseDitto是基于LLM的系统,可为不同矩阵、算子和GPU定制稀疏矩阵GPU内核,在多类算子与GPU上较cuSPARSE实现显著加速,还可提升GCN训练速度。
2026-09-11 cs.DC cs.LG
Sparse MTTKRP Acceleration for Tensor Decomposition on GPU
针对稀疏张量分解瓶颈spMTTKRP,提出基于GPU的算法设计,通过消除线程块全局原子操作、减少中间值内存传输、均衡负载及支持动态张量重映射,实现显著加速,且是唯一支持模式数大于4张量的GPU实现。
2024-05-14 cs.AR cs.DC
Development of Krylov and AMG linear solvers for large-scale sparse matrices on GPUs
本文介绍了我们在NVIDIA GPU上开发Krylov子空间和AMG求解器的工作。由于SpMV是这些迭代法的关键部分,本文实现了单GPU和多GPU的SpMV算法。建立了HEC矩阵格式和通信机制。设计了一套在并行环境下求解预条件方程组的具体算法,包括ILU(k)、RAS和并行三角形求解器。在此基础上,开发了几种Krylov求解器和AMG求解器。数值实验表明,在不同的参数条件下,Krylov求解器和AMG求解器都获得了良好的加速性能。
2016-06-02 cs.DC cs.MS
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
Sparse GPU Kernels for Deep Learning
Stanford University(斯坦福大学);Google Brain(谷歌大脑);DeepMind
科学工作负载传统上利用高水平的稀疏性来加速计算并减少内存需求。虽然深度神经网络可以变得稀疏,但在GPU上实现实际的加速是困难的,因为这些应用具有相对中等的稀疏性水平,不足以使现有的稀疏内核优于其密集的对应物。在这项工作中,我们研究了深度学习应用中的稀疏矩阵,并确定了可用于加速计算的有利属性。基于这些见解,我们开发了高性能的GPU内核的两个稀疏矩阵运算广泛适用于神经网络:稀疏矩阵稠密矩阵乘法和采样稠密矩阵乘法。我们的内核在Nvidia V100 GPU上达到单精度峰值的27%。使用我们的内核,我们展示了稀疏的Transformer和MobileNet模型,实现了1.2- 2.1倍的加速比和高达12.8倍的内存节省,而不牺牲准确性。
2020-08-31 cs.DC cs.LG stat.ML
GLU3.0: Fast GPU-based Parallel Sparse LU Factorization for Circuit Simulation
稀疏矩阵的LU分解是电路仿真等工程和科学计算问题中最重要的计算步骤。但由于数据依赖性高和内存访问不规则,使用图形处理器(GPU)并行LU分解仍然是一个具有挑战性的问题。最近,基于GPU的混合右视稀疏LU求解器,称为GLU(1.0和2.0),已被提出利用GPU的细粒度级并行。然而,GLU引入的一种新类型的数据依赖(称为双U依赖)减慢了预处理步骤。此外,GLU使用固定的GPU线程分配策略,这限制了并行性。在这篇文章中,我们提出了一种新的基于GPU的稀疏LU分解方法,称为{ \it GLU3.0},它解决了上述问题。首先,它引入了一个更有效的数据依赖检测算法。其次,我们观察到随着矩阵分解的进行,潜在的并行性也会有所不同,因此我们开发了三种不同的GPU内核模式,以适应矩阵分解过程中计算任务的变化。在佛罗里达大学稀疏矩阵集(UFL)的电路矩阵上的实验结果表明,GLU3.0在数据依赖性检测方面比GLU2.0提高了2-3个数量级。此外,GLU3.0实现了13.0 $\times$(算术平均值)或6.7 $\times$(几何平均值)的加速比GLU2.0和7.1 $\times$(算术平均值)或4.8 $\times$(几何平均值)比最近提出的增强型GLU2.0稀疏LU求解器在同一组电路矩阵。
2020-02-12 cs.DC cs.DS
Adaptive Elastic Training for Sparse Deep Learning on Heterogeneous Multi-GPU Servers
University of California Merced(加州大学默塞德分校);Lawrence Berkeley National Laboratory(劳伦斯伯克利国家实验室)
受极端多标签分类应用的启发,我们考虑在多GPU服务器中的稀疏数据上训练深度学习模型。训练批次中非零特征数量的变化和固有的GPU异构性结合起来限制了准确性并增加了收敛时间。我们使用自适应SGD来解决这些挑战,自适应SGD是一种用于异构多GPU的自适应弹性模型平均随机梯度下降算法,其特征在于动态调度,自适应批量大小缩放和归一化模型合并。不是静态地将批划分到GPU,而是基于相对处理速度来路由批。批量大小缩放将较大的批量分配给速度较快的GPU,较小的批量分配给速度较慢的GPU,目标是达到一个稳定状态,在这个状态下,所有GPU执行相同数量的模型更新。归一化模型合并基于分配的批次为每个GPU计算最佳权重,使得组合的模型实现更好的准确性。我们的实验表明,自适应SGD在时间准确性方面优于四种最先进的解决方案,并且可以随GPU数量的增加而扩展。
2021-10-13 cs.DC cs.LG
GPUSparse: Fast and Exact Learned Sparse Retrieval on a GPU-Resident Inverted Index
MIT-IBM Watson AI Lab(麻省理工学院-IBM沃森人工智能实验室)
提出GPUSparse系统,通过GPU并行倒排索引、批处理散射-加和评分算法和融合Triton内核,实现与CPU精确评分一致的稀疏检索,在MS MARCO上比Pyserini快235倍,且不损失召回率。
2026-11-02 cs.DC cs.IR
Auto-SpMV: Automated Optimizing SpMV Kernels on GPU
稀疏矩阵向量乘法(SpMV)是一种基本的线性代数运算,在许多科学应用中占主导地位的计算成本。由于GPU提供了大规模并行性和高内存带宽,因此通常用于加速SpMV内核。以前的研究主要集中在减少GPU上的SpMV内核的延迟。然而,很少有人尝试提高SpMV内核的能效,导致GPU被排除在低功耗应用范围之外。此外,先前的工作主要集中在优化SpMV内核的稀疏格式上,文献忽略了评估调整编译参数的影响。最后,很少注意准备运行SpMV内核的综合训练数据集和微调学习超参数。为了解决这些限制,我们提出了一个新的框架,称为Auto-SpMV,使GPU上的节能和低延迟的SpMV内核。为了达到最佳的运行时间性能,Auto-SpMV提出了两种优化模式:编译时和运行时。在编译时模式下,Auto-SpMV调整编译参数,而在运行时模式下,Auto-SpMV为稀疏输入矩阵选择最佳稀疏格式。为了获得最佳的分类结果,1)我们收集了有史以来最大的数据集,其中包含30个不同的稀疏矩阵,运行超过15 K个不同的配置,2)我们通过自动微调学习超参数来提升分类模型。实验结果表明,与默认设置相比,Auto-SpMV在编译时模式下将延迟、能耗、平均功耗和能效分别优化了51.9%、52%、33.2%和53%。与默认设置相比,Auto-SpMV可在运行时模式下将平均功耗和能效分别优化高达34.6%和99.7%。
2023-02-11 cs.DC
Accelerating Sparse Matrix-Matrix Multiplication on GPUs with Processing Near HBMs
本文提出了一种基于哈希的多阶段SpGEMM方法和AIA技术,通过近内存处理优化GPU HBM上的稀疏矩阵矩阵乘法,显著提升性能,尤其在图分析和GNN训练任务中表现突出。
2025-12-12 cs.DC
A Parallel Sparse Tensor Benchmark Suite on CPUs and GPUs
张量计算提出了重大的性能挑战,影响了从机器学习、医疗分析、社会网络分析、数据采掘到量子化学和信号处理的广泛应用。提高张量计算性能的努力包括探索常见张量内核中的数据布局、执行调度和并行性。这项工作提出了一个基准套件的任意阶稀疏张量内核使用国家的最先进的张量格式:坐标(COO)和层次坐标(HiCOO)的CPU和GPU。它提出了一组参考张量核实现,这些实现与从合成图生成技术扩展的真实世界张量和幂律张量兼容。我们还提出了这些内核的Roofline性能模型,以提供从稀疏张量视图的计算机平台的见解。
2020-01-02 cs.DC cs.PF
Fast and Scalable Sparse Triangular Solver for Multi-GPU Based HPC Architectures
在现代基于多GPU的HPC系统上设计高效且可扩展的稀疏线性代数内核是一项艰巨的任务,这是由于GPU之间存在显著的不规则内存引用和工作负载不平衡。对于稀疏三角形求解器(SpTRSV)来说尤其如此,SpTRSV在后续计算步骤中引入了额外的二维计算依赖性。依赖信息在GPU之间交换和共享,从而保证高效的内存分配,数据分区和工作负载分配以及细粒度的通信和同步支持。在这项工作中,我们证明了直接采用统一内存会对SpTRSV在多GPU架构上的性能产生不利影响,尽管通过NVLinks和NVSwitches等快速互连进行链接。另外,我们采用最新的NVSHMEM技术的分区全局地址空间编程模型的基础上,使有效的细粒度通信和大幅减少同步开销。此外,为了处理工作负载不平衡,我们提出了一个可延展的任务池执行模型,可以进一步提高GPU的利用率。通过应用这些技术,我们在NVIDIA多GPU超级节点V100-DGX-1和DGX-2系统上的实验表明,我们的设计可以实现平均3.53倍(高达9.86倍)的DGX-1系统上的加速比和3.66倍(高达9.64倍)的DGX-2系统上的4个GPU的统一内存设计。全面的灵敏度和可扩展性研究也表明,提出的零拷贝SpTRSV是能够充分利用多GPU系统的计算和通信资源。
2020-12-13 cs.AR cs.DC
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
Sgap: Towards Efficient Sparse Tensor Algebra Compilation for GPU
稀疏编译器是稀疏张量代数优化的一种很有前途的解决方案。在编译器实现中,稀疏-稠密混合代数的约简对性能起着关键作用。虽然GPU提供了各种可以更好地利用并行计算和内存带宽容量的约简语义,但核心问题是:如何将灵活的约简语义提升到假设串行执行的稀疏编译理论。具体而言,我们必须解决两个主要挑战:(1)采用静态同步粒度会浪费并行性(2)静态归约策略限制优化空间探索。我们提出了Sgap:段组和原子并行来解决这些问题。原子并行捕捉灵活的约简语义,系统地分析稀疏-密集混合代数在GPU上的优化空间。它是一种超越当前基于编译器和开源运行时库的新优化技术。段组将灵活的约简语义提升到稀疏编译理论中合适的抽象层次。该算法采用可变群规模和自定义约简策略分别解决问题(1)和(2)。最后,我们在TACO编译器上使用GPU稀疏矩阵-矩阵乘法(SpMM)作为用例来证明段组在约简语义提升中的有效性。我们实现了1.2倍的加速比原来的TACO的SpMM内核。我们还将原子并行发现的新优化技术应用于开源的最先进的SpMM库dgSPARSE。我们实现了1.6x - 2.3x的加速与原子并行调整的算法。
2023-01-09 cs.DC cs.PL
GPU Acceleration of Sparse Neural Networks
University of Nevada Reno(内华达大学雷诺分校)
在本文中,我们使用图形处理单元(GPU)来加速稀疏和任意结构的神经网络。稀疏网络中的节点与前一层和后一层中的节点不完全连接,而任意结构的神经网络在每层中具有不同数量的节点。具有任意结构的稀疏神经网络通常在神经网络修剪和进化机器学习策略等过程中产生。我们表明,我们可以获得显着的加速完全激活这样的神经网络使用图形处理单元。我们做了一个预处理步骤来确定网络中所有节点的依赖组,并使用该信息来指导神经网络中的激活进程。然后,我们在GPU中计算每个节点在其自己的单独线程中的激活,这允许大规模并行化。我们使用CUDA框架来实现我们的方法,并比较顺序和GPU实现的结果。我们的研究结果表明,稀疏神经网络的激活非常适合GPU加速,可以帮助加速机器学习策略,这些策略可以生成此类网络或具有类似结构的其他过程。
2020-05-09 cs.DC cs.LG cs.NE
Acc-SpMM: Accelerating General-purpose Sparse Matrix-Matrix Multiplication with GPU Tensor Cores
针对通用SpMM的硬件性能释放需求,提出基于GPU Tensor Core的高性能库Acc-SpMM,通过重排序、压缩格式等多重优化,在多代NVIDIA GPU上实现了相较cuSPARSE的显著性能提升。
2025-01-16 cs.DC
GPU Semiring Primitives for Sparse Neighborhood Methods
NVIDIA(英伟达);University of Maryland, Baltimore County(马里兰大学巴尔的摩郡分校)
用于稀疏向量数学运算的高性能原语必须应对倾斜度分布和内存消耗限制的挑战,这些挑战通常在密集运算中不会出现。我们证明了稀疏半环原语可以足够灵活,以支持广泛的临界距离措施,同时保持GPU上的性能和内存效率。我们进一步表明,这个原语是一个基本组成部分,使许多基于邻域的信息检索和机器学习算法接受稀疏输入。据我们所知,这是第一个工作,旨在统一计算的几个关键距离措施的GPU在一个单一的灵活的设计范式,我们希望它提供了一个很好的基线,为未来的研究在这一领域。我们的实现是完全开源的,并作为GPU加速的机器学习原语的RAFT库的一部分公开提供(https://github.com/rapidsai/raft)。
2022-03-05 cs.DC cs.LG math.RA
Porting a sparse linear algebra math library to Intel GPUs
随着Aurora超级计算机将由通用英特尔CPU和独立高性能英特尔GPU组成,以及oneAPI生态系统的部署,英特尔已承诺进入独立高性能GPU领域。科学计算社区的一个核心要求是提供生产就绪的软件堆栈,以及他们在英特尔高性能GPU上所期望看到的性能。在本文中,我们通过DPC++编程环境介绍了第一个支持Intel GPU的平台可移植开源数学库。我们还在不同的英特尔GPU上对一些已开发的稀疏线性代数功能进行了基准测试,以评估DPC++编程生态系统将原始性能转化为应用性能的效率。除了量化特定于硬件的屋顶模型内的效率外,我们还将其与提供英特尔oneMKL供应商库附带的相同功能的例程进行比较。
2021-03-18 cs.DC cs.MS cs.PF
TC-GNN: Bridging Sparse GNN Computation and Dense Tensor Cores on GPUs
University of California, Santa Barbara(加州大学圣巴巴拉分校)
TC-GNN是首个基于GPU张量核心的GNN加速框架,通过稀疏图转换技术和CUDA核心与TCU协同设计,桥接稀疏GNN计算与稠密张量核心,在多种模型和数据集上相比DGL平均加速1.70倍。
2023-05-31 cs.DC cs.LG
cuFastTuckerPlus: A Stochastic Parallel Sparse FastTucker Decomposition Using GPU Tensor Cores
针对大规模稀疏张量分解,提出FastTuckerPlus算法,将问题分解为两个非凸问题并用随机梯度下降交替求解,同时设计基于GPU张量核心的细粒度并行实现cuFastTuckerPlus,实现3-5倍加速。
2024-05-23 cs.DC
A sparse octree gravitational N-body code that runs entirely on the GPU processor
我们提出了并行算法的构建和遍历稀疏八叉树的图形处理单元(GPU)。该算法是基于并行扫描和排序方法。为了测试性能和可行性,我们在CUDA中以重力树代码的形式实现了它们,该代码完全在GPU上运行。(The代码可在http://castle.strw.learnuniv.nl/software.html公开获得)树构造和遍历算法可移植到支持CUDA或OpenCL编程语言的众核设备。重力树代码在树构造期间优于调优的CPU代码,并且总体上显示出超过20倍的性能改进,导致每秒超过280万个粒子的处理速率。
2012-04-10 astro-ph.IM cs.DC
GPU-Parallelizable Randomized Sketch-and-Precondition for Linear Regression using Sparse Sign Sketches
本文研究GPU环境下基于稀疏符号草图的草图与预处理方法,提出一种基于拒绝采样的易并行稀疏符号草图生成方法,并通过单GPU和多GPU实验验证其在大规模线性回归中的适用性。
2025-06-06 cs.DC cs.DS cs.NA
ParamSpMM: Adaptive and Efficient Sparse Matrix-Matrix Multiplication on GPUs for GNNs
Beijing University of Posts and Telecommunications(北京邮电大学)
本文提出ParamSpMM,一种自适应高效的稀疏矩阵-矩阵乘法方法,通过参数化压缩稀疏行结构和机器学习决策器提升图神经网络训练效率,相比Nvidia cuSPARSE平均加速1.92倍。
2026-05-15 cs.DC
MERBIT: A GPU-Based SpMV Method for Iterative Workloads
Sun Yat-sen University(中山大学);Guangdong University of Finance and Economics(广东财经大学)
MERBIT通过合并路径分区和紧凑位字段描述优化稀疏矩阵-向量乘法,提升工作负载平衡和内存访问效率,实验表明其在多种大规模不规则数据集上优于现有方法。
2026-05-08 cs.DC
OpSparse: a Highly Optimized Framework for Sparse General Matrix Multiplication on GPUs
稀疏广义矩阵乘法(SpGEMM)在许多实际应用中是一个重要而昂贵的计算原语。由于SpGEMM固有的不规则性及其输入矩阵的多样性,在现代处理器(如GPU)上开发高性能SpGEMM实现具有挑战性。最先进的SpGEMM库(即,$nsparse$和$spECK$)采用若干算法来解决全局负载平衡、局部负载平衡和结果矩阵的分配的挑战。虽然这些库专注于SpGEMM的高级算法设计,但它们忽略了几个低级别的特定于体系结构的优化,这导致其库中的实现效率低下。在本文中,我们将其低效的实现分为七类。基于我们的观察,我们提出了一个高度优化的SpGEMM库称为$OpSparse$。$OpSparse$中的优化包括1)通过提高共享存储器的利用率来优化装仓方法,2)通过减少对散列表的访问来优化散列方法,3)通过设置适当的装仓范围来提高散列方法中的散列冲突率和硬件利用率之间的折衷,4)通过最小化元数据的全局存储器使用来减少全局存储器利用的开销,以及5)通过将全局存储器分配与内核执行重叠来提高执行并行性。在Nvidia Tesla V100 GPU上使用26个常用矩阵进行的性能评估表明,$OpSparse$分别在三个最先进的库($cuSPARSE$、$nsparse$和$spECK$)上实现了高达$27.8\times$、$1.81\times$和$2.04\times$的性能加速。
2022-06-15 cs.DC
Practical offloading for fine-tuning LLM on commodity GPU via learned sparse projectors
Carnegie Mellon University(卡内基梅隆大学);Peking University(北京大学)
本文提出LSP-Offload框架,通过学习稀疏投影器减少通信开销并设计逐层调度,使消费级GPU能以接近原生速度微调十亿级参数LLM,相比现有卸载方法端到端时间减少33.1%-62.5%。
2025-02-09 cs.AI cs.DC
Optimizing High Performance Markov Clustering for Pre-Exascale Architectures
HipMCL是流行的马尔可夫聚类算法(MCL)的高性能分布式内存实现,可以使用几千个配备CPU的节点在数小时内对大规模网络进行聚类。它依赖于稀疏矩阵计算,并大量使用稀疏矩阵-稀疏矩阵乘法内核(SpGEMM)。HipMCL中现有的并行算法不能扩展到Exascale架构,这既是因为它们的通信成本在大并发时占主导地位,也是因为它们无法利用越来越受欢迎的加速器。在这项工作中,我们系统地消除HipMCL的可扩展性和性能瓶颈。我们通过在GPU上执行MCL算法的昂贵扩展阶段来启用GPU。我们提出了一个CPU-GPU联合分布式SpGEMM算法称为流水线稀疏SUMMA和集成的概率内存需求估计,是快速和准确的。我们提出了一种新的合并算法,对GPU产生的部分结果进行增量处理,提高了重叠效率和峰值内存使用率。我们还集成了一个最近的和更快的算法在CPU上执行SpGEMM。我们通过广泛的评估来验证我们的新算法和优化。通过启用GPU和集成新算法,HipMCL的速度提高了12.4倍,能够使用ORNL的Summit超级计算机的1024个节点在不到15分钟的时间内将7000万蛋白质和680亿个连接的网络集群化。
2020-02-24 cs.DC
On the energy efficiency of sparse matrix computations on multi-GPU clusters
National Research Council of Italy(意大利国家研究委员会);Institute for Applied Computing “Mauro Picone”(毛罗·皮科内应用计算研究所)
本文研究了稀疏矩阵并行计算库的能量效率,通过优化多GPU使用提升性能与可扩展性,减少计算时间和能耗。
2026-04-15 cs.DC cs.MS cs.PF
Ocean: Fast Estimation-Based Sparse General Matrix-Matrix Multiplication on GPU
Cornell University(康奈尔大学)
本文提出基于估计的SpGEMM方法,通过轻量级HyperLogLog估计器和动态分析策略优化GPU性能,实现1.4x-2.8x的加速。
2026-04-21 cs.DC cs.MS
Adaptive SpMV/SpMSpV on GPUs for Input Vectors of Varied Sparsity
尽管在现代硬件架构上进行了大量的工作来优化稀疏矩阵和向量乘法(SpMV)的性能,但很少对其稀疏对应物稀疏矩阵和稀疏向量乘法(SpMSpV)进行工作,更不用说处理不同稀疏度的输入向量了。关键的挑战是,根据稀疏性级别、数据分布和计算平台,SpMV/SpMSpV内核的最佳选择可能会有所不同,静态选择是不够的。在本文中,我们提出了一个自适应的SpMV/SpMSpV框架,它可以自动选择合适的SpMV/SpMSpV内核的GPU上的任何稀疏矩阵和向量在运行时。在系统分析计算模式、负载分配和回写策略等关键因素的基础上,将8个候选SpMV/SpMSpV内核封装到框架中,实现了高性能的无缝集成。从精度和开销两个方面对基于机器学习的核选择器进行了全面的研究,以选择核并适应输入和硬件的变化。实验表明,自适应框架在NVIDIA Tesla K40 m、P100和V100 GPU上的实际应用中的性能大大超过了之前的最先进水平。
2020-12-17 cs.DC cs.MS
Accelerating Sparse Matrix-Matrix Multiplication with GPU Tensor Cores
稀疏通用矩阵-矩阵乘法(spGEMM)是许多科学和数据分析应用中的重要组成部分。然而,输入矩阵的稀疏模式和它们的模式的相互作用使得spGEMM具有挑战性。现代GPU包括张量核心单元(TCU),专门用于密集矩阵乘法。我们的目标是为稀疏矩阵重新使用TCU。我们的spGEMM算法tSparse的关键思想是使用TCU的混合精度模式来乘以稀疏矩形块。tSparse将输入矩阵划分为tile,并仅对包含一个或多个元素的tile进行操作。它创建区块的任务列表,并使用TCU执行这些区块的矩阵乘法。据我们所知,这是首次在spGEMM背景下使用TCU。我们表明,spGEMM,我们的平铺方法,从TCU的好处。与cuSPARSE、CUSP、RMerge 2、Nsparse、AC-SpGEMM和spECK相比,我们的方法显著提高了spGEMM的性能。
2020-09-29 cs.DC cs.MS cs.PF
Parallel Sub-Structuring Methods for solving Sparse Linear Systems on a cluster of GPU
本文的主要目的是分析子结构方法并行求解由有限元、有限体积和有限差分等偏微分方程离散化所产生的矩阵稀疏线性系。结合通用图形处理器(GPGPU)上的成功应用,提出了一种多GPU和CPU混合的子结构算法。GPU计算与CUDA一起用于加速在每个处理器上执行的操作。数值实验已经进行了一组矩阵所产生的工程问题。我们比较了C+MPI在经典CPU集群上的实现和C+MPI+CUDA在GPU集群上的实现。性能比较表明,使用CUDA子结构方法的速度提高了19倍,在双精度。
2021-08-08 cs.DC cs.MS cs.NA
LOw-cOst yet High-Performant Sparse Matrix-Matrix Multiplication on Arm SME Architectures
针对Armv9架构中SME和SIMD资源难以协同利用于非结构化稀疏工作负载的问题,提出混合执行框架LOOPS,结合CSR和BCSR布局,协同使用NEON和SME资源,在多精度SpMM上实现了远超基线和GPU方法的加速比与能效。
2025-11-13 cs.DC
A Comparative Study on Exact Triangle Counting Algorithms on the GPU
我们使用三种不同的方法在GPU上实现精确的三角形计数:子图匹配到三角形模式;可编程图形分析,集合相交方法;和基于稀疏矩阵矩阵乘法的矩阵公式。这三种方法都提供了优于CPU实现和可比GPU实现的一流性能,其中图分析方法实现了最佳性能,因为它能够利用有效的过滤步骤来消除不必要的工作及其高性能的集合相交核心。
2018-04-18 cs.DC
CB-SpMV:A Data Aggregating and Balance Algorithm for Cache-Friendly Block-Based SpMV on GPUs
School of Computer Science and Engineering Beihang University(北京航空航天大学计算机学院)
本文提出CB-SpMV算法,通过新颖的二维阻塞结构改进GPU上稀疏矩阵向量乘法的缓存局部性、硬件利用率和负载平衡,实验表明其在缓存命中率和速度提升方面优于现有方法。
2026-05-18 cs.DC
Sparse Matrix-Based HPC Tomography
层析成像得益于X射线源、探测器和光学器件的进步,使科学、工程和医学领域的新观测成为可能。这些进步伴随着输入数据以更快的帧速率、更大的视场或更高的分辨率的形式急剧增加,因此高性能解决方案目前被广泛用于分析。层析成像仪器可以从一个到另一个显着变化,包括用于重建的硬件:从单CPU工作站到大规模混合CPU/GPU超级计算机。软件界面和重建引擎的灵活性也非常重要,以便于开发和原型设计。本文提出了一种新的软件框架,断层分析,解决所有上述要求。所提出的解决方案利用稀疏矩阵向量乘法的性能提高,并利用MPI上的多CPU和GPU重建。该解决方案在Python中实现,并依赖于CuPy进行快速GPU运算符和CUDA内核集成,并依赖于SciPy进行CPU稀疏矩阵计算。与之前为特定用例或硬件量身定制的断层扫描解决方案相反,所提出的软件旨在提供灵活,便携和高性能的操作器,可用于在不同的生产环境中进行持续集成,也可用于原型设计新的实验设置或算法开发。实验结果表明,我们的实现甚至可以超越国家的最先进的软件包用于先进的X射线源在世界各地。
2020-04-22 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