ONNX MLIRをビルドする


ONNX MLIRをビルドする手順。基本はGitHubのREADMEに記載の手順と同じ。

検証環境は

  • Ryzen 5 1600
  • Ubuntu 20.04 on WSL2
  • ONNX MLIR commit id ac67900

ビルドツール導入

ビルドに必要なツール群を導入する。 Ubuntu 18.04の場合、libprotoc-devが古くてビルドできないため、別途手動で導入する必要がある。

sudo apt install protobuf-compiler build-essential cmake libprotoc-dev \
     ninja-build libncurses python3 python3-dev python-is-python3

MLIRのビルド

カレントディレクトリは~/workspaceとする。

LLVM内にあるMLIRを取得し、ONNX MLIRのビルドが確認できているブランチをチェックアウトする。

cd ~/workspace
git clone https://github.com/llvm/llvm-project.git
cd llvm-project && git checkout 1d01fc100bb5bef5f5eaf92520b2e52f64ee1d6e && cd ..

ビルドする。Ryzen 5 1600で20分程度。

mkdir llvm-project/build
cd llvm-project/build
cmake -G Ninja ../llvm \
   -DLLVM_ENABLE_PROJECTS=mlir \
   -DLLVM_BUILD_EXAMPLES=ON \
   -DLLVM_TARGETS_TO_BUILD="host" \
   -DCMAKE_BUILD_TYPE=Release \
   -DLLVM_ENABLE_ASSERTIONS=ON \
   -DLLVM_ENABLE_RTTI=ON

cmake --build .
cmake --build . --target check-mlir

ONNX MLIRのビルド

onnx-mlirのソースコードを取得する。

cd ~/workspace
git clone --recursive https://github.com/onnx/onnx-mlir.git

ビルドする。Ryzen 5 1600で5分程度。

export LLVM_PROJ_SRC=$(pwd)/llvm-project/
export LLVM_PROJ_BUILD=$(pwd)/llvm-project/build

mkdir onnx-mlir/build && cd onnx-mlir/build
cmake -G Ninja ..
cmake --build .

export LIT_OPTS=-v
cmake --build . --target check-onnx-lit