Performance Verification Engineer

Employer

Job Description

Facebook's mission is to give people the power to build community and bring the world closer together. Through our family of apps and services, we're building a different kind of company that connects billions of people around the world, gives them ways to share what matters most to them, and helps bring people closer together. Whether we're creating new products or helping a small business expand its reach, people at Facebook are builders at heart. Our global teams are constantly iterating, solving problems, and working together to empower people around the world to build community and connect in meaningful ways. Together, we can help people build stronger communities - we're just getting started.

Facebook Reality Labs focuses on delivering Facebook's vision through Virtual Reality (VR) and Augmented Reality (AR). 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 & 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.As part of the AR SoC team, the candidate will help lead pre and post silicon performance verification - designing and implementing the testbench and testcase collaterals which will run end-to-end usecases, provide performance and power instrumentation, quantify latency and bandwidth metrics, and correlate measurements with model estimates. The ideal candidate for this role will have an excellent grasp on SoC micro-architecture, have hands-on experience in modifying and running emulation/FPGA, and software modeling platforms, write new testbenches, stitch together testcases to form end-to-end usecases, and add instrumentation to quantify performance and power. Successful candidates are motivated self-starters who are comfortable operating in a cross-functional environment, and have a hands-on approach to problem-solving.

Responsibilities
  • Create, modify, and debug testbench code written in C.
  • Create new end-to-end testcases, targeting both bare-metal and firmware environments.
  • Add performance counter instrumentation code measuring performance counters from multiple IPs.
  • Run tests on emulation, FPGA, and software modeling platforms.
  • Collect performance measurements and analyze results.
  • Correlate performance measurements against expectations, and root-cause differences against expectations.
  • Identify and evaluate firmware/software optimization opportunities.
  • Work across disciplines, collaborate with vendors, brainstorm big ideas, build new methodologies, juggle/coordinate multiple initiatives.
Minimum Qualification
  • Hands-on experience with emulation and FPGA platforms.
  • Experience creating and modifying C testbenches.
  • Experience modifying/understanding bare-metal testcases.
  • Experience adding C code to profile and dump performance monitors.
  • Hands-on experience with software debuggers (e.g., gdb, Lauderbach) and FSDB viewers.
  • Experience with programming (C/C++ or Python), assembly (e.g., Arm, RISCV, x86), scripting, and automation.
  • Understanding of AMBA protocol signals.
  • MSEE/CS or equivalent experience.
Preferred Qualification
  • Experience with Zebu emulation platforms.
  • Experience with bare-metal programming, micro-benchmarking, performance instrumentation, Simpoints, etc.
  • Experience modifying and debugging low level device drivers.
  • Hands-on experience with performance profilers.
  • Experience with RTL design verification, Post-silicon bring-up and validation.
  • Experience with implementing and debugging low level device drivers.
  • Familiarity with software profiling and optimization using tools like perf, VTune, DS5-Streamline, etc.
  • Familiarity with hardware/software co-design.
  • 5+ years of C or C++/Object-oriented programming experience.
  • 3+ years of experience in pre-silicon performance correlation, measurement, and tuning.
  • 3+ years of experience in post-silicon performance correlation, measurement, and tuning.
  • Experience collaborating and communicating effectively in a team environment.
Facebook is proud to be an Equal Opportunity and Affirmative Action employer. We do not discriminate based upon race, religion, color, national origin, sex (including pregnancy, childbirth, or related medical conditions), sexual orientation, gender, gender identity, gender expression, transgender status, sexual stereotypes, age, status as a protected veteran, status as an individual with a disability, or other applicable legally protected characteristics. We also consider qualified applicants with criminal histories, consistent with applicable federal, state and local law. Facebook is committed to providing reasonable accommodations for candidates with disabilities in our recruiting process. If you need any assistance or accommodations due to a disability, please let us know at accommodations-ext@fb.com.