I am a PhD student in the School of Computing Science at the University of Glasgow in Scotland, supervised by Michel Steuwer and Phil Trinder.
Before coming to Glasgow I was a student at Sorbonne Université in Paris, France.
You can read my Curriculum Vitae to learn more.
I am particularly interested in simplifying the development of efficient software through an automated mapping of high-level software to low-level hardware.
Making the most out of current and future hardware is essential to improve execution times and power consumption in many domains, all the way from embedded to high performance computing. However, optimizing applications by hand using low level code requires hardware-specific expertise, is error-prone, verbose and time consuming. In addition, each new application and target hardware requires going through this process again.
Towards Image Processing on Embedded Hardware with Lift
Image processing applications running on embedded hardware are constrained by computing and energy resources, as well as requirements such as real-time processing. Optimization often results in significant improvements that are critical for an application viability. However, developing efficient image processing applications on these devices is extremely challenging as current low-level approaches require manual optimization and detailed knowledge of the hardware. I experienced this difficulty first-hand during internships in my Master studies.
In my PhD studies, I am contributing to the Lift project to overcome the challenges of programming and optimizing image processing applications on embedded hardware. Lift combines a high-level functional language with a system of rewrite rules which encode implementation choices. The Lift compiler can automatically optimize for the target harware by exploring the defined implementation space.
To effectively use Lift for image processing, we need to be able to express well-known optimizations using rewrite rules. I am currently investigating the Harris corner detector as an initial case study. This is a well established but still relatively simple application that exposes various implementation choices.