はじめに
深層学習プログラムをGPUで実行するために必要な, NVIDIA DriverとCUDA ToolkitとcuDNNのインストールを行う.
環境
- OS: Ubuntu 18.04
- GPU: Nvidia Geforce GTX960
1. Nvidiaドライバのインストール
公式サイトからドライバを検索し, ダウンロード. 自分の場合はNVIDIA-Linux-x86_64-430.50.run
を入れた.
実行権限を与えてインストール
cd Downloads/
chmod +x NVIDIA-Linux-x86_64-430.50.run
sudo ./NVIDIA-Linux-x86_64-430.50.run --no-x-check
ここで, デフォルトのドライバnouveauと競合していると怒られる
lsmodで確認すると…
lsmod | grep nouveau
まだnouveauが無効化されていないことが分かる.
更新して再起動.
sudo update-initramfs -u
reboot
恐らくここで2通りに分かれる.
- 上手く再起動できて, nouveauが無効化されていることが確認できる人は, 再度
sudo ./NVIDIA-Linux-x86_64-430.50.run --no-x-check
を実行して再起動. - ドライバを無効にしたせいで画面真っ暗な人は, リカバリーモードを起動(参考URL)し, rootでshellに入って
sudo ./NVIDIA-Linux-x86_64-430.50.run --no-x-check
を実行して再起動.
nvidia-smi
が通ることを確認して完了.
2. CUDA Toolkitのインストール
こちらからダウンロード. バージョン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のインストール
こちらから会員登録後, ダウンロード.
「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
- CUDA Toolkit 8.0 をUbuntu Server16.04LTSへインストールしようとすると、Nouveauカーネルドライバが邪魔と言われ、失敗する
- 自作PCにUbuntu16.04 LTS、NVIDIAドライバ、CUDA9.0、cuDNN 7.1をインストール(ディープラーニング用)
- Ubuntu 16.04 をインストールして NVIDIAドライバ (410.48)と CUDA10.0 と cuDNN7.4.1 を入れて Tensorflow-gpu を動かすメモ