GPU Compiler/Driver Engineer

Santa Clara Valley (Cupertino), California, United States
Software and Services


Role Number:200243541
Apple’s GPU Software organization provides developers access to harness the power of the graphics processing unit. Across iPhone, iPad, Apple Watch, Apple TV and Mac product lines, our responsibilities include: tools, frameworks, compilers, display and GPU drivers. Metal’s feature support for VR, external GPU rendering, pre-compiled shaders, fine-grained resource control and multithreading to name a few, allow today’s cutting edge applications to run on a low overhead software stack with near-direct access to hardware. Beyond graphics, Metal provides GPU accelerated machine learning, and enhanced developer tools to facilitate debugging, optimizing, and deploying applications for existing and new Apple devices.

Key Qualifications

  • Excellent programming skills and knowledge of C/C++
  • Excellent problem solving and debugging skills
  • Experience with software performance analysis, optimizations, and low-level programming
  • Experience with a GPU programming Language (e.g. MSL, HLSL, GLSL, CUDA or OpenCL)
  • Strong GPU or CPU architecture fundamentals
  • Strong communication and teamwork skills


This team is responsible for developing GPU drivers and compilers for Apple silicon devices, while collaborating closely with hardware teams to establish the future direction of Apple graphics and Metal. An ideal candidate has previous GPU driver or GPU compiler experience and is willing to learn about the others. Responsibilities include: - Define GPU compiler software architecture and interfaces - Implement GPU compiler and driver features - Integrate the GPU compiler and runtime driver - Translate generic shader IR to machine specific IR - Analyze and debug code generation issues - Validate GPU features for new SoCs during production bring-up. - Analyze and influence future GPU architectures

Education & Experience

Technical BS, MS or PhD degree or equivalent years of experience

Additional Requirements