FPGA開発日記

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

LLVMの新しい中間言語表現 MLIRを試す(1. Getting Started)

MLIRについて基礎を学んだところで、実際に動かしてみたい。以下のページを読みながら少しチュートリアルを触ってみよう。

https://mlir.llvm.org/getting_started/

ビルドのためのリポジトリLLVMのものと同じで良いらしい。

git clone https://github.com/llvm/llvm-project.git
mkdir llvm-project/build
cd llvm-project/build
cmake -G Ninja ../llvm \
   -DLLVM_ENABLE_PROJECTS=mlir \
   -DLLVM_BUILD_EXAMPLES=ON \
   -DLLVM_TARGETS_TO_BUILD="X86;NVPTX;AMDGPU" \
   -DCMAKE_BUILD_TYPE=Release \
   -DLLVM_ENABLE_ASSERTIONS=ON \
#  -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DLLVM_ENABLE_LLD=ON

cmake --build . --target check-mlir

ターゲットとしてはX86, NVPTX, AMDGPUとしており、 Releaseビルドで実行している。Releaseなのでさして時間はかからない。放っておけば終了する。

ビルドディレクトリに生成されたのは以下のファイルだ。toyのファイルがいくつか含まれているな。これを見ながら勉強しろ、ということなんだろうか。

$ ls -1 build/bin
FileCheck
count
llvm-lit
llvm-tblgen
mlir-cpu-runner
mlir-edsc-builder-api-test
mlir-opt
mlir-sdbm-api-test
mlir-tblgen
mlir-translate
not
toyc-ch1
toyc-ch2
toyc-ch3
toyc-ch4
toyc-ch5
toyc-ch6
toyc-ch7