arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 1812.08075math.NAcs.NA
收藏

为现代架构上的高性能不连续伽辽金方法自动代码生成

Automatic Code Generation for High-Performance Discontinuous Galerkin Methods on Modern Architectures

Heidelberg University(海德堡大学)

Dominic Kempf, René Heß, Steffen Müthing, Peter Bastian

AI总结:

本文提出了一种基于UFL和loopy的代码生成方法,用于生成不连续伽辽金方法在六面体网格上的高效向量化代码,通过自动调优选择最优变体,提高了软件的可持续性和性能可移植性。

摘要:

SIMD向量化最近已成为高性能计算中的关键挑战。然而,手动编写显式向量化代码往往对软件的可持续性构成威胁。在本文中,我们通过在模拟框架dune-pdelab中引入代码生成方法来解决可持续性和性能可移植性问题。该方法基于广为人知的领域特定语言UFL,但结合了更强大的中间表示loopy,用于计算内核。给定这种灵活的工具,我们提出并实现了新的向量化策略,用于在六面体网格上不连续伽辽金方法的组装,利用有限元的张量积结构。通过自动调优方法,代码生成器选择最优变体。该实现是在开源PDE软件框架Dune和离散化模块dune-pdelab中完成的。通过标量扩散反应方程和斯托克斯方程的性能测量,展示了所提方法的强度。在我们的测量中,我们利用了AVX2和AVX512指令集,实现了单次矩阵无关操作符应用的机器理论峰值性能的40%至60%。

英文摘要:

SIMD vectorization has lately become a key challenge in high-performance computing. However, hand-written explicitly vectorized code often poses a threat to the software's sustainability. In this publication we solve this sustainability and performance portability issue by enriching the simulation framework dune-pdelab with a code generation approach. The approach is based on the well-known domain-specific language UFL, but combines it with loopy, a more powerful intermediate representation for the computational kernel. Given this flexible tool, we present and implement a new class of vectorization strategies for the assembly of Discontinuous Galerkin methods on hexahedral meshes exploiting the finite element's tensor product structure. The optimal variant from this class is chosen by the code generator through an autotuning approach. The implementation is done within the open source PDE software framework Dune and the discretization module dune-pdelab. The strength of the proposed approach is illustrated with performance measurements for DG schemes for a scalar diffusion reaction equation and the Stokes equation. In our measurements, we utilize both the AVX2 and the AVX512 instruction set, achieving 40\% to 60\% of the machine's theoretical peak performance for one matrix-free application of the operator.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑