Apple GPU Compiler Backend Engineer
In this role, you will design, implement, and productize advanced backend compiler optimizations for Apple Silicon GPUs, working across the full lifecycle from early architecture exploration and prototyping through production shipping. You will partner directly with GPU architects to explore and evaluate instruction set and micro-architecture proposals on future hardware — often years before it exists in silicon — using simulators and emulation environments, and your findings will help shape our future hardware. You will also collaborate cross-functionally with hardware and software teams to resolve complex compiler and performance challenges, driving optimizations to completion. The GPU compiler backend you help build ships in every Apple device with a GPU, directly impacting graphics, gaming, and machine learning workloads across the entire product line.
Our GPU Compiler Backend team is responsible for the design, implementation, and productization of the compiler that generates optimized code for Apple Silicon GPUs. We build synergies with hardware and software teams, from early architecture exploration through production hardening and shipping, and serve as the last line of defense for performance and correctness before code reaches customers.
We are seeking a skilled Compiler Backend Engineer to join our team. This role will involve doing hands-on experimental work to define and enable new GPU architecture features, and driving compiler optimization projects to completion, resolving complex, ambiguous production issues escalated by key partners (ProApps, Machine Learning, and Gaming). You will work on an LLVM-based compiler backend that generates optimized GPU binaries for graphics and compute workloads across every Apple device with a GPU.
Minimum Qualifications
- Experience with modern C++ programming
- BS with 3+ years experience, MS, or PhD in computer science or related field
- Strong background in compiler backend technologies (LLVM preferred)
- Knowledge of GPU architectures and how they differ from CPU architectures
- Demonstrated autonomy and ownership resolving ambiguous, open-ended technical challenges
- Excellent written and verbal communication skills
Preferred Qualifications
- Hands-on experience developing LLVM-based compiler backends
- Experience with instruction selection, instruction schedulers, and register allocators for CPU or GPU compiler backends
- Experience bringing up a compiler for a new or unreleased architecture, or working with instruction set definitions, simulators, or emulation environments
- Experience collaborating with hardware architects on ISA or micro-architecture design, including performance modeling and analysis of proposed features
- Experience driving production compiler issues to resolution in a fast-paced environment