PoCL と LLVM
2023-8-22 0:25 JST
手元のサーバ(Ubuntu Desktop 22.04 だけど)のバージョンアップに伴いLLVM を含めて PoCL もコンパイルする。
Ubuntu Desktop 22.04
LLVM は普通にインストールすると Ver 15 だった。本当は 16 を入れたい。ここをみると apt を追加すれば良さそう。ここに方法が書いてあった。
丸写し
$ curl -fsSL https://apt.llvm.org/llvm-snapshot.gpg.key | gpg --dearmor -o /etc/apt/keyrings/llvm.gpg
$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/llvm.gpg] http://apt.llvm.org/jammy/ llvm-toolchain-jammy-16 main" | tee /etc/apt/sources.list.d/llvm.list > /dev/null
$ apt install clang-16 llvm-16 lld-16 lldb-16
LLVM のサププロジェクト
ここによくまとまっている。面白そうなものをピックアップする。
LLVM 16 自分で入れる
cmake -DLLVM_USE_LINKER=lld \
-DLLVM_ENABLE_RTTI=ON \
-DLLVM_ENABLE_EH=ON \
-DCMAKE_INSTALL_PREFIX=~/Work/root \
-DLLVM_ENABLE_PROJECTS=lld;clang;polly" \
-DBUILD_SHARED_LIBS=ON \
-DCMAKE_BUILD_TYPE=Debug \
-G Ninja ../llvm
-DBUILD_SHARED_LIBS=ON \
-DCMAKE_BUILD_TYPE=Debug \
-G Ninja ../llvm
Debug にすると PoCL のコンパイルがすごく遅くなるのに注意。PoCL にはBUILD_SHARED_LIBS が必要だった。
PoCL4.0 もbuild
cmake -DCMAKE_INSTALL_PREFIX=~/Work/root -DENABLE_CUDA=ON -GNinja ..
LLVM_CONFIG_PATH だけ設定してもだめだったので、PATH に ~/Work/root/bin を追加した。
Polyhedral モデル
Polly というのがあるみたいね。ubuntu の apt でも入れられるみたい。
リンク集
Polyhedralコンパイラ
Polly を使ったという記事
Customized Monte Carlo Tree Search for LLVM/Polly's Composable Loop Optimization Transformations
klee を使ってみた人がいる。その記録。