Meta is seeking a Machine learning SOC Engineer to design, develop, and maintain the host runtime, device drivers, APIs, and libraries to enable seamless interaction between the host runtime environment and various processing units, aiming to streamline Architecture validation and ensure the optimal performance of their AI Accelerator.
Requirements
- 8+ years of experience in development in the area of heterogeneous computing or high-performance computing
- Programming skills in languages such as C++, Rust, and Python
- Experience with runtime development, device driver development, API design, and library implementation
- Knowledge of computer architecture, operating systems, and parallel programming models (e.g., OpenMP, MPI)
- Familiarity with heterogeneous computing platforms, such as NVIDIA CUDA, OpenCL, or AMD ROCm
- Experience with object oriented, trait oriented and functional programming
- Knowledge of machine learning frameworks, such as TensorFlow or PyTorch
Responsibilities
- Design and develop the host runtime environment for heterogeneous computing systems, ensuring efficient communication and data transfer between different processing units
- Develop and implement device drivers, APIs, and libraries to enable seamless interaction between the host runtime environment and various processing units
- Collaborate with hardware engineers to understand the architecture of heterogeneous computing systems and optimize the host runtime environment accordingly
- Work closely with application developers to ensure that the host runtime environment meets their requirements and provides optimal performance for their applications
- Participate in code reviews, and stay up-to-date with industry trends and emerging technologies
- Troubleshoot and debug issues, working closely with hardware engineers and application developers to resolve problems
Other
- Bachelor's degree in Computer Science, Computer Engineering, relevant technical field, or equivalent practical experience
- Problem-solving skills to analyze complex technical issues and develop effective solutions
- Communication and collaboration skills to work effectively with cross-functional teams
- Experience with agile software development methodologies and version control systems, such as Git, Mercurial
- Familiarity with modern build tools like Bazel, Buck, CMake etc