About the job
As a Principal Software Engineer - Performance Tooling on the team, you will have the opportunity to work on multiple levels of the AI software stack, including the fundamental abstractions, programming models, compilers, runtimes, libraries and application programming interfaces (APIs) to enable large scale training and inferencing of models. You will benchmark OpenAI and other LLM models for performance on graphics processing units (GPUs) and Microsoft hardware, debug and optimize performance, monitor performance and enable these models to be deployed in the shortest amount of time and the least amount of hardware possible helping achieve Microsoft Azure's capex goals.
Responsibilities
Work across multiple layers of the AI software stack (abstractions, programming models, compilers, runtimes, libraries, and APIs) to enable large-scale model training and inference.Benchmark OpenAI and other LLMs for performance on Graphic Processing Units (GPUs) and Microsoft hardware.Debug, profile, and optimize performance for training/inference workloads on CPUs (Central Processing Units)/GPUs.Monitor performance regressions and drive continuous improvements to reduce time-to-deploy and hardware footprint.Collaborate across teams of researchers and engineers to deliver scalable, production-ready AI performance improvements.
Qualifications
Minimum
Bachelor's Degree in Computer Science or related technical field AND 6+ years technical engineering experience with coding in languages including, but not limited to, C++, or Python OR equivalent experience.
Preferred
Master's Degree in Computer Science or related technical field AND 12+ years technical engineering experience with coding in languages including, but not limited to, C++, or PythonOR Bachelor's Degree in Computer Science or related technical field AND 15+ years technical engineering experience with coding in languages including, but not limited to, C++, or PythonOR equivalent experience.4+ years’ practical experience working on high performance applications and performance debugging and optimization on CPUs/GPUs.Experience in DNN/LLM inference and experience in one or more DL frameworks such as PyTorch, Tensorflow, or ONNX Runtime and familiarity with CUDA, ROCm, Triton.Technical background and solid foundation in software engineering principles, computer architecture, GPU architecture, hardware neural net acceleration.Experience in end-to-end performance analysis and optimization of state of the art LLMs and HPC applications, including proficiency using GPU profiling tools.Cross-team collaboration skills and the desire to collaborate in a team of researchers and developers.Ability to independently lead projects.