Skip to main content
Back to jobs

Software Engineer - ML Kernels & Runtime

External
Graphcore logoGraphcore · Bristol, UK
Full-timeOn-site2w ago
AgileLinearLinuxPython
Cover LetterConnect

Prepare for this interview

Elite

AI-generated questions, company research, and talking points tailored to this role


Benefits

Applicants for this position must hold the right to work in the UK. Unfortunately at this time, we are unable to provide visa sponsorship or support for visa applications.Health insuranceDental insuranceFlexible scheduleParental leave

Additional Information

About Graphcore At Graphcore, we're building the future of AI compute. We're a team of semiconductor, software and AI experts, with deep experience in creating the complete AI compute stack - from silicon and software to infrastructure at datacenter scale. As part of the SoftBank Group, backed by significant long-term investment, we are delivering key technology into the fast-growing SoftBank AI ecosystem. To meet the vast and exciting AI opportunity, Graphcore is expanding its teams around the world. We are bringing together the brightest minds to solve the toughest problems, in a place where everyone has the opportunity to make an impact on the company, our products and the future of artificial intelligence. Job Summary As a Software Engineer, you will be responsible for development of new and support existing kernels for linear algebra operations on a new generation of AI hardware. The Team This is an exciting opportunity to join an expanding team at Graphcore. The ML Kernels & Runtime team is responsible for delivering high performance compute library to help customers gain the maximum performance from AI hardware. Responsibilities and Duties Implement kernels for linear algebra and tensor ops (GEMM, batched GEMM, convolutions, reductions, elementwise and fused operations) in C++ Contribute towards performance and correctness - add microbenchmarks, regression tests, numerics validation Profile and optimise across for next generation of AI hardware - threading, cache locality, memory layout, and kernel launch efficiency. Debug issues, resolve bugs and generally improve the quality and functionality of the product Actively engage in and support Agile ways of working within the team Candidate Profile Essential Excellent programming and scripting skills using C++ and Python You thrive on solving challenging problems with creativity, think outside the box , and see the bigger picture beyond the specific software component you are working on. Possess excellent written and oral communication skills, good work ethics, high sense of team-work Love to produce quality work and be a team player Desirable Strong understanding of processor architectures Experience or solid understanding of algorithmic performance - vectorisation, memory hierarchy, threading, lock-free patterns, and profiling on Linux Knowledge of at least one BLAS/DNN stack and able to read/extend kernels Awareness about CPU micro-optimisations and numerical stability/trade-offs across FP32/FP16/BF16


Your Match

How well this role fits your profile.

Company Intel

What employees say

Worked at Graphcore? Share your experience

Interested in this role?

Apply on the company's website.

Cover LetterConnect