Manticore

Manticore1 is an attempt to co-design hardware and software to enable high-performance parallel RTL simulation. Manticore is a direct predecessor to Parendi. While Parendi attempts to study parallel simulation on a multi-thousand-core machine, Manticore studies parallel RTL simulation on a 225-core machine that we designed and built solely for accelerated RTL simulation.

Manticore leverages the “static” nature of RTL simulation in a bulk-synchronous parallel (BSP) execution model and hardware tailored to this model. The advantage of the static BSP model is that Manticore virtually eliminates the runtime overhead of synchronization, providing the illusion of fixed-cost synchronization, in the form of a global barrier. In Manticore, whether we use only 2 or 225 cores, the cost of synchronization is fixed and known at compile time. This contrasts with conventional shared-memory machines, where global barriers have a cost that increases with the number of cores and could also vary at runtime.

Manticore’s hardware takes an extreme approach with specialization; each core is a 16-bit, 14-stage deep pipeline without any interlocks or scoreboards. Manticore’s compiler is responsible for almost everything and knows everything about the execution at compile time. In a way, Manticore statically schedules all 225 cores together (globally).

Manticore has concrete hardware implementation, prototyped on an FPGA at 475 MHz and a Verilog compiler. If you are interested to know more you can read the following publications.

Publication

Mahyar Emami*, Sahand Kashani*, Keisuke Kamahori, Mohammad Sepehr Pourghannad, Ritik Raj, and James R. Larus. “Manticore: Hardware-Accelerated RTL Simulation with Static Bulk-Synchronous Parallelism.” ASPLOS’23 — paper, slides, lighting slides, code.

Sahand Kashani*, Mahyar Emami*, , Keisuke Kamahori, Mohammad Sepehr Pourghannad, Ritik Raj, and James R. Larus. “A 475 MHz FPGA Accelerator for RTL Simulation“. FPGA’24 — paper, slides.

* Equal contributors

1 The manticore or mantichore (Latin: mantichora; reconstructed Old Persian: merthykhuwar; Modern Persian: مردخوار mardkhor) is a Persian legendary creature similar to the Egyptian sphinx that proliferated in western European medieval art as well. It has the head of a human, the body of a lion and the tail of a scorpion or a tail of venomous spines similar to porcupine quills. There are some accounts that the spines can be launched like arrows. It eats its victims whole, using its three rows of teeth, and leaves no bones behind (from Wikipedia)