Loo.py: From Fortran to performance via transformation and substitution rules
University of Illinois at Urbana-Champaign
arXiv:1503.07659 [cs.PL], (26 Mar 2015)
@article{klockner2015loopy,
title={Loo.py: From Fortran to performance via transformation and substitution rules},
author={Klockner, Andreas},
year={2015},
month={mar},
archivePrefix={"arXiv"},
primaryClass={cs.PL}
}
A large amount of numerically-oriented code is written and is being written in legacy languages. Much of this code could, in principle, make good use of data-parallel throughput-oriented computer architectures. Loo.py, a transformation-based programming system targeted at GPUs and general data-parallel architectures, provides a mechanism for user-controlled transformation of array programs. This transformation capability is designed to not just apply to programs written specifically for Loo.py, but also those imported from other languages such as Fortran. It eases the trade-off between achieving high performance, portability, and programmability by allowing the user to apply a large and growing family of transformations to an input program. These transformations are expressed in and used from Python and may be applied from a variety of settings, including a pragma-like manner from other languages.
March 28, 2015 by hgpu