LoginSignup
27
22

More than 5 years have passed since last update.

Ubuntu16.04にCUDA8.0とChainerをインストールする

Last updated at Posted at 2016-08-15

CUDA Toolkitを管理する方法としてnvidia-dockerを使うという手段がありますが、今回はこれを用いず直接CUDA Toolkitをインストールしました。

環境

  • Ubuntu16.04 64bit
  • Core i5
  • GeForce 940M

用意するもの

  1. CUDA toolkit
  2. cuDNN
  3. ドライバ (自分の環境に合わせて適切に選択)

CUDA Toolkitのインストールにはrunfile(cuda_8.0.44_linux.run)を用いました。
cuda-toolkit.png

インストール手順

1. ドライバをインストールする

セキュアブートが有効になっている場合は、あらかじめ無効にしておいてください。
Ctrl+Alt+F1でtty1に移動して、nvidia-smiコマンドとドライバをインストールします。
途中でX11の設定を書き換えるかどうかを聞かれます。書き換えると画面が映らなくなったりするので、書き換えないことをおすすめします。
インストールが終わったら一度再起動してください。

sudo service lightdm stop  # X11を落とす
sudo ./NVIDIA-Linux-x86_64-<version>.run  # nvidia-smiコマンドがインストールされるはず
sudo reboot

nvidia-smiコマンドの出力がこんな感じになっていれば、GPUを検出できています。

$nvidia-smi                           
Mon Aug 15 15:31:22 2016       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 361.77                 Driver Version: 361.77                    |
|-------------------------------+----------------------+----------------------+
| 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 940M        Off  | 0000:01:00.0     Off |                  N/A |
| N/A   59C    P0    N/A /  N/A |    254MiB /  2003MiB |      8%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID  Type  Process name                               Usage      |
|=============================================================================|
|    0      4105    G   /usr/lib/xorg/Xorg                             165MiB |
|    0      4988    G   fcitx-qimpanel                                   7MiB |
|    0      5310    G   ...ves-passed-by-fd --v8-snapshot-passed-by-    67MiB |
|    0      5598    G   ...DocWrittenScriptsInMainFrame --force-fiel    13MiB |
+-----------------------------------------------------------------------------+

もし不安定な場合はapt-getでドライバをインストールすると動くかもしれません。しかしシステムがX11をGPUで動かそうとしてX11の動作が不安定になるためおすすめはしません。

sudo apt-get install nvidia-361
sudo reboot

2. CUDA toolkitをインストールする

tty1で次のコマンドを実行します。
注意: runfile実行時にドライバをインストールするか聞かれますが、ここではインストールしないでください。

sudo service lightdm stop
sudo ./cuda_8.0.44_linux.run --override  # 注意: ドライバはここではインストールしない

Ubuntu16.04ではgccのバージョンがCUDAの推奨するものと違っているようですが、--overrideオプションをつけてToolkitを無理矢理インストールしました。
インストールが正常に行えていれば/usr/local/cuda-8.0が存在しているはずです。

もしChainerを動かす際にうまくいかないのであれば、gcc5.2をインストールしてから再度

sudo service lightdm stop
sudo ./cuda_8.0.44_linux.run  # 注意: ドライバはここではインストールしない。gcc5.2をあらかじめインストールしておく。

としてください。

3. cuDNNをインストールする

[cuDNN]を展開してファイルをコピーします。

tar xvf cudnn-8.0-linux-x64-v5.1.tgz
sudo cp cuda/include/* /usr/local/cuda-8.0/include
sudo cp cuda/lib64/* /usr/local/cuda-8.0/lib64

.bashrcにこれを追記し、source ~/.bashrcしてください。

export CUDA_PATH=/usr/local/cuda-8.0
export PATH=$CUDA_PATH/bin:$PATH
export LD_LIBRARY_PATH=$CUDA_PATH/lib64:$LD_LIBRARY_PATH

export CPATH=$CUDA_PATH/include:$CPATH
export LIBRARY_PATH=$CUDA_PATH/lib64:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=$CUDA_PATH/lib64:$LD_LIBRARY_PATH

4. Chainerをインストールする

ふつうにpip3で入れます。

sudo pip3 install chainer

5. 動作チェック

import cupyが通れば成功です。

$python3
>>> import cupy

Chainerのソースコードに同梱されているMNISTのサンプルも動きます。

git clone git@github.com:pfnet/chainer.git
cd chainer/examples/mnist     
python3 train_mnist.py --gpu=0

6. カーネルのアップデートについて

カーネルがアップデートされるとドライバにアクセスできなくなります。
新しいカーネルがインストールされた際には1のドライバのインストールをやり直してください。

27
22
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
27
22