FPGA開発日記

FPGAというより、コンピュータアーキテクチャかもね! カテゴリ別記事インデックス https://sites.google.com/site/fpgadevelopindex/

Halide to FPGA試行(1. HalideのコンパイルとCPU上でのテストパタン試行)

Pixel2 → Pixel Visual Core → Halideあたりを調べていたら、ちょうどFixstarsからHalide to FPGAという環境がリリースされた。

www.fixstars.com

ターゲットがZedBoardだし、お、ちょうど面白そうと思って早速中身を見てみた。

最初は、CPUでのテスト環境を試行してみる。

  • CPU上での開発: Halide to FPGA

CPU上での開発 – Halide to FPGA

HalideのビルドからLLVMのビルドまで一応フルスクラッチで作ってみた。

github.com

最初にLLVMをインストールしておく必要がある。これも一応フルスクラッチ

svn co https://llvm.org/svn/llvm-project/llvm/branches/release_39 llvm3.9
svn co https://llvm.org/svn/llvm-project/cfe/branches/release_39 llvm3.9/tools/clang
cd llvm3.9
mkdir build
cd build
cmake -DLLVM_ENABLE_TERMINFO=OFF -DLLVM_TARGETS_TO_BUILD="X86;ARM;NVPTX;AArch64;Mips;PowerPC" -DLLVM_ENABLE_ASSERTIONS=ON -DCMAKE_BUILD_TYPE=Release ..
make -j4

環境変数を通しておく。

export LLVM_CONFIG=/home/msyksphinz/work/software/llvm3.9/build/bin/llvm-config
export CLANG=/home/msyksphinz/work/software/llvm3.9/build/bin/clang

次にHalideのビルドを行う。

Halideのリビジョンは最新のTagに合わせておかないとどうもコンパイルが成功しそうにない。そんなもんなの?

git clone https://github.com/halide/Halide.git
cd Halide
git checkout release_2017_05_03
make -j4

こちらも環境変数を通しておく。

export HALIDE_ROOT=/home/msyksphinz/work/software/Halide

Halide To FPGAの環境をチェックアウトしてくる。

git clone git@github.com:fixstars/Halide-elements.git
cd Halide-elements
cd src/convolution
make

これで一応ビルドは出来たので、convolution_testを実行してみた。

./convolution_test
Success!

まあここまでは良いのだけど、問題はFPGAのイメージだ。とりあえずポータルサイトに行ってみたのだが、イメージがダウンロードできない。 なんかそもそもポータルページに不具合があるのか、何度もログインしても勝手にログアウトされてしまう。何だこりゃ?

ポータルサイトが安定するまでちょっと作業は放置しよう。