Ubuntu 18.04へNVIDIA driver+CUDA Toolkit+cuDNNをインストール

# はじめに
深層学習プログラムをGPUで実行するために必要な, NVIDIA DriverとCUDA ToolkitとcuDNNのインストールを行う.

# 環境
- OS: Ubuntu 18.04
- GPU: Nvidia Geforce GTX960

## 1. Nvidiaドライバのインストール
[公式サイト](https://www.nvidia.co.jp/Download/index.aspx?lang=jp)からドライバを検索し, ダウンロード. 自分の場合は`NVIDIA-Linux-x86_64-430.50.run`を入れた. 

実行権限を与えてインストール

```shell
cd Downloads/
chmod +x NVIDIA-Linux-x86_64-430.50.run
sudo ./NVIDIA-Linux-x86_64-430.50.run --no-x-check
```

ここで, デフォルトのドライバnouveauと競合していると怒られる
![Screenshot from 2019-11-04 22-10-03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/415290/aff70014-76cd-d5d0-23b6-776cbf5a7d47.png)

言う通りに進めると, 失敗する
![Screenshot from 2019-11-04 22-13-26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/415290/756ee9ae-cef8-a2ba-cbf0-0821cd439b47.png)

lsmodで確認すると…

```
lsmod | grep nouveau
```
![Screenshot from 2019-11-04 23-27-19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/415290/fdaf9d69-64a1-e565-5e86-d31d50e4fef0.png)

まだnouveauが無効化されていないことが分かる. 
更新して再起動.

```
sudo update-initramfs -u
reboot
```

恐らくここで2通りに分かれる. 

- 上手く再起動できて, nouveauが無効化されていることが確認できる人は, 再度`sudo ./NVIDIA-Linux-x86_64-430.50.run --no-x-check`を実行して再起動. 
- ドライバを無効にしたせいで画面真っ暗な人は, リカバリーモードを起動([参考URL](https://tkzo.jp/blog/how-to-startup-ubuntu-with-recovery-mode/))し, rootでshellに入って`sudo ./NVIDIA-Linux-x86_64-430.50.run --no-x-check`を実行して再起動. 

```
nvidia-smi
```
が通ることを確認して完了. 

## 2. CUDA Toolkitのインストール
[こちら](https://developer.nvidia.com/cuda-toolkit-archive)からダウンロード. バージョン10.0のdev(local)を選択した. 

インストール.

```
cd Downloads/
sudo dpkg -i cuda-repo-ubuntu1804-10-0-local-10.0.130-410.48_1.0-1_amd64.deb
sudo apt-key add /var/cuda-repo-10-0-local-10.0.130-410.48/7fa2af80.pub
sudo apt-get update
sudo apt-get install cuda-toolkit-10-0
```
パスを通す.

```
echo -e "# cuda paths" >> ~/.bash_profile
echo 'export PATH="/usr/local/cuda-10.0/bin${PATH:+:${PATH}}"' >> ~/.bash_profile
echo 'export LD_LIBRARY_PATH="/usr/local/cuda-10.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}"' >> ~/.bash_profile
source ~/.bashrc
```

次のコマンドでcudaのバージョンが確認出来れば完了.

```
nvcc -V
```

## 3. cuDNNのインストール
[こちら](https://developer.nvidia.com/cudnn)から会員登録後, ダウンロード. 
「cuDNN Runtime Library for Ubuntu18.04 (Deb)」,「cuDNN Developer Library for Ubuntu18.04 (Deb)」,「cuDNN Code Samples and User Guide for Ubuntu18.04 (Deb)」の3つをダウンロードしてきて,

```
sudo dpkg -i libcudnn7_7.4.2.24-1+cuda10.0_amd64.deb
sudo dpkg -i libcudnn7-dev_7.4.2.24-1+cuda10.0_amd64.deb
sudo dpkg -i libcudnn7-doc_7.4.2.24-1+cuda10.0_amd64.deb
```

完了.


# 参考サイト
- [How To Install Nvidia Drivers and CUDA-10.0 for RTX 2080 Ti GPU on Ubuntu-16.04/18.04](https://medium.com/better-programming/how-to-install-nvidia-drivers-and-cuda-10-0-for-rtx-2080-ti-gpu-on-ubuntu-16-04-18-04-ce32e4edf1c0)
- [CUDA Toolkit 8.0 をUbuntu Server16.04LTSへインストールしようとすると、Nouveauカーネルドライバが邪魔と言われ、失敗する](https://fight-tsk.blogspot.com/2016/12/cuda-toolkit-80-ubuntu.html)
- [自作PCにUbuntu16.04 LTS、NVIDIAドライバ、CUDA9.0、cuDNN 7.1をインストール（ディープラーニング用）](https://qiita.com/min9813/items/90a1ef62b3dc37d0cc33#cuda-toolkit-90-%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB)
- [Ubuntu 16.04 をインストールして NVIDIAドライバ (410.48)と CUDA10.0 と cuDNN7.4.1 を入れて Tensorflow-gpu を動かすメモ](https://qiita.com/konzo_/items/3e2d1d7480f7ef632603)