Meta Reality Labs focuses on delivering Meta's vision through Augmented Reality (AR) and Virtual Reality (VR) devices and platforms.
The compute performance and power efficiency requirements of these devices require custom silicon.
Reality Labs 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.We are seeking a Software Engineer to simulate computer vision, ML and other algorithms implemented as accelerators on the SoC.
You will be a part of a team of experts building software prototyping platforms using ISS, IP models, simulators and supporting infrastructure.
Responsibilities:
Embedded Software Engineer - Modeling and Virtual Platforms Responsibilities:
Collaborate with the architect to design and develop high-fidelity and efficient C++ models for first-party IP, ensuring functional completeness, correctness, and optimal performance while meeting technical requirements and specifications
Integrate first-party and vendor models into the Virtual Platform, developing automated workflows to ensure accurate and complete interconnectivity at the SoC level, while minimizing manual intervention and maximizing efficiency
Establish Virtual Platform as early development vehicle to accelerate firmware and software development, testing, and validation on pre-silicon platforms, enabling early system integration, reducing time-to-market, and ensuring high performance and scalability for complex SoCs
Enhance the Virtual Platform to enable SoC and system architecture exploration by integrating power and performance metrics instrumentation, allowing for data-driven design decisions and trade-off analysis to optimize system performance, power consumption, and overall efficiency
Qualification and experience:
Minimum Qualifications:
BS degree in Computer Science or Electrical Engineering or equivalent experience
7+ years of software engineering experience
3+ years experience in designing, developing and integrating high-fidelity C++ models for complex SoC
Proficiency in algorithms, data structures, software design using C++ programming language
Familiarity with multi-threading and parallelization concepts
Experience with debugging and profiling tools, such as GDB or other debuggers
Experience with automating development and validation tasks using Python
Preferred:
Preferred Qualifications:
Experience with Python based application development interfacing with C++
Experience with SystemC, TLM or other simulation frameworks
Experience with virtual platform development tools and frameworks, such as Synopsys Virtualizer, Cadence Virtual Platform, Imperas OVP, or ARM Fast Models
Familiarity with multiple processor architectures, such as ARM, RISC-V, and xtensa
Familiarity with NoC, MMU, address translations, and cache modeling
Familiarity with power and performance metrics instrumentation in pre-silicon platforms