SemiWiki Podcast Banner

Senior Software Engineer – GPU

Senior Software Engineer – GPU
by Admin on 06-08-2020 at 5:12 am

  • Full Time
  • Cambridge, UK
  • Applications have closed

Website ARM

Job ID #: 18097
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.

This is an amazing opportunity to influence products and technology that millions of people will use around the globe years ahead of the product release.

Job Requirements

  • Education & Qualifications: Bachelor’s or Master’s Degree (computer science or electronics engineering). Skills & Experience required:
  • Demonstrable expertise in C programming.
  • Experience developing Linux kernel components and/or device drivers.
  • Good understanding of computer architecture and embedded systems.
  • Proficiency in problem solving and debugging skills.
  • Experience with version control and bug tracking systems.
  • Excellent team working skills, self-motivated and results focused.
  • Practical, organized and analytical approach to work.

Desirable: 

  • Experience with ARM embedded systems
  • Familiar with Android system software development and debugging
  • Interest in graphics and compute APIs – Vulkan, OpenGL ES, OpenCL
  • Experience of software development for a commercial organization.

About the Media Engineering Group:

The Media Engineering Group produces media processing hardware and software products for mobile and embedded devices. Our product portfolio includes GPU, ISP, Display and Video IP and our Mali™ Graphics Processor is the world’s #1 shipping GPU. Now we are entering into a new growth phase to provide new technologies and products for existing and new markets and are looking for talented people to join the team.

At Media Engineering you will work with the world’s best companies, making world-leading products based on our IP and alongside the best engineers in the world. We are a global team working across numerous sites. Your ideas will make a difference and you will have the opportunity to lead, challenge the status quo and ultimately change the world of media processing. Please have a look at the following video to see what it’s like to work in as part of the Media team: https://youtu.be/F4tNBNBgYEY

Share this post via: