University of Cambridge > Talks.cam > Computer Laboratory Systems Research Group Seminar > The Lift Project: Performance Portable GPU Code generation via Rewrite Rules

The Lift Project: Performance Portable GPU Code generation via Rewrite Rules

Add to your list(s) Download to your calendar using vCal

If you have a question about this talk, please contact Liang Wang.

Computers have become increasingly complex with the emergence of heterogeneous hardware combining multicore CPUs and GPUs. These parallel systems exhibit tremendous computational power at the cost of increased programming effort resulting in a tension between performance and code portability. Typically, code is either tuned in a low-level imperative language using hardware-specific optimizations to achieve maximum performance or is written in a high-level, possibly functional, language to achieve portability at the expense of performance.

In this talk, I will present our novel approach Lift which aims for combining high-level programming, code portability, and high-performance. Starting from a high-level functional program we apply semantic preserving rewrite rules to transform it into a low-level functional representation, close to the OpenCL programming model, from which eventually OpenCL code is generated. Our rewrite rules define a space of possible implementations which we automatically explore for generating hardware-specific OpenCL implementations.

I will discuss the design and implementation of the Lift language and compiler showing the advantages of a functional internal compiler representation for high-performance code generation. I will show experimental results of the high-performance OpenCL code generated with Lift. Our experiments show how hardware specific implementations are automatically derived from simple functional high-level algorithmic expressions offering performance on a par with highly tuned code for multicore CPUs and GPUs written by experts.

Bio: Michel Steuwer is a Postdoctoral Research Associate in the CArD group at the University of Edinburgh. He received his PhD in 2015 from the University of Muenster in Germany. His research interests span all areas of parallel programming from languages and programming models to their implementation in compilers and libraries as well as their execution at runtime. Recently, his research has particularly focused on structured parallel programming models, heterogeneous and GPU computing, and novel compilation techniques. He is the principle designer of the skeleton library SkelCL (github.com/skelcl) and the Lift language and compiler (github.com/lift-project).

This talk is part of the Computer Laboratory Systems Research Group Seminar series.

Tell a friend about this talk:

This talk is included in these lists:

Note that ex-directory lists are not shown.

 

© 2006-2020 Talks.cam, University of Cambridge. Contact Us | Help and Documentation | Privacy and Publicity