Our Team
You'll join a multifaceted, collaborative and highly motivated Agile software development team working with next generation Mali™ mobile GPUs. Developing with the latest yet-to-be-published Android versions and crafting the technologies that the mobile market will see in years to come.
This inclusive multinational development team is located in a pleasant campus in Cambridge, the technological centre of the UK.
Job Overview:
The GPU group writes the layer of the driver that implements the popular GPU compute APIs, such as OpenCL and Vulkan which provide massively parallel execution of general purpose code on GPUs.
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 sophisticated functionality, while improving both dependability and efficiency.
If you want to develop your skills and understanding in these technologies, this is the opportunity for you. Join us and together we will make GPU compute and Mali a success in our customers’ hands!
Responsibilities:
Participating in all phases of software development – including design, implementation, testing, code review and documentation.
- Design, implement, and maintain highly optimised GPU compute kernels to maximise performance and efficiency on Arm Mali™ GPUs.
- Writing Python/Bash scripts and C/C++ code to implement benchmarking, automation, analysis and visualisation tools.
- Test and analyse the functionality and performance of workloads on Arm Mali™ GPUs using numerous platforms.
- Maintaining the existing codebase: fixing bugs and other quality assurance activities.
- Engaging with the rest of the team for investigation, estimation and planning purposes.
- Promoting and demonstrate the Arm core beliefs and behaviours.
- Performance analysis and optimisation investigations of various benchmarks, analysing the results and identifying optimisation opportunities in the driver, compiler, and hardware architecture.
- Evaluating new benchmarks and technologies for competitive performance comparisons.
- Assessing the performance of future GPUs for the latest use cases.
- Working in a Linux environment on Arm-based targets including models, FPGAs and silicon from partner companies (covering past, present and future generations of our designs).
- Collaborating closely with engineering teams worldwide.
Required Skills and Experience :
- Experience in C and C++ programming.
- Experience in scripting with Python and Bash.
- A proven understanding of embedded hardware architectures and software engineering development practices.
- Proficiency in problem solving and debugging with a practical, organized and analytical approach to work.
- Good interpersonal team-working skills, self-motivated and results focused.
“Nice To Have” Skills and Experience :
- Experience of OpenCL, CUDA, or Vulkan.
- Experience with machine learning.
- Knowledge of software optimisation, profiling and instrumentation techniques.
- Experience developing software for Linux or Android based systems.
- Experience with data analysis and statistics.
- Knowledge of the internal operation of compilers (particularly LLVM), although this is not a compiler role.
- Familiarity with Git, and bug tracking tools.
- Experience in crafting, design and test specifications and in the creation and maintenance of test suites.
- Automation skills, with exposure to Docker.
- Experience with Agile development processes.
- Experience of driver or HAL development.
- Working exposure to software development for a commercial organization.
In Return:
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.
Our UK offices are amazing places to collaborate. We are keen to welcome versatile people into Arm – if you are interested but unsure whether you tick all the boxes, we still would love you to reach out!
#LI-JG1
Accommodations at Arm
At Arm, we want to build extraordinary teams. If you need an adjustment or an accommodation during the recruitment process, please email accommodations@arm.com. To note, by sending us the requested information, you consent to its use by Arm to arrange for appropriate accommodations. All accommodation or adjustment requests will be treated with confidentiality, and information concerning these requests will only be disclosed as necessary to provide the accommodation. Although this is not an exhaustive list, examples of support include breaks between interviews, having documents read aloud, or office accessibility. Please email us about anything we can do to accommodate you during the recruitment process.
Hybrid Working at Arm
Arm’s approach to hybrid working is designed to create a working environment that supports both high performance and personal wellbeing. We believe in bringing people together face to face to enable us to work at pace, whilst recognizing the value of flexibility. Within that framework, we empower groups/teams to determine their own hybrid working patterns, depending on the work and the team’s needs. Details of what this means for each role will be shared upon application. In some cases, the flexibility we can offer is limited by local legal, regulatory, tax, or other considerations, and where this is the case, we will collaborate with you to find the best solution. Please talk to us to find out more about what this could look like for you.
Equal Opportunities at Arm
Arm is an equal opportunity employer, committed to providing an environment of mutual respect where equal opportunities are available to all applicants and colleagues. We are a diverse organization of dedicated and innovative individuals, and don’t discriminate on the basis of race, color, religion, sex, sexual orientation, gender identity, national origin, disability, or status as a protected veteran.