Lift: Generating High Performance Code with Rewrite Rules
February 27, 2019 at 10:00am
The increasing trend towards specialised hardware accelerators makes writing portable software that achieves high performance and efficiency across multiple devices a challenging – if not impossible – task for most programmers. Higher level programming languages combined with sophisticated code generators have emerged as a promising direction to address this performance portability challenge.
In this talk I will present the Lift DSL and code generator. The high-level Lift language allows developers to express applications in a composable and portable way. Lift programs are then translated with a rewrite system into a low-level form from which high-performance code is generated. These two layers clearly separate the functional “what to compute” from the imperative “how to compute it”.
I will show that Lift successfully address the performance portability challenge on a series of applications ranging from linear algebra over HPC stencil computations to machine learning.
Michel Steuwer is a Lecturer in Programming Languages and Compilation in the School of Computing Science at the University of Glasgow. His research aims to simplify the programming of complex parallel hardware devices while simultaneously improving performance and efficiency. With the Lift project (lift-project.org) he is pioneering research into performance portable programming languages, allowing software to be written once in a high-level language and automatically be optimised for best performance on a diverse set of hardware devices. He has authored over 30 papers and his work has been widely recognised by the academic community with best paper awards and high citation number of his papers.