The School of Informatics, University of Edinburgh, invites applications for a post-doctoral research position on the theme: Efficient Neural Network Code Generation on Mobile GPUs. The position is funded by Huawei Innovation Research Program FLAGSHIP (HIRP FLAGSHIP) for a duration of up to two years with possible extension.

Neural network applications are used extensively in areas such as computer vision, machine translation and business analytic. This has become possible thanks to the development of powerful parallel hardware. However, writing efficient parallel implementation for these algorithms remains a challenge even for expert programmers, especially on power constraints devices such as mobile GPUs. Programmers have to fine-tune their code for the special characteristics of the targeted hardware. This expensive and time-consuming process has to be repeated every time new hardware emerge or when the neural network architecture is updated.

In this project, we propose to build upon the existing Lift compiler and extend this work to the generation and tuning of neural networks for mobile GPUs. Lift is a novel approach developed at Edinburgh to achieving performance portability on parallel accelerators. Lift combines a high-level functional data parallel language with a system of rewrite rules which encode algorithmic and hardware-specific optimisation choices. Applications written in Lift are able to take advantage of GPUs, transparently from the user.

This project will augment Lift with the ability to express and optimise machine-learning algorithms and exploit effectively mobile GPUs. The main idea is to express neural network computation as Lift programs, which are then automatically compiled and optimised for the GPU. In this project, we will explore mobile-GPU specific optimisations, neural network optimisations and the use of performance model to make prediction about the performance potential of the GPU for various neural networks.

Your main task will consist of supporting the research activities in the Lift research group and achieve the project's objectives established jointly with Huawei, our industrial partner. The position will be a mix of research and development with the opportunity to take an active role in the co-supervision of the PhD students in the Lift group. The main success criteria will be the publications of high quality scientific papers and the delivery of a working prototype compiler targeted at neural networks.

On a more technical note, the Lift language is deeply functional in nature and the Lift compiler is mostly written in Scala. Therefore, the ideal candidate is expected to have a strong background in functional programming. Since our code generator targets OpenCL and we plan to integrate it with the Caffe C++ library, we also expect the ideal candidate to have a good knowledge of C/C++ programming and some familiarities with OpenCL or CUDA. Knowledge about neural networks algorithms is desirable although not strictly necessary as this can be learnt during the course of the project.

We are looking for the brightest minds to pursue cutting-edge research with a direct industry application. You will be part of a world-leading research group in the area of compilers and will be given the ability to interact directly with industry and to network with other scientists through conferences and other events. The successful candidate will be offered guidance and mentoring to seek an academic or industrial research position in a top institution at the end of the project.

The school of Informatics is committed to promoting equality and diversity. We particularly welcome female applicants and other applications from minority groups.

  • Degree in appropriate field
  • PhD (or about to be achieved)

The following criteria are not yes/no factors, but questions of degree. Recruitment will aim at selecting those candidates with the best possible performance in all these criteria.

  • Strong functional programming skills
  • Knowledge of C/C++ and familiar with GPU programming
  • Basic understanding of machine-learning algorithms desirable
  • Experience in research in the area of compilers and runtime systems
  • Demonstrated quality of research and ability to work independently
  • Ability to communicate complex information clearly, orally and in writing. Excellent English skills.

Official University application website for this position (scroll at the very bottom of the page to apply). Informal enquiries are strongly encouraged and can be addressed to: