摘要
批量矩阵计算问题广泛存在于科学计算与工程应用领域。随着性能的快速提升,GPU已成为解决这类问题的重要工具之一。矩阵特征值分解属于双边分解,需要使用迭代算法进行求解,不同矩阵的迭代次数可能不同,因此,在GPU上设计批量矩阵的特征值分解算法比设计LU分解等单边分解算法更具挑战性。文中针对不同规模的矩阵,基于Jacobi算法设计了相应的批量厄米矩阵特征值分解GPU算法。对于共享内存无法存储的矩阵,采用矩阵“块”操作技术提升计算强度,从而提高GPU的资源利用率。所提算法完全在GPU上运行,避免了CPU与GPU之间的通信。在算法实现上,通过kernel融合减少了kernel启动负载和全局内存访问。在V100 GPU上的实验结果表明,所提算法优于已有工作。Roofline性能分析模型表明,文中给出的实现已接近理论上限,达到了4.11TFLOPS。
Batched matrix computing problems are widely existed in scientific computing and engineering applications.With rapid performance improvements,GPU has become an important tool to solve such problems.The eigenvalue decomposition belongs to the two-sided decomposition and must be solved by the iterative algorithm.Iterative numbers for different matrices can be varied.Therefore,designing eigenvalue decomposition algorithms for batched matrices on the GPU is more challenging than designing batched algorithms for the one-sided decomposition,such as LU decomposition.This paper proposes batched algorithms based on the Jacobi algorithms for eigenvalue decomposition of Hermitian matrices.For matrices that cannot reside in shared memory wholly,the block technique is used to improve the arithmetic intensity,thus improving the use of GPU resources.Algorithms presented in this paper run completely on the GPU,avoiding the communication between the CPU and GPU.Kernel fusion is adopted to decrease the overhead of launching kernel and global memory access.Experimental results on V100 GPU show that our algorithms are better than existing works.Performance evaluation results of the Roofline model indicate that our implementations are close to the upper bound,approaching 4.11TFLOPS.
作者
黄荣锋
刘世芳
赵永华
HUANG Rongfeng;LIU Shifang;ZHAO Yonghua(Computer Network Information Center,Chinese Academy of Sciences,Beijing 100080,China;University of Chinese Academy of Sciences,Beijing 100080,China)
出处
《计算机科学》
CSCD
北大核心
2023年第4期397-403,共7页
Computer Science
基金
国家重点研发计划(2017YFB0202202)
中国科学院战略性先导科技专项(XDC05000000)。