-
Notifications
You must be signed in to change notification settings - Fork 23
The Fast Interpreter
The FirrtlInterpreter is an important piece of the Chisel development environment. This is to track project on a newer faster version of the interpreter.
- 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
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