FPGA開発日記

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

RISC-V Vectorized Bencmark Suiteのコンパイルとシミュレーション方法

RiVec、つまりRISC-V Vectorized Bencmark SuiteはベンチマークスイートをRISC-Vベクトル向けに移植したベンチマークスイートだ。

メインリポジトリのRiVecはバージョンが古くてRVV1.0のintrinsicではコンパイルすることができない。

Pull Requsetを観察していると、どうやら最新バージョンに対応させたものがあるらしい。

https://github.com/RALC88/riscv-vectorized-benchmark-suite

こちらのほうが試しやすい。

https://github.com/jiegec/riscv-vectorized-benchmark-suite

git clone https://github.com/jiegec/riscv-vectorized-benchmark-suite.git -b rvv-1.0 rivec1.0

ビルドのためには、LLVM15とRVVに対応したRISC-V GCCが必要となる。

make LLVM=/home/msyksphinz/work/llvm/llvm-myriscvx150/build GCC_TOOLCHAIN_DIR=/home/msyksphinz/riscv-rvvnext

ディレクトリのMakefileの構成とかはめちゃくちゃなのだが、一つずつディレクトリに入っていけばコンパイルできる。

cd _blackscholes
make vector LLVM=/home/msyksphinz/work/llvm/llvm-myriscvx150/build GCC_TOOLCHAIN_DIR=/home/msyksphinz/riscv-rvvnext

bin/rvv-testにバイナリが出来上がる。実行してみよう。

spike --isa=rv64gcv pk bin/rvv-test 1 ./input/in_64K.input prices.txt

出力ファイルがOpenできないのはpkの問題かな?