Esta guía es complemento al video Docker para tu proyecto de redes neuronales la cual te ayudará a que puedas configurar Docker para tus proyectos de machine learning, deep learning e inteligencia artificial en general.

Siguiendo estos pasos, le darás acceso a tus contenedores de docker a la tarjeta gráfica (GPU) en la computadora, elemento que se requiere para poder llevar acabo entrenamiento e inferencias mas veloces para tus modelos. Estos comandos están diseñados para funcionar en Linux, por lo cual si estás siguiente esto desde Windows, algunos comandos pueden ser diferentes.

Esto lo lograremos gracias al Nvidia container toolkit, la cual es una herramienta desarrollada por Nvidia para poder vincular tu GPU Nvidia con un contenedor de Docker.

Los pasos que estaremos realizando son los siguientes:

  • Instalar Docker
  • Instalar Nvidia container toolkit
  • Correr un contenedor para corroborar la instalación exitosa.

Instalar Docker

Si ya tienes instalado Docker en tu máquina, estos pasos los puedes omitir, de lo contrario, dentro de la terminal pon estos comandos los cuales van a configurar el repositorio, llaves GPG y realizaran la instalación de Docker en tu maquina.

sudo apt-get update

sudo apt-get install ca-certificates curl gnupg lsb-release

sudo mkdir -p /etc/apt/keyrings

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  
sudo apt-get update

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

Instalar Nvidia container toolkit

distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
      && curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
      && curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | \
            sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
            sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update

sudo apt-get install -y nvidia-docker2
sudo systemctl restart docker

Probar la instalación

sudo docker run --rm --gpus all nvidia/cuda:11.0.3-base-ubuntu20.04 nvidia-smi

Correr contenedor de Tensorflow

sudo docker run --gpus all -v $PWD:/test -it tensorflow/tensorflow:latest-gpu

Correr contenedor con Pytorch

docker run -it -v $PWD:/test --gpus all pytorch/pytorch