FireSim v1.2が公開された。主な変更点としては、Rocket-ChipだけでなくBOOMにも対応したとのことなので試行してみよう。
FireSim v1.2環境をCloneする
FireSimのリポジトリを、Tag付きでCloneする。さすがにriscv-toolsは取ってこなくても良いと思うけれども...
git clone -b 1.2 https://github.com/firesim/firesim.git firesim_v12
Rocket-ChipでのDhrystoneの実行
まずはRocket-Chipでの試行だ。sim/
に移動して実行する。VCSとVerilatorをサポートしているが、今回はVerilatorを使用する。
$ make DESIGN=FireSimNoNIC ... $ make DESIGN=FireSimNoNIC ${PWD}/output/f1/FireSimNoNIC-FireSimRocketChipConfig-FireSimConfig/dhrystone.riscv.out ... ./VFireSimNoNIC /home/masayuki/work/firesim_v12/sim/output/f1/FireSimNoNIC-FireSimRocketChipConfig-FireSimConfig/dhrystone.riscv +sample=/home/masayuki/work/firesim_v12/sim/output/f1/FireSimNoNIC-FireSimRocketChipConfig-FireSimConfig/dhr ystone.riscv.sample +max-cycles=100000000 +mm_relaxFunctionalModel=0 +mm_writeMaxReqs=16 +mm_readMaxReqs=16 +mm_writeLatency=30 +mm_readLatency=30 +dramsim \ 3>&1 1>&2 2>&3 | /home/masayuki/riscv64/bin/spike-dasm > /home/masayuki/work/firesim_v12/sim/output/f1/FireSimNoNIC-FireSimRocketChipConfig-FireSimConfig/dhrystone.riscv.out && [ $PIPESTATUS -eq 0 ] Microseconds for one run through Dhrystone: 469 Dhrystones per Second: 2132 mcycle = 234636 minstret = 196530
実行できた。次はBOOMの構成を作成してみる。
$ make DESIGN=FireBoomNoNIC TARGET_CONFIG=FireSimBoomConfig $ make DESIGN=FireBoomNoNIC TARGET_CONFIG=FireSimBoomConfig ${PWD}/output/f1/FireBoomNoNIC-FireSimBoomConfig-FireSimConfig/dhrystone.riscv.out ... ./VFireBoomNoNIC /home/masayuki/work/firesim_v12/sim/output/f1/FireBoomNoNIC-FireSimBoomConfig-FireSimConfig/dhrystone.riscv +sample=/home/masayuki/work/firesim_v12/sim/output/f1/FireBoomNoNIC-FireSimBoomConfig-FireSimConfig/dhrystone.ri scv.sample +max-cycles=100000000 +mm_relaxFunctionalModel=0 +mm_writeMaxReqs=16 +mm_readMaxReqs=16 +mm_writeLatency=30 +mm_readLatency=30 +dramsim \ 3>&1 1>&2 2>&3 | /home/masayuki/riscv64/bin/spike-dasm > /home/masayuki/work/firesim_v12/sim/output/f1/FireBoomNoNIC-FireSimBoomConfig-FireSimConfig/dhrystone.riscv.out && [ $PIPESTATUS -eq 0 ]
このあと固まってしまった。まだサポートされていないのかな?
2018/07/20 追記。簡単なテストパタン(ISAチェック用のテスト)なら動作するようだ。何かエラーが出るけど。 Dhrystoneなどは設定の変更が必要なんだろうか?
$ make DESIGN=FireBoomNoNIC TARGET_CONFIG=FireSimBoomConfig ${PWD}/output/f1/FireBoomNoNIC-FireSimBoomConfig-FireSimConfig/rv64ui-p-add.out ... ./VFireBoomNoNIC /home/msyksphinz/work/firesim_v12/sim/output/f1/FireBoomNoNIC-FireSimBoomConfig-FireSimConfig/rv64ui-p-add +sample=/home/msyksphinz/work/firesim_v12/sim/output/f1/FireBoomNoNIC-FireSimBoomConfig-FireSimConfig/rv64ui-p-add.sample +max-cycles=100000000 +mm_relaxFunctionalModel=0 +mm_writeMaxReqs=16 +mm_readMaxReqs=16 +mm_writeLatency=30 +mm_readLatency=30 +dramsim \ 2> /home/msyksphinz/work/firesim_v12/sim/output/f1/FireBoomNoNIC-FireSimBoomConfig-FireSimConfig/rv64ui-p-add.out && [ $PIPESTATUS -eq 0 ] /bin/sh: 3: [: -eq: unexpected operator Makefile:176: recipe for target '/home/msyksphinz/work/firesim_v12/sim/output/f1/FireBoomNoNIC-FireSimBoomConfig-FireSimConfig/rv64ui-p-add.out' failed make: *** [/home/msyksphinz/work/firesim_v12/sim/output/f1/FireBoomNoNIC-FireSimBoomConfig-FireSimConfig/rv64ui-p-add.out] Error 2 $ cat ${PWD}/output/f1/FireBoomNoNIC-FireSimBoomConfig-FireSimConfig/rv64ui-p-add.out random min: 0x0, random max: 0xffffffffffffffff time elapsed: 1.8 s, simulation speed = 1.60 KHz *** PASSED *** after 2912 cycles Runs 2912 cycles [PASS] FireBoomNoNIC Test SEED: 1532017147 ````