CUDA9.1/9.0はTensorflowに対応していないのではないか?と話題になっていますが、
海外のデベロッパサイトを通じ調べたところ実は簡単に入れることができる!ということを知り、 ぜひみなさんに使っていただきたいと思い、備忘録として残しておきます。
なぜ、私が、ここまでして実装したかというと、使っているGPUがRyzen7のため、CUDA9.1/9.0でないと性能が発揮できないからです。
他のGPUにおいても、本当にCUDA9.1/9.0はアルゴリズムが改良されて、計算速度が早いのでぜひオススメです!
ある場所ではrootで入らなければ行けなかったり、CUDA9.1ゆえのトラブル(なぜかファイルが移動している)があり少々手間取りますが、必ず導入はできますので最後までお付き合いください。
※CUDA9.0をインストールする場合は、⑳を飛ばしてください。
※最新版Ubuntu17.04にて実装済み
①まずpyenvの必要なモジュールをインストール(すべてを1行で)する。
sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev libpng-dev
②pyenvをgitからcloneをする。
git clone git://github.com/yyuu/pyenv.git ~/.pyenv
③そしてプラグインもcloneする。(すべてを1行で)
git clone https://github.com/yyuu/pyenv-pip-rehash.git ~/.pyenv/plugins/pyenv-pip-rehash
④Pathを通す。
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc echo 'eval "$(pyenv init -)"' >> ~/.bashrc source ~/.bashrc
⑤Anacondaの最新版をチェック
pyenv install -l | grep anaconda3
⑥私の場合は、anaconda3-5.0.1でしたのでインストールする。
pyenv install anaconda3-5.0.1
⑦グローバルも忘れずに。
pyenv global anaconda3-5.0.1
⑧Pathを通す。
echo 'export PATH="$PYENV_ROOT/versions/anaconda3-5.0.1/bin:$PATH"' >> ~/.bashrc source ~/.bashrc
⑨python3が動くか確認
python
⑩Anacondaの環境の中に、python2.7も導入する。
conda create -n py27 python=2.7 anaconda source activate py27
⑪python2.7が動くか確認
python
⑫Anacondaの環境から出ます。
source deactivate
⑬念の為、今までインストールしたものをアップデート
conda update -y conda pip install --upgrade pip
⑭いよいよCUDAをインストールする。
sudo dpkg -i cuda-repo-ubuntu1704-9-1-local_9.1.85-1_amd64.deb sudo apt-key add /var/cuda-repo-9-1-local/7fa2af80.pub sudo apt-get update sudo apt-get install cuda
⑮cuDNNをインストールする。(すべてを1行で) ※Runtime LibraryとDeveloper Libraryの2つ。
sudo dpkg -i libcudnn7_7.0.5.15-1+cuda9.1_amd64.deb libcudnn7-dev_7.0.5.15-1+cuda9.1_amd64.deb
⑯bazelをダウンロードした後、インストールする。 ※bazel-0.7.0推奨
chmod +x bazel-0.7.0-installer-linux-x86_64.sh ./bazel-0.7.0-installer-linux-x86_64.sh --user export PATH="$PATH:$HOME/bin"
⑰bazelが起動するか確認。
bazel
⑱GPUが認識されているか確認。(動かなければ再起動)
nvidia-smi
⑲tensorflowをcloneする。 ※GPUを使いますか?の質問以外は、Noを答える。
sudo apt-get install libcupti-dev git clone https://github.com/tensorflow/tensorflow cd tensorflow git checkout r1.4 ./configure
⑳いよいよですが、buildする前に、CUDA9.1のシンボリックをルートで書き換える。(すべてを1行で)
root# ln -s /usr/local/cuda/include/crt/math_functions.hpp /usr/local/cuda/include/math_functions.hpp
㉑buildする。(すべてを1行で)
bazel build -c opt --copt=-march="haswell" --config=cuda //tensorflow/tools/pip_package:build_pip_package
㉒buildもあと少し。
bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg ls /tmp/tensorflow_pkg
㉓そしてtensorflowをインストールする。
pip install /tmp/tensorflow_pkg/tensorflow-1.4.1-cp36-cp36m-linux_x86_64.whl
㉔Kerasをインストールする。
pip install keras
以上でインストールは終わりになります。 あとは、再起動をした後、コマンドプロンプトで
python
>>> import tensorflow as tf >>> hello = tf.constant('Hello, TensorFlow!') >>> sess = tf.Session() >>> print(sess.run(hello)) Hello, TensorFlow!
と表示されれば、インストールは完了です。 快適なDeep learningを楽しみましょう。お疲れ様でした。
参考にさせていただいたサイト
【随時更新】pyenv + Anaconda (Ubuntu 16.04 LTS) で機械学習のPython開発環境をオールインワンで整える | ALGO GEEKS
Build from source | TensorFlow
以上、ありがとうございました。