LoginSignup
2
1

More than 3 years have passed since last update.

LLVMをソースコードからBuildしてからhipify-clangのBuildして動作テストするメモ(失敗)

Posted at

https://github.com/ROCm-Developer-Tools/HIP/tree/master/hipify-clang
hip-clangがどうやらROCm-devをインストールしても入れてもらえない?みたいな感じなので環境構築メモ

環境は

OS Ubuntu 16.04.06
ROCm version 2.6
HCC clang version 9.0.0
cmake version 3.5.1
CUDA Version 9.2

GPU 0 GTX1080Ti
GPU 1 RadeonⅦ

必要なものを入れる

・clang/LLVMが必要

これがかなりめんどくさそうです

http://mcommit.hatenadiary.com/entry/2018/01/05/025802
LLVMのビルドについてまとめてみる

ここらへんの記事を参考に入れてみます、
LLVMのインストールはかなり手間っぽいので現時点では手探り状態
ROCm公式によるとLLVM versionは現時点で6.0.1が良いとのことなのでこれをinstallすると良さそうです。

該当記事で紹介されていたLLVMのビルドスクリプトを参考に動かしてみたいと思います。



sudo apt-get install clang cmake git g++
# OpenMP関係のパッケージをインストール

# OpenMPのビルドをしないのであれば不要

sudo apt install openmpi-bin  openmpi-common  libopenmpi-dev 

# LLDBで必要になるパッケージのインストール

# LLDBをビルドしないのであれば不要

sudo apt-get install build-essential subversion swig python2.7-dev libedit-dev libncurses5-dev

# LLVM作業用ディレクトリの作成・移動

mkdir ~/clang-llvm

cd ~/clang-llvm


cd ~/clang-llvm

git clone https://github.com/martine/ninja.git

cd ninja

git checkout release

./bootstrap.py

sudo cp ninja /usr/bin/



cd ~/clang-llvm

# ソースの取得 version5.01の場合

wget http://releases.llvm.org/6.0.1/llvm-6.0.1.src.tar.xz

wget http://releases.llvm.org/6.0.1/cfe-6.0.1.src.tar.xz

wget http://releases.llvm.org/6.0.1/compiler-rt-6.0.1.src.tar.xz

wget http://releases.llvm.org/6.0.1/libcxx-6.0.1.src.tar.xz

wget http://releases.llvm.org/6.0.1/libcxxabi-6.0.1.src.tar.xz

wget http://releases.llvm.org/6.0.1/libunwind-6.0.1.src.tar.xz

wget http://releases.llvm.org/6.0.1/lld-6.0.1.src.tar.xz

wget http://releases.llvm.org/6.0.1/lldb-6.0.1.src.tar.xz

wget http://releases.llvm.org/6.0.1/openmp-6.0.1.src.tar.xz

wget http://releases.llvm.org/6.0.1/polly-6.0.1.src.tar.xz

wget http://releases.llvm.org/6.0.1/clang-tools-extra-6.0.1.src.tar.xz

wget http://releases.llvm.org/6.0.1/test-suite-6.0.1.src.tar.xz



# 展開

tar xfv llvm-6.0.1.src.tar.xz

tar xfv cfe-6.0.1.src.tar.xz

tar xfv compiler-rt-6.0.1.src.tar.xz

tar xfv libcxx-6.0.1.src.tar.xz

tar xfv libcxxabi-6.0.1.src.tar.xz

tar xfv libunwind-6.0.1.src.tar.xz

tar xfv lld-6.0.1.src.tar.xz

tar xfv lldb-6.0.1.src.tar.xz

tar xfv openmp-6.0.1.src.tar.xz

tar xfv polly-6.0.1.src.tar.xz

tar xfv clang-tools-extra-6.0.1.src.tar.xz

tar xfv test-suite-6.0.1.src.tar.xz


mv cfe-6.0.1.src llvm-6.0.1.src/tools/clang

mv compiler-rt-6.0.1.src llvm-6.0.1.src/projects/compiler-rt

mv libcxx-6.0.1.src llvm-6.0.1.src/projects/libcxx

mv libcxxabi-6.0.1.src llvm-6.0.1.src/projects/libcxxabi

mv libunwind-6.0.1.src llvm-6.0.1.src/runtimes/libunwind

mv lld-6.0.1.src llvm-6.0.1.src/tools/lld

mv openmp-6.0.1.src llvm-6.0.1.src/projects/openmp

mv polly-6.0.1.src llvm-6.0.1.src/tools/polly

mv clang-tools-extra-6.0.1.src llvm-6.0.1.src/tools/clang/tools/extra

mv test-suite-6.0.1.src llvm-6.0.1.src/projects/test-suite

mkdir build

cd build



cmake -G "Ninja" -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang -DCMAKE_BUILD_TYPE=Release -DLLVM_USE_LINKER=gold -DLLVM_BUILD_TEST=ON CMAKE_INSTALL_PREFIX=/usr/local ../llvm-6.0.1.src

DLLVM_USE_LINKER=gold -DLLVM_BUILD_TEST=ON -DCMAKE_INSTALL_PREFIX=/usr/local ../llvm-6.0.1.src

# ビルド実行

ninja


上記を~/build.shで保存して

$ sudo bash ./build.sh
$ sudo ninja install
 git clone https://github.com/ROCm-Developer-Tools/HIP.git
 cd ./HIP/
 cd ./hipify-clang/
 mkdir build dist
 cd ./build
 cmake  -DCMAKE_INSTALL_PREFIX=/usr/  -DCMAKE_BUILD_TYPE=Release \..
 sudo make -j install

これで/usr/binにhipify-clangが一応インストールされた・・・

ただいちいちLLVMをBuildしなくても

https://qiita.com/syoyo/items/03348e5c55a93e69714e
Ubuntu 18.04 + apt clang 8.0.1 で hipify-clang をビルドする

build済みバイナリがあるらしくもっと簡単にhipifyをinstallできるっぽいので悲しい

動かしてみる

HIP-Examplesに入っているサンプルの.cuをまずは変換してhccでコンパイル&RUNさせてみる。

git clone https://github.com/ROCm-Developer-Tools/HIP-Examples.git
cd ./HIP-Examples/mini-nbody/cuda
$ hipify-clang ./nbody-block.cu --cuda-path=/usr/local/cuda-9.2/  -I/usr/local/cuda-9.2/samples/common/inc/
In file included from <built-in>:1:
/usr/local/lib/clang/6.0.1/include/__clang_cuda_runtime_wrapper.h:66:2: error: "Unsupported CUDA version!"
#error "Unsupported CUDA version!"

/usr/local/lib/clang/6.0.1/include/__clang_cuda_runtime_wrapper.h:148:10: fatal error: 'device_functions_decls.h' file not found
#include "device_functions_decls.h"
         ^~~~~~~~~~~~~~~~~~~~~~~~~~

error "Unsupported CUDA version!"

Unsupportedと言われてしまいました。
もしかしたらむりやりhipify-clangを/usr/binにinstallしたのが悪かったのかもしれません
CUDA Versionを8.0や7.5とか落とせば動くかもしれませんね

todo

プリコンパイル済みのLLVMとかを試して見る
可能ならCUDA versionとかを下げてみる

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1