Software Engineer - ML Kernels
Role details
Job location
Tech stack
Job description
As a Software Engineer you will be responsible to safeguard the correctness, reliability, and performance of numerical libraries. You'll design and own end-to-end test strategies across native C++ components and validating low-level kernels.
The Team
This is an exciting opportunity to join an expanding team at Graphcore. Kernel Engineering team is responsible for delivering high performance compute library to help customers gain the maximum performance from AI hardware.
Responsibilities and Duties
- Own existing tests coverage and contribute towards improving it
- Improve correctness of existent microbenchmarks, regression tests, validation techniques
- Mentor colleagues within the team, sharing knowledge and providing guidance where appropriate
- Actively engage in and support Agile ways of working within the team
- Debug issues, resolve bugs and generally improve the quality and functionality of the product
Requirements
- Strong C/C++ and Python coding skills and solid Linux fundamentals
- Experience testing numerical/performance-sensitive code
- Understanding of processor architectures and profiling on Linux
- Hands-on with reproducibility/determinism, tolerance design, and benchmarking
- Possess excellent written and oral communication skills, good work ethics, high sense of team-work
Desirable:
- Experience benchmarking and optimising algorithmic performance, with deep understanding of memory hierarchy (cache/NUMA), multithreading (synchronisation, work partitioning)
- Experience of testing mixed-precision policies (FP32/BF16/FP16/FP8) and stochastic rounding
- Property-based testing with tensor-shape/dtype/layout generators
- Experience testing HPC kernels, ML runtimes/kernels, or similar
- ABI/API stability and packaging for Linux distros, manylinux, wheels
- Hands-on testing for ML frameworks - custom operators/extensions, seeds/determinism, and debugging dispatcher issues.
Benefits & conditions
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.