[论文解读] High-performance Implementation of Matrix-free High-order Discontinuous Galerkin Methods
本文提出了一种基于CPU架构的高性能、无矩阵高阶间断伽辽金方法实现,采用求和因子分解与SIMD向量化技术。在支持AVX2的Intel CPU上,其性能超过理论峰值的50%,在多项式阶数为7时,相比基于矩阵的方法实现超过100倍的加速,展示了在最多6,144个核心上的优异弱可扩展性和强可扩展性。
Achieving a substantial part of peak performance on todays and future high-performance computing systems is a major challenge for simulation codes. In this paper we address this question in the context of the numerical solution of partial differential equations with finite element methods, in particular the discontinuous Galerkin method applied to a convection-diffusion-reaction model problem. Assuming tensor product structure of basis functions and quadrature on cuboid meshes in a matrix-free approach a substantial reduction in computational complexity can be achieved for operator application compared to a matrix-based implementation while at the same time enabling SIMD vectorization and the use of fused-multiply-add. Close to 60\% of peak performance are obtained for a full operator evaluation on a Xeon Haswell CPU with 16 cores and speedups of several hundred (with respect to matrix-based computation) are achieved for polynomial degree seven. Excellent weak scalability on a single node as well as the roofline model demonstrate that the algorithm is fully compute-bound with a high flop per byte ratio. Excellent scalability is also demonstrated on up to 6144 cores using message passing.
研究动机与目标
- 为在现代HPC系统上实现有限元PDE模拟的高性能提供解决方案。
- 通过避免矩阵组装,降低高阶间断伽辽金方法的计算复杂度。
- 实现多核CPU上SIMD向量单元和融合乘加指令的高效利用。
- 在大规模模拟中实现高每字节浮点运算数(flop-per-byte)比,最小化内存带宽瓶颈。
- 在基于消息传递的分布式内存系统中,展示强可扩展性和弱可扩展性。
提出的方法
- 采用无矩阵方法,结合张量积基函数和六面体网格上的积分,消除矩阵存储与组装。
- 应用求和因子分解,将每个单元的算子求值计算复杂度从O(p^6)降低至O(p^4)。
- 利用AVX-512和融合乘加指令,实现高算术强度和对自由度的向量化处理。
- 采用基于单元的核函数,仅对单个单元操作,无需对多个单元或面进行向量化。
- 实现通信重叠策略与数据交换(halo exchanges),以实现分布式内存集群上的可扩展消息传递。
- 使用屋顶模型验证性能,确认计算密集型行为与高算术强度。
实验结果
研究问题
- RQ1无矩阵高阶DG方法是否能在不依赖加速器的情况下,在现代CPU架构上实现高性能?
- RQ2求和因子分解与SIMD向量化在多大程度上可降低DG方法的计算复杂度并提升每字节浮点运算数比?
- RQ3在分布式内存环境中,该性能在数千个CPU核心上如何扩展?
- RQ4仅使用原生CPU指令与优化内存访问模式,可达到的峰值性能比例是多少?
- RQ5无矩阵方法是否能在避免框架级代码重构的前提下,保持高效率?
主要发现
- 在采用AVX2和融合乘加指令的16核Xeon Haswell CPU上,无矩阵实现达到了超过理论峰值50%的性能。
- 在相同硬件上,多项式阶数为7时,相比基于矩阵的计算,性能提升超过100倍。
- 该实现完全为计算密集型,屋顶建模确认了高每字节浮点运算数比。
- 弱可扩展性优异,最高达384个节点(768个核心),在不同问题规模下效率几乎保持平坦。
- 在最多6,144个核心上实现了强可扩展性,由于通信重叠有限,最高核心数下效率下降至约39%。
- 该方法无需对多个单元或面进行向量化,可无缝集成至现有有限元框架。
更好的研究,从现在开始
从论文设计到论文写作,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。