Lift

Computing systems 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. This results in a tension between performance and code portability. This project investigates a novel approach aiming to combine high-level programming, code portability, and high-performance. Starting from a high-level functional expression we apply a simple set of rewrite rules to transform it into a low-level functional representation close to the OpenCL programming model and from which OpenCL code is generated. Our rewrite rules define a space of possible implementations which we automatically explore to generate hardware-specific OpenCL implementations.

#Supported by

Oracle Labs
Oracle Labs

Christophe Dubach
Christophe Dubach
Associate Professor
Canada CIFAR AI Chair, Mila

My research interests include data-prallel language design and implementation, high-level code generation and optimisation for parallel hardware (e.g. GPU, FPGAs), architecture design space exploration, and the use of machine-learning techniques applied to all these topics.

Michel Steuwer
Michel Steuwer
Postdoc 2015-2017 (Edinburgh University) Now Lecturer at Glasgow University
Lu Li
Lu Li
Postdoc 2018-2020 (Edinburgh University) Now Deep learning engineer at Zenseact
Thibaut Lutz
Thibaut Lutz
Postdoc 2015 (Edinburgh University) Now at Nvidia
Toomas Remmelg
Toomas Remmelg
PhD student 2014-2019 (Edinburgh University)
Larisa Stoltzfus
Larisa Stoltzfus
PhD student (Edinburgh University)
Federico Pizzuti
Federico Pizzuti
PhD student (Edinburgh University)
Naums Mogers
Naums Mogers
PhD student (Edinburgh University)
Adam Harries
Adam Harries
MSc student 2014-2015 (Edinburgh University)