Skip to content

The Fast Interpreter

Chick Markley edited this page Apr 9, 2018 · 5 revisions

The FirrtlInterpreter is an important piece of the Chisel development environment. This is to track project on a newer faster version of the interpreter.

Goals

  • Increase the raw speed of the interpreter
  • Maintain it's quick spin up time, this is an important advantage it has over the verilator
  • Increase it's debugging utility with rollback and better monitoring of specific signals

Some initial exploratory results

So here is the current summary for GCD (add in your numbers if convenient). I am little surprised that verilator is so slow, but GCD has a lot of IO for a relatively small circuit and the polling of the valid is probably pretty expensive for it over IPC. The superluminals are not so far away.

I do think the cycles and MHz are not a great way of evaluating this, because what really matters for interpreter is the number of nodes being processed, we should be tracking that. The results below are little clouded because GCD used is slightly different between the fast tests and the interpreter and verilator versions. But it's good to have some idea where we stand.

Method Cycles Run Time MHz
Interpeter 3861276 255.034728 0.051
Verilator 3861276 50.425607 0.077
Fast BigInt 33179980 13.461831 2.465
Fast Int 33179980 5.544332 5.984
Pure Scala 32179980 0.349653 92.034
Pure C 33179980 5.571678 241.705
Jasmin 741548392 9.47 78.3

These preliminary results were pulled from discussions in PR #90. BitTable

Clone this wiki locally