GPU Developer Technology Engineer
Santa Clara Valley (Cupertino), California, United States
Software and Services
Apple’s GPU Software team provides the graphics software foundation across 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 on all of Apple’s hardware. This team recently announced Metal 2 which 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. Building upon an efficient 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 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.
- Excellent programming skills and knowledge of C/C++
- Knowledge of GPU APIs such as Metal, Direct3D, Vulkan & OpenGL • Excellent software design, problem solving and debugging skills
- Knowledge of GPU hardware and software architecture a major plus
The team is now seeking a top-notch, driven, and dedicated engineer to work in our GPU Developer Technologies group. This group is responsible for building the Metal frame debugger, shader profiler, counter profiler, Metal System Trace & other GPU developer tools provided to developers in Xcode and the iOS, tvOS and macOS SDKs. Building these tools requires collaborating with multiple groups including Xcode, iOS, macOS and all aspects of GPU software, and working with innovative technologies such as VR, AR and GPU-accelerated machine learning. Responsibilities: - Implement the core technologies upon which the rest of the tools are built. This includes systems to capture, inspect and modify usage of the GPU through Metal. - Build tools specific functionality within the Metal framework. - Design and implement algorithms to analyze GPU workloads using HW performance counters & Metal frame data. - Work with frameworks accelerated by Metal to provide a foundation for debugging & profiling. - Contribute to specification and design of future debugging & profiling functionality within Apple GPUs.
Education & Experience
Technical BS/MS degree
- Experience developing graphics performance and profiling tools a plus
- Experience with performance optimizations a plus
- Systems engineering experience or low-level hardware experience a plus - Development experience on iOS, tvOS or macOS a plus
- Development experience with Cocoa and Objective C or Swift a plus