GPU Compiler / Driver Engineer

    • Cupertino, CA


Posted: Sep 14, 2020

Role Number: 200165530

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

  • Experience with a GPU programming language (e.g. MSL, HLSL, GLSL, CUDA or OpenCL)
  • Experience with a GPU programming API (e.g. Metal, DirectX, Vulkan, CUDA or OpenGL/CL)
  • Experience with software performance analysis, optimizations, and low-level programming
  • Excellent programming skills and knowledge of C/C++
  • Excellent problem solving and debugging skills
  • Knowledge of GPU and CPU architectures
  • Knowledge of GPU compilation workflows
  • 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 other. 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

Additional Requirements

  • Experience with LLVM compiler infrastructure
  • Experience with driver or operating system development
  • Experience with parallel and asynchronous processing
  • Experience with hardware bring-ups

Back to top