Fortran performance optimisation and auto-parallelisation by leveraging MLIR-based domain specific abstractions in Flang

Fortran performance optimisation and auto-parallelisation by leveraging MLIR-based domain specific abstractions in Flang
复制标题

通过利用 Flang 中基于 MLIR 的领域特定抽象来优化 Fortran 性能和自动并行化

DOI:
10.1145/3624062.3624167
复制
发表时间:
2023
期刊:
--
影响因子:
--
通讯作者:
Brown N
Brown N
中科院分区:
--
文献类型:
--
作者:
Brown N

文献摘要

参考文献

相似文献

自2019年开源以来,MLIR变得很受欢迎。LLVM的一个子项目,MLIR提供的灵活性,将中间表示(IR)表示为不同抽象级别的方言,混合这些方言,并利用方言之间的转换,为自动化程序优化和并行化提供了机会。在本文中,我们探讨了通过结合特定领域的Open Earth编译器的MLIR模板方言来补充Flang MLIR通用编译器。通过开发转换来发现和提取Fortran中的语法,与单独使用Flang相比,这种专业化为我们在Cray超级计算机上的基准测试提供了2到10倍的性能提升。此外,通过利用现有的MLIR转换,我们开发了一种自动并行化方法,目标是多线程和分布式内存并行,并优化了GPU上的执行,而无需对串行Fortran源代码进行任何修改。
MLIR has become popular since it was open sourced in 2019. A sub-project of LLVM, the flexibility provided by MLIR to represent Intermediate Representations (IR) as dialects at different abstraction levels, to mix these, and to leverage transformations between dialects provides opportunities for automated program optimisation and parallelisation. In addition to general purpose compilers built upon MLIR, domain specific abstractions have also been developed.In this paper we explore complimenting the Flang MLIR general purpose compiler by combining with the domain specific Open Earth Compiler’s MLIR stencil dialect. Developing transformations to discover and extracts stencils from Fortran, this specialisation delivers between a 2- and 10-times performance improvement for our benchmarks on a Cray supercomputer compared to using Flang alone. Furthermore, by leveraging existing MLIR transformations we develop an auto-parallelisation approach targeting multi-threaded and distributed memory parallelism, and optimised execution on GPUs, without any modifications to the serial Fortran source code.
Polygeist:将 C 提升为多面体 MLIR
DOI: --
发表时间: 2021
期刊: International Conference on Parallel Architectures and Compilation Techniques
影响因子: --
作者:
William S. Moses;Lorenzo Chelini;Ruizhe Zhao;O. Zinenko
通讯作者: O. Zinenko
Devito:使用符号 Python 实现通用有限差分 DSL
DOI: 10.1109/pyhpc.2016.9
发表时间: 2016
期刊: 2016 6th Workshop on Python for High-Performance and Scientific Computing (PyHPC)
影响因子: --
作者:
Michael Lange;Navjot Kukreja;M. Louboutin;F. Luporini;Felippe Vieira;Vincenzo Pandolfo;Paulius Velesko;Paulius Kazakas;G. Gorman
通讯作者: G. Gorman
用于直接数值模拟的基于 DSL 的多块结构化网格应用程序的大规模性能
DOI: 10.1016/j.jpdc.2019.04.019
发表时间: 2019
影响因子: 3.8
作者:
Mudalige G
通讯作者: Mudalige G
百亿亿次计算软件 - SPPEXA 2016-2019
DOI: --
发表时间: 2020
期刊: Software for Exascale Computing
影响因子: --
作者:
H. Bungartz;Severin Reiz;B. Uekermann;Philipp Neumann;W. Nagel
通讯作者: W. Nagel
就地模板的代码生成
DOI: --
发表时间: 2023
期刊: IEEE/ACM International Symposium on Code Generation and Optimization
影响因子: --
作者:
M. Essadki;B. Michel;B. Maugars;O. Zinenko;Nicolas Vasilache;Albert Cohen
通讯作者: Albert Cohen