Job Description
Facebook's mission is to give people the power to build community and bring the world closer together. Through our family of apps and services, we're building a different kind of company that connects billions of people around the world, gives them ways to share what matters most to them, and helps bring people closer together. Whether we're creating new products or helping a small business expand its reach, people at Facebook are builders at heart. Our global teams are constantly iterating, solving problems, and working together to empower people around the world to build community and connect in meaningful ways. Together, we can help people build stronger communities - we're just getting started.
Facebook Reality Labs (FRL) is the world leader in the design of virtual and augmented reality systems. Come work alongside expert engineers and research scientists to create the technology that makes VR and AR pervasive and universal. Join the adventure of a lifetime as we make science fiction real and change the world.We are seeking a Manager to support the development of the compiler tool-chain for state-of-the-art deep learning hardware components optimized for AR/VR systems. The successful candidate will be part of our efforts to architect, design and implement a clean slate compiler for this activity, and will be part of a team that includes compiler, machine learning algorithms and software, firmware and ASIC experts. The ideal candidate will lead a team to do a full stack development effort compiling PyTorch models down to binaries for hardware accelerator blocks.
Responsibilities
- Manage a team of domain experts that builds the compiler toolchain for custom ML accelerators. Implement and/or enhance code generation targeting machine learning accelerators.
- Create and optimize compiler backend to leverage the full hardware potentials. Take a principle approach for targeting new architectures and efficiently optimizing them such as Tensor Expression, Polyhedral approaches.
- Analyze and design effective compiler passes and optimizations. Evaluate code performance, debug, diagnose and drive resolution of compiler and cross-disciplinary system issues.
- Work with algorithm research teams to map CNN graphs to hardware implementations, model data-flows, create cost-benefit analysis and estimate silicon power and performance.
- Contribute to the development of machine-learning libraries, intermediate representations, export formats and analysis tools.
- Interface with other compiler-focused teams to evaluate and incorporate their innovations and vice versa.
- Manage engineers and help them develop their careers, assigning them to projects tailored to their skill levels, long-term skill development, personalities, and work styles.
- Communicate and collaborate effectively with cross-functional hardware and software engineering teams.
- Champion engineering and operational excellence, establishing metrics and process for regular assessment and improvement.
- Set clear expectations and create a positive work environment based on accountability, in collaboration with the engineering and management teams.
- Operate strategically and tactically. Develop the vision and strategy to help set direction for the team, while staying on top of the day-to-day software development.
- Work closely with dedicated recruiting staff to expand the team, including sourcing candidates, interviewing candidates, participating in conferences/events, and on-boarding new employees.
Minimum Qualification
- Experience operating in a fast-moving environment where the workloads evolve at a rapid pace.
- Experience crossing multi-disciplinary boundaries to drive optimal system solutions.
- Experience managing a team of compiler engineers.
- Demonstrated experience recruiting, building, structuring, leading technical organizations, including performance management.
- Understand and analyze the interplay of hardware and software architectures on future algorithms, programming models and applications.
- Experience developing innovative architectures to extend the state of the art in DL performance and efficiency.
- Experience with Hardware and Software Co-design.
- Basic understanding of Compilers, LLVM or machine learning compilers.
Preferred Qualification
- Experience in deep learning algorithms and techniques, e.g., convolutional neural networks, recurrent networks, etc.
- Experience of developing in a mainstream machine-learning framework, e.g. PyTorch, Tensorflow or Caffe.
- Experience working on and contributing to an active compiler toolchain codebase, such as LLVM, GCC, MSVC, Glow.
- Experience with machine-code generation/compiler back-ends.
Facebook is proud to be an Equal Opportunity and Affirmative Action employer. We do not discriminate based upon race, religion, color, national origin, sex (including pregnancy, childbirth, or related medical conditions), sexual orientation, gender, gender identity, gender expression, transgender status, sexual stereotypes, age, status as a protected veteran, status as an individual with a disability, or other applicable legally protected characteristics. We also consider qualified applicants with criminal histories, consistent with applicable federal, state and local law. Facebook is committed to providing reasonable accommodations for candidates with disabilities in our recruiting process. If you need any assistance or accommodations due to a disability, please let us know at accommodations-ext@fb.com.