SonicBOOMの基本的な性能を見るために、次はCoremarkを実行してみることにした。SonicBOOMはパラメータに応じて以下の構成を取ることができる。
Coremarkのソースコードとコンパイルについては、以下のリポジトリを活用することにした。デフォルトではCoremarkはRISC-V向けのコンパイル環境などは(もちろん)入っていないが、以下のリポジトリを使えば簡単にビルドできる。
diff --git a/build-coremark.sh b/build-coremark.sh index 2449d2d..b026e5c 100755 --- a/build-coremark.sh +++ b/build-coremark.sh @@ -9,8 +9,8 @@ cd $BASEDIR/$CM_FOLDER # run the compile echo "Start compilation" -make PORT_DIR=../riscv64 compile +make PORT_DIR=../riscv64 compile ITERATIONS=10 mv coremark.riscv ../ -make PORT_DIR=../riscv64-baremetal compile +make PORT_DIR=../riscv64-baremetal compile ITERATIONS=10 mv coremark.bare.riscv ../
バイナリの実行は以下のようにした。
./simulator-chipyard-SmallBoomConfig --verbose ../../../riscv-coremark/coremark.bare.riscv 2>&1 | tee coremark.small.log | grep -v " 3 " ./simulator-chipyard-MediumBoomConfig --verbose ../../../riscv-coremark/coremark.bare.riscv 2>&1 | tee coremark.medium.log | grep -v " 3 " ./simulator-chipyard-LargeBoomConfig --verbose ../../../riscv-coremark/coremark.bare.riscv 2>&1 | tee coremark.large.log | grep -v " 3 " ./simulator-chipyard-MegaBoomConfig --verbose ../../../riscv-coremark/coremark.bare.riscv 2>&1 | tee coremark.mega.log | grep -v " 3 " ./simulator-chipyard-GigaBoomConfig --verbose ../../../riscv-coremark/coremark.bare.riscv 2>&1 | tee coremark.large.log | grep -v " 3 "
実行結果は以下のようになっている。順当にCMK/MHzが向上した。
Coremark Score | CMK/MHz | |
---|---|---|
Small | 4156452 | 2.41 |
Medium | 2562284 | 3.90 |
Large | 1998827 | 5.00 |
Mega | 1852369 | 5.40 |
Giga | 1799869 | 5.56 |