FPGA開発日記

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

GAP BenchmarkのRISC-V環境でのシミュレーションを試す

gap.cs.berkeley.edu

github.com

RISC-V でのGAP Benchmark Suiteを実行する

GAPベンチマークRISC-V向けにコンパイルしたのはいいのだが、いくつかのベンチマークではSpike上で実行することができない。

spike --isa=rv64gcv pk ./bfs -f benchmark/graphs/kron.sg -n64
bbl loader
terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc

QEMUでやってみると、今度は変なエラーを出した。 (ちなみに、QEMUでベクトル命令を有効にするための--cpu rv64,v=trueは初めて知った)

qemu-riscv64 --cpu rv64,v=true  ./pr -f ../gapbs/benchmark/graphs/road.sg -i1000 -t1e-4 -n16
vector version is not specified, use the default value v1.0
Couldn't open file ../gapbs/benchmark/graphs/road.sg

うーん、なんでQEMUでファイルをオープンできないのかは詳細に見てみないと原因がわからない。

とりあえず、一部のベンチマークについてはRISC-VとSpike/pkで実行できることは確認した。

spike --isa=rv64gcv pk ./pr -f ../gapbs/benchmark/graphs/road.sg -i1000 -t1e-4 -n16
bbl loader
Read Time:           8.66252
Graph has 23947347 nodes and 57708624 directed edges for degree: 2
  0    0.274277
  1    0.077724
  2    0.027642
  3    0.014076
  4    0.008457
  5    0.005467
  6    0.003671
  7    0.002518
  8    0.001751
  9    0.001229
 10    0.000868
 11    0.000615
 12    0.000438
... /* 以下省略: とりあえずめっちゃ遅い */

実行できないベンチマークは、やはりロードするファイルが大きすぎるからだろうか?

msyksphinz.hatenablog.com

msyksphinz.hatenablog.com