web-dev-qa-db-ja.com

nvidiaランタイムを使用したDockerビルド

イメージの構築段階でユニットテストを実行するGPUアプリケーションがあります。 Docker 19.03では、docker run --gpus allを使用してnvidiaランタイムを指定できますが、ユニットテストを行うため、docker buildのgpusにもアクセスする必要があります。どうすればこの目標を達成できますか?

Nvidia-docker2を使用する古いバージョンのdockerでは、ビルド段階でランタイムを指定することはできませんでしたが、デフォルトのランタイムをnvidiaに設定することができ、Dockerビルドはそのように正常に機能します。もはやnvidia-dockerを必要としないDocker 19.03でそれを行うことはできますか?もしそうなら、どうですか?

4
danny

docs で説明されているように、 nvidia-container-runtime を使用する必要があります:「Dockerビルド中にGPUアクセスを行う唯一の方法でもあります」。

Ubuntuの手順:

  1. Nvidia-container-runtimeをインストールします。

    Sudo apt-get install nvidia-container-runtime

  2. /etc/docker/daemon.jsonを次の内容で編集/作成します。

{
    "runtimes": {
        "nvidia": {
            "path": "/usr/bin/nvidia-container-runtime",
            "runtimeArgs": []
         } 
    },
    "default-runtime": "nvidia" 
}
  1. Dockerデーモンを再起動します。

    Sudo systemctl restart docker

  2. イメージをビルドします(ビルド中にGPUが利用可能になりました):

    docker build -t my_image_name:latest .

0
Anton Ganichev