Ubuntu18.04 RTX 2060 SuperでTensorflow

Nvidia RTX2060 Superは2019.7に出たばかりですが、Tensorflowが出来そうなので導入してみました。

導入はUbuntu18.04 + Anaconda環境になります。
Tensorflow とCUDAのバージョンはクリティカルで、考えて入れないと色々な問題が出ます。

・まずはNvidia のドライバー　ppaでない普通の方を入れました。
Nvidia公式サイトからドライバを探します。
https://www.nvidia.com/Download/index.aspx?lang=en 

RTX 2060 Super = 430.40　　2019.7.29付け
リポジトリのバージョンを確認後にインストール

```Terminal
apt search nvidia-driver-430
sudo apt -y install nvidia-driver-430
```
として導入。(バージョンは430.26でした)

・Anacondaのインストール
公式サイトからLinux Python 3.7版を落とし、通常ユーザーで入れます。
https://www.anaconda.com/ 

```Terminal
cd Downloads
bash Anaconda3-2019.07-Linux-x86_64.sh 
```

・ライセンスに合意
・インストール先の確認
・Anaconda3をイニシャライズしますか　=>Yes

~/.bashrcに環境設定のスクリプトが入り、ログイン時にanacondaが起動した状態です。

```Terminal
(base) ccsj@alice:~$ 
```

抜けるには、conda deactivate とすればOK。conda activateすれば戻ります。

```Terminal
(base) ccsj@alice:~$ conda deactivate
ccsj@alice:~$ conda activate
(base) ccsj@alice:~$ 
```

☆Tensorflow-gpu　Keras-gpuのインストール
注意点としては、Kerasの公式サンプルはCUDA 10.0ベースだそうなので、サンプルの動作確認をしたければTensorflowもバージョン合わせないとなりません。

ちなみにTensorflow-gpuをバージョン指定なしにインストールすると下記が入り、KerasのサンプルでCUPTI errorとなりました。
　tensorflow-gpu 1.14.0　python 3.7.4　cuda 10.1.1


・Tensorflow日本語公式ページからCuda10.0に合うバージョンを探します。
https://www.tensorflow.org/install/source

　tensorflow_gpu-1.13.1　python 3.3-3.6　cuda 10.0

下のほうの表によると、CUDA 10.0をサポートしてるのは、tensorflow_gpu-1.13.1
Nvida公式サイトからそのバージョンで動くNvidaドライバを確認します。
https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html

　CUDA 10.0.130　 >= 410.48　ドライバが古ければ更新しておきます。

各バージョンの確認が出来たところで、インストールとなりますが、pythonのバージョンも下がるのでAnaconda直下には入れず、仮想環境側へインストールします。

```Terminal
(base) ccsj@alice:~$ conda create -n tf13 tensorflow-gpu=1.13  keras-gpu python=3.6 
```
他にも色々入りますがcondaはバージョン間のすり合わせまでしてくれるので楽チンです。

さてtensorflowのサンプルはgithubから落としてきます。
WebサーバーみたいなDocument Rootが有るわけでは無く、ソースの場所は仮想環境側でなくともOKなようで、お試しとして　~/Documentに入れてみました。

```Terminal
cd Document
git clone https://github.com/tensorflow/tensorflow.git
```

仮想環境をactivateし、Kerasのサンプルを実行。

```Terminal
(base) ccsj@alice:~$ conda activate tf13
(tf13) ccsj@alice:~$
```

落としておいたサンプルへは、(tf13)がアクティブなまま移動しますが、長くなるのでコマンド部分だけ記します。

```Terminal
cd ~/Documents/tensorflow/tensorflow/examples/tutorials/mnist
python mnist_with_summaries.py
```

・ちなみにTenrosflow公式ページのチュートリアルの結果は
https://www.tensorflow.org/tutorials?hl=ja

```Terminal
60000/60000 [==============================] - 3s 50us/sample - loss: 0.2211 - acc: 0.9353
Epoch 2/5
60000/60000 [==============================] - 3s 45us/sample - loss: 0.0970 - acc: 0.9702
Epoch 3/5
60000/60000 [==============================] - 3s 45us/sample - loss: 0.0679 - acc: 0.9787
Epoch 4/5
60000/60000 [==============================] - 3s 45us/sample - loss: 0.0541 - acc: 0.9824
Epoch 5/5
60000/60000 [==============================] - 3s 45us/sample - loss: 0.0421 - acc: 0.9869
10000/10000 [==============================] - 0s 24us/sample - loss: 0.0668 - acc: 0.9803
```

めでたし、めでたし。
nvidia-smi -l 1　で別コンソールで負荷を見ていると35%程度となってました。
GPU名がちょん切れているのはご愛嬌？

```Terminal
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0      1191      G   /usr/lib/xorg/Xorg                            30MiB |
|    0      1291      G   /usr/bin/gnome-shell                          58MiB |
|    0      1602      G   /usr/lib/xorg/Xorg                           322MiB |
|    0      1749      G   /usr/bin/gnome-shell                          33MiB |
|    0      4462      C   python                                      7325MiB |
+-----------------------------------------------------------------------------+
Thu Aug 22 01:36:46 2019       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 430.26       Driver Version: 430.26       CUDA Version: 10.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce RTX 206...  Off  | 00000000:01:00.0  On |                  N/A |
| 32%   48C    P2    48W / 175W |   7783MiB /  7979MiB |     35%      Default |
+-------------------------------+----------------------+----------------------+
```