2020/04/11

DockerでGPUを使用する

背景


仕事で、複数のエッジコンピュータにデプロイを行うにあたり、Dockerイメージを利用する必要があった


記事の目的


DockerでGPUを使用する


DockerでGPU


ここでは、DockerでGPUを使用する方法について記載する。


DockerでGPUを使用する手順

DockerでGPUを使用する手順は、下記の通りである。
  1. CUDAイメージをpull
  2. $ sudo docker pull nvidia/cuda:10.0-cudnn7-devel-ubuntu16.04
  3. GPUオプション(--gpus all)付きで実行
  4. $ sudo docker run --gpus all nvidia/cuda:10.0-cudnn7-devel-ubuntu16.04 nvidia-smi
    +-----------------------------------------------------------------------------+
    | NVIDIA-SMI 430.26       Driver Version: 430.26       CUDA Version: 10.2     |
    |-------------------------------+----------------------+----------------------+
    | GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
    | Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
    |===============================+======================+======================|
    |   0  GeForce GTX 108...  Off  | 00000000:17:00.0 Off |                  N/A |
    | 23%   30C    P8     9W / 250W |      2MiB /  8192MiB |      0%      Default |
    +-------------------------------+----------------------+----------------------+
    


備考

  • エラーが出る場合
  • 実行時に下記のようなエラーが出る場合がある。
    $ sudo docker run --gpus all nvidia/cuda:10.0-cudnn7-devel-ubuntu16.04 nvidia-smi
    docker: Error response from daemon: linux runtime spec devices: could not select device driver "" with capabilities: [[gpu]].
    ERROR[0000] error waiting for container: context canceled
    対処法
    1. 対策スクリプトの作成
    2. $ nano ./nvidia-container-runtime-script.sh
      nvidia-container-runtime-script.sh
      curl -s -L https://nvidia.github.io/nvidia-container-runtime/gpgkey | \
      sudo apt-key add -
        distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
      curl -s -L https://nvidia.github.io/nvidia-container-runtime/$distribution/nvidia-container-runtime.list | \
        sudo tee /etc/apt/sources.list.d/nvidia-container-runtime.list
      sudo apt-get update
      sudo apt-get install nvidia-container-runtime
    3. 対策スクリプトの実行
    4. $ chmod 777 ./nvidia-container-runtime-script.sh
      $ sudo ../nvidia-container-runtime-script.sh
    5. dockerサービスの再起動
    6. $ sudo systemctl restart docker
    7. 動作テスト
    8. $ sudo docker run --gpus all nvidia/cuda:10.0-cudnn7-devel-ubuntu16.04 nvidia-smi


まとめ


  • DockerでGPUを使用する方法について調査、記載した


参考文献




変更履歴


  1. 2020/04/11: 新規作成

0 件のコメント:

コメントを投稿

MQTTの導入

背景 IoTデバイスの接続環境構築のため、MQTT(mosquitto)の導入を行った。 記事の目的 MQTT(mosquitto)をUbuntuに導入する mosquitto ここではmosquittoについて記載する。 MQTT MQTT(Message Qu...