FPGA開発日記

FPGAというより、コンピュータアーキテクチャかもね! カテゴリ別記事インデックス https://msyksphinz.github.io/github_pages

SiFive社 Official ReleaseのCoremarkをHiFive Unleashedで動かす

f:id:msyksphinz:20190419223924p:plain

SiFive Tech Symposiumの時に聞いたのだが、Freedom-E-SDKの時期リリースバージョンではCoremarkが同梱されているらしい。

freedom-e-sdkのブランチをdevelopment-19.05に変更すれば出てくる。

github.com

freedom-e-sdkの標準のビルド方法ではビルドできない。まあ、クロスコンパイルが前提だから当たり前か。

git clone https://github.com/sifive/freedom-e-sdk.git -c development-19.05
make software TARGET=sifive-hifive-unleashed PROGRAM=coremark   # これはクロスコンパイルできない。

普通にターゲットディレクトリに移動して実行する。

cd software/coremark
make PORT_DIR=linux64

結果を確認する。オリジナルのバージョンと比べて、オプションが追加されているようだ。

  • development-19.05のCoremarkの結果
2K performance run parameters for coremark.
CoreMark Size    : 666
Total ticks      : 14745
Total time (secs): 14.745000
Iterations/Sec   : 2712.783995
Iterations       : 40000
Compiler version : GCC8.3.0
Compiler flags   : -O2 -fno-common -funroll-loops -finline-functions --param max-inline-insns-auto=20 -falign-functions=4 -falign-jumps=4 -falign-loops=4 --param inline-min-speedup=10 -DPERFORMANCE_RUN=1  -lrt
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      : 0x25b5
Correct operation validated. See README.md for run and reporting rules.
CoreMark 1.0 : 2712.783995 / GCC8.3.0 -O2 -fno-common -funroll-loops -finline-functions --param max-inline-insns-auto=20 -falign-functions=4 -falign-jumps=4 -falign-loops=4 --param inline-min-speedup=10 -DPERFORMANCE_RUN=1  -lrt / Heap
  • オリジナルのCoremarkの結果
2K performance run parameters for coremark.
CoreMark Size    : 666
Total ticks      : 14386
Total time (secs): 14.386000
Iterations/Sec   : 2085.360767
Iterations       : 30000
Compiler version : GCC8.3.0
Compiler flags   : -O2 -DPERFORMANCE_RUN=1  -lrt
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      : 0x5275
Correct operation validated. See readme.txt for run and reporting rules.
CoreMark 1.0 : 2085.360767 / GCC8.3.0 -O2 -DPERFORMANCE_RUN=1  -lrt / Heap

Iteration/Secだけ抜き出すと、

  • development-19.05のCoremark : 2712.783995
  • オリジナルのCoremark : 2085.360767

となり、30%程度向上している。まあ、オプションの成果だとは思いますが。。。

HiFive Unleashedの正確な動作周波数が分からないのだが、1.0GHzで動いているとすると、2.712CMK/MHzとなり、公称値とほぼ一致する、かな?