15782

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

Andreas Klockner, Lucas C. Wilcox, T. Warburton
University of Illinois at Urbana-Champaign, Urbana, IL, USA
arXiv:1604.08501 [cs.PL], (13 Apr 2016)

@article{klockner2016array,

   title={Array Program Transformation with Loo.py by Example: High-Order Finite Elements},

   author={Klockner, Andreas and Wilcox, Lucas C. and Warburton, T.},

   year={2016},

   month={apr},

   archivePrefix={"arXiv"},

   primaryClass={cs.PL}

}

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, prefetching, 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.
No votes yet.
Please wait...

* * *

* * *

HGPU group © 2010-2024 hgpu.org

All rights belong to the respective authors

Contact us: