English

Array Program Transformation with Loo.py by Example: High-Order Finite Elements

Programming Languages 2018-10-05 v1 Performance Numerical Analysis

Abstract

To concisely and effectively demonstrate the capabilities of our program transformation system Loo.py, we examine a transformation path from two real-world Fortran subroutines as found in a weather model to a single high-performance computational kernel suitable for execution on modern GPU hardware. Along the transformation path, we encounter kernel fusion, vectorization, prefetch- ing, parallelization, and algorithmic changes achieved by mechanized conversion between imperative and functional/substitution- based code, among a number more. We conclude with performance results that demonstrate the effects and support the effectiveness of the applied transformations.

Keywords

Cite

@article{arxiv.1604.08501,
  title  = {Array Program Transformation with Loo.py by Example: High-Order Finite Elements},
  author = {Andreas Klöckner and Lucas C. Wilcox and T. Warburton},
  journal= {arXiv preprint arXiv:1604.08501},
  year   = {2018}
}
R2 v1 2026-06-22T13:43:41.547Z