iOS GPU Driver Engineer - Performance
Santa Clara Valley (Cupertino) , California , United States
Software and Services
Posted: Jun 8, 2020
Role Number: 200174315
Apple's GPU Software team provides the graphics software foundation for all of Apple's innovative products, including iPhone, iPad, Apple TV, Mac, and Watch. Our responsibilities encompass the frameworks, developer tools, and hardware drivers for the GPU and Display devices for all of Apple's hardware. Metal provides near-direct access to the graphics processing unit (GPU), enabling you to maximize the graphics and compute potential of apps on iOS, macOS, and tvOS. Metal provides a low-overhead architecture with precompiled shaders, fine-grained resource control, and multithreading support. Metal 2 further boosts performance by enabling the GPU to take more control of the rendering pipeline. Moving beyond just graphics, Metal 2 provides deep support for GPU-accelerated machine learning and offers enhanced developer tools that make it even easier to debug, optimize, and deploy Metal apps. On Mac, Metal 2 also adds support for virtual reality (VR) rendering and external GPUs, and provides new APIs and optimizations to help developers embrace these emerging technologies within their apps. And now Metal 3 provides enhanced support for GPU-driven pipelines, ray tracing, and pro applications. Metal 3 also significantly improves the developer experience with the Metal Memory Debugger and Simulator support. We are looking for an engineer to join the GPU Driver Performance Team, which is responsible for developing technology which helps make iOS GPUs blazingly fast. The ideal candidate will have a passion for squeezing the best possible performance out of the GPU, and won't be afraid to get down into the low level details of the GPU architecture in order to do it.
- Excellent programming skills and knowledge of C/C++
- In-depth knowledge of CPU or GPU architectures
- Experience with graphics or compute APIs
- Ability to deep dive into debugging GPU performance issues and provide optimizations
- Excellent software design and problem solving skills
- Excellent system debugging skills
The iOS GPU Driver Performance Team is responsible for ensuring great GPU performance across our embedded GPU families. The team's responsibilities include: Defining and developing the driver software architecture for GPU introspection capabilities (including performance counters, shader profiling, tracing, etc...) to enable upper level software and tools to measure and tune GPU workloads. This includes working at the kernel and firmware level, and up the stack to the user API level. Working with 1st and 3rd party developers on tuning GPU workloads, algorithms, and shaders to achieve the best possible performance on iOS platforms. Helping to drive and refine both software and hardware architecture to maximize GPU performance and software introspection capabilities. Working with internal hardware teams to ensure that our hardware roadmap continues to deliver best in class mobile GPU performance for both graphics and compute workloads.
Education & Experience
BS or MS Degree.
- Previous experience with CPU or GPU performance analysis and tuning a plus
- Experience with developing device drivers for high performance hardware a plus
- Previous game development experience on PC/console a plus