Graphcore Logo
Graphcore
Staff System Software Engineer
🌎Bristol, UK
16h ago
👀 1 views
📥 0 clicked apply

Job Description

About Graphcore

How often do you get the chance to build a technology that transforms the future of humanity?

Graphcore products have set the standard in made-for-AI compute hardware and software, gaining global attention and industry acclaim. Now we are developing the next generation of artificial intelligence compute with systems that will allow AI researchers to develop more advanced models, help scientists unlock exciting new discoveries, and power companies around the world as they put AI at the heart of their business.

Graphcore recently joined SoftBank Group – bringing large and ongoing investment from one of the world’s leading backers of innovative AI companies.

Job Summary

As a member of the drivers and utilities team you will contribute to the planning, design, implementation and testing of low level kernel drivers and user space driver library code. You will be part of one of the two teams in the system software department (the firmware team being the other one) and report to the drivers and utilities team manager.

The Team

The drivers and utilities team forms part of the system software group – working closely with both software engineers developing our Poplar SDK and with silicon and hardware engineers developing Graphcore’s IPU solution. The drivers and utilities team develop custom control software on the host in kernel and user space. Our solutions enable our customers to get maximum performance and utility for our cutting-edge products.

Responsibilities and Duties

  • Design, implement, test and document OS Kernel and Device Driver software at the highest standard using C/C++/Python programming languages
  • Participate in agile development – working as part of a scrum team to develop the right software at pace
  • Communicate effectively and contribute regularly to technical discussions with your peers in software and hardware engineering, with architects and other stakeholders
  • Hands-on during key product development phases involving close working with hardware and silicon engineering groups to enable fast time to market delivery
  • Promote Graphcore values and culture

Candidate Profile

Essential:

  • 5- 7 year’s industry experience in software development using programming languages such as C/C++/Python
  • OS Kernel and Device Driver development and deployment experience in Linux or Windows systems
  • Good understanding of lower-level software stack and interactions with the hardware layer
  • Possess effective problem-solving skills, familiar with a full suite of debug and performance analysis tools and techniques
  • Experience with one or more of the following: PCIe, CPU, device drivers, SoC, firmware, and hardware/software integration
  • Proactive in obtaining engineering or management input to solve issues
  • Motivated to schedule own workload
  • Excellent written and verbal communication skills, work well within a multinational team and with multinational customers. Excellent cultural awareness is essential.

Desirable

  • Experience developing firmware or drivers for GPUs.
  • Knowledge of CUDA or OpenCL
  • Experience working on upstreaming of kernel code / contributing to Linux kernel.
  • Exposure to integration with data centre / cloud service operations – for example integration with Kubernetes or open stack.

Benefits

In addition to a competitive salary, Graphcore offers flexible working, a generous annual leave policy, private medical insurance and health cash plan, a dental plan, pension (matched up to 5%), life assurance and income protection. We have a generous parental leave policy and an employee assistance programme (which includes health, mental wellbeing, and bereavement support). We offer a range of healthy food and snacks at our central Bristol office and have our own barista bar! We welcome people of different backgrounds and experiences; we’re committed to building an inclusive work environment that makes Graphcore a great home for everyone. We offer an equal opportunity process and understand that there are visible and invisible differences in all of us. We can provide a flexible approach to interview and encourage you to chat to us if you require any reasonable adjustments