您所在的位置:首页 - 科学研究 - 科研动态

科研动态

AmgT:Tensor Core加速的AMG解法器

中文题目:AmgT:Tensor Core加速的AMG解法器

论文题目:AmgT: Algebraic Multigrid Solver on Tensor Cores

录用期刊/会议:37th ACM/IEEE International Conference for High Performance Computing, Networking, Storage, and Analysis. (CCF A) Best Paper Finalist. 最佳论文提名

原文DOI:10.1109/SC41406.2024.00058

会议时间:2024.11.17-22

作者列表:

1) 卢玥辰 中国石油大学(北京)人工智能学院 先进科学与工程计算 博22

2) 曾礼杰 中国石油大学(北京)人工智能学院 计算机科学与技术 硕24

3 王腾程 中国石油大学(北京)人工智能学院 计算机科学与技术 21

4) 付   旭 中国石油大学(北京)人工智能学院 计算机科学与技术 硕21

5) 李文瑄 中国石油大学(北京)人工智能学院 计算机科学与技术 硕24

6) 程贺琳 中国石油大学(北京)人工智能学院 计算机科学与技术 硕24

7) 杨德闯 中国石油大学(北京)人工智能学院 计算机技术 硕21

8) 金   洲 中国石油大学(北京)人工智能学院 计算机系教师

9) Marc Casas 巴塞罗那超级计算中心 首席研究员

10) 刘伟峰 中国石油大学(北京)人工智能学院 计算机系教师


摘要:

代数多重网格(AMG)方法因其灵活性和适应性,被广泛用于求解稀疏线性系统。尽管现代GPU为AMG提供了大规模并行计算能力,但其最新硬件特性(即Tensor Core及低精度计算能力)尚未被很好地用于加速AMG。本文提出了一个新的AMG解法器AmgT,其能够在AMG算法的多个阶段中利用最新GPU的Tensor Core和混合精度能力。我们首先提出了一种统一稀疏存储格式,充分利用Tensor Core及混合精度来提高AMG算法中频繁调用的稀疏矩阵-矩阵乘法(SpGEMM)和稀疏矩阵-向量乘法(SpMV)的性能,并尽量减少AMG整个数据流中格式转换的成本。同时,为更好地利用现有库中的算法组件,AmgT的数据格式和计算kernel被集成到HYPRE库中。实验结果表明,在NVIDIA A100、H100 和AMD MI210 GPU上,AmgT比原GPU版本的HYPRE平均快1.46倍、1.32倍和2.24倍(最高达2.10倍、2.06倍和3.67倍)。

背景与动机:

代数多重网格(AMG)方法因其灵活性和适应性,被广泛用于求解稀疏线性系统。尽管现代GPU为AMG提供了大规模并行计算能力,但其最新硬件特性(即Tensor Core及其低精度计算能力)尚未被很好的用于加速AMG。然而利用Tensor Core加速AMG面临着三个挑战:(1)存储方面,如何避免为SpGEMM和SpMV生成不同格式的矩阵;(2)计算方面,如何将一般稀疏结构与Tensor Core的严格稠密GEMM模式相匹配;(3)精度方面,如何将可变精度的SpGEMM和SpMV集成到AMG的完整数据流中。

设计与实现:

我们首先设计了一种统一稀疏存储格式mBSR(图1),这是经典块稀疏行(BSR)格式的一种变体。mBSR格式将稀疏矩阵存储在一组大小为4×4的稠密块中,并使用位图存储每个块中的非零元位置。

 

图1. mBSR格式 

在这种数据格式的基础上,我们提出了一种新的AMG求解器AmgT,它在AMG算法的多个阶段利用了最新GPU的Tensor Core和及其低精度能力。AmgT基于新的SpGEMM(图2)和SpMV算法,能够根据块的稀疏程度同时使用Tensor Core和CUDA Core加速计算。AmgT中的SpGEMM算法会先分析矩阵数据,并将所有块行归入八个分区,然后执行两步哈希操作进行符号计算,以获取生成矩阵中块的位置信息,最后同时使用Tensor Core和CUDA Core进行数值计算。AmgT中的SpMV算法采用自适应性选择负载均衡和计算kernel策略,并同样实现了Tensor Core和CUDA Core的混合使用,以提高整体性能。

 

图2. mBSR格式的SpGEMM计算过程

最后,多种精度的新SpGEMM和SpMV算法分别在不同层的网格中调用,以有效利用Tensor Core的计算能力。

 

图3. AmgT的完整数据流

实验结果及分析:

为更好地利用现有库中的算法组件,AmgT的数据格式和计算kernel被集成到HYPRE库中。我们的测试平台为两款NVIDIA GPU A100(Ampere)和H100(Hopper)以及一款AMG GPU MI210(CDNA2),并测试了SuiteSparse矩阵集的16个代表性矩阵。

实验结果表明,在NVIDIA A100、H100 和AMD MI210 GPU上,AmgT比原GPU版本的HYPRE平均快1.46倍、1.32倍和2.24倍(最高达2.10倍、2.06倍和3.67倍),如图4所示。在A100和H100上,我们的混合精度AmgT比双精度AmgT分别快1.03倍和1.04倍(最高1.08倍和1.14倍)。此外,独立kernel测试表明,我们的SpGEMM比cuSPARSE和rocSPARSE SpGEMM分别快3.09倍、2.40倍和4.67倍(最高达7.61倍、6.11倍和5.96倍),SpMV在三个GPU上的性能分别是cuSPARSE和rocSPARSE SpMV的1.34倍、1.19倍和2.92倍(最高达2.21倍、2.09倍和6.70倍)。

图4. 不同方法的AMG在三个GPU上的性能比较 

我们还比较了双精度HYPRE、AmgT和混合精度AmgT在8个A100 GPU上的性能,如图5所示。与双精度HYPRE相比,我们的双精度AmgT方法的速度快了1.35倍(最高1.84倍)。此外,与双精度AmgT方法相比,我们的混合精度AmgT方法的速度快了1.06 倍(最高 1.11 倍)。虽然数据划分会导致通信成本增加、每GPU的计算量减少,但我们的算法仍能保持相对于调用cuSPARSE 的HYPRE的稳定优势。

 

图5. HYPRE和AmgT在8个A100 GPU上的性能比较

作者简介:

刘伟峰,教授,博士生导师,欧盟玛丽居里学者。2002年和2006年于中国石油大学(北京)计算机系获学士与硕士学位。2006年至2012年在中国石化石油勘探开发研究院历任助理工程师、工程师和高级研究师,其间主要研究领域为石油地球物理勘探的高性能算法。2016年于丹麦哥本哈根大学获计算科学博士学位,主要研究方向为数值线性代数和并行计算,其中尤其关注稀疏矩阵的数据结构、并行算法和软件。研究工作发表于SC、PPoPP、DAC、ASPLOS、ICS、IPDPS、ICPP、TPDS、JPDC、FGCS和Parco等重要国际会议和期刊。担任TPDS、SISC和TKDE等多个重要国际期刊审稿人,以及SC、ICS、IPDPS和ICPP等多个重要国际会议的程序委员会委员。他是IEEE高级会员、CCF高级会员、ACM和SIAM会员。

联系方式:weifeng.liu@cup.edu.cn。