GPUを利用するためのDocker プラグイン「NVIDIA Docker」とは?導入手順は?(後編)
前回は、インストール準備まで行いましたので、今回はいよいよdocker、nvidia-dockerをインストールしていきたいと思います。
NVIDIA HPC/ディープラーニング系製品階層
nvidia-dockerのインストール手順
3. Docker インストール
旧バージョンdockerを削除します。
# sudo yum remove docker \
> docker-client \
> docker-client-latest \
> docker-common \
> docker-latest \
> docker-latest-logrotate \
> docker-logrotate \
> docker-selinux \
> docker-engine-selinux \
> docker-engine
必要パッケージをインストールし、dockerリポジトリを追加します。
# sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yumからDockerをインストールし、動作確認を行います。
# sudo yum install docker-ce
# sudo docker run hello-world
Hello from Docker!
~~
これでNVIDIAドライバとdockerのインストールまで完了しました。
最後にnvidia-dockerをインストールします。
4. nvidia-dockerのインストール
旧バージョンのnvidia-dockerを削除します。
# sudo docker volume ls -q -f driver=nvidia-docker | xargs -r -I{} -n1 docker ps -q -a -f volume={} | xargs -r docker rm -f
# sudo yum remove nvidia-docker
下記を参照しnvidia-dockerのリポジトリをインストールします。
https://nvidia.github.io/nvidia-docker/
# distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
# curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo | sudo tee /etc/yum.repos.d/nvidia-docker.repo
nvidia-docker2のインストール、設定をリロードします。
# sudo yum install nvidia-docker2
# sudo pkill -SIGHUP dockerd
nvidia-docker2上からnvidia-smiを起動し、動作確認をします。
# sudo docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi
これでドライバインストール時と同じnvidia-smiの結果が表示されれば、インストール完了です!
5. nvidia-dockerの使い方
通常のdockerコマンド利用時にruntimeオプションを指定、またはnvidia-dockerコマンドを利用します。
# sudo docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi
# sudo nvidia-docker run -rm nvidia/cuda nvidia-smi
6. GPUを利用できるコンテナ
基本的にnvidia/cudaと指定すれば最新バージョンのコンテナを利用可能ですが、特定のバージョンやCUDAの開発用パッケージも必要な場合は、https://hub.docker.com/より「nvidia」で検索すると、nvidia/cudaが表示されます。
「9.1-cudnn7-devel-centos7」のように必要なバージョンを指定すれば利用可能です。
他にDIGITS(ディープラーニングをGPUベースで学習・推論実行できるアプリケーション)もラインナップにありますので、試してみてはいかがでしょうか。
また、今回は手順までご紹介しませんが、NVIDIA GPU CLOUDというリポジトリがNVIDIAから提供されています。
こちらを使用すると、TensorFlowやCNTKといったディープラーニングフレームワークとCUDAがインストールされているコンテナイメージが利用可能になります。
NVIDIA HPC/ディープラーニング系製品階層
NVIDIA GPU CLOUDを使用すると、ディープラーニングフレームワークのバージョンによって、サポートされているCUDAのバージョンが違うことから発生するバージョン地獄から開放され、便利です。
ユーザー登録は無料ですので、是非お試しください。
この記事の著者:岡田一哉
ICT事業本部 MD本部 ICTソリューション販売推進統括部
新規事業推進部 NVIDIA&AI事業推進課
以前はSEとして、アプリケーション基盤や、SSOシステムなどの構築・運用、オフショア移管などを担当。
その後、SB C&S社内で業務システムへの機械学習導入を担当し、
現在はその経験を活かし、NVIDIAのGPU製品についてセミナー、ハンズオンなどの販促活動を担当している。
DevOps Hubのアカウントをフォローして
更新情報を受け取る
-
Like on Facebook
-
Like on Feedly