GPU対応版のTensorFlowのインストールでいろいろ躓いたので、とりあえずうまくいった方法をまとめておきます
実施環境、バージョン
OS : Ubuntu16.04
GPU : GeForce GTX 1660Ti
CUDA : 10.1(TensorFlow2.1.0が対応するCUDAに合わせた)
cuDNN : 7.6.5(CUDA10.1に合わせた)
TensorFlow : 2.1.0
(以下おまけ)
TensorRT : 6.0.1(CUDA10.1に合わせた)
NCCL : 2.7.3(CUDA10.1に合わせた)
- python,pip等のインストールは他サイトを参考に実施ください
なおtensorflowインストール時、pipやsetuptoolsのバージョンが古いと怒られるので以下でバージョンアップしておくとよい
sudo pip3 install --upgrade pip -ignore-installed --user
sudo pip3 install setuptools
インストール対象のTensorFlow確認
https://www.tensorflow.org/install/source
上記ページの「テスト済みビルド構成」のGPU欄にて、
対象バージョンに対応するCUDAの(cuDNNも)バージョンを確認
CUDA Toolkitのインストール
※もしすでにCUDAが入っている場合は一旦削除
sudo apt purge cuda*
sudo apt purge nvidia-cuda-*
sudo apt purge libcud*
#cuDNNもここでアンインストールできるはず
sudo apt purge nccl*
#NCCLインストールしてた場合
https://developer.nvidia.com/cuda-downloads
公式から対象となるバージョンのCUDAをダウンロード
(旧バージョンは「Legacy Release」からダウンロード)
対象のページを辿っていくとインストール手順が表示されるので
それに従ってインストールすればよい
(ここではTensorFlow2.1.0に対応するためCUDA10.1)
完了後以下を.bashrcに記載
export PATH="/usr/local/cuda-10.1/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda/lib64:$LD_LIBRARY_PATH"
・設定再読み込み
source .bashrc
インストール後、以下のコマンドでNVIDIAドライバのバージョンと
CUDAのバージョンを確認可能
nvidia-smi
nvcc -V
軽く動作確認
任意の場所にサンプルコードコピー
cuda-install-samples-10.1.sh ./
場所移動
cd NVIDIA_CUDA-10.1_Samples
サンプルをコンパイル
make
以下に移動
cd 2_Graphics/volumeRender
サンプル実行
./volumeRender
以下が表示されればOK
cuDNNのインストール
https://developer.nvidia.com/rdp/cudnn-download
公式に従ってインストールすればOK
※ダウンロードにはDEVELOPER登録が必要です
アンケートは適当に回答すればOK
CUDAの対応バージョンのものをインストールする必要があるので注意
以下をそれぞれダウンロードしたら、この順にインストールする必要あり
cuDNN Runtime Library
cuDNN Developer Library
cuDNN Code Samples and User Guide #これは入れても入れなくてもどっちでもOK
- インストール後チェック
以下のコマンドを実行
cat /usr/include/cudnn.h | grep CUDNN_MAJOR -A 2
以下が表示されればOK
#define CUDNN_MAJOR 7
#define CUDNN_MINOR 6
#define CUDNN_PATCHLEVEL 0
--
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)
#include "driver_types.h"
- 軽く動作確認(サンプルダウンロードした場合)
任意の場所にサンプルをコピー(例はver7版の場合)
cp -r /usr/src/cudnn_samples_v7/ ./
以下に移動
cd cudnn_samples_v7/mnistCUDNN
サンプルをコンパイル
make
サンプル実行
./mnistCUDNN
以下が表示されればOK
Test passed!
TensorFlowのインストール
https://qiita.com/Orihasam/items/020d439d0aec2d90cd73
上記解説頂いているページに従ってコマンド入力すればOK...?
→なんかpipでscipyがuninstallできないみたいなエラーが出た
Cannot uninstall 'scipy'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
いろいろ調べたところ、結局以下のコマンドでインストールできた
TensorFlowのバージョン指定のところは自分のインストールしたいバージョンを指定
sudo pip3 install tensorflow-gpu==2.1.0 --ignore-installed --user
TensorFlowの動作確認
以下のpythonコードを実行してprint文が出るか確認
※なお以下のコードはtensorflow2.X以降で実行可能なコードです
import tensorflow as tf
testmsg = tf.constant('Hello, TensorFlow2 World!')
tf.print(testmsg)
実行後「Hello, TensorFlow2 World!」が表示されればOK
また以下のコマンドを実行して「device_type: "GPU"」があれば,tensorflowがGPUが認識できていることが確認できる.
python3 -c "from tensorflow.python.client import device_lib; print(device_lib.list_local_devices())"
なんとかこれで準備完了
(おまけ)
TensorFlowのバージョン確認
python3 -c 'import tensorflow as tf; print(tf.__version__)'
TensorRTのインストール
https://developer.nvidia.com/nvidia-tensorrt-download
上記から対象バージョンのものをダウンロード
※CUDAの対応バージョンのものをインストールする必要があるので注意
https://docs.nvidia.com/deeplearning/tensorrt/archives/
それぞれのバージョンごとのリリースノートのページで対応CUDAバージョンは確認できます
(Compatibility(互換性)の項)
https://docs.nvidia.com/deeplearning/tensorrt/archives/tensorrt-601/tensorrt-install-guide/index.html#installing
インストールは公式のインストールガイドページの記載に従えばOK
(上記リンクは6.0.1のインストールガイド(Ubuntuは4.1項参照))
NCCLのインストール(機械学習でGPUによる並列化をしたい場合)
https://developer.nvidia.com/nccl/nccl-download
上記から対象バージョンのものをダウンロード
※CUDAの対応バージョンのものをインストールする必要があるので注意
https://docs.nvidia.com/deeplearning/nccl/archives/
それぞれのバージョンごとのリリースノートのページで対応CUDAバージョンは確認できます
(Compatibility(互換性)の項)
https://docs.nvidia.com/deeplearning/nccl/archives/nccl_273/install-guide/index.html
インストールは公式のインストールガイドページの記載に従えばOK
(上記リンクは2.7.3のインストールガイド(Ubuntuは3.1項参照))
以上、おまけでした