Location: Open to multiple FB locations, MPK, NY, Seattle, Austin, Los Angeles, San Francisco-location in U.S
Software Engineer
Job description and responsibilities:
You will be working in a small team of computer architects looking at existing and future next-generation architectures for machine learning. The team is fast-paced in nature and there is a lot of scope for learning and making major impaact. The team is looking for a self-motivated developer with C/C++ and Python background who has prior experience with machine learning. The primary responsibilities of this role are as follows:
Development of distributed-memory parallel implementations for operators from the upcoming machine learning networks
Running these operators on the developed models and analyze performance
Explore hardware architectures for potential performance bottlenecks to improve hardware performance in the developed architecture models
Development of high level/roofline architectural models
Required qualifications:
* Proficiency in C/C++ and Python
* Previous experience with one of the below areas
* High Performance computing
* parallel programming or distributed programming (e.g., writing algorithms on GPUs, multicore CPUs, Vector cores or SIMD architectures)
* Optimization for given HW platform (CPU or GPU)
Preferred qualifications:
* algorithm design/development background
* Experience with machine learning frameworks such as Caffe2 and Pytorch is a plus
* Understanding of general computer architecture is a plus
* Familiarity with Intel Vector API is a plus
* Familiarity with ARM Neon or SVE API is a plus
* Familiarity with high performance IO to block device is a plus
* Team player with excellent communication skills and desire to tackle challenging problems