it-swarm.dev

Docker build con nvidia runtime

Tengo una aplicación de GPU que realiza pruebas unitarias durante la etapa de creación de imágenes. Con Docker 19.03, se puede especificar nvidia runtime con docker run --gpus all pero también necesito acceso a los gpus para docker build porque hago pruebas unitarias. ¿Cómo puedo lograr este objetivo?

Para la versión anterior de Docker que usa nvidia-docker2, no fue posible especificar el tiempo de ejecución durante la etapa de construcción, PERO puede configurar el tiempo de ejecución predeterminado para que sea nvidia, y la construcción de Docker funciona bien de esa manera. ¿Puedo hacer eso en Docker 19.03 que ya no necesita nvidia-docker? ¿Si es así, cómo?

4
danny

Necesita usar nvidia-container-runtime como se explica en docs : "También es la única forma de tener acceso a la GPU durante la construcción de la ventana acoplable".

Pasos para Ubuntu:

  1. Instale nvidia-container-runtime:

    Sudo apt-get install nvidia-container-runtime

  2. Edite/cree el /etc/docker/daemon.json con contenido:

{
    "runtimes": {
        "nvidia": {
            "path": "/usr/bin/nvidia-container-runtime",
            "runtimeArgs": []
         } 
    },
    "default-runtime": "nvidia" 
}
  1. Reiniciar Docker Daemon:

    Sudo systemctl restart docker

  2. Construya su imagen (ahora GPU disponible durante la compilación):

    docker build -t my_image_name:latest .

0
Anton Ganichev