Are you looking for a meaningful role on the cutting edge of parallel processing on mobile GPU technology?
You will join a dynamic Agile software development team working on performance analysis and optimisation of the GPU compute drivers for the next generation Mali™ mobile GPUs.
You will develop with the latest yet-to-be-published Android versions and will help craft the technologies that the mobile market will see in years to come.
You will need scripting, performance and data analysis, and embedded software development skills, but previous experience of GPUs is not essential.
This inclusive multinational development team is located in a pleasant campus in Cambridge, the technological centre of the UK.
Our group writes the layer of the driver that implements the popular GPU compute APIs (including OpenCL), which provide massively parallel execution of general purpose (C-like) code on Mali GPUs, often known as GPGPU (General Purpose computing on the GPU). If you want to develop your skills and understanding in these technologies this is the opportunity for you.
Our many customers have performance-critical GPU compute use cases that include:
- Machine learning (ML)
- Image processing & computer vision (CV)
- Video encoding and decoding
Mobile devices are highly constrained environments, and our challenge is to provide this complex functionality, while improving both dependability and efficiency.
Join us and together we will make GPU compute and Mali a success in our customers hands.
Day to day activities:
The part of the team you will be joining handles the performance analysis of the driver and GPUs. Bringing up new versions of benchmarks, analysing the results, and identifying optimisation opportunities in the driver. The team also analyses the performance of future GPUs for the latest use cases.
The benchmarking infrastructure is written using Python, and the driver is written in C and C++.
You will work in a Linux environment, working on Arm-based targets including models, FPGAs and silicon from our partner companies (thereby covering past, present and future generations of our designs).
As a member of an Agile team you will have the chance to try your hand at different aspects of our work. Engineers grow their expertise through in-house and externally hosted training, and through peer code reviews.
You will be working closely together with our community of engineering teams across Arm’s European design centres developing drivers for the current and the next generation of Arm Mali GPUs.
One of the phenomenal things about working at Arm is that if you have a question about another component, whether that be software, tooling, or even the hardware underneath, you can speak directly to the in-house designer, most of whom are in Cambridge.
Over the years, engineers develop into specialised experts, generalists, or transition to other disciplines such as project and product management.
What will I be accountable for?
- Writing scripts and code to implement the required task (benchmark implementation, automation scripts, analysis scripts, visualisation tools)
- Test and analyse the functionality and performance of your code (both using models FPGAs and silicon platforms).
- You are expected to review other team members code and results (benchmark results can be affected by a great many factors that need to be taken into account).
- Engaging with the rest of the team for investigation, estimation and planning purposes.
- Promoting and demonstrate the Arm core beliefs and behaviours.