ICSA Faculty Talk - 10/12/2020
How to make Domain-Specific Code run efficiently on today's and tomorrow's hardware?
In this talk, Michel will give an overview of the research in his group that aims to establish better foundations for compiling high-level domain-specific code to low-level code running efficiently on the specialized hardware of today and tomorrow.
Optimizing programs to run efficiently on modern parallel hardware is hard but crucial for many applications. The predominantly used imperative languages — like C or OpenCL — force the developers to intertwine the code describing functionality and optimizations. This results in a portability nightmare that is particularly problematic given the accelerating trend towards specialized hardware devices to further increase efficiency. Many emerging DSLs used in performance demanding domains such as deep learning or high-performance image processing attempt to simplify or even fully automate the optimization process. Using a high-level domain-specific language, developers focus on describing the functionality in a declarative way. It is now the job of the compiler to produce efficient low-level code exploiting the target hardware.
Michel will introduce the RISE pattern-based intermediate language that allows creators of DSLs and advanced application developers to express applications at an algorithmic level. Implementation and optimization decisions are encoded separately in the ELEVATE strategy language as compositions of rewrite rules. Michel will show how these foundations are used together in a modular design that enables compilers to be easily extended towards new application domains as well as new hardware devices.
Michel Steuwer (michel.steuwer.info) is a Lecturer in Compilers and Runtime Systems at the School of Informatics at the University of Edinburgh. His research aims to build better foundations to drastically simplify the programming of complex parallel hardware devices while efficiently exploiting the hardware's unprecedented performance and efficiency. He is pioneering research into performance portable programming languages and their compilation, allowing software to be written once in a high-level language and automatically be optimized for best performance on a diverse set of hardware devices. He has authored over 40 refereed papers and his work has been recognized by the academic community with the best paper award at CGO 2018.