Begin Again

Begin Again

technology

TensorFlow-2.0.0 GPU環境の構築 on Ubuntu

はじめに

f:id:Orihasam810:20200815153727p:plain
画像引用元:https://www.tensorflow.org/

Tensorflow 2.0.0がリリースされkerasと統合されるなど、ますます便利になった。
そこで、Ubuntu18.04LTSにGPU版のTensorflow 2.0.0を導入するために必要な、GPUドライバのインストールからCUDA、cuDNNのインストール、Tensorflow 2.0.0-gpuのインストールまでの手順を書いていく。
同様の記事をQiitaにも投稿していたが、Qiitaを退会したためこちらに書いておく。

環境

OS:Ubuntu 18.04 LTS GPU:nvidia Geforce GTX1660

GPUドライバのインストール

・パッケージ情報を更新する
パッケージのリポジトリから、パッケージ名、バージョン、依存関係を取得する。

$ sudo apt update

・パッケージの更新
念の為、パッケージを更新しておく。

$ sudo apt upgrade

・利用可能なドライバ一覧を表示

$ ubuntu-drivers devices

GTX1660では以下のような結果が表示された。

== /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 ==
modalias : pci:v000010DEd00002184sv00001462sd00008D91bc03sc00i00
vendor   : NVIDIA Corporation
driver   : nvidia-driver-435 - distro non-free recommended
driver   : nvidia-driver-430 - distro non-free
driver   : xserver-xorg-video-nouveau - distro free builtin

推奨ドライバであるnvidia-driver-435をインストールする。

・ドライバのインストール

$ sudo apt install nvidia-driver-435

・再起動

$ sudo reboot

再起動することでインストールしたドライバを有効化させる。

CUDAのインストール

・CUDA Toolkitのダウンロード
Tensorflow2.0.0が対応しているCUDA-10.0をインストールする。
下のnvidiaのページからCUDA Toolkit 10.0の.runファイルをダウンロードする。

developer.nvidia.com

f:id:Orihasam810:20200815154203p:plain
出典:https://developer.nvidia.com/cuda-10.0-download-archive
・CUDA Toolkitのインストール
CUDAをインストールするには、Base Installerをダウンロードして、インストールする必要がある。
今回はPatchもあるため、Base InstallerとPatchをダウンロードた後、Base InstallerとPatchを保存したディレクトリに移動する。

$ cd 保存したディレクトリ

まずBase Installerを実行する。

/保存したディレクトリ$ sudo sh cuda_10.0.130_410.48_linux.run

Dキーを押して先に進み、質問に答える。今回はドライバは先にインストールしているため、ドライバのインストールはnoにする。CUDAのサンプルが必要であれば最後の質問をyesにする。

-----------------
Do you accept the previously read EULA?
accept/decline/quit: accept

Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 410.48?
(y)es/(n)o/(q)uit: n

Install the CUDA 10.0 Toolkit?
(y)es/(n)o/(q)uit: y

Enter Toolkit Location
 [ default is /usr/local/cuda-10.0 ]: /usr/local/cuda-10.0

Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: y

Install the CUDA 10.0 Samples?
(y)es/(n)o/(q)uit: n

===========
= Summary =
===========

Driver:   Not Selected
Toolkit:  Installed in /usr/local/cuda-10.0
Samples:  Not Selected

次にPatchをインストールする。

/¥保存したディレクトリ$ sudo sh cuda_10.0.130.1_linux.run

こちらも先程と同様、Dキーを押して先に進み、質問に答える。

Do you accept the previously read EULA?
accept/decline/quit: accept    

Enter CUDA Toolkit installation directory
 [ default is /usr/local/cuda-10.0 ]: /usr/local/cuda-10.0

Installation complete!
Installation directory: /usr/local/cuda-10.0

・CUDAのPATHを通す
以下のコマンドを入力する。

$ echo -e "\n## CUDA and cuDNN PATHS" >> ~/.bashrc
$ echo "export PATH=/usr/local/cuda-10.0/bin:${PATH}" >> ~/.bashrc
$ echo "export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64:${LD_LIBRARY_PATH}" >> ~/.bashrc
$ source ~/.bashrc

・CUDAインストールの確認
以下のコマンドのCUDAが正しくインストールされたか確認する。

$ nvcc -V

結果

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2018 NVIDIA Corporation
Built on Sat_Aug_25_21:08:01_CDT_2018
Cuda compilation tools, release 10.0, V10.0.130

CUDA10.0がインストールできていることが確認できる。

cuDNNのインストール

・cuDNNのインストール
Tensorflow2.0.0が対応しているcuDNN7.6をインストールする。
下のnvidiaのページからcuDNN7.6の.debファイルをダウンロードする。なおダウンロードには会員登録が必要。

developer.nvidia.com

f:id:Orihasam810:20200815154448p:plain
出典:https://developer.nvidia.com/rdp/cudnn-archive
cuDNN Runtime Library for Ubuntu18.04 (Deb)と、cuDNN Developer Library for Ubuntu18.04 (Deb)の両方をダウンロードした後、保存したディレクトリに移動する。

$ cd 保存したディレクトリ

まずランタイムライブラリをインストールする。

/保存したディレクトリ$ sudo dpkg -i libcudnn7_7.6.0.64-1+cuda10.0_amd64.deb

次にディベロッパーライブラリをインストールする。

/保存したディレクトリ$ sudo dpkg -i libcudnn7-dev_7.6.0.64-1+cuda10.0_amd64.deb

・cuDNNインストールの確認
次のコマンドを入力する

$ cat /usr/include/cudnn.h | grep CUDNN_MAJOR -A 2

結果

#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"

上のように表示されればcuDNNは正常にインストールされている。

Tensorflowのインストール

Tensorflowをインストールするためにpipを導入する。最新版のpipがすでにインストールされている環境の場合、curlとpipのインストールは飛ばしてよい。 curlコマンドのインストール
URLを指定してWEB上のファイルをインストールできるcurlコマンドをインストールする。

$ sudo apt install curl

・pipのインストール
pipがインストールされていない場合、Pythonのパッケージ管理ツールpipをインストールする。Ubuntu18.04LTSを最小構成でインストールしていた場合は、Python2系はインストールされていないためpip3を導入する必要がない。Tensorflow2.0.0をインストールするためにはpipが最新のバージョンである必要があるのだが、Python2の環境がPython3の環境と共存していると、aptでインストールしたpip3をpip3でアップデートした後にエラーが起こるため、Python3のみの環境でTensorflowのインストールをしたほうが手軽。
以下のコマンドでpipをインストールするためのPythonコードをダウンロードし、プログラムを実行する。

$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
$ sudo python3 get-pip.py

これでpipのインストールは完了。
・pipのバージョン確認
下のコマンドでpipのバージョンを確認できる。

$ pip -V
pip 19.3.1 from /usr/local/lib/python3.6/dist-packages/pip (python 3.6)

pipのバージョンが19.0未満の場合tensorflow-2.0.0をpip installすることができないためアップグレードする。

$ pip install --upgrade pip

・Tensorflow2.0.0-GPUのインストール
Tensorflow2.0.0-GPUをインストールする。
以下のコマンドを入力。

$ pip install tensorflow-gpu==2.0.0

以上でtensorflow-gpu==2.0.0のインストールが完了する。

お疲れ様でした!!
楽しいTensorflow2.0.0-GPU lifeを送ってください!