Configurar una máquina con múltiples GPUs para aprendizaje profundo en Linux puede ser una tarea desafiante, pero con la guía adecuada, puedes aprovechar al máximo el poder de cómputo paralelo que ofrecen las GPUs. A continuación, te presentamos una guía paso a paso para configurar tu máquina Linux con múltiples GPUs para tareas de aprendizaje profundo.
1. Requisitos Previos
Hardware
- Múltiples GPUs compatibles con CUDA: Asegúrate de que tu máquina tenga múltiples GPUs compatibles con CUDA.
- Fuente de alimentación adecuada: Asegúrate de que tu fuente de alimentación pueda soportar todas las GPUs.
- Espacio y refrigeración: Asegúrate de que tu caja tenga suficiente espacio y ventilación para las GPUs.
Software
- Distribución de Linux: Ubuntu es una de las distribuciones más recomendadas debido a su compatibilidad y soporte.
- Controladores NVIDIA: Necesitas los controladores de NVIDIA.
- CUDA Toolkit: Para aprovechar el cómputo paralelo de las GPUs.
- cuDNN: Biblioteca de primitivas para redes neuronales aceleradas por GPU.
- Frameworks de aprendizaje profundo: TensorFlow, PyTorch, etc.
Puede leer también | Desarrollando tu primera aplicación con TensorFlow para generar texto predictivo
2. Instalación del Sistema Operativo
Instala una distribución de Linux compatible. Ubuntu 20.04 LTS es una opción popular por su estabilidad y soporte a largo plazo. Puedes descargar Ubuntu desde su sitio oficial e instalarlo siguiendo las instrucciones proporcionadas.
3. Instalación de Controladores NVIDIA
Paso 1: Actualizar y Preparar el Sistema
sudo apt update
sudo apt upgrade
sudo apt install build-essential
Paso 2: Agregar el Repositorio de Controladores NVIDIA
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
Paso 3: Instalar el Controlador NVIDIA
ubuntu-drivers devices
Este comando listará los controladores disponibles. Selecciona el más reciente y estable, por ejemplo, nvidia-driver-460
.
sudo apt install nvidia-driver-460
sudo reboot
Paso 4: Verificar la Instalación del Controlador
nvidia-smi
Este comando debería mostrar información sobre tus GPUs.
4. Instalación de CUDA Toolkit
Paso 1: Descarga el Instalador de CUDA
Visita la página oficial de CUDA y descarga la versión correspondiente a tu sistema.
Paso 2: Instala CUDA
sudo dpkg -i cuda-repo-<distro>_<version>_amd64.deb
sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/<distro>/x86_64/7fa2af80.pub
sudo apt update
sudo apt install cuda
Paso 3: Configura las Variables de Entorno
Agrega las siguientes líneas al archivo ~/.bashrc
:
export PATH=/usr/local/cuda-<version>/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-<version>/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
source ~/.bashrc
5. Instalación de cuDNN
Paso 1: Descarga cuDNN
Visita la página de descargas de cuDNN y descarga la versión compatible con tu CUDA Toolkit.
Paso 2: Instala cuDNN
tar -xzvf cudnn-<version>-linux-x64-v<version>.tgz
sudo cp cuda/include/cudnn*.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
6. Instalación de Frameworks de Aprendizaje Profundo
TensorFlow
pip install tensorflow-gpu
PyTorch
pip install torch torchvision torchaudio
7. Configuración de Multi-GPU
TensorFlow
Para usar múltiples GPUs en TensorFlow, utiliza el siguiente código:
import tensorflow as tf
gpus = tf.config.experimental.list_physical_devices('GPU')
if gpus:
try:
for gpu in gpus:
tf.config.experimental.set_memory_growth(gpu, True)
logical_gpus = tf.config.experimental.list_logical_devices('GPU')
print(len(gpus), "Physical GPUs,", len(logical_gpus), "Logical GPUs")
except RuntimeError as e:
print(e)
strategy = tf.distribute.MirroredStrategy()
with strategy.scope():
# Tu modelo y código de entrenamiento aquí
PyTorch
Para usar múltiples GPUs en PyTorch, utiliza el siguiente código:
import torch
import torch.nn as nn
import torch.optim as optim
model = nn.DataParallel(model)
model.to('cuda')
criterion = nn.CrossEntropyLoss().cuda()
optimizer = optim.SGD(model.parameters(), lr=0.01)
# Tu código de entrenamiento aquí
Configurar una máquina Linux con múltiples GPUs para aprendizaje profundo puede parecer complicado, pero siguiendo estos pasos, podrás aprovechar al máximo el poder de cómputo paralelo de tus GPUs. Asegúrate de mantener tu sistema y software actualizados para obtener el mejor rendimiento y seguridad. Con una configuración adecuada, estarás listo para realizar tareas de aprendizaje profundo de manera eficiente y efectiva.