GCP プログラミング

DockerからホストのGPUを利用する

GPUに対応したサーバーにDockerコンテナを起動するときに、

そのサーバー(ホスト)のGPUを利用したいときのメモです。

 

想定としては、Dockerでディープラーニングの環境を動かすような時を想定しています。

 

基本的にこちらのサイト様のものからDocker部分を切り出して自分用にまとめたものになります。

 

NVIDIA Container Toolkit

 

「NVIDIA Container Toolkit」というのをホストにインストールします。

 

これにより、Docker利用時に「--gpus」というオプションが付与できるようになり、

ホストのGPUをコンテナから簡単に認識させることができるようです。(スゴ)

 

インストール

 command
$ curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
OK
$ curl -s -L https://nvidia.github.io/nvidia-docker/$(. /etc/os-release;echo $ID$VERSION_ID)/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
deb https://nvidia.github.io/libnvidia-container/stable/debian9/$(ARCH) /
#deb https://nvidia.github.io/libnvidia-container/experimental/debian9/$(ARCH) /
deb https://nvidia.github.io/nvidia-container-runtime/debian9/$(ARCH) /
deb https://nvidia.github.io/nvidia-docker/debian9/$(ARCH) /
$ sudo apt update && sudo apt install -y nvidia-container-toolkit
$ sudo systemctl restart docker

 

確認

 command
$ nvidia-container-cli info
NVRM version: 410.104
CUDA version: 10.0
...

 

--gpus使ってみる

実際に「--gpus」オプションを使ってコンテナを起動し確認するステップ。

 

 command
$ docker run --gpus all ubuntu nvidia-smi
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 410.104 Driver Version: 410.104 CUDA Version: N/A |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 Tesla T4 Off | 00000000:00:04.0 Off | 0 |
| N/A 60C P0 31W / 70W | 0MiB / 15079MiB | 0% Default |
+-------------------------------+----------------------+----------------------+

 

おお〜、すごい。できた。

 

Docker-Composeで使いたい時

Docker-Composeは「--gpus」とかできないので別途対応が必要とのこと。

 

nvidia-container-runtimeのインストール

 command
$ sudo apt install nvidia-container-runtime

 

docker-compose.yml

 html
version: "2.3"
services:
ubuntu:
image: ubuntu:latest
runtime: nvidia
environment:
- NVIDIA_VISIBLE_DEVICES=all
command:
nvidia-smi

 

これで実行すればOK!

注意点としては、Docker-Composeの「version」部分。ここを「3」とかにすると動きませんでした。

 

よく読まれている記事

1

  現在5年目のエンジニアで26歳です。 今回は20代の現役エンジニアとして、自分も含め転職について考えている方に向けて20代エンジニア転職に完全特化したおすすめのサービスを3つ紹介していき ...

2

これからエンジニアになりたい、プログラミングを使えるようになりたいという方に向けて 山のようにあるプログラミングスクールの中から、特におすすめなスクールをタイプ別に逆引きで3つ紹介します。 &nbsp ...

3

みなさんはを使っていますでしょうか。   本記事を見ていただいているということは、   プログラミングの勉強でを使うことに興味がある、 もしくはこれから動画を購入したいけどどれを買 ...

-GCP, プログラミング
-, , ,

© 2020 クラインの備忘壺