Graphcore

Senior Software Engineer - AI Compute Libraries & Performance

Bristol, United KingdomFull timeSeniorPosted 24 days ago
Apply on Graphcore →

Sign into see who you know at Graphcore.

About the job Build the compute kernels that make next-generation AI hardware perform at its limit. As a Senior Software Engineer, you will create high-performance AI compute libraries for Graphcore’s next-generation hardware. Your work will sit close to the hardware, where every design choice matters. You will own kernels for linear algebra and tensor operations, including GEMM, convolutions, reductions and fused operations. You will improve performance, correctness and numerical reliability across critical AI workloads. This role is for engineers who enjoy hard performance problems and care deeply about quality. You will help shape software that enables customers to get more from AI hardware. The team and culture You will join the ML Kernels and Runtime team, an expanding group focused on high-performance compute libraries. The team works close to the hardware and close to the product. Work happens through clear ownership, practical decision-making and fast technical feedback. Engineers profile, test, debug and improve the product with accountability for real outcomes. You will be expected to speak up, share knowledge and help others raise the bar. Mentoring, technical judgement and all-round leadership matter here Responsibilities and Duties  Design and implement kernels for linear algebra and tensor ops (GEMM, batched GEMM, convolutions, reductions, elementwise and fused operations) in C++  Own 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  Mentor colleagues within the team, sharing knowledge and providing guidance where appropriate  Candidate Profile    Essential  Excellent programming and scripting skills using C++ and Python  Understanding of processor architectures and profiling on Linux  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 command of algorithmic performance - vectorisation, memory hierarchy, threading, lock-free patterns  Hands-on with at least one BLAS/DNN stack and able to read/extend kernels  Comfort with CPU micro-optimisations and numerical stability/trade-offs across FP32/FP16/BF16/FP8  Experience integrating native code into PyTorch or similar (custom ops, extensions, dispatch keys)  ABI/API stability and packaging for Linux system (manylinux, wheels)  Benefits · Unlimited annual leave· Up to 5% matched pension· Phantom equity – share in Graphcore’s success· True flexibility in how and where you work· Office sp...

Also hiring in