We use cookies to improve your experience with our site.

基于AMD GPU的针对稠密对称矩阵的广义特征值求解器优化

Optimization of Generalized Eigensolver for Dense Symmetric Matrices on AMD GPU

  • 摘要:
    研究背景 关于稠密对称矩阵特征值和特征向量的计算,在很多领域都是一个非常重要的问题,比如材料科学、量子化学、结构力学等等。根据数据统计,全球的超级计算机每年都有大量的机时被用来执行材料模拟和计算化学的相关程序。特征值求解在这一类程序中又是特别重要并且十分耗时的一项操作。利用GPU来加速特征值求解器越来越得到大家的关注。然而,要想特征值求解器取得较高的性能是非常有挑战性的,这是因为特征值问题复杂的计算模式会导致访存效率低下和计算负载不均衡等问题。AMD GPU是当前主流的异构加速器之一,其官方提供的rocSOLVER库提供了一个初始的特征值求解器,但其性能还有较大提升空间。在AMD平台下,MAGMA提供了更加优秀的特征值求解器。它采用了CPU+GPU的计算模式,其目的是为了将计算负载均衡的分配到CPU和GPU上。但在当前平台上,其负载分配并不能充分发挥出机器的性能。当前的计算模式下,CPU计算时间和数据传输时间导致了大量的时间浪费,并未充分发挥出GPU的强大计算能力,而且当前平台下的关键BLAS函数SYMV和GEMV等也并没有达到理想性能。
    目的 当前AMD平台下的用来求解对称矩阵特征值问题的相关库和软件包并未完全利用硬件的计算能力,其性能还有提升的空间。我们在当前平台下,充分考虑其硬件特点,希望开发出一个更加高效的针对稠密对称矩阵的特征值求解程序。
    方法 首先我们调整了CPU和GPU之间的任务分配方式,并且找到了不同级别计算的平衡。此外,针对SYMV和GEMV的优化提出了多层预规约策略,来解决因原子操作缺少硬件支持导致的性能问题。再者,我们采用了更好的计算重叠方式和对称性减少计算量的方法,分别优化了cholesky分解和SYR2K操作,减少计算过程中的传输时间,充分利用GPU的计算能力来加速整个程序的计算。
    结果 我们设计并实现了一个基于AMD GPU的针对稠密对称矩阵的高性能广义特征求解器,相较于MAGMA取得了1.8-3.8倍的加速比,三对角化过程相对其取得了3.3-5.1倍的加速比,关键性的kernel对称矩阵乘向量(SYMV)达到了理论带宽的92.7%。
    结论 我们在AMD平台设计并实现的针对稠密对称矩阵的特征值求解器取得了优异的性能。在优化此类求解器时,应充分考虑硬件的特性,合理设计任务的分配方式,并且应根据硬件的计算能力和访存能力等数据,去进行深入的kernel级别优化。

     

    Abstract: Accelerating the eigensolver on GPUs is getting more and more attention due to its ubiquitous usage in scientific and engineering fields. However, it is very challenging to achieve high performance on eigensolvers because of the intricate computational patterns which cause inefficient memory access and workload imbalance on GPUs. In this work, we propose a series of optimizations for generalized dense symmetric eigenvalue problems from both the system and operator perspectives on AMD GPUs. Firstly, we adjust the workload assignments between CPUs and GPUs and find the computational performance balance between different levels of computation. Besides, we propose a multi-level pre-aggregation strategy for symmetric matrix-vector multiplication (SYMV) and general matrix-vector multiplication (GEMV) operators to tackle the performance issue caused by lacking hardware support for atomic operation. Furthermore, we optimize Cholesky decomposition and SYR2K by adopting a better overlapping method and utilizing symmetry to reduce computation. Experiments on AMD MI60 GPUs show that our optimized eigensolver outperforms the previous state-of-the-art with roughly 1.8x–3.8x speedups.

     

/

返回文章
返回