Vectorizing Compiler Performance Engineer
Cambridge, Massachusetts, United States
Imagine what you could do here! At Apple, new ideas have a way of becoming extraordinary products, services, and customer experiences very quickly. Bring passion and dedication to your job and there's no telling what you could accomplish! Join us to help deliver the next groundbreaking Apple product. In this role, you will be a member of the CPU performance team, working within the hardware technology group to shape the architecture of Apple's future devices. Our team initiates and fosters deep collaboration between the CPU architecture, Compiler, design, and other software teams, to deliver world-class CPUs incorporating high performance vector accelerators. The end goal is to provide the best customer experience on the planet by enabling all the CPUs, GPUs, Machine Learning, Camera, Display, and Connectivity components on our chips to work seamlessly together.
- Strong knowledge of vectorizing compiler concepts and compiler development
- Experience in compiler optimizations and implementing them in LLVM or GCC
- Expertise in architecture and micro-architecture concepts for CPUs and vector machines
- Experience with performance modeling, running experiments and model development
- Ability to identify and debug performance bottlenecks in software using profiling tools and working with cross functional teams to resolve issues
- Proficient in C/C++ for developing applications and scripting languages such as Perl or Python
- Knowledge in machine learning a plus
The CPU Platform Architecture team is responsible for setting direction for Apple CPUs and is pushing the boundaries of CPU and Accelerator performance to enhance the user experience on Apple products. We’re looking for highly motivated and innovative candidates to solve some of the most difficult problems in the industry. This Compiler Performance Engineer role is to help with the development of a vectorizing compiler, targeted optimizations, modeling new features and running/debugging performance experiments using hardware performance models. The role requires strong knowledge of CPU or vector accelerator architectures such as ARM SVE or x86 AVX. The successful candidate will be working cross functionally with Compiler and CPU & Accelerator hardware teams. The role requires you to present analysis/findings to CPU architecture and compiler teams, provide recommendations for future Apple CPUs in iPhone, iPad and Mac systems, as well as for the compilers used to generate code for these products.
Education & Experience
BS with 3 years experience, MS or PhD in Computer Science or Computer Engineering with focus on Vectorizing Compilers and Computer Architecture