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