Software Engineer, Rendering and GPU Compute
Santa Clara Valley (Cupertino), California, United States
Apple’s GPU Software team provides the graphics software foundation across all of Apple's innovative products, including iPhone, iPad, Apple TV, Mac, and Apple Watch. Our responsibilities encompass the frameworks, developer tools, and device drivers for the GPU and Display on Apple’s hardware. We announced Metal 2 last year which provides near-direct access to the graphics processing unit (GPU), enabling you to improve the graphics and compute potential of apps on iOS, macOS, watchOS, and tvOS. Building upon an efficient low-overhead architecture with pre-compiled 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 improved 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 adopt these new technologies within their apps.
- Excellent programming skills and knowledge of C++
- Extensive experience with at least one of the graphics APIs (Metal, OpenGL, Direct3D, Console, etc.)
- Knowledge of at least one shader programming language (Metal Shading Language, HLSL, GLSL)
- Excellent 3D math skills (linear algebra)
- Understanding of GPU HW pipeline and experience with GPU performance analysis and optimizations
We are looking for talented and motivated graphics programmer to work on implementing and optimizing modern graphics algorithms working closely with GPU driver and framework teams to get best possible performance on macOS hardware.
Education & Experience
Technical BS/MS degree or equivalent experience
- Interest in latest rendering research
- Experience with implementing physically based renderers or ray tracers
- Experience with 3D Content creation tools (Maya, 3DS Max. Cinema 4D etc.) is a plus
- Experience in the video games industry or personal graphics demos/games are plus
- Deep understanding of system architecture, interest in low-level GPU and CPU programming and performance tuning