自作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