以下の内容はhttps://msyksphinz.hatenablog.com/entry/2025/10/23/040000より取得しました。


Speckleリポジトリについて調査する (2. 実行方法の調査)

Speckleは、SPEC CPU2006ベンチマークのコンパイルと実行を簡素化するためのツールセットである。前回 は、基本的なコンパイルの方法を調査した。

実際に実行してみる

Speckleを実際にシミュレーションしてみる。Spike はシミュレーションも遅いし、コマンドラインオプションも古くなっている気がするので少し改造してQEMUで動かしてみることにした。

以下のように、 gen_binaries.sh を少し変更した。

diff --git a/gen_binaries.sh b/gen_binaries.sh
index d53550d..8aff41d 100755
--- a/gen_binaries.sh
+++ b/gen_binaries.sh
@@ -13,7 +13,7 @@ fi
 
 CONFIG=riscv
 CONFIGFILE=${CONFIG}.cfg
-RUN="spike pk -c "
+RUN="qemu-riscv64 "
 CMD_FILE=commands.txt
 INPUT_TYPE=test
 
@@ -135,9 +135,11 @@ if [ "$runFlag" = true ]; then
 
       for input in "${commands[@]}"; do
           if [[ ${input:0:1} != '#' ]]; then # allow us to comment out lines in the cmd files
+            log=$(echo "${b}_${input}" | sed -e 's/\./_/g' -e 's/ /_/g' -e 's/-/_/g' -e 's|/|_|g').log
             echo "~~~Running ${b}"
             echo "  ${RUN} ${SHORT_EXE}_base.${CONFIG} ${input}"
-            eval ${RUN} ${SHORT_EXE}_base.${CONFIG} ${input}
+            echo "  Log: ${log}"
+            ${RUN} ${SHORT_EXE}_base.${CONFIG} ${input} >> ${log} 2>&1
          fi
       done

この時、 ./gen_binaries.sh --compile --copy として、copyも実行しておかないと正しく実行できない。

それぞれのベンチマークの入力に対してログを取りたかったので、ログファイルを指定した。${input} には余計な文字がたくさん入っているので、とりあえず全部置換する。

この状態で実行すると、個々のベンチマークでログを取ることができた(CPU2006側にログが残る仕様になっている)

find . -name "*.log" | grep run_base_test | xargs ls -lt
-rw-r--r-- 1 msyksphinz personal 34699 10月 26 01:52  ./483.xalancbmk/run/run_base_test_riscv.0000/483_xalancbmk__v_test_xml_xalanc_xsl.log
-rw-r--r-- 1 msyksphinz personal   779 10月 26 01:52  ./473.astar/run/run_base_test_riscv.0000/473_astar_lake_cfg.log
-rw-r--r-- 1 msyksphinz personal  1472 10月 26 01:52  ./471.omnetpp/run/run_base_test_riscv.0000/471_omnetpp_omnetpp_ini.log
-rw-r--r-- 1 msyksphinz personal  4619 10月 26 01:52  ./464.h264ref/run/run_base_test_riscv.0000/464_h264ref__d_foreman_test_encoder_baseline_cfg.log
-rw-r--r-- 1 msyksphinz personal   175 10月 26 01:51  ./462.libquantum/run/run_base_test_riscv.0000/462_libquantum_33_5.log
-rw-r--r-- 1 msyksphinz personal  3839 10月 26 01:51  ./458.sjeng/run/run_base_test_riscv.0000/458_sjeng_test_txt.log
-rw-r--r-- 1 msyksphinz personal   622 10月 26 01:51  ./456.hmmer/run/run_base_test_riscv.0000/456_hmmer___fixed_0___mean_325___num_45000___sd_200___seed_0_bombesin_hmm.log
-rw-r--r-- 1 msyksphinz personal    12 10月 26 01:50 './445.gobmk/run/run_base_test_riscv.0000/445_gobmk___quiet___mode_gtp_<_dniwog_tst.log'
-rw-r--r-- 1 msyksphinz personal    12 10月 26 01:50 './445.gobmk/run/run_base_test_riscv.0000/445_gobmk___quiet___mode_gtp_<_cutstone_tst.log'
-rw-r--r-- 1 msyksphinz personal    12 10月 26 01:50 './445.gobmk/run/run_base_test_riscv.0000/445_gobmk___quiet___mode_gtp_<_connection_rot_tst.log'
-rw-r--r-- 1 msyksphinz personal    12 10月 26 01:50 './445.gobmk/run/run_base_test_riscv.0000/445_gobmk___quiet___mode_gtp_<_connection_tst.log'
-rw-r--r-- 1 msyksphinz personal    12 10月 26 01:50 './445.gobmk/run/run_base_test_riscv.0000/445_gobmk___quiet___mode_gtp_<_connect_rot_tst.log'
-rw-r--r-- 1 msyksphinz personal    12 10月 26 01:50 './445.gobmk/run/run_base_test_riscv.0000/445_gobmk___quiet___mode_gtp_<_connect_tst.log'
-rw-r--r-- 1 msyksphinz personal    12 10月 26 01:50 './445.gobmk/run/run_base_test_riscv.0000/445_gobmk___quiet___mode_gtp_<_capture_tst.log'
-rw-r--r-- 1 msyksphinz personal   541 10月 26 01:50  ./429.mcf/run/run_base_test_riscv.0000/429_mcf_inp_in.log
-rw-r--r-- 1 msyksphinz personal    51 10月 26 01:50  ./403.gcc/run/run_base_test_riscv.0000/403_gcc_cccp_in__o_cccp_s.log
-rw-r--r-- 1 msyksphinz personal   672 10月 26 01:50  ./401.bzip2/run/run_base_test_riscv.0000/401_bzip2_dryer_jpg_2.log
-rw-r--r-- 1 msyksphinz personal   597 10月 26 01:50  ./401.bzip2/run/run_base_test_riscv.0000/401_bzip2_input_program_5.log
-rw-r--r-- 1 msyksphinz personal 13825 10月 26 01:50  ./400.perlbench/run/run_base_test_riscv.0000/400_perlbench__I___I__lib_test_pl.log
-rw-r--r-- 1 msyksphinz personal   201 10月 26 01:50  ./400.perlbench/run/run_base_test_riscv.0000/400_perlbench__I___I__lib_regmesg_pl.log
-rw-r--r-- 1 msyksphinz personal   568 10月 26 01:50  ./400.perlbench/run/run_base_test_riscv.0000/400_perlbench__I___I__lib_ref_pl.log
-rw-r--r-- 1 msyksphinz personal   117 10月 26 01:50  ./400.perlbench/run/run_base_test_riscv.0000/400_perlbench__I___I__lib_redef_pl.log
-rw-r--r-- 1 msyksphinz personal 66927 10月 26 01:50  ./400.perlbench/run/run_base_test_riscv.0000/400_perlbench__I___I__lib_pack_pl.log
-rw-r--r-- 1 msyksphinz personal  4346 10月 26 01:50  ./400.perlbench/run/run_base_test_riscv.0000/400_perlbench__I___I__lib_makerand_pl.log
-rw-r--r-- 1 msyksphinz personal   279 10月 26 01:50  ./400.perlbench/run/run_base_test_riscv.0000/400_perlbench__I___I__lib_gv_pl.log
-rw-r--r-- 1 msyksphinz personal   171 10月 26 01:50  ./400.perlbench/run/run_base_test_riscv.0000/400_perlbench__I___I__lib_attrs_pl.log

例えば1つを抽出すると以下のようになっており、正しく実行できていそうだ。

cat ./400.perlbench/run/run_base_test_riscv.0000/400_perlbench__I___I__lib_attrs_pl.log
1..29
ok 1
ok 2
ok 3
ok 4
ok 5
ok 6
ok 7
ok 8
ok 9
ok 10
ok 11
ok 12
ok 13
ok 14
ok 15
ok 16
ok 17
ok 18
ok 19
ok 20
ok 21
ok 22
ok 23
ok 24
ok 25
ok 26
ok 27
ok 28
ok 29



以上の内容はhttps://msyksphinz.hatenablog.com/entry/2025/10/23/040000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14