About the job
Google's Core Machine Learning (ML) organization is seeking software engineers to join the team known for pioneering work with Tensor Processing Units (TPUs). In this role, you will work on Gemini, as well as industry leading open-source models, to understand model architecture and optimize the performance of these Machine Learning (ML) models on TPU systems for both Just After eXecution (JAX) and PyTorch platforms. You will improve the performance of ever-evolving ML workloads, achieving results. These fundamental efforts will influence next-generation (next-gen) TPU architectures via partnerships, ensuring performance for Gemini and Open-Source Software (OSS) Machine Learning (ML) models.
Responsibilities
Identify and maintain ML training and serving benchmarks that are representative to Google production and broader ML industry.
Achieve performance for customer launches, and in case of third-party/Open-Source Software (3P/OSS) models, for engaged benchmark submissions ML commons, InferenceMAX, etc).
Use the benchmarks to identify performance opportunities and drive out-of-the-box performance toward improving the compiler, runtime, etc in collaboration with those teams.
Engage with Google Product teams and researchers to solve their performance problems (e.g., onboard new ML models and products on Google new TPU hardware, enabling larger models (giant models) to train efficiently on a very large-scale (i.e., thousands of TPUs).
Analyze performance and efficiency metrics to identify bottlenecks, design, and implement solutions at Google fleet-wide scale.
Qualifications
Minimum
Bachelor’s degree or equivalent practical experience.
8 years of experience in software development.
5 years of experience with one or more of the following: speech/audio (e.g., technology duplicating and responding to the human voice), reinforcement learning (e.g., sequential decision making), ML infrastructure, or specialization in another ML field.
5 years of experience with ML design and ML infrastructure (e.g., model deployment, model evaluation, data processing, debugging, fine tuning).
5 years of experience testing, and launching software products, and 3 years of experience with software design and architecture.
Preferred
Master’s degree or PhD in Engineering, Computer Science, or a related technical field.
8 years of experience with data structures and algorithms.
Experience with machine learning, compiler optimization, code generation, and runtime systems for GPU architectures (OpenXLA, MLIR, Triton, etc).
Experience in tailoring algorithms and ML models to exploit ML accelerator architecture strengths and minimize weaknesses.
Experience in low-level GPU programming (CUDA, OpenCL, etc.) and performance tuning techniques.
Understanding of modern Graphics Processing Unit (GPU), TPU or other ML accelerator architectures, memory hierarchies, and performance bottlenecks.