groupe-dfo-bbo:projets:atlas

Ceci est une ancienne révision du document !


Utiliser les GPU d'Altas

En construction

On utilise un exemple pour illustrer comment entraîner une réseau de neurone sur les GPU d'Atlas. La procédure est la même si on utilise Pandora.

On utilise l'ensemble d'images de CIFAR10 qui comprend 60000 images de 32×32 dans 10 classes ('plane', 'car', 'bird', 'cat', 'deer', 'dog', 'frog', 'horse', 'ship', 'truck'). 50000 images sont utilisées pour l'entraînement du réseau et 10000 pour le test.

Le réseau que l'on va optimiser est ResNet18.

Les scripts python pour gérer l'optimisation et récupérer les images sont disponibles sur github. Se placer dans un répertoire de test et faire :

git clone https://github.com/ctribes/cifar10-resnet18-pytorch-quantization.git

Pytorch (et autres outils) sont requis par le script d'optimisation. Au GERAD nous avons accès à plusieurs versions de Pytorch avec anaconda.

Pour charger une version :

module load anaconda

conda activate pytorch-1.8.1

Avant de lancer le script, il faut sélectionner quel(s) GPU utiliser parmi les 4 A100 (en mai 2021) disponibles sur Atlas (8 GPU P100 sur Pandora). Avant de choisir un ou plusieurs GPUs il faut vérifier si ils sont utiliser avec les commande

nvidia-smi

Le dernier block affiché par la commande donne les processus lancé sur quel GPU.

On peut choisir un GPU pour pytorch avec la commande

export CUDA_VISIBLE_DEVICES=xx

Avec xx pour un numéro de GPU disponible.

Dans le répertoire cifar10-resnet18-pytorch-quantization, on trouve plusieurs scripts utiles pour “quantizé” un réseau. Le script que nous allons utiliser, fait l'optimisation du réseau (sans faire de “quantization”). De l'information sur les scripts est fournies dans les fichiers README.

pytorch trainFullPrecisionAndSaveState.py /-/-epochs=1

  • groupe-dfo-bbo/projets/atlas.1621612506.txt.gz
  • Dernière modification: 2021/05/21 15:55
  • par tribchri