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
Reporting to a Team Lead in the frameworks team you will play a pivotal role in designing, implementing, optimising, maintaining and supporting the software ensures Graphcore hardware enjoys first-class support in popular machine learning frameworks such as PyTorch.
As a framework engineer in the PyTorch team you will be part of a SCRUM team working on delivering new features, working on, e.g., performance optimisations, reviewing code change, writing technical documentation, working with upstream communities, maintaining the code base and supporting users.
You are expected to closely collaborate with other engineers, both acting as a role model for more junior members in your own team but also working together with other teams, including teams making low-level libraries that the frameworks use and teams that are developing ML applications on top of the frameworks.
The Team
The frameworks team is responsible for ensuring Graphcore hardware enjoys seamless support in user-facing machine learning frameworks such as Pytorch, Triton, Jax and TensorFlow. We have strong focus on both ease-of-use and performance.
Our software team is at the cutting edge of the machine learning industry. We have a culture of driving continuous improvement and a deliberate focus on personal development.
All our software teams follow agile working practices.
Responsibilities and Duties
- Designing and implementing new features & maintaining and supporting existing features.
- Developing and maintaining unit tests, component tests and integration tests.
- Optimising the software stack to make it more performant for our users.
- Managing code quality, code complexity and technical debt.
- Contributing to documentation, including user manuals and tutorials.
- Conducting code reviews.
- Resolving regressions, performance issues and software defects.
- Coaching and mentoring other team members.
- Contributing to a collaborative team culture.
- Contribute to continuous improvements to improve ways of working.
- Working with upstream open source development teams.
Candidate Profile
Essential:
- Experience of developing performant C++ applications in a commercial setting.
- Experience of Python development.
Desirable
- Experience using and/or development of ML Frameworks such as PyTorch.
- Demonstrable knowledge of AI/ML.
- Experience in a computationally intensive engineering field.
- Understanding of and/or experience with compiler development.
- Understanding of computing architectures.
- Experience of maintaining and supporting a complex code base.
- Experience of writing ML kernels.
- Experience in profiling / optimising high performance code
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
Top Skills
What We Do
Graphcore has created a new processor, the Intelligence Processing Unit (IPU), specifically designed for artificial intelligence. The IPU’s unique architecture means developers can run current machine learning models orders of magnitude faster. More importantly, it lets AI researchers undertake entirely new types of work, not possible using current technologies, to drive the next great breakthroughs in general machine intelligence.
Our next generation 3D Wafer-on-Wafer Bow IPU systems are helping AI innovators worldwide to build better, more innovative AI solutions, whether their focus is on language and vision, exploring graph neural networks and LSTMs or creating something entirely new.
We believe our IPU technology will become the worldwide standard for artificial intelligence compute. The performance of Graphcore’s IPU is going to be transformative across all industries and sectors whether you are a medical researcher, roboticist or building autonomous cars.
Our team is at the forefront of the artificial intelligence revolution, enabling innovators from all industries and sectors to expand human potential with technology. What we do, really makes a difference.
We're always interested in hearing from exceptional people to join our team.