Join a well-funded, cutting-edge hardware startup in Silicon Valley as an Accelerator Microarchitecture Performance Modeling Engineer. Responsibilities and opportunities in this role include - functional and cycle-accurate simulator development, architectural and microarchitectural design-space exploration for programmable accelerators, as well as analysis and optimization of modern, highly-parallel applications. Our mission is to reimagine silicon and create accelerated computing platforms that will transform the industry. You will have the opportunity to work with some of the most talented and passionate engineers in the world to create designs that push the envelope on performance, energy-efficiency, programmability and scalability. You will also have the opportunity to explore many adjacent areas of research and engineering, cross-cutting many levels of abstraction that must be scaled when building computing machinery - ISA design, application software, compiler optimization, RTL design, RTL correlation, design verification, test writing, and power/area analysis. We offer a fun, creative, collaborative and flexible work environment, where you can contribute to our vision of building server-class compute machines that fulfill the promise and potential of hardware-software co-design, while also learning every day.
\n RequirementsIn-depth knowledge of CPU/GPU Computer Architecture and Microarchitecture.Excellent coding skills in C/C++ languagesStrong understanding of workloads and benchmarks in the Machine Learning spaceSolid appreciation for the basics of SIMT processing, cache and memory hierarchiesKnowledge of performance modeling concepts - analytical, functional and cycle-accurate modelingKnowledge of performance improvement concepts - bottleneck analysis, latency hiding, speculative execution, shared resource arbitration, scheduling, buffer sizing, replacement policiesAbility to work well in a team, take ownership of tasks, embrace aggressive schedules, be self motivated to learn, seek help, think clearly and communicate effectively ResponsibilitiesPerformance modeling - develop functional and timing simulators in C++ modeling the programmable processing cores in a Data Parallel Accelerator.Performance analysis - configure and use the simulator to explore the architectural and microarchitectural design space.Design Space Exploration - influence the design choices based on experiments and studiesPerformance testing - develop tests to evaluate quality of model and RTL designPerformance debug - identify and fix performance bottlenecks in tests/workloads/simulatorPerformance correlation - identify correct performance targets for tests/workloads and ensure that the RTL design meets that targetWorkload analysis - develop a deep understanding of the characteristics of workloads in the target market - machine learning, data analytics, graph analytics Education and ExperienceBachelor's degree with 2-4 years of experience in a relevant fieldMaster's degree with 1-2 years of experience in a relevant fieldPhD with internship experience in a relevant field
\n