onsite
Virtual Platform Software Engineer, Annapurna Labs Machine Learning Accelerators, AWS
Machine Learning Engineer
Software Engineer to build and optimize virtual platforms for ML accelerator SoCs, enabling early software development and performance scaling.
About the role
Key Responsibilities
- Develop and maintain functional models of SoC subsystems for full-system virtual platforms used by firmware, driver, runtime, and application teams
- Design models for usability and performance, enabling software engineers to run real workloads efficiently
- Enhance virtual platform infrastructure, including QEMU integration, simulation performance, build/release tooling, and documentation
- Collaborate with software teams to debug platform issues and optimize model fidelity for productivity
- Drive simulation performance improvements to handle increasingly complex workloads at scale
- Contribute to architectural decisions by selecting appropriate abstraction levels for subsystems
Requirements
- 2+ years of experience building functional models, virtual platforms, or system-level simulations for hardware (SoCs, ASICs, GPUs, CPUs)
- Proficiency in C++ or SystemC, with Python for tooling
- Strong understanding of SoC, CPU, GPU, and/or ASIC architecture and micro-architecture
- Experience with QEMU integration and transaction-level modeling (TLM)
- Familiarity with Modern C++ (20+) and test frameworks like PyTest or GoogleTest
Skills
csystemcpythonqemusoc architectureperformance optimization