About this role
At Apple, our Platform Architecture group is responsible for connecting our hardware and software into one unified system. You’ll collaborate with engineers across Apple to design how our technologies work in unison, drive development of our renowned system-on-a-chip architecture and develop forward-looking prototype systems. Our team works at the intersection of ML applications and Apple silicon architecture. We collaborate with SoC/IP architecture, system, software, and algorithm teams to develop integrated, highly optimized solutions for machine learning applications.
In this role, you will explore different ways of mapping ML workloads to Apple silicon and develop performance models/simulations. Your work will inform and validate architecture decisions. You will gain insights on how to make workloads run efficiently on our SoCs and communicate what we learn to software and algorithm teams.
Create optimized implementations of ML workloads on Apple silicon including Neural Engine, GPU, and CPU.
Collaborate with IP and SoC architecture teams to develop performance models and simulations of future hardware.
Conduct performance studies to inform and validate architecture decisions.
Collaborate with system teams to create high-level performance models of emerging ML techniques and analyze system architecture trade-offs.
Minimum Qualifications
Bachelor’s degree
Programming experience in C/C++ and/or Python
Experience in computer architecture
Experience with at least one hardware IP: ML HW accelerators or processing units such as GPU, image/video, CPUs, or similar
Preferred Qualifications
MS or PhD in EE/CE/CS or related field and 3+ years of relevant experience
Experience with ML frameworks (e.g. PyTorch) and efficient implementations of machine learning algorithms
Experience in optimizing and deploying ML models and/or runtime frameworks in production inference/training environments
Experience designing experiments to evaluate ML model optimization techniques
Experience in creating SoC or IP performance models/simulations
Verbal and written communication skills for collaborating with partner teams
Ability to prototype algorithms on CPU/GPU/Neural Engine, analyze performance metrics, and create high-level complexity models
Understanding of compiler frameworks/technologies