Benchmarks in LiteX/VexRiscv on an Arty A7-35T
Linux on LiteX-VexRiscvのGatewareとSoftwareの組み合わせに対して、ベンチマークのWhetstoneとDhrystoneを実施しました。
上記リポジトリにおけるGatewareのデフォルトのISAは、FPU無しのrv32ima
、Software(Buildroot)のデフォルトのISAとABIは、それぞれrv32ima
とilp32
に設定されています。
GatewareのISAは、オプションを追加することによりFPU有りのrv32imafd(c)
に変更することができます。
同様に、BuildrootのISAとABIも、それぞれrv32imafd(c)
とilp32d
に変更できます。
まとめ
上のアイキャッチ画像と下の表が、ベンチマークの結果を表しています。
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 |
下記は、GatewareとSoftwareの組み合わせに対する2つのベンチマークの出力を示しています。
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