arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 1407.0904cs.MScs.CEcs.PF
收藏

COFFEE:一个有限元局部装配优化算法

COFFEE: an Optimizing Compiler for Finite Element Local Assembly

Fabio Luporini, Ana Lucia Varbanescu, Florian Rathgeber, Gheorghe-Teodor Bercea, J. Ramanujam, David A. Ham, Paul H. J. Kelly

摘要:

用有限元法求解偏微分方程是高性能计算的关键应用之一。本地组装是其特色操作。这需要执行一个特定于问题的内核,以数值计算离散化问题域中每个元素的积分。由于域的大小可能很大,因此执行有效的内核是最基本的。然而,它们的优化是一个具有挑战性的问题。尽管仿射循环嵌套通常存在,但短程计数和数学表达式的复杂性使得难以确定单个或唯一的成功变换序列。因此,我们介绍了COF-FEE的设计和系统评估,这是一个用于本地汇编内核的特定于领域的编译器。COFFEE通过引入旨在提高指令级并行(特别是SIMD向量化)和寄存器局部性的域感知可组合优化来操纵从用于PDE的高级域特定语言生成的抽象语法树。然后生成包含向量内部函数的C代码。实验表明,使用一系列的有限元形式的复杂性不断增加,实现了显着的性能改善。

英文摘要:

The numerical solution of partial differential equations using the finite element method is one of the key applications of high performance computing. Local assembly is its characteristic operation. This entails the execution of a problem-specific kernel to numerically evaluate an integral for each element in the discretized problem domain. Since the domain size can be huge, executing efficient kernels is fundamental. Their op- timization is, however, a challenging issue. Even though affine loop nests are generally present, the short trip counts and the complexity of mathematical expressions make it hard to determine a single or unique sequence of successful transformations. Therefore, we present the design and systematic evaluation of COF- FEE, a domain-specific compiler for local assembly kernels. COFFEE manipulates abstract syntax trees generated from a high-level domain-specific language for PDEs by introducing domain-aware composable optimizations aimed at improving instruction-level parallelism, especially SIMD vectorization, and register locality. It then generates C code including vector intrinsics. Experiments using a range of finite-element forms of increasing complexity show that significant performance improvement is achieved.

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

↑