Ubuntu 16 / 18 に GTX 1080Ti / RTX2080 の ドライバとCUDAのインストール

# Overview
Ubuntu 16.04LTS版で，GTX-1080TiのドライバとCUDAのインストール．  

**2019/6/17 追記**  
Ubuntu 18.04 に `RTX2080` のドライバを入れようとした時，ちょっとやり方が変わったので・・・ [追記](#ubuntu-1804)

# Ubuntu 16.04

## Nouveauドライバの無効化
NVIDIAのグラフィックカードの場合，デフォルトでnouveauというドライバが使用されている．

```bash
lsmod | grep -i nouveau
```

NVIDIAのドライバと競合する恐れがあるので無効化しておく．
/etc/modprobe.d/blacklist-nouveau.confを作成し，以下の設定を記述する．

```bash
blacklist nouveau
options nouveau modeset=0
```
カーネルモジュールをblacklistに追加した後，再読み込み．

```bash
sudo update-initramfs -u
```
ここで再起動し，ディスプレイ解像度が落ちることでNouveauが無効化されることを確認する．

## GTX1080Tiのドライバをインストール
現在のaptのリポジトリでは，GTX1080Tiに対応した，nvidia-381が存在しないため．
aptのリポジトリに追加する．

```bash
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
```
ドライバのインストール

```bash
sudo apt install nvidia-381
```
ドライバが適応されたか確認する．

```bash
$ nvidia-smi
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 381.22                 Driver Version: 381.22                    |
|-------------------------------+----------------------+----------------------+
| 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  | 0000:01:00.0      On |                  N/A |
|  0%   32C    P8    14W / 275W |    270MiB / 11169MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
```

## CUDA9.0 のインストール

CUDA Download: https://developer.nvidia.com/cuda-downloads

```bash
sudo dpkg -i cuda-repo-ubuntu1404_7.5-18_amd64.deb
sudo apt update
sudo apt install cuda-9-0
```
以下の設定を``~/.bashrc``などに記述すると，CUDAライブラリが使用可能になる．

```bash
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda:$LD_LIBRARY_PATH
```
ここで再起動すると，CUDAとNVIDIAのドライバがインストールされるので，ディスプレイの解像度が向上．

これで，GPUが対応できた．

## CUDA-Toolkit のインストール
`nvcc`(バージョン確認)などの，コマンドが入ってるToolkitをインストール．

```bash
sudo apt install nvidia-cuda-toolkit
```

# Ubuntu 18.04
[Nouveauドライバの無効化](#nouveauドライバの無効化)までは同様に行いましょう．

## Cuda 10.0 install
Cuda10.0をインストールします．  
自分の場合は，これで`nvidia-smi`までインストールされて使えるようになりました．

```bash
$ wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-repo-ubuntu1804_10.1.105-1_amd64.deb
$ sudo dpkg -i cuda-repo-ubuntu1804_10.1.105-1_amd64.deb
$ sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
$ sudo apt update
$ sudo apt install cuda-10-1
```

[Cuda Tookit](#cuda-toolkit-%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB)も忘れずに入れておきましょう!!

## nvidia-driver をインストール
私の場合は，Cudaの時点で入ったのですが，単体で`nvidia-smi`を入れる場合．仕様が変わっていました．

まず，`ubuntu-driver`コマンドというもので，認識しているGPUの推奨ドライバを教えてくれる．

```bash
$ sudo apt install ubuntu-drivers-common
$ ubuntu-drivers devices

== /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/0000:02:10.0/0000:04:00.0 ==
modalias : pci:v000010DEd00001E07sv00001043sd0000866Abc03sc00i00
vendor   : NVIDIA Corporation
driver   : nvidia-driver-418 - third-party free recommended ←←←←
driver   : nvidia-driver-410 - third-party free
driver   : xserver-xorg-video-nouveau - distro free builtin
```
で，`nvidia-driver-418`が最新で，推奨なのでそれをインストールする．

**重要**  
この時，`nvidia-setting`を同時にインストールしないと，なんか上手く行かない．．． ので注意!!

```bash
$ sudo add-apt-repository ppa:graphics-drivers/ppa
$ sudo apt update
$ sudo apt install nvidia-418 nvidia-setting
```
ここで**再起動**．

```bash
$ nvidia-smi

Thu Dec 20 11:14:23 2018
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 410.79       Driver Version: 410.79       CUDA Version: 10.0     |
|-------------------------------+----------------------+----------------------+
| 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 1060    Off  | 00000000:01:00.0 Off |                  N/A |
| N/A   39C    P0    26W /  N/A |      0MiB /  3019MiB |      5%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+
```