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