SimBricks provides a modular simulation platform for heterogeneous computer systems, enabling users to virtually prototype and evaluate hardware and software combinations. By integrating various simulators, the platform allows hardware designers to assess design choices and operators to explore system architectures before deployment, reducing development time and costs.
Funding
Funding not disclosed
Founders
Product
Problem
Designing and evaluating heterogeneous computer systems, which combine diverse hardware and software components, is slow and expensive due to the need to build physical prototypes. Measuring overall system performance is only possible after all components are implemented and manufactured, delaying key design and implementation feedback.
Solution
SimBricks provides a modular simulation platform for heterogeneous computer systems, enabling users to virtually prototype and evaluate hardware and software combinations. The platform integrates various simulators for CPUs, GPUs, network devices, and storage, allowing hardware designers to assess design choices and operators to explore system architectures before deployment. SimBricks uses fixed, natural component interfaces to enable flexible modular composition of simulators to run a broad range of heterogeneous systems. It ensures accurate simulation through correct time synchronization, but with minimal runtime overhead even for systems with many components. Simulators run as separate processes that communicate through message passing, enabling integration of simulators using arbitrary languages and simulation models.
Target Audience
The primary users are system architects, hardware and software engineers, instructors, and technical sales teams involved in the design, development, and evaluation of heterogeneous computer systems.
Features
- Modular architecture enabling flexible composition of simulators for heterogeneous systems
- Accurate and efficient time synchronization protocol for coordinated simulation
- Loose coupling of component simulators via message passing for easy integration
- Parallel execution of simulators on different host cores for fast simulation
- Support for full-system simulation, including hosts, devices, network, and software stack
- Ability to import and use custom components
- Scalable to large systems with thousands of components
- Python scripting interface for easy creation and execution of virtual prototypes