Software Engineer, TPU Compilers
ABOUT THE TEAM
Our Inference team brings OpenAI’s most capable research and technology to the world through our products. We empower consumers, enterprises and developers alike to use and access our state-of-the-art AI models, allowing them to do things that they’ve never been able to before. We focus on performant and efficient model inference, as well as accelerating research progression via model inference.
ABOUT THE ROLE
We’re looking for an engineer to lead the optimization of OpenAI’s state-of-the-art frontier models on TPUs. You will own performance across the full forward pass, from model code through kernels to execution on the hardware.
You’ll have broad technical ownership: identifying performance bottlenecks, choosing the most impactful improvements, and carrying them through implementation and validation. We welcome experience gained through either training or inference, with a strong foundation in optimizing real workloads on TPUs.
IN THIS ROLE, YOU WILL:
- Optimize model execution on TPUs, improving performance across the complete forward pass and the interactions between model code, kernels, and hardware.
- Profile workloads, identify bottlenecks, and implement improvements to latency, throughput, and hardware utilization.
- Develop and optimize kernels, using an understanding of the surrounding model to guide implementation choices.
- Explore techniques such as quantization to improve inference efficiency while preserving model quality.
- Build benchmarks and tools to measure performance, validate correctness, and guide optimization work.
- Partner with researchers and engineers to support new model architectures and bring performance improvements into production.
YOU MIGHT THRIVE IN THIS ROLE IF YOU:
- Have practical experience optimizing machine learning workloads on TPUs, through training, inference, or both.
- Understand modern model architectures and how their computation maps onto accelerator hardware.
- Can connect detailed kernel behavior to the performance of a complete model and work across these layers of the stack.
- Bring strong software engineering skills and a systematic approach to profiling, debugging, and validating performance improvements.
- Take ownership of open-ended technical problems and can identify priorities, make design decisions, and deliver working solutions.
- Enjoys collaborating with researchers and engineers, learning unfamiliar parts of a system, and communicating technical tradeoffs.
- Have experience with quantization or attention kernels, which would be especially useful in this role.