はじめに
Quadro(P3200)を搭載したパソコンがあり、tensorflow-gpuの環境を構築しようとして調べたところ、あまり前例がなかったので、動作報告と備忘録を兼ねて方法を残しておきます。
この手順で入れ立てUbuntuからできると思います。
後から気づいたのですが、CondaやDockerを使った方が良いようなので、これから環境構築する方はご注意ください。
先にすること
まずは必要なパッケージのバージョンを確認します。今回はCUDA, libcudnn, tensorflow-gpuの3つで、tensorflowの公式にバージョン関係が表にされている。私がみた時点での状態は以下となっており、最上段のバージョンの各パッケージをインストールすることにした。

CUDAのインストール
"CUDA install"と調べて一番上に出てくる公式ページを開くとCUDA10.1
がインストールされてしまうので、注意が必要である。こちらからドライバをダウンロードしてきてインストールする。
コマンドラインからインストールしても良いのだが、open
をクリックしてUbuntu Software
を選択するとワンクリックでインストールすることができる。(ださいけど)
私の場合はCUDA10.1
を先にインストールしてしまったため、本記事下部に記載した方法でダウングレードしたらうまくいった。
libcudnnのインストール
"cudnn download"と調べて公式ページに入って"Archived cuDNN Releases"をクリックすることで、前のバージョンの一覧を確認・ダウンロードすることができるので、先ほど確認したcudnn7.4の中から、for CUDA10.0
と続いているものをダウンロード・インストールする。Archiveが表示されているページがこちら
コマンドラインからインストールしても良いのだが、open
をクリックしてUbuntu Software
を選択するとワンクリックでインストールすることができる。(ださいけど)
tensorflow-gpuのインストール
$ sudo pip3 install tensoflow-gpu
各種チェック方法
CUDAチェック
NVIDADRIVERとCUDAのバージョンが確認できるので便利である。
$ nvidia-smi
こちらに記載されていた。
import torch
print(torch.cuda.is_available())
GPUの識別チェック
こちらに記載されていた。
import torch
torch.cuda.get_device_name(0)
tensorflowが使用できるCPU,GPUチェック
こちらに記載されていた。
from tensorflow.python.client import device_lib
device_lib.list_local_devices()
この結果に、device_type: "GPU"
というワードが存在していれば、無事使える。
"device: XLA_GPU device"
というワードも出力されるのだが、こちらしかないGPUは動作しない(?)ようだ。
GPU動作チェック
確実に動作する画像処理機械学習プログラムを準備して実行する。その時、system monitor
を開いてCPUの使用率を確認したら、
- GPU:OK -> CPU:8~12%
- GPU:NG -> CPU:88~95%
となっており、GPUが動作していないとCPUが重くなる。
きちんとGPUが処理しているかを確かめたい場合は、新しくターミナルを開いて以下のスクリプトを走らせながらtensorflowプログラムを実行すると良いだろう。
while :
do
clear
nvidia-smi
sleep 1
done
プログラムの実行前後では、確認した範囲では
- 前:GPU-Util -> 0~5%
- 後:GPU-Util -> 66~88%
となっていた。
CUDAダウングレード
以下はこちらの引用である。
$ apt-get --purge remove "*cublas*" "cuda*"
$ reboot
$ wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-repo-ubuntu1804_10.0.130-1_amd64.deb
$ sudo dpkg -i cuda-repo-ubuntu1804_10.0.130-1_amd64.deb
$ sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
$ sudo apt install cuda-10-0
$ reboot
実際に私の場合これを実行することでGPUが動くようになったので、この方法で解決するのだろうが、自分の環境でnvidia-smi
をするとCUDA Version: 10.1
と出力されるので、謎である。
参考、URL
-
https://www.tensorflow.org/install/source#linux
- 対応バージョン表の確認
-
https://dmitry.ai/t/topic/33
- CUDAのダウングレード方法
-
https://qiita.com/peaceiris/items/21fb40964c875b91439f
- pytorch,tensorflowを用いてGPUのチェック方法
-
https://developer.nvidia.com/cuda-10.0-download-archive
- CUDAインストーラのダウンロード
-
https://developer.nvidia.com/rdp/cudnn-archive
- cuDNNインストーラのダウンロード