Sr. GPU Compiler Backend Engineer
Job Description
Summary
As a member of the Apple Silicon GPU Compiler Backend Performance Team, you’ll implement improvements to the open-source LLVM mid-level optimizer as well as our LLVM-based machine-dependent code generator for the Apple GPU architecture.
Description
The Apple GPU architecture is part of the silicon that powers macOS, iOS, iPadOS, tvOS, and watchOS devices. The work we do has direct impact on the billions of Apple devices shipped to date. We work with many different organizations within Apple – hardware architecture, silicon engineering, device drivers, application frameworks, and the Xcode developer tools. This kind of collaboration and cross-functional reach allows our team to influence the hardware architecture and software stack.
We're part of delivering phenomenal performance, functionality, and robustness for all graphics shaders and compute kernels that run on Apple GPUs.
Our team is focused on improving the end-user experience by maximizing the execution speed of the code generated for Apple GPUs while minimizing energy consumption. We are enabling new GPU architectures, technologies, and applications through innovation in compilers.
We're part of delivering phenomenal performance, functionality, and robustness for all graphics shaders and compute kernels that run on Apple GPUs.
Our team is focused on improving the end-user experience by maximizing the execution speed of the code generated for Apple GPUs while minimizing energy consumption. We are enabling new GPU architectures, technologies, and applications through innovation in compilers.
Minimum Qualifications
- The ability to communicate clearly and effectively, especially with people less technically proficient in the areas you’ve gained expertise in
- An inclination toward collaborative approaches to solving complex problems
- Experience writing C++ code in a modern style
- Hands-on experience developing LLVM-based compiler backends (e.g. instruction selection, instruction scheduling, register allocation)
- Experience with instruction selection with either LLVM’s SelectionDAG or GlobalISel
- Experience implementing SSA-based optimization passes
Preferred Qualifications
- Experience implementing or improving instruction schedulers and register allocators for CPU or GPU compiler backends
- Knowledge of GPU architectures and how they differ from CPU architectures