Machine Learning Compiler Engineer - Apple Neural Engine (Front-End)
Apple
Job Summary
Apple is seeking a Machine Learning Compiler Engineer (Front-End) for the Apple Neural Engine (ANE) team. This role involves developing high-performance, low-power AI solutions for Apple products like Vision Pro, iPhone, iPad, and Mac. The engineer will implement and extend MLIR dialects for ANE operations, build conversion and lowering passes from higher-level dialects, create validation passes for ANE placement, and develop tools for debugging and performance optimization. This is a dynamic opportunity to contribute to groundbreaking AI technologies in a collaborative environment.
Must Have
- Implement or extend MLIR dialects for ANE operations, focusing on ML types and operators
- Build conversion and lowering passes from higher-level dialects like Metal Performance Shaders graph or CoreML
- Develop canonicalization passes to make higher-level dialects ANE-friendly
- Build validation passes to support placement on ANE, including computational graph validation
- Create passes and tools to aid debugging of functionality and performance
- Improve compiler efficiency and model asset size by reducing constant duplication
- Develop tools for test coverage, error diagnostics, and visualization in the MLIR pipeline
- Collaborate with higher layer dialects for new feature integration
- Align with compiler backend and runtime engineers for lower-level IRs and code
- Ensure alignment with hardware constraints and performance goals
- Bachelor's degree in Computer Science, Computer Engineering, or a related field with 5 years of relevant experience
- Interest/background in MLIR framework & tooling
- Interest/background in compiler frontend & IR design
- Solid debugging and code navigation of complex compiler pipelines
- Strong experience in C++ or similar object-oriented programming language
Good to Have
- Master's/Ph.D. degree in Computer Science, Computer Engineering, or a related field
- 10 years of relevant experience
- Demonstrated ability to ship high-quality production software
- Experience optimizing compilers for distributed, parallel, or heterogeneous execution environments
- Solid understanding of shared memory, synchronization, and multi-threading techniques
- Expertise in neural network inference on specialized SoCs or GPUs
- Knowledge of deep learning frameworks and tools
- Familiarity with Just-in-Time (JIT) compilation and dynamic optimization techniques
- Proven track record in mentoring and coaching engineers
- Interest in taking on increasing responsibilities and contributing to team development
- Strong collaboration and communication skills across teams
Perks & Benefits
- Comprehensive medical and dental coverage
- Retirement benefits
- Discounted products and free services
- Reimbursement for certain educational expenses related to career advancement
- Opportunity to become an Apple shareholder through employee stock programs
- Eligibility for discretionary restricted stock unit awards
- Option to purchase Apple stock at a discount through Employee Stock Purchase Plan
- Potential eligibility for discretionary bonuses or commission payments
- Potential eligibility for relocation
Job Description
At Apple, we're on the cutting edge of delivering transformative experiences through Artificial Intelligence. If you're passionate about pushing the boundaries of AI and hardware optimization, we want you to join our team! As a Machine Learning Compiler Engineer (Front-End) on our Apple Neural Engine (ANE) team, you'll work to bring high-performance, low-power AI solutions to life on iconic Apple products like the Vision Pro, iPhone, iPad, Mac, and more. This is a dynamic opportunity to work with us in a creative, collaborative environment while developing groundbreaking technologies that will shape the future of computing! Are you ready to help us deliver the next groundbreaking Apple products?
As a Machine Learning Compiler Engineer (Front-End), you will be empowered to:
- Implement or extend MLIR dialects tailored to capture semantics of ANE operations with a focus on ML types and operators
- Build conversion and lowering passes from higher-level dialects like Metal Performance Shaders graph or CoreML, including canonicalization passes to make higher-level dialects more ANE-friendly
- Build validation passes to support placement on ANE, including validation of computational graphs for atomic placement of groups of operations
- Build passes and tools to aid debugging of functionality (ex: numerical accuracy) and performance (ex: fusion passes)
- Improve compiler efficiency and model asset size with infrastructure and passes to reduce constant duplication by tracking mutation of weight tensors
- Develop tools for test coverage, error diagnostics, and visualization in the MLIR pipeline
- Collaborate with higher layer dialects for integration of new features and with compiler backend and runtime engineers to align with lower-level IRs and code to ensure alignment with HW constraints and performance goals
Required Qualifications
- Bachelor's degree in Computer Science, Computer Engineering, or a related field with 5 years of relevant experience
- Interest/background in MLIR framework & tooling
- Interest/background in compiler frontend & IR design, including canonicalization and graph optimization techniques
- Solid debugging and code navigation of complex compiler pipelines
- Strong experience in C++ or similar object-oriented programming language
Preferred Qualifications
- Master's/Ph.D. degree in Computer Science, Computer Engineering, or a related field
- 10 years of relevant experience
- Demonstrated ability to ship high-quality production software
- Experience optimizing compilers for distributed, parallel, or heterogeneous execution environments, with a solid understanding of shared memory, synchronization, and multi-threading techniques
- Expertise in neural network inference on specialized SoCs or GPUs, and knowledge of deep learning frameworks and tools
- Familiarity with Just-in-Time (JIT) compilation and dynamic optimization techniques for real-time code execution
- Proven track record in mentoring and coaching engineers, with an interest in taking on increasing responsibilities and contributing to the team's development
- Strong collaboration and communication skills across teams (ex: across compiler layers and runtime framework teams)
At Apple, base pay is one part of our total compensation package and is determined within a range. This provides the opportunity to progress as you grow and develop within a role. The base pay range for this role is between $181,100 and $318,400, and your base pay will depend on your skills, qualifications, experience, and location.
Apple employees also have the opportunity to become an Apple shareholder through participation in Apple’s discretionary employee stock programs. Apple employees are eligible for discretionary restricted stock unit awards, and can purchase Apple stock at a discount if voluntarily participating in Apple’s Employee Stock Purchase Plan. You’ll also receive benefits including: Comprehensive medical and dental coverage, retirement benefits, a range of discounted products and free services, and for formal education related to advancing your career at Apple, reimbursement for certain educational expenses — including tuition. Additionally, this role might be eligible for discretionary bonuses or commission payments as well as relocation. Learn more about Apple Benefits.
Note: Apple benefit, compensation and employee stock programs are subject to eligibility requirements and other terms of the applicable plan or program.
Apple is an equal opportunity employer that is committed to inclusion and diversity. We seek to promote equal opportunity for all applicants without regard to race, color, religion, sex, sexual orientation, gender identity, national origin, disability, Veteran status, or other legally protected characteristics. Learn more about your EEO rights as an applicant.
Apple accepts applications to this posting on an ongoing basis.