FPGA開発日記

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

Gem5のインストール試行とベンチマーク実行 (サイクルモードでの実行と結果取得)

Gem5のインストール方法についてまとめ。

Gem5によるサイクルベースシミュレーションの試行。以下のようにしてみたが何も出ない。

./build/RISCV/gem5.debug --debug-file printf.out --debug-start 0 --debug-flags=O3PipeView configs/example/se.py -c /home/msyksphinz/work/gem5/gem5_test/printf/printf

m5out/printf.outは空の状態だった。X86でも同様だった。

./build/X86/gem5.debug --debug-file printf.out --debug-flags=O3PipeView configs/example/se.py -c /home/msyksphinz/work/gem5/gem5_test/printf/printf.x86

そもそも、--cpu-typeというオプションが受け付けられないらしい。

./build/X86/gem5.debug --debug-file printf.out --debug-start 0 --cpu-type=DerivO3CPU --debug-flags=O3PipeView configs/example/se.py -c /home/msyksphinz/work/gem5/gem5_test/printf/printf
Usage
=====
  gem5.debug [gem5 options] script.py [script options]

これはどういうことだろう?マニュアル通りgem5.optをビルドしたほうがいいかな?

いろいろやってみた結果gem5.optかgem5.debugかというのは問題ではなかった。オプションの位置の問題のようだ。

./build/RISCV/gem5.debug --debug-flags=O3PipeView --debug-file=printf.out configs/example/se.py --cpu-type=DerivO3CPU --caches -c /home/msyksphinz/work/gem5/gem5_test/printf/printf.riscv

--cpu-typeconfigs/example/se.pyよりも後ろに持っていく必要がある。あとは--cachesをつける必要もあるようだ。

./util/o3-pipeview.py -c 500 -o printf_pipeview.out --color m5out/printf.out
less -r printf_pipeview.out

うまくいった。パイプライントレースは取得できるようになった。

Konataでも表示させてみた。