FPGA開発日記

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

SonicBOOMの性能測定 (Coremark)

SonicBOOMの基本的な性能を見るために、次はCoremarkを実行してみることにした。SonicBOOMはパラメータに応じて以下の構成を取ることができる。

f:id:msyksphinz:20201230234012p:plain

Coremarkのソースコードコンパイルについては、以下のリポジトリを活用することにした。デフォルトではCoremarkはRISC-V向けのコンパイル環境などは(もちろん)入っていないが、以下のリポジトリを使えば簡単にビルドできる。

github.com

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
f:id:msyksphinz:20201231181222p:plain