About the Role
We’re looking for a Software Engineer who is interested in helping us leverage hardware accelerators to support AGI research. No machine learning knowledge is required for this role!
We’re a dedicated scientific community, committed to “solving intelligence” and ensuring our technology is used for widespread public benefit. We’ve built a supportive and inclusive environment where collaboration is encouraged and learning is shared freely. We don’t set limits based on what others think is possible or impossible. We drive ourselves and inspire each other to push boundaries and achieve ambitious goals.
We constantly iterate on our workplace experience with the goal of ensuring it encourages a balanced life. From excellent office facilities through to extensive manager support, we strive to support our people and their needs as optimally as possible.
Our list of benefits is extensive, and we’re happy to discuss this further throughout the interview process.
The goal of the Platform team is to make all of DeepMind fast and effective through products, tools, libraries, frameworks, services, and to co-deliver key technical innovations to unlock AGI. We are a core group of ~70 SWEs and other technical roles who work with other teams across the company to provide and advance our pioneering technological infrastructure. We prioritise projects with broad & strategic impact across DeepMind, while also providing focused capabilities to accelerate key DeepMind efforts.Many recent breakthroughs in AI research were made possible by the vast amounts of computational power from new hardware accelerators such as GPUs and TPUs. As a Compiler Engineer you can help us provide the best hardware platform for AI research and make it easy to use efficiently for our researchers.
DeepMind researchers rely on powerful hardware accelerators to run their experiments, train their models, and uncover new breakthroughs. Accelerators are complex systems with ad-hoc software layers & APIs to program them. They can be hard to use optimally.
Your job is to work on compilers for improving the utilisation of our hardware accelerators and to enable further scaling, directly impacting research capabilities while improving efficiency and energy consumption. You will analyse performance issues across the whole software stack, from JAX or TensorFlow to MLIR and XLA, down to low-level assembly, and focus on improving and adding compiler transformations and optimisations, in close cooperation with other Google compiler teams.
Your responsibilities will include:
Performance analysis of ML workloads, correlating functional errors or system inefficiencies with compiler bugs or missed optimisation opportunities
Extensions of existing compiler passes, or design and implementation of new ones, according to recommendations of performance analyses
Coordination and cooperation with the wider compiler community in Alphabet and open source, depending on the specific compiler stack
Active participation in the definition of next-generation accelerators
In order to set you up for success as a Software Engineer at DeepMind, we look for the following skills and experience:
SWE interpersonal skills, such as discussing technical ideas effectively with colleagues, e.g. through whiteboard, design docs, presentations, etc. in a highly cooperative environment
Compilers development experience, preferably aiming at improving the performance of CPUs, DSPs or ML accelerators
Programming hardware accelerators, achieving high levels of throughput and efficiency with your implementations.
Profiling software using appropriate tools and techniques to find performance issues & bottlenecks.
Leveraging compiler infrastructure (such as LLVM, MLIR, XLA) to improve performance on hardware accelerators
You have an interest in our mission and AI / Machine Learning.
In addition, the following would be an advantage:
Bachelor’s, Master or Ph.D. degree in Computer Science, a related technical field, or equivalent practical experience.
Familiarity with large system software design and development.
Experience with programming in modern C++.
Experience using GPUs or other hardware accelerators.
Experience with compilers such as LLVM, MLIR, XLA.
Familiarity with programming & debugging with CUDA and/or OpenCL.
Familiarity with parallel programming and high-performance computing (OpenMP, Intel TBB, etc.).
Familiarity with Python.
Interest in AI and basic knowledge of AI algorithms.
Competitive salary applies