Change benchmark to calc MD5 on 1024 softcores

This commit is contained in:
Nikolay Puzanov
2023-06-15 17:40:46 +03:00
parent 89c82cb611
commit 047bd9c42b
21 changed files with 1376 additions and 931 deletions

View File

@@ -1,8 +1,8 @@
# Простой бенчмарк HDL симуляторов (преранняя версия)
Для оценки скорости запускается симуляция софт-процессора
[PicoRV32](https://github.com/YosysHQ/picorv32) с программой вычисления первых 200
знаков числа Пи.
Для оценки скорости запускается симуляция 1024 софт-процессоров
[PicoRV32](https://github.com/YosysHQ/picorv32) с программой вычисления хэш-суммы MD5
от блока 64кБ. Данные в каждом блоке инициализируются разными значениями.
В папке `source` находятся исходники RTL и программы. Верхний модуль - `testbench` с
единственным входным сигналом `clock`. Генерация клока во внешнем модуле сделана для
@@ -12,51 +12,24 @@
симуляторе. Скрипты называются `__build.sh` (для сборки проекта) и `__run.sh` (для
запуска симуляции).
Скрипт `run.sh` запускает бенчмарк на всех симуляторах и сохраняет время исполнения в
файл `results.txt`. Можно запустить бунчмарк на одном симуляторе, для чего в
параметрах скрипта `run.sh` нужно указать папку с бенчмарком.
Скрипт `run.sh` запускает бенчмарк из выбранной папки или все тесты, если параметром
указать `all`. Результаты бенчмарка записываются в файл `results.txt`.
## Результаты для 50 знаков Пи
## Результаты для 1024 процессоров
- Xeon E5-2630v3 @ 2.40GHz
- Verilator 5.011 devel rev v5.010-98-g15f8ebc56
- Icarus Verilog 13.0 (devel) (s20221226-127-gdeeac2edf)
- ModelSim SE-64 2020.4 (Revision: 2020.10)
- QuestaSim 64 2021.1 (Revision: 2021.1)
- Vivado 2021.1
Время в миллисекундах:
Время выполнения бенчмарка:
```
test-iverilog: 210540
test-modelsim: 25555
test-verilator: 1289
Icarus Verilog: TBD
ModelSim: TBD
QuestaSim: TBD
Verilator: TBD
XSIM: TBD
Xcelium: TBD
```
## Результаты для 200 знаков Пи
Вычисление 200 знаков на Icarus Verilog занимает непозволительно много времени, по
этому перед запуском всех бенчмарков рекомендую переименовать папку `test-iverilog` в
`notest-iverilog`.
Результаты для 200 знаков на том же процессоре:
```
test-iverilog: 3257116
test-xsim: 938296
test-modelsim: 359562
test-verilator: 20816
```
## Предварительные результаты по симуляторам "Big 3"
Коллеги прогнали бенчмарк на Xcelium, VCS и Modelsim. Примерные оценки показали
следующие результаты (приведено к скорости Xcelium):
```
test-verilator: 0.35
test-xcelium: 1
test-vcs: 1.37
test-modelsim: 5.95
test-xsim: 15.5
test-iverilog: 58
```
Конечно, нужно учитывать то, что Verilator - это cycle-accurate симулятор, и что он
не поддерживает состояния X и Z.