FPGA開発日記

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

AWS上で動作するRISC-VチップFireSimのチュートリアルを試す 9. FireSim v1.3.1 でBOOMを動かす

f:id:msyksphinz:20180822232427p:plain

fires.im

FireSim v1.3.1 ではBOOMに対応しているので、さっそくベンチマークプログラムを動かしてみた。

FireSim v1.3.1のダウンロード

$ git clone https://github.com/firesim/firesim.git -b 1.3.1 --recurse-submodules firesim_v131
$ cd firesim_v131
$ ./build-setup.sh  # ツールチェインのビルドでかなり時間がかかる。

FireSim v1.3.1 でRocket-Chipを動かす

FireSim v1.3.1 でRocket-Chipを動かすのは、特に何も設定は必要ない。

$ cd firesim_v131/sim
$ make DESIGN=FireSimNoNIC

FireSim v1.3.1 の Rocket-Chip でベンチマークプログラムを動作させる

ベンチマークプログラムを動作させるためには、以下のコマンドを入力する。

$ make DESIGN=FireSimNoNIC run-bmark-tests
...
  [ PASSED ] /var/masayuki_work/firesim_v131/sim/output/f1/FireSimNoNIC-FireSimRocketChipConfig-FireSimConfig/mm.riscv.out       after 384360 cycles

  [ PASSED ] /var/masayuki_work/firesim_v131/sim/output/f1/FireSimNoNIC-FireSimRocketChipConfig-FireSimConfig/spmv.riscv.out     after 174557 cycles

  [ PASSED ] /var/masayuki_work/firesim_v131/sim/output/f1/FireSimNoNIC-FireSimRocketChipConfig-FireSimConfig/mt-vvadd.riscv.out         after 140509 cycles

  [ PASSED ] /var/masayuki_work/firesim_v131/sim/output/f1/FireSimNoNIC-FireSimRocketChipConfig-FireSimConfig/median.riscv.out   after 24797 cycles

  [ PASSED ] /var/masayuki_work/firesim_v131/sim/output/f1/FireSimNoNIC-FireSimRocketChipConfig-FireSimConfig/multiply.riscv.out         after 62813 cycles

  [ PASSED ] /var/masayuki_work/firesim_v131/sim/output/f1/FireSimNoNIC-FireSimRocketChipConfig-FireSimConfig/qsort.riscv.out    after 362333 cycles

  [ PASSED ] /var/masayuki_work/firesim_v131/sim/output/f1/FireSimNoNIC-FireSimRocketChipConfig-FireSimConfig/towers.riscv.out   after 22493 cycles

  [ PASSED ] /var/masayuki_work/firesim_v131/sim/output/f1/FireSimNoNIC-FireSimRocketChipConfig-FireSimConfig/vvadd.riscv.out    after 17885 cycles

  [ PASSED ] /var/masayuki_work/firesim_v131/sim/output/f1/FireSimNoNIC-FireSimRocketChipConfig-FireSimConfig/dhrystone.riscv.out        after 241757 cycles

  [ PASSED ] /var/masayuki_work/firesim_v131/sim/output/f1/FireSimNoNIC-FireSimRocketChipConfig-FireSimConfig/mt-matmul.riscv.out        after 57309 cycles

最後までベンチマークプログラムが動作した。

FireSim v1.3.1 でBOOMを動作させる

FireSim v1.3.1 でBOOMを動かすためには、DESIGN変数とTARGET_CONFIG変数を変更する。

$ cd firesim_v131/sim
$ DESIGN=FireBoomNoNIC TARGET_CONFIG=FireSimBoomConfig

FireSim v1.3.1 の BOOM でベンチマークプログラムを動作させる

ベンチマークプログラムを動作させるためには、以下のコマンドを入力する。

$ make DESIGN=FireBoomNoNIC TARGET_CONFIG=FireSimBoomConfig run-bmark-tests
...
  [ PASSED ] /var/masayuki_work/firesim_v131/sim/output/f1/FireBoomNoNIC-FireSimBoomConfig-FireSimConfig/mm.riscv.out    after 414688 cycles

  [ PASSED ] /var/masayuki_work/firesim_v131/sim/output/f1/FireBoomNoNIC-FireSimBoomConfig-FireSimConfig/spmv.riscv.out          after 162016 cycles

  [ PASSED ] /var/masayuki_work/firesim_v131/sim/output/f1/FireBoomNoNIC-FireSimBoomConfig-FireSimConfig/mt-vvadd.riscv.out      after 123744 cycles

  [ PASSED ] /var/masayuki_work/firesim_v131/sim/output/f1/FireBoomNoNIC-FireSimBoomConfig-FireSimConfig/median.riscv.out        after 43360 cycles

  [ PASSED ] /var/masayuki_work/firesim_v131/sim/output/f1/FireBoomNoNIC-FireSimBoomConfig-FireSimConfig/multiply.riscv.out      after 80224 cycles

  [ PASSED ] /var/masayuki_work/firesim_v131/sim/output/f1/FireBoomNoNIC-FireSimBoomConfig-FireSimConfig/qsort.riscv.out         after 451168 cycles

  [ PASSED ] /var/masayuki_work/firesim_v131/sim/output/f1/FireBoomNoNIC-FireSimBoomConfig-FireSimConfig/towers.riscv.out        after 31840 cycles

  [ PASSED ] /var/masayuki_work/firesim_v131/sim/output/f1/FireBoomNoNIC-FireSimBoomConfig-FireSimConfig/vvadd.riscv.out         after 26080 cycles

  [ PASSED ] /var/masayuki_work/firesim_v131/sim/output/f1/FireBoomNoNIC-FireSimBoomConfig-FireSimConfig/dhrystone.riscv.out     after 404320 cycles

  [ PASSED ] /var/masayuki_work/firesim_v131/sim/output/f1/FireBoomNoNIC-FireSimBoomConfig-FireSimConfig/mt-matmul.riscv.out     after 55264 cycles

こちらも、最後までベンチマークプログラムが動作した。