Cómo comprobar el soporte multi-GPU en PyTorch
Alquilar un servidor con varias GPU resuelve un problema sencillo: reducir el tiempo de cálculo mediante cargas de trabajo paralelas. Sin embargo, las GPU por sí solas no pueden garantizar los cálculos paralelos: esto es siempre responsabilidad del desarrollador. En la mayoría de los casos, no se necesita ningún mecanismo independiente. Si has utilizado un framework como PyTorch para crear tu aplicación, ya incluye esta funcionalidad de fábrica.
Supongamos que has alquilado un servidor con 8 GPUs y quieres asegurarte de que están disponibles para tu aplicación basada en PyTorch. Para realizar una prueba rápida, puedes utilizar uno de los pequeños conjuntos de datos estándar ya creados, como CIFAR-10. Este conjunto de datos contiene 60.000 datos. Este conjunto de datos contiene 60.000 imágenes: 50.000 para el entrenamiento y 10.000 para las pruebas.
Para ahorrar tiempo escribiendo tus propios scripts, puedes utilizar soluciones existentes en GitHub. Por ejemplo, puedes clonar el siguiente repositorio:
git clone https://github.com/kentaroy47/pytorch-mgpu-cifar10.git
Navega hasta el directorio descargado:
cd pytorch-mgpu-cifar10
Ahora necesitas establecer la variable CUDA_VISIBLE_DEVICES en función de las GPUs instaladas en el servidor. Esta variable no especifica el número de GPUs, sino sus números de identificación. Por ejemplo, si el servidor tiene dos tarjetas, se especificaría "0,1". En nuestro caso, con 8 tarjetas, especificamos IDs del 0 al 7:
export CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7
Ahora puede comenzar el proceso de entrenamiento de la red neuronal utilizando este conjunto de datos:
python train_cifar10.py
Si no se producen errores, puedes instalar y ejecutar la utilidad nvtop en una sesión SSH independiente para monitorizar la carga en tiempo real de cada GPU:
sudo apt update && sudo apt -y install nvtop && nvtop
Este método garantiza que PyTorch pueda acceder a todas las GPU y que la carga sea uniforme.
Ver también:
Actualizado: 28.03.2025
Publicado: 22.10.2024