Are you looking for an exciting and meaningful role on the cutting edge of parallel processing on mobile GPU technology?
You will join a dynamic Agile software development team working on the OpenCL 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.
If you wish to influence the products and technology that billions of people will use around the globe, then this is an unparalleled opportunity.
“At the end of the talk, Son shook Segars’ hand. He said that Arm is indispensable not just to SoftBank, but to the whole of humankind”
You will need embedded software development and optimization skills, but previous experience of GPUs is not essential.
This inclusive multinational development team is located in a pleasant (and growing) campus in Cambridge, the technological centre of the UK.
Our team writes the layer of the driver that implements the popular OpenCL and RenderScript APIs, 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 GPGPU use cases that include:
- Machine learning (ML)
- Image processing & computer vision (CV)
- Video encoding and decoding
- Virtual reality (VR), and augmented reality (AR).
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 GPGPU and Mali a success in our customers hands.
What are some of the team’s recent achievements?
- Rapidly deploying support for Android Pie, and now for the upcoming Android Q.
- Job-chaining optimisation for GPU performance.
- Migrating the compute driver from C to C++
- Redesigning the driver for a new (as yet unreleased) and different GPU architecture.
Day to day activities:
The role will involve bringing up the driver on new GPUs, the design and implementation of a roadmap of new features and tests, as well as improving the benchmarking, maintenance and optimisation of existing areas of the driver.
You will work in a Linux environment, coding and debugging for Arm-based targets including models, FPGAs and silicon from our partner companies (thereby covering past, present and future generations of our designs).
We value proactivity and enthusiasm and look to our engineers to be the source of new ideas and innovations.
As a member of an Agile team you will have the chance to try your hand at all 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 to develop drivers for the current and the next generation of Arm Mali GPUs.
Especially close is our relationship with the LLVM-based compute compiler team (who are in the same building).
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 code to implement the required task (feature, test, bugfix, etc).
- Test and analyse the functionality and performance of your code (both using models FPGAs and silicon platforms).
- You are expected to review other people’s code
- Engaging with the rest of the team for investigation, estimation and planning purposes, investigating issues with our driver for example.
- Promoting and demonstrate the Arm core beliefs and behaviours.