【Docker】nvidia-dockerをインストールしてコンテナ内でGPUを使えるようにする方法

スポンサーリンク

nvidia-dockerをインストールしてコンテナ内でGPUを使えるようにする方法

NVIDIAのGPUを搭載しているPC(Ubuntu)でdockerを使うことを考える。

docker内でもGPUを使いたい場合にはnvidia-dockerをインストールすると便利なので以下でインストールする方法をまとめておく。

今回はUbuntu16.04の場合。18.04でも基本的には同じはず。

また、dockerがインストールされていることが前提としている。

nvidia-docker 2.0をインストールする

以下のコマンドで、aptリポジトリに必要なパッケージリポジトリパスを追加する。

curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/ubuntu16.04/amd64/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list

そして、以下のコマンドでリポジトリをアップデートする。

sudo apt update

以下のコマンドで、nvidia-docker 2.0をインストールする。

sudo apt install -y nvidia-docker2

次に、dockerのデーモン設定をリロードする。

sudo pkill -SIGHUP dockerd

ちなみに、デーモンとは↓のこと(参考)。

Linuxでは、システムが必要とするプロセスやサーバープロセスなどを、バックグラウンドで常駐さておきます。 このような常駐プログラムを、”デーモン=daemon”と呼びます。

そして、docker環境で、nvidia-smiを実行し、動作確認をする。

docker run --runtime=nvidia --rm nvidia/cuda:10.0-cudnn7-devel-ubuntu16.04 nvidia-smi

docker imageはcuda10.0、cudnn7のバージョンに合うものにしている。

dockerのイメージを入手しコンテナを作成する

以下のコマンドでこのdocker imageを入手する。

docker pull nvidia/cuda:10.0-cudnn7-devel-ubuntu16.04 

次に、以下のコマンドでコンテナを作成する。

nvidia-docker run -it --name masaki 68cfebc80395 /bin/bash

masaki」はコンテナの名前で自分の好きなものに設定する。

68cfebc80395」はdocker imageのIDで以下のコマンドで確認できる。

docker images

これでコンテナ内でGPUを使ってプログラムを実行することが出来た。

ただ、以下のコマンドでNVIDIAドライバを認識するのには失敗している。

なぜかは分かっていないけど、↑で同じようなコマンドでnvidia-smiできているのでまあ大丈夫か。

docker run --gpus all nvidia/cuda:10.0-cudnn7-devel-ubuntu16.04 nvidia-smi

参考

nvidia-docker2のインストール(On Ubuntu 16.04 LTS) - Qiita
nvidia-dockerをインストールして、DNN環境の構築を先人の方のページを参考にしながら進めています。nvidia-dockerは、Version 2.0がリリースされているようなので、2…
Dockerを使って爆速でGPUを設定する方法 - Qiita
#はじめに機械学習をやろうと思ったら、まずやってくるのが GPUの設定 ですよね。ドライバインストールしてCUDAとcudnnインストールして、、、。これが本当にめんどくさい!そんな方には Doc…

人気記事

CUDA、cuDNNのバージョンをターミナルで調べるコマンド
【Pytorch】テンソルの次元を追加・削除する方法【dim】
【Pytorch】テンソルを連結する方法(cat・stack)
【Protobuf】"TypeError: Descriptors cannot not be created directly."を解決する【solved】
【Python】Tensorflowをダウングレード・アップグレードするコマンド

最新記事

【帯広】営業時間の短い「はなとかち」の豚丼を食べる。【北海道】
【伊豆】ItalianRestaurant POMODOROでランチ【静岡】
【静岡】熱海プリン本店で購入。人気で列に並ぶ。いちごプリンを食べる。
【静岡】伊豆パノラマパークで良い景色を眺める。
【伊豆】北川温泉 磯辺で夕食。Airbnbでトラストメゾン北川に宿泊【静岡】

タイトルとURLをコピーしました