Loo.py: From Fortran to performance via transformation and substitution rules
Andreas Kl\"ockner

TL;DR
Loo.py is a transformation system that enables high-performance, portable GPU programming by allowing user-controlled transformations of array programs, including legacy Fortran code, through Python-based rules.
Contribution
It introduces a flexible transformation framework that extends to legacy languages like Fortran, facilitating performance optimization on data-parallel architectures.
Findings
Supports transformation of Fortran and other languages
Enables high-performance GPU code generation
Offers a flexible, user-controlled transformation mechanism
Abstract
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…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
