The Lift Project: Performance Portable GPU Code generation via Rewrite Rules
- đ¤ Speaker: Michel Steuwer (University of Edinburgh)
- đ Date & Time: Friday 09 December 2016, 11:00 - 12:30
- đ Venue: FW11, Computer Laboratory, William Gates Building
Abstract
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).
Series This talk is part of the Computer Laboratory Systems Research Group Seminar series.
Included in Lists
- All Talks (aka the CURE list)
- bld31
- Cambridge Centre for Data-Driven Discovery (C2D3)
- Cambridge talks
- Chris Davis' list
- CL's SRG seminar
- Computer Laboratory Systems Research Group Seminar
- Department of Computer Science and Technology talks and seminars
- FW11, Computer Laboratory, William Gates Building
- Interested Talks
- ndk22's list
- ob366-ai4er
- rp587
- School of Technology
- Trust & Technology Initiative - interesting events
- yk449
Note: Ex-directory lists are not shown.
![[Talks.cam]](/static/images/talkslogosmall.gif)

Michel Steuwer (University of Edinburgh)
Friday 09 December 2016, 11:00-12:30