はじめに
前提条件
・本記事は前記事の続き
・前記事にて、GTX1080tiを搭載したPCに、DUCAとcuDNNをインストール済み
今回やること
・Tensorflow-GPUをインストールして、MNISTのサンプルを実行してみる
バージョン
・DUCA9.0
・cuDNN7.4.1
・Tensorflow1.12.0
※Tensorflow-gpuのサポートが、現状ではCUDA9/cuDNN7までであったため
参考:https://www.tensorflow.org/install/source#common_installation_problems
Tensorflow-GPUのインストール手順
それでは、前記事にてインストールしたCUDAとcuDNNの動作確認として、Tensorflow-GPUでMNISTのサンプルを実行してみたいと思います。
まずはTensorflow-GPUのインストールからです。
pipのインストール
手始めに、pipとpip3をインストールしておきます。
sudo apt-get install python-pip python3-pip
libcupti-devのインストール
どうやらlibcuptiなるものが必要らしいので、これもインストールしておきます。
sudo apt-get install libcupti-dev
仮想環境の構築
venvを使用して、Tensorflow-GPU用の仮想環境を構築します。
ここにTensorflow-GPUをインストールしていきます。
基本は以下のコマンドでOKです。
※この場合はnameという名前のPython3系環境を構築しています。
python3 -m venv <name>
activateは以下のコマンドで行います。
. <name>/bin/activate
deactivateは以下のコマンドです。
deactivate
Tensorflow-GPUのインストール
先ほど作成した仮想環境に入り、Tensorflow-GPUをインストールします。
. <name>/bin/activate
pip3 install tensorflow-gpu
※途中で「Failed building wheel for ...」なるものが出ましたが、最後は「Successfully」したみたいなので、何とかインストールできたっぽい?(ちなみにsudoだと何も出なかったはず、、、)
インストールできたかどうか、importして確認します。
python
import tensorflow
エラーが表示されなければインストール成功です。
Tensorflow-GPUでGPUが反映されているかチェック
ついでに、GPUが上手く反映されているか、下記のコードを実行することで確認をしてみましょう。
import tensorflow
tensorflow.test.gpu_device_name()
最後の方に「'/device:GPU:0'」が表示されればOKのようです。
また、別の方法として、以下のコードでも検証できます。
参考:https://qiita.com/sabaku20XX/items/7c9a04fdffecee27f163
from tensorflow.python.client import device_lib
device_lib.list_local_devices()
「device_type: "GPU"」があればOKのようです。(CPUだけだとアウト。)
MNISTサンプルの実行手順
次に、Tensorflow-GPU環境下で、tensorflowのMNISTサンプルを実行してみます。
Gitのインストール
tensorflowのMNISTサンプルはGitHubのリポジトリから取得してきます。
よって、Gitがインストールされていない場合、下記コマンドでインストールしておきます。
sudo apt-get install git
GitHubからtensorflowをClone
GitHubより、tensorflowのリポジトリをCloneしてきます。
git clone https://github.com/tensorflow/tensorflow.git
MNISTサンプルのコードを実行
MNISTサンプルがある場所まで移動し、プログラムを実行します。
cd tensorflow/tensorflow/examples/tutorials/mnist
python mnist_with_summaries.py
ここで、自分の環境だと下記のようなエラーが出て止まってしまいました。
Couldn't open CUDA library libcupti.so.9.0 ...
どうやら先ほどインストールしたlibcuptiが上手く参照できていないようなので、下記サイトを参考にパスを通します。(.bashrcの$LD_LIBRARY_PATHを以下のように書き換えます。)
参考:http://hirotaka-hachiya.hatenablog.com/entry/2017/02/28/223844
export $LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:/usr/local/cuda-9.0/extras/CUPTI/lib64$LD_LIBRARY_PATH
※本来はlib64と$の間に:を入れるべきなはずですが、下記コマンドでパスを確認したとき、変な場所に:が入っていたため、:をなくすとイイ感じになりました。
echo $LD_LIBRARY_PATH
以上の方法でパスを通し、再度「mnist_with_summaries.py」を実行すると、エラーで止まらず無事にプログラムが終了しました。
GPUのパフォーマンスチェック
最後に、GPUのパフォーマンスをチェックするコードを公開されている方がいたため、参考に乗せておきます。
参考:https://www.kaggle.com/getting-started/47096#post271139
このプログラムを実行した結果、CPUよりもGPUの方が速いことが確認できました。
以上で、Tensorflow-GPUのインストールとMNISTサンプルを用いた動作テストは終了です。
お疲れ様でした!