Ubuntu 16.04にGTX 1080Tiドライバをインストール


# 0.環境
Ubuntu 16.04 LTS
NVIDIA GTX 1080Ti
DAIV-DGZ510

# 1.nouveauドライバの確認
コミュニティ製のnouveauドライバが存在するかを確認。

```
$ dmesg | grep -i nouveau
```

~~私の環境は、入っていませんでした。~~
勘違いでした。回避していたようです。
※以下、追記(2018/03/17)します。

noveauドライバが存在するかを確認する。

```
$ lsmod | grep -i nouveau
nouveau              1650688  1
mxm_wmi                16384  1 nouveau
ttm                    94208  1 nouveau
i2c_algo_bit           16384  2 nouveau,i915
drm_kms_helper        167936  2 nouveau,i915
drm                   360448  9 nouveau,i915,ttm,drm_kms_helper
wmi                    24576  2 mxm_wmi,nouveau
video                  40960  2 nouveau,i915


```
nouveauドライバが入っていると競合してしまうので無効化する必要があります。

「/etc/modprobe.d/blacklist-nouveau.conf」という名前でファイルを作成、以下の内容を記述します。

```
blacklist nouveau
options nouveau modeset=0
```

その後、以下のコマンドでinitramfsをアップデート、再起動で完了です。

```
$ sudo update-initramfs -u
```

```
$ sudo reboot
```

# 2.GTX 1080Ti対応ドライバのバージョン

2018/03/03時点でCUDAの最新バージョンは、9.1となっています。
TensorFlowの最新バージョンは、1.6.0です。
TensorFlowのリリースノートを見ると、既知のバグがあり、それがCUDA 9.1に起因するような[記述](https://github.com/tensorflow/tensorflow/releases/tag/v1.6.0)がありました（もしかしたら、この時点で解決済みかも？）ので、CUDA 8.0をインストールすることにしました。
そこで、こちらの[ページ](http://www.4gamer.net/games/022/G002210/20170924019/)の情報より、CUDA 8.0に対応したドライバ（nvidia-387）をインストールしました。

# 3.リポジトリ追加とアップデート
どうも標準のリポジトリには古いものしかない（？）ようなので、リポジトリを追加・アップデートします。

```
$ sudo add-apt-repository ppa:graphics-drivers/ppa
$ sudo apt update
```

尚、以下のコマンドを入力することで、サポートされるドライバを調べられます。

```
$ apt search "^nvidia-[0-9]{3}$"
```

# 4.ドライバのインストール

nvidia-387ドライバをインストールします。
インストールが完了したらリブートが必要（確か？）です。

```
$ sudo apt install nvidia-387
```

アンインストールしたい場合は、以下のコマンドとなります。

```
$ sudo apt-get --purge remove nvidia-3*
```

# 5.確認
nvidia-smiコマンドでGTX 1080Tiが認識されていることを確認します。

```
$ nvidia-smi
Sat Mar  3 22:10:17 2018       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 387.34                 Driver Version: 387.34                    |
|-------------------------------+----------------------+----------------------+
| 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 GTX 108...  Off  | 00000000:01:00.0 Off |                  N/A |
| 23%   37C    P8    13W / 250W |    502MiB / 11172MiB |      5%      Default |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0      1227      G   /usr/lib/xorg/Xorg                           312MiB |
|    0      1889      G   compiz                                        97MiB |
|    0      2233      G   ...-token=532F1718A85672DA26673917C31FD9C6    89MiB |
+-----------------------------------------------------------------------------+
```

以上です。CUDAのインストールについては、別途投稿予定です。
nvidia-dockerでDNN環境を構築しようかと考えてます…