ubuntu14.04にnvidia-dockerをインストールする

  • 18
    いいね
  • 0
    コメント

はじめに

OSを(泣く泣く)再インストールしなくてはいけなくなったので、インストール手順のログ

インストール環境

  • OS :Ubuntu 14.04 LTS(3.13.0)
  • CPU :Intel Xeon CPU E5-1603 v3 @ 2.8GHz
  • GPU :Quadro K420/Tesla K40c/Tesla K40c

nvidia-dockerとは?

GPU(CUDA)を使ったアプリケーションの環境を簡単に構築出来る。GPUの為のdocker。これを使えばホスト側のGPUやドライバとのやり取りに悩む必要ありません。

5b208976-b632-11e5-8406-38d379ec46aa.png

nvidia-dockerの基本情報

nvidia-docker環境構築

基本環境をインストール

最低限の環境をインストール

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential
sudo apt-get autoremove

gitとemacsをインストール

# gitとemacsのインストール
sudo apt-get install emacs
sudo apt-get install git

NVIDIA Driverのインストール

まず、グラフィックカードを確認

#グラフィックカードを確認
lspci | grep -i nvidia

Tesla K40cなどGPU名が取れる。NVIDIA driverのインストールの仕方は
1. ここからダウンロードして手動でインストール
  ※仮想コンソールに入ったり、lightdm止めたりする必要あり
2. "Proprietary GPU Drivers" PPAに存在するドライバをapt-getでインストール
の2種類が存在する。今回は、2. のapt-getでドライバを入れる方法を行う。

リポジトリを追加、アップデート

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update

インストール可能なドライバ一覧は以下の方法で取得可能

sudo apt-cache search nvidia-\d+

ドライバをインストール。nvidia-dockerを動作させるには、340.29以上のドライバが必要です。今回は352をインストール

sudo apt-get install nvidia-352

マシンの再起動

sudo shutdown -r now

nvidia-smiで確認。以下のようにドライババージョンやGPU一覧が表示される
Screenshot from 2016-05-16 16_06_19.png

ちなみにドライバのバージョンは以下のように取得する事も可能

cat /proc/driver/nvidia/version

dockerのインストール

nvidia-dockerはdocker1.9以上が必要なので、出来るだけ最新のdockerをインストールする方針でいく。基本は、dockerの公式サイトの手順に従った

curlのインストール(dockerのインストールに必要)

sudo apt-get install -y curl

最新のdockerパッケージを取得

curl -fsSL https://get.docker.com/ | sh

もし、apt-keyコマンドが失敗する場合は以下が必要

curl -fsSL https://get.docker.com/gpg | sudo apt-key add -

dockerコマンドが無事にインストールされた。マシンをリブート

sudo shutdown -r now

dockerバージョンの確認

docker --version
Docker version 1.11.1, build 5604cbe

dockerがきちんと動作しているか確認

 $ docker run hello-world
 Unable to find image 'hello-world:latest' locally
 latest: Pulling from library/hello-world
 ......
 Hello from Docker.
 This message shows that your installation appears to be working correctly.

dockerのDNS設定

/etc/default/dockerの設定を変更する。DNSの設定を行わないと、apt-getが失敗してnvidia-dockerのインストールが失敗する。

sudo emacs /etc/default/docker

以下の行を編集。今回は社内のDNSサーバのIPアドレスを指定した。

DOCKER_OPTS="--dns [社内DNSサーバIP] --dns [社内DNSサーバIP]"

dockerを再起動。restartではなく、stopしてからstartする。

sudo service docker stop
sudo service docker start

nvidia-dockerのインストール

ここからソースコードをクローン

git clone https://github.com/NVIDIA/nvidia-docker
cd nvidia-docker
sudo make install
#NVIDIAドライバの設定(ドライバを入れなおした際に一度だけ)
sudo nvidia-docker volume setup

"cannot resolve developer.download.nvidia.com"とか出て解決されない場合、/etc/resolv.confか/etc/default/dockerのDNS設定がどちらかが駄目

nvidia-dockerの実行時に"nvidia-docker could not load UVM kernel module"とか出た場合は、Nvidiaドライバをインストールし直して、nvidia-docker volume setupを行う

nvidia-dockerのテスト

$sudo nvidia-docker run nvidia/cuda nvidia-smi