Benchmarks in LiteX/VexRiscv on an Arty A7-35T

We ran the Whetstone and Dhrystone benchmarks for the gateware and software combination of Linux on LiteX-VexRiscv.
The default ISA for gateware in the above repository is set to rv32ima without FPU, and the default ISA and ABI for software (Buildroot) are set to rv32ima and ilp32, respectively.
The gateware ISA can be changed to rv32imafd(c) with FPU by adding an option.
Similarly, the Buildroot ISA and ABI can be changed to rv32imafd(c) and ilp32d, respectively.
Summary
The featured image and the table below show the benchmark results.
| Gateware | default (rv32ima) |
with FPU (rv32imafd) |
|||
|---|---|---|---|---|---|
| Software (Buildroot) |
ISA | rv32ima | rv32imafd | ||
| ABI | ilp32 | ilp32d | |||
| Whetstone (MWIPS) | 2.3 | 2.3 | 38.5 | 42.7 | |
| Dhrystone (DMIPS) | 48.4 | 46.1 | 37.8 | 38.0 | |
Below are the outputs of the two benchmarks for the gateware and software combination.
Benchmark (Gateware: default, Software: rv32ima – ilp32)
Whetstone
root@buildroot:~# whetstone 10000 Loops: 10000, Iterations: 1, Duration: 438 sec. C Converted Double Precision Whetstones: 2.3 MIPS
Dhrystone
root@buildroot:~# dhrystone 1000000 Dhrystone Benchmark, Version 2.1 (Language: C) Program compiled without 'register' attribute Execution starts, 1000000 runs through Dhrystone ... Microseconds for one run through Dhrystone: 11.8 Dhrystones per Second: 84961.8
Benchmark (Gateware: with FPU, Software: rv32imafd – ilp32d)
Whetstone
root@buildroot:~# whetstone 100000 Loops: 100000, Iterations: 1, Duration: 234 sec. C Converted Double Precision Whetstones: 42.7 MIPS
Dhrystone
root@buildroot:~# dhrystone 1000000 Dhrystone Benchmark, Version 2.1 (Language: C) Program compiled without 'register' attribute Execution starts, 1000000 runs through Dhrystone ... Microseconds for one run through Dhrystone: 15.0 Dhrystones per Second: 66711.1


