Apple GPU Compiler Backend Engineer
Description
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.
Description
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.
Responsibilities
Design, implement, and productize backend compiler optimizations for Apple Silicon GPUs
Independently investigate and resolve complex, open-ended performance and correctness issues affecting key partner teams
Partner with architects and micro-architects to co-design instruction set and micro-architecture features: build compiler prototypes, run experiments, and use the results to influence hardware design decisions before they are locked
Bring up and validate compiler support for future GPU architectures on simulators and pre-silicon platform
Model and quantify the performance impact of proposed hardware features on representative graphics, gaming, and ML workloads, and communicate trade-offs to hardware and software stakeholders
Stay current with compiler technology advancements and apply relevant insights to our development process
Mentor and collaborate with fellow engineers across the team
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