Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

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とかを下げてみる

T_keigo_wwk
記事の多くはメモ、当方での動作検証結果がメインで現時点での再現性を保証するものではありません。 引用する際は引用先を明示して行うよう心がけておりますが抜けている箇所、事実と異なるや技術的問題等ある箇所がありましたら御一報ください
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした