ubuntu14.04 LTS + CUDA + cuDNN + Chainer インストールメモ
ubuntu14.04 LTS + CUDA + cuDNN + Chainer インストールメモ
OSの選定
インストールガイド — Chainer 1.18.0 ドキュメント
chainer 公式のインストールガイドに、We recommend these platforms. Ubuntu 14.04 LTS 64bit
と、有るので、従います。
LTS は Long Term Support.
ハードウェアの選定
GPU
CUDA を使用したいので、Nvidiaのチップが入っているやつにしたい。
Radeon も CUDA を利用できたりするらしいですが、動作確認が取れている組み合わせでも、かなりインストールで苦しむので、試す気になれない。
CUDA(Compute Unified Device Architecture:クーダ)とは、NVIDIAが提供するGPU向けのC言語の統合開発環境であり、コンパイラ (nvcc) やライブラリなどから構成されている。
スペックメモ
Chip | Architecture | CUDAコア | メモリ | 実売 | コメント |
---|---|---|---|---|---|
TITAN X | Pascal | 3584 | 12 GB | 18万 | 日本未発売? 冷却を工夫しないと性能が出ない? |
GTX1080 | Pascal | 2560 | 8 GB | 6~12万 | 簡易水冷バージョンも出ている |
GTX1060 | Pascal | 1280 | 6 GB | 3~4.5万 | |
GTX1050 | Pascal | 640 | 2 GB | 1~2万 | |
GTX 950 | Maxwell | 768 | 2 GB | 1.5~3万 |
補助電源は、6pin, 8pin 1つだったり、2つだったり、ミックスだったりする。
RAM
- 作者: 清水亮
- 出版社/メーカー: 技術評論社
- 発売日: 2016/12/07
- メディア: 大型本
- この商品を含むブログ (11件) を見る
曰く、32G では不足するとのこと。。。
電源
GPU の事を考えると、最低でも 400w
OS のインストール
ubuntu14,04 を DVD に焼いて、インストールします。
初期設定
パッケージのアップデート
$ sudo apt-get update $ sudo apt-get upgrade
ssh をインストール、自動起動設定して、ipを固定、nameサーバー設定
$ sudo apt-get install ssh $ service ssh start $ sudo apt-get install sysv-rc-conf $ sudo sysv-rc-conf ssh on $ sudo sysv-rc-conf --list ssh ssh 2:on 3:on 4:on 5:on $ sudo cat /etc/network/interfaces # interfaces(5) file used by ifup(8) and ifdown(8) auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 192.168.100.50 netmask 255.255.255.0 gateway 192.168.100.1 $ cat /etc/resolvconf/resolv.conf.d/base nameserver 8.8.8.8 $ sudo reboot
ドライバとCUDAのインストール
Ubuntu14.04にNVIDIAドライバーをインストールしたらGUIログインできなくなったときの話 - Qiita
こちらにならいました。
ドライバと CUDA を入れる
先に、古いドライバを確認し、削除します。その後、公式サイトから最新の物をダウンロードして入れます。
$ dpkg -l | grep nvidia $ dpkg -l | grep cuda $ sudo apt-get --purge remove nvidia-* $ sudo apt-get --purge remove cuda-*
※私の場合、初期設定では nvidia のドライバーと cuda は入っていませんでした。
グラフィックボードのドライバとCUDAを入れる
取得。
NVIDIA-Linux-x86_64-375.39.run
でした。
CUDA 8.0 Downloads | NVIDIA Developer
cuda_8.0.61_375.26_linux.run
でした。
入れる
$ chmod a+x NVIDIA-Linux-x86_64-375.39.run $ chmod a+x cuda_8.0.61_375.26_linux.run $ sudo service lightdm stop
$ sudo ./NVIDIA-Linux-x86_64-375.39.run --no-opengl-files
$ sudo ./cuda_8.0.61_375.26_linux.run --silent --no-opengl-libs --toolkit
nvidia ドライバ動作確認
$ nvidia-smi Tue Mar 14 10:36:45 2017 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 375.39 Driver Version: 375.39 | |-------------------------------+----------------------+----------------------+ | 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 106... Off | 0000:06:00.0 Off | N/A | | 0% 36C P0 25W / 120W | 0MiB / 6071MiB | 2% Default | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: GPU Memory | | GPU PID Type Process name Usage | |=============================================================================| | No running processes found | +-----------------------------------------------------------------------------+
cuda 動作確認
toolkit をインストール して、nvcc -V
$ sudo apt-get install nvidia-cuda-toolkit $ nvcc -V nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2013 NVIDIA Corporation Built on Wed_Jul_17_18:36:13_PDT_2013 Cuda compilation tools, release 5.5, V5.5.0
環境変数追加
$ echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc $ echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc $ echo 'export CUDA_PATH=/usr/local/cuda' >> ~/.bashrc $ source ~/.bashrc
chainer 依存ライブラリ等を入れておく
NumPy 1.9, 1.10, 1.11 pip python2.7-dev
$ sudo apt-get install g++ $ sudo apt-get install python-numpy $ sudo apt-get install python-pip $ sudo apt-get install python2.7-dev
Six 1.9
cuDNN インストール
公式サイト曰く、
cuDNN support cuDNN v2, v3, v4, v5, v5.1
なので、
https://developer.nvidia.com/rdp/cudnn-download
cuDNN v5.1 Library for Linux
から、 cudnn-8.0-linux-x64-v5.1.tgz
を取得
$ tar -zxf cudnn-8.0-linux-x64-v5.1.tgz $ sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/ $ sudo cp cuda/include/cudnn.h /usr/local/cuda/include/ $ sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
Pathを通す。
$ echo 'export CPATH=/usr/local/cuda/include:$CPATH' >> ~/.bashrc $ echo 'export LIBRARY_PATH=/usr/local/cuda/lib64:$LIBRARY_PATH' >> ~/.bashrc
Pathの通っている場所に、libcuda.so をシンボリックリンクさせる
$ find /usr/local/ -name libcuda.so /usr/local/cuda-8.0/lib64/stubs/libcuda.so $ cd /usr/local/cuda/lib64 $ sudo ln -sv /usr/local/cuda-8.0/lib64/stubs/libcuda.so .
chainer インストール
ディレクトリ作るのに permission denied でたので、sudo してます。
いいのかな?これで。
$ sudo PATH=/usr/local/cuda/bin:$PATH LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH CUDA_PATH=/usr/local/cuda CPATH=/usr/local/cuda/include:$CPATH LIBRARY_PATH=/usr/local/cuda/lib64 pip install chainer
バージョンと動作の確認
$ python Python 2.7.6 (default, Oct 26 2016, 20:30:19) [GCC 4.8.4] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import chainer >>> chainer.__version__ '1.21.0' >>> import cupy >>> import cupy.cudnn