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の問題かな?