nkmrtty’s blog

https://nkmrtty.com/

GPGPU環境作り

(2017/12/16更新)GPUオーバークロックができる手順についてまとめました nkmrtty.hatenablog.com


環境作るたびにいろんなガイド見比べてる気がしてるから自分でまとめる。CUDAがNvidiaドライバのバージョンを指定してくるので、各レポジトリを追加してCUDAをインストールする、という流れが一番手間が少ないようだ。

今回の環境

  • Ubuntu Desktop 16.04.3 LTS
    • インストール直後を想定
  • GeForce GTX 1060 x1
  • GeForce GTX 1050Ti x1

前準備

デフォルトのグラフィックドライバを無効化する。デフォルトのドライバが使用されているかどうかは以下のコマンドでわかる。

$ lsmod | grep -i nouveau

無効化するスクリプト/etc/modprobe.d/blacklist-nouveau.confを作成する。

blacklist nouveau
options nouveau modeset=0

反映させて再起動する。

$ sudo update-initramfs -u
$ sudo reboot

レポジトリの追加

NvidiaドライバとCUDAのレポジトリを追加する(Nvidiaドライバのレポジトリはいらないかも)。 CUDAについては、Nvidia DeveloperからdebファイルをDLしておく。バージョン等は適当に読み替えてください。

$ sudo add-apt-repository ppa:xorg-edgers/ppa
$ sudo dpkg -i cuda-repo-ubuntu1604-9-0-local-rc_9.0.103-1_amd64.deb
$ sudo apt-key add /var/cuda-repo-9-0-local-rc/7fa2af80.pub
$ sudo apt update

CUDAのインストール

今回はnvidia-384が一緒にインストールされた。

$ sudo apt install cuda

パスの設定もしておく(必須なのかよくわからない)

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

cuDNNのインストール

cuDNNをダウンロードして所定の場所にインストール。

tar xzf cudnn-9.0-linux-x64-v7.tgz
sudo cp -a cuda/lib64/* /usr/local/lib/
sudo cp -a cuda/include/* /usr/local/include/
sudo ldconfig

rm -R -f cuda cudnn-9.0-linux-x64-v7.tgz

動作テスト

Chainer動かすまで。

$ sudo apt install git python3-venv python3-dev
$ python3 -m venv chainer
$ source chainer/bin/activate
$ pip install cupy chainer
$ git clone https://github.com/chainer/chainer.git
$ cd chainer/examples/mnist/
$ python train_mnist.py --gpu=0

メモ

  • 記事作成時点の最新ドライバはnvidia-387
  • nvidia-384以降、GTX 1050Tiの消費電力量が表示されないバグ?があるっぽい(参考)。レポジトリから選べるドライバだとnvidia-381以前なら正常に表示される。しかし、CUDAインストール時にnvidia-384に置き換えられちゃうのでとりあえずこのままで。