CHERI webinar banner

Software Engineer – GPU

Software Engineer – GPU
by Admin on 02-26-2020 at 1:29 pm

Job ID #: 18083
Job Category: Software Engineering
Employment Type: Experienced Professionals
Division: Central Engineering – GPU
Department: Central Engineering – GPU Engineering
Primary Country: UK
Primary Location: Cambridge

Job Description

Are you looking for an exciting and challenging role working on the leading edge of mobile GPU technology? Are you looking to use your technical skills to help drive your career? You will join an Agile Software development team working on the drivers for the next generation Mali™ mobile GPUs. You will work with the most recent Linux kernels and yet-to-be-published Android versions and will help shape the technologies that the mobile market will see in years to come.

You will be based in Cambridge (UK) and work on the lower layer of the Mali graphics driver stack. We focus on performance-critical user and kernel space components that interface with the GPU hardware and firmware, including scheduling and memory management for Linux and Android OSs.

If you would like to utilise your technical capabilities to drive existing and future parts of our Mali GPU to execute content as efficiently as possible, this is the opportunity for you.

What you will be involved with:

You will be working closely with the multi-disciplined engineering teams across ARM’s European design centres to develop device drivers for the current and next generation of ARM Mali GPUs.
You will provide the foundations that will make the Mali implementation of Vulkan, OpenGL and OpenCL simply the best in the market.
Recent achievements of the team include:

• Update GPU MMU code to support large GPU pages
• Just-in-time memory allocation for Vulkan GPU jobs
• Support mechanism that allows the GPU to grow the tiler heap autonomously
• Increase utilisation of the GPU by optimising the scheduling algorithm
• Extend the intelligent power allocator (IPA) model to use hardware counters

Day to day activities include:

• Participating in all phases of software development – including design, implementation, testing, code review and documentation.
• Implementing new features for both user and kernel space components
• Working closely with other software teams to interface driver components.
• Maintaining the existing codebase: fixing bugs and other quality assurance activities.
• Development on local platforms (FPGA, silicon, GPU model) and remotely on a test farm, on both stable and under development OS configurations.

Apply for job

To view the job application please visit

Share this post via: