Ubuntu16.04を入れたばかりの状態からkerasとchainerでCUDAを使えるようにするまでの作業メモです。
■環境
OS:Ubuntu16.04LTS (DELL Aurora R7をWindows10とデュアルブートで使用)
■準備
●必要そうなものをざっくりインストール
Ubuntu16.04が入ったばかりの状態から始めますので、まずは一通り必要そうなものを入れておきます。
1 2 |
$ sudo apt-get install git gcc make openssl libssl-dev libbz2-dev libreadline-dev libsqlite3-dev $ sudo apt-get install python-tk tk-dev python-tk libfreetype6-dev |
●pyenvで3.6にする
1 |
$ git clone git://github.com/yyuu/pyenv.git ~/.pyenv |
.bashrcに下記を追加する
1 2 3 |
export PYENV_ROOT="$HOME/.pyenv" export PATH="$PYENV_ROOT/bin:$PATH" eval "$(pyenv init -)" |
設定を反映する
1 |
$ source .bashrc |
今回は3.6.5を入れます。
1 2 |
$ pyenv install 3.6.5 $ pyenv global 3.6.5 |
●また必要そうなものを入れます。
1 2 3 4 5 6 |
$ sudo apt-get install python-setuptools $ sudo apt-get install python-yaml $ sudo apt-get install python-numpy python-scipy $ sudo apt-get install build-essential libhdf5-dev python-dev $ sudo apt-get install graphviz $ sudo apt-get install python-matplotlib |
1 2 3 4 5 6 7 8 |
$ pip install pandas $ pip install matplotlib $ pip install h5py $ pip install cython $ pip install scipy $ pip install pydot-ng $ pip install scikit-learn $ pip install scikit-image |
■NVIDIAドライバのインストール
NVIDIAドライバのインストール方法はいくつかあるようなのですが、公式サイトからダウンロードしたスクリプトではうまく行かず(NVIDIA-Linux-x86_64-390.77.run)、
参考:NVIDIA CUDA INSTALLATION GUIDE FOR LINUX http://developer.download.nvidia.com/compute/cuda/9.0/Prod/docs/sidebar/CUDA_Installation_Guide_Linux.pdf
検索してみるとPPAから入れるというやり方があり、試したらうまく行きました。
- 現状確認して古いドライバが入っていたら削除する。
1234567#デバイスが認識されてるか確認$ lspci | grep -i nvidia#ドライバを確認して何か入っていたら一度アンインストール(今回はOS入れたばかりの状態なので何も入っていませんでした)$ dpkg -l | grep nvidia$ sudo apt-get remove nvidia*$ dpkg -l | grep cuda$ sudo apt-get remove cuda* - 再起動して、Ctrl + Alt + F2でCUIコンソールに行きxserverを止める。
- PPAレポジトリからドライバをインストールする。
123$ sudo add-apt-repository ppa:graphics-drivers/ppa$ sudo apt update$ sudo apt-get install nvidia-390 - 再起動して「1」の手順で確認。
12$ dpkg -l | grep nvidia#cudaの方はまだ何もしてないので確認不要です。
■CUDA ToolKitのインストール
nvidiaサイトから9.0のdebをダウンロード
https://developer.nvidia.com/cuda-toolkit-archive
インストールコマンドはそこに書かれている通り
sudo dpkg -i cuda-repo-ubuntu1604_9.0.176-1_amd64.deb
sudo apt-key adv –fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub
sudo apt-get update
sudo apt-get install cuda
で入るのですが、最後の
1 |
sudo apt-get install cuda |
だけ、このままだと何故か9.2が入ってしまいました。(何か間違えていただけの気もしますが、ご参考までに)
tensorflowは9.0を指定していますので
https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#package-manager-metas
を参考にして下記のように指定して入れます。
1 |
sudo apt-get install cuda-9-0 |
●PATHの設定
.bashrcにPATHとLD_LIBRARY_PATHを追加して、
1 2 |
export PATH="/usr/local/cuda-9.0/bin:$PATH" export LD_LIBRARY_PATH="/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH" |
反映する。
1 |
source ~/.bashrc |
再起動
■cuDNNのインストール
https://developer.nvidia.com/rdp/cudnn-download から「Download cuDNN v7.1.4 (May 16, 2018), for CUDA 9.0」のUbuntu用の3ファイルをダウンロードする。
- cuDNN v7.1.4 Runtime Library for Ubuntu16.04 (Deb)
- cuDNN v7.1.4 Developer Library for Ubuntu16.04 (Deb)
- cuDNN v7.1.4 Code Samples and User Guide for Ubuntu16.04 (Deb)
それぞれをインストールする。
1 2 3 |
$ sudo dpkg -i libcudnn7_7.1.4.18-1+cuda9.0_amd64.deb $ sudo dpkg -i libcudnn7-dev_7.1.4.18-1+cuda9.0_amd64.deb $ sudo dpkg -i libcudnn7-doc_7.1.4.18-1+cuda9.0_amd64.deb |
■chainerのインストール
1 |
sudo apt-get install tk-dev python-tk |
「必要そうなものをざっくりインストール」の所でやっていますが、もし飛ばしていたら入れます。
これが無いとchainer実行時にtinkerが無いよエラーになります。後で入れても何故かうまくいかないので、ここで再確認します。
もし、先にchainer入れてしまっても、pyenvで違うpython バージョンをインストールしたり(3.6.5で進めてたのを3.6.4も入れてglobalに設定したり)、一度アンインストールして、ここまでにpipインストールしたもの入れ直して上手く行きました。
1 2 |
pip install pycuda pip install chainer |
サンプルを実行して確認
1 2 3 |
$ git clone https://github.com/chainer/chainer $ cd chainer/examples/mnist/ $ python train_mnist.py -g 0 |
■tensorflow + kerasのインストール
tensorflowのgpuありをインストール
1 |
pip install tensorflow-gpu |
一度確認します。
1 |
python -c "import tensorflow as tf" |
kerasをインストール
1 |
pip install keras |
サンプルを実行して確認
1 2 3 |
git clone https://github.com/keras-team/keras.git keras/examplesにある mnist_cnn.py を実行してみる。 $ python mnist_cnn.py |
実行中に
1 |
$ nvidia-smi |
で、温度上昇や電力などが確認できます。