Job Description
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
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
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.
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
Candidate Profile
Candidate Profile
Essential:
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.
Stop filling. Start chilling.Start chilling.
Get Started FreeNo credit card. Takes 10 seconds.