ML Application Simulator Software Engineer
About Graphcore
Graphcore is one of the world’s leading innovators in Artificial Intelligence compute.
It is developing hardware, software and systems infrastructure that will unlock the next generation of AI breakthroughs and power the widespread adoption of AI solutions across every industry.
As part of the SoftBank Group, Graphcore is a member of an elite family of companies responsible for some of the world’s most transformative technologies. Together, they share a bold vision: to enable Artificial Super Intelligence and ensure its benefits are accessible to everyone.
Graphcore’s teams are drawn from diverse backgrounds and bring a broad range of skills and perspectives. A melting pot of AI research specialists, silicon designers, software engineers and systems architects, Graphcore enjoys a culture of continuous learning and constant innovation.
Job Summary
We are looking for a Senior Software Engineer to design, develop, and maintain an application-level ML simulator for a new product within our ML Software Performance Analysis team. This simulator will model end-to-end ML workloads, provide actionable insights into system-level performance, and guide architectural and software optimizations. The role involves close collaboration with performance engineers, ML researchers, and the silicon architecture team to ensure the simulator evolves alongside real workloads and supports key decision-making across the organisation.
The Team
The ML Software Performance Analysis team is a part of the wider ML Software Engineering organisation, responsible for delivering optimised, proprietary machine learning solutions. Our team consists of experienced engineers and domain experts focused on rigorous performance benchmarking, in-depth analysis, and cross-layer optimization from single chip to large-scale, distributed systems.
Responsibilities and Duties
- Design, implement, and evolve an ML application-level simulator that models workload behaviours, execution flows, and system resource usage.
- Partner with performance analysts to translate benchmarking requirements and real-world observations into accurate simulator features.
- Develop scalable, maintainable, and well-tested software components to support new hardware and software capabilities.
- Validate simulator outputs against real system measurements and iterate to improve fidelity and predictive accuracy.
- Collaborate across ML engineering, system architecture, and product teams to ensure simulation insights feed into product design and optimisation.
Candidate Profile
Essential:
- A passion for your work and the ability to thrive in uncertain and complex environments.
- Strong C++ development skills, with experience in building performance-sensitive or large-scale simulation tools.
- Strong Python skills and knowledge of ML frameworks (such as PyTorch) and the typical operator graphs produced during compilation.
- Deep understanding of computer architecture concepts, memory hierarchy, caching behaviour, and heterogeneous compute systems.
- Familiarity with ML accelerator architectures, especially concepts such as tensor cores, compute tiles, and high-bandwidth data movement.
Desirable
- Knowledge of ML model architectures including transformers, attention techniques and mixture of experts. Familiarity with operation in both training and inference.
- Hands-on experience designing or using simulators (functional or performance models), preferably for hardware or distributed ML systems.
- Strong grasp of parallelism models (threading, vectorization, task scheduling) and how they map to hardware. Ideally experience of how parallelism is applied to ML model architectures.
- Proficiency with profiling, instrumentation, and debugging complex multi-layered systems.
Benefits
In addition to a competitive salary, Graphcore offers annual leave policy, medical and dental health plans, a gym card, and employee pension (matched up to 4%). We review our benefits on a yearly basis to ensure we offer a valuable and rewarding benefits programme to our employees. 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.
Create a Job Alert
Interested in building your career at Graphcore? Get future opportunities sent straight to your email.
Apply for this job
*
indicates a required field