ホリケン's diary

趣味はでぃーぷらーにんぐ

Ubuntu16.04LTSのGPU用環境構築

家のパソコンのOSを再インストールし、環境構築を1からやったのでその備忘録を。。。

スペック
- GeForce1080
- Ubuntu16.04LTS

目次
- 初期エラー
- nvidiaドライバーのインストール
- CUDA9.1のインストール
- cuDNNv7.0のインストール
- python3.6のインストール


* 初期エラー

初期時に発見したエラーがいくつかあったので記載する。
1. ネットワーク回線が頻繁に切れる
これは、調べたところDNSの場所が設定できていなことが原因でおきるエラーで'/etc/network/interfaces'に

dns-nameservers 8.8.8.8

と追記したことで解決した。



* nvidiaドライバーのインストール

まず、デフォルトで入っているドライバーのnouveauを無効化する。
’/etc/modprobe.d/blacklist-nouveau.conf’ファイルを新しく作り、そこに

blacklist nouveau
options nouveau modeset=0

と書き込むその後、'sudo update-initramfs -u'をうち無効化させる。 nvidiaの公式サイトから自分のgpuに合うドライバーのversionを確認し以下によりインストールを行う。

sudo add-apt-repository ppa:xorg-edgers/ppa
sudo apt update
sudo apt install nvidia-384

これで'reboot'し、'nvidia-smi"を打つことでドライバーが認識されていることが確認された。



* CUDA9.1のインストール

CUDAの最新は9.2だがPyTorchの公式サイトを見ると9.1までしかサポートされていない(?)とのことだったので、CUDA9.1をインストールをする。
公式サイトからdeb(network)をダウンロード。

sudo dpkg -i cuda-repo-ubuntu1604_9.1.*_amd64.deb
sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub
sudo apt update
sudo apt install cuda-9-1

によりCUDA9.1のインストールは完了。PATHの設定も必要なので

echo -e "\n## CUDA and cuDNN paths"  >> ~/.bashrc
echo 'export PATH=/usr/local/cuda-9.1/bin:${PATH}' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-9.1/lib64:${LD_LIBRARY_PATH}' >> ~/.bashrc
source ~/.bashrc

とターミナル上で行う。



* cuDNNv7.0のインストール

nvidia-developersの'~for cuda9.1'のところから以下の三つのファイルをダウンロードしてくる。 「cuDNN v7.0.5 Runtime Library for Ubuntu16.04 (Deb), cuDNN v7.0.5 Developer Library for Ubuntu16.04 (Deb), cuDNN v7.0.5 Code Samples and User Guide for Ubuntu16.04 (Deb)」そして、

sudo dpkg -i libcudnn7_7.0*+cuda9.1_amd64.deb
sudo dpkg -i libcudnn7-dev_7.0*+cuda9.1_amd64.deb
sudo dpkg -i libcudnn7-doc_7.0*+cuda9.1_amd64.deb 

により展開する。これでcuDNNのインストールは完了。



* python3.6のインストール

Ubuntu16.04にはデフォルトでpython3.5が入っているが、基本的にpython3.6で開発を行うのでインストールを行う。

# Install python3.6
sudo add-apt-repository ppa:jonathonf/python-3.6
sudo apt-get update
sudo apt-get install python3.6 python3.6-dev

# Install pip3
wget http://bootstrap.pypa.io/get-pip.py
sudo python3.6 get-pip.py

これで'python3.6'と打つことで起動する。しかしこのままではpython3で読み出されるのがpython3.5なので

sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.5 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 2

これによってデフォルトでpython3.6が起動するようにした。ちなみに、

sudo update-alternatives --config python3

このコマンドを打つことによっていつでもpython3のPATHを入れ替えることができる。