FPGA開発日記

カテゴリ別記事インデックス https://msyksphinz.github.io/github_pages , English Version https://fpgadevdiary.hatenadiary.com/

自作RISC-V CPUコアで構成を変えながら性能を測定していく (5. Coremarkの試行)

自作RISC-V CPUコアの方は、いくつかの実装の変更を行って性能がかなり伸びるようになった。

Coremarkの環境を構築して測定できるようにしておく。最大構成ではコンパイルに時間がかかるので、4種類の構成で性能を測定した。 あとはRV64に限定している。ITERATIONS=1に設定している。

4種類でサイクル数を測定した結果、ちゃんとスケールしていることが見えてきた。しかもこの4種類がどれもエラーなく完走できたのはうれしい。

Configuration Cycles CMK/MHz
Tiny 685680 1.45
Small 412513 2.42
Standard 294002 3.40
Big 258621 3.87
  • Tiny
2K performance run parameters for coremark.
CoreMark Size    : 666
Total ticks      : 685680
Total time (secs): %f
Iterations/Sec   : %f
ERROR! Must execute for at least 10 secs for a valid result!
Iterations       : 1
Compiler version : GCC11.1.0
Compiler flags   : -O3 -march=rv64imfdc -mcmodel=medany -static -std=gnu99 -fno-common -nostdlib -nostartfiles -fno-builtin -lm -lgcc -T ../riscv64-baremetal/link.ld
Memory location  : Please put data memory location here
                        (e.g. code in flash, data on heap etc)
seedcrc          : 0xe9f5
[0]crclist       : 0xe714
[0]crcmatrix     : 0x1fd7
[0]crcstate      : 0x8e3a
[0]crcfinal      : 0xe714
Errors detected
  • Small
2K performance run parameters for coremark.
CoreMark Size    : 666
Total ticks      : 412513
Total time (secs): %f
Iterations/Sec   : %f
ERROR! Must execute for at least 10 secs for a valid result!
Iterations       : 1
Compiler version : GCC11.1.0
Compiler flags   : -O3 -march=rv64imfdc -mcmodel=medany -static -std=gnu99 -fno-common -nostdlib -nostartfiles -fno-builtin -lm -lgcc -T ../riscv64-baremetal/link.ld
Memory location  : Please put data memory location here
                        (e.g. code in flash, data on heap etc)
seedcrc          : 0xe9f5
[0]crclist       : 0xe714
[0]crcmatrix     : 0x1fd7
[0]crcstate      : 0x8e3a
[0]crcfinal      : 0xe714
Errors detected
  • Standard
2K performance run parameters for coremark.
CoreMark Size    : 666
Total ticks      : 294002
Total time (secs): %f
Iterations/Sec   : %f
ERROR! Must execute for at least 10 secs for a valid result!
Iterations       : 1
Compiler version : GCC11.1.0
Compiler flags   : -O3 -march=rv64imfdc -mcmodel=medany -static -std=gnu99 -fno-common -nostdlib -nostartfiles -fno-builtin -lm -lgcc -T ../riscv64-baremetal/link.ld
Memory location  : Please put data memory location here
                        (e.g. code in flash, data on heap etc)
seedcrc          : 0xe9f5
[0]crclist       : 0xe714
[0]crcmatrix     : 0x1fd7
[0]crcstate      : 0x8e3a
[0]crcfinal      : 0xe714
Errors detected
  • Big
2K performance run parameters for coremark.
CoreMark Size    : 666
Total ticks      : 258621
Total time (secs): %f
Iterations/Sec   : %f
ERROR! Must execute for at least 10 secs for a valid result!
Iterations       : 1
Compiler version : GCC11.1.0
Compiler flags   : -O3 -march=rv64imfdc -mcmodel=medany -static -std=gnu99 -fno-common -nostdlib -nostartfiles -fno-builtin -lm -lgcc -T ../riscv64-baremetal/link.ld
Memory location  : Please put data memory location here
                        (e.g. code in flash, data on heap etc)
seedcrc          : 0xe9f5
[0]crclist       : 0xe714
[0]crcmatrix     : 0x1fd7
[0]crcstate      : 0x8e3a
[0]crcfinal      : 0xe714
Errors detected