in collaboration with Mathworks

Superviser: Dr Alastair Donaldson

Accelerator devices, such as GPUs and FPGAs, offer potentially high performance for a range of computational tasks, with applications in many domains including autonomous driving.  Low-level accelerator programming, in languages such as OpenCL, is challenging, error-prone and laborious, leading to interest in high level programming models from which accelerator code can be automatically generated.  This itself presents a set of linked challenges related to how to analyse whether accelerator code is correct, as well as how to automatically generate accelerator code that can be made to perform both efficiently and reliably on a wide range of heterogeneous platforms.  Here “efficiently” encompasses execution time, energy usage and usage of other resources that may be constrained in embedded environments.  Reliability is of key importance in safety-related domains such as autonomous navigation, and automated tools to help assess and demonstrate reliability are important as part of the evidence case for safety standards such as ISO 26262.

We propose a PhD programme centred around the design and implementation of automated compilation tools from high level domain-oriented programming models, generating low level code for accelerator devices, tackling research problems related to performance portability, optimising for multiple resource-related objectives, and demonstrating reliability via automated verification and testing.

There is broad scope for projects in this area, which can be tailored to the interests an experience of a particular PhD candidate.  In addition, there is a lot of scope for using, integrating with, and extending (via prototypes), tools from Mathworks.  For example, analysis for defects, as well as optimising transformations, can be performed using Matlab and Simulink as source languages, both complementing and making use of the Simulink Design Verifier; static analysis capabilities for lower-level accelerator code can enhance the capabilities of Polyspace, and likewise Polyspace can potentially be deployed as part of a solution for finding defects in accelerator code; automated compilation for accelerators could form a prototype extension to Embedded Coder, to take advantage of specific features of accelerators; and efficient code generation techniques could be used to automatically generate high performance parallel libraries for key operations, optimised for important nonfunctional requirements, to augment the Parallel Computing Toolbox.

The project will involve research collaboration with Mathworks, who will be sponsoring a PhD scholarship. Those who wish to be considered for the PhD scholarship should send Dr Alastair Donaldson (alastair.donaldson@imperial.ac.uk) their CV and a one-page summary of their experience and their research interests, explaining their relevance to the project described above. Informal enquiries about the proposed project can be sent to Dr Donaldson.