Comment vérifier la prise en charge du multi-GPU dans PyTorch ?
La location d'un serveur équipé de plusieurs GPU résout un problème simple : la réduction du temps de calcul grâce à la parallélisation des charges de travail. Toutefois, les GPU ne peuvent à eux seuls garantir le parallélisme des calculs - cette responsabilité incombe toujours au développeur. Dans la plupart des cas, aucun mécanisme distinct n'est nécessaire. Si vous avez utilisé un framework comme PyTorch pour créer votre application, il inclut déjà cette fonctionnalité.
Supposons que vous ayez loué un serveur doté de 8 GPU et que vous souhaitiez vous assurer qu'ils sont disponibles pour votre application basée sur PyTorch. Pour un test rapide, vous pouvez utiliser l'un des petits ensembles de données standard prêts à l'emploi, tels que CIFAR-10. Cet ensemble de données contient 60 000 images : 50 000 pour la formation et 10 000 pour le test.
Pour gagner du temps dans l'écriture de vos propres scripts, vous pouvez utiliser des solutions existantes sur GitHub. Par exemple, vous pouvez cloner le dépôt suivant :
git clone https://github.com/kentaroy47/pytorch-mgpu-cifar10.git
Naviguez jusqu'au répertoire téléchargé :
cd pytorch-mgpu-cifar10
Vous devez maintenant définir la variable CUDA_VISIBLE_DEVICES en fonction des GPU installés sur le serveur. Cette variable ne spécifie pas le nombre de GPU, mais plutôt leur numéro d'identification. Par exemple, si le serveur possède deux cartes, vous indiquerez "0,1". Dans notre cas, avec 8 cartes, nous spécifions les ID de 0 à 7 :
export CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7
Vous pouvez maintenant commencer le processus de formation du réseau neuronal à l'aide de cet ensemble de données :
python train_cifar10.py
Si aucune erreur ne se produit, vous pouvez installer et exécuter l'utilitaire nvtop dans une session SSH distincte pour surveiller la charge en temps réel de chaque GPU :
sudo apt update && sudo apt -y install nvtop && nvtop
Cette approche garantit que tous les GPU sont accessibles à PyTorch et qu'ils sont chargés de manière homogène.
Voir aussi :
Mis à jour: 28.03.2025
Publié: 22.10.2024