AI COMPILER ENGINEER
Description
We seek candidates for positions in our AI compiler in code generation, network-level optimization, and operator implementation. Applicants are not required to be proficient in more than one area and are not expected to be able to take on all the responsibilities below.
Responsibilities
- Make generic implementations of ML operators suitable for a library
- Implement the generation of codes of ML operators optimized for a set of size constraints and data alignments in assembly code
- Design and implement communications and synchronizations in a massively parallel chip
- Determine the best parallelization approach for an operator given a problem size and the characteristics of the target architecture
- Implement codes to detect at the IR level combinations of operators that can be optimized and implement the corresponding IR transformations
- Design and implement strategies to manage the movement of data through the cache hierarchy
- Design and implement operator scheduling algorithms
- Analyze the performance of ML networks at operator and cycle levels
- Work actively on architectural requirements for next-generation ML chips
- Work jointly with other groups, including data science, architecture, verification, and RTL teams, on testing and optimizing the performance of ML networks
Minimum Qualifications
- 2+ years of experience on either ML compilers, general-purpose compilers, high-performance library implementations, high-performance parallel runtimes, or the parallelization of codes
- Knowledge of software design and engineering, including object-oriented programming and design patterns
- Knowledge of testing methodologies and continuous integration
- Ability to write assembly code, preferably for RISC-V and the RISC-V Vector Extension
- Experience in writing object-oriented C++ codes
- Knowledge of development tools, including extending cmake files, using git, and working with CI/CD workflows
- BS in Computer Science or a related technical field
- Business fluent English
Desired Qualifications
- Strong knowledge of computer architecture and parallelization
- Experience in the implementation of ML operators
- Experience in compiler optimizations, IR manipulations, and lowering into instructions
- Knowledge about vectorization