Deepmind

Software Engineer, Compilers, Platform

Job Description

Posted on: 
January 14, 2023

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.

Responsibilities

  • 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

Job Requirements

  • 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.

Apply now

More job openings