Software Engineer, Computer Vision Algorithm Modeling
Facebook AR/VR focuses on delivering Facebook's vision through Augmented Reality (AR) and Virtual Reality (VR). The compute performance and power efficiency requirements of Virtual and Augmented Reality require custom silicon. Facebook Silicon team is driving the state of the art forward with breakthrough work in computer vision, machine learning, mixed reality, graphics, displays, sensors, and new ways to map the human body. Our chips will enable AR and VR devices where our real and virtual world will mix and match throughout the day. We believe the only way to achieve our goals is to look at the entire stack, from transistor, through architecture, to firmware, and algorithms.
We are seeking a Software Engineer to support system-level modeling of computer vision and other algorithms used in dedicated hardware accelerators (HWA) used inside low-power SoC. The successful candidate will be part of a team that includes algorithm, software, firmware and hardware logic design and verification experts. The ideal candidate will understand algorithms and firmware development process for custom HWA.
This is a full-time position based in either our Redmond, WA or Menlo Park, CA offices.
- Work with IP Architect to delineate and develop software models for algorithms that will get implemented in hardware
- Support use of C/C++ models for architectural modeling and various hardware/software trade-off analysis
- Support integrating the models into Virtual Platform by SystemC wrappers for early firmware development
- Feedback hardware understanding and improvements to algorithm designers
- Support multiple phases of SoC development â€" including algorithm refinement, functional simulation, co-design of hardware and support firmware development
- B.S. degree with 3+ years of hands-on low-level programming experience including bit-level manipulation of data
- Knowledge of how hardware works including block-level interfaces and hardware control registers
- Knowledge of how floating and fixed point number systems work
- Knowledge in algorithms, data structures, software design and programming experience in C/C++ for development, debugging, testing and performance analysis
- Experience in writing, manipulating and maintaining scripts â€" Python or similar (Perl, Bash/AWK, Tcl)
- B.S. degree in Computer Science or Electrical Engineering
- 5+ years of experience with algorithm implementations in C/C++
- Knowledge of audio, image, video and computer vision processing including file formats, meta data and related techniques for digital signal processing
- Knowledge of deep learning techniques such as CNN
- Experience with embedded MCU, DSP and GPU architectures
- Experience in reference model development for highly customized SoC hardware accelerators
- Experience with EDA design tools and instruction set simulators
Back to top