Jean Zay : logiciels pour l'intelligence artificielle

Description

Les logiciels pour l'intelligence artificielle sont installés dans des environnements virtuels Anaconda.

Ces environnements peuvent être enrichis sur demande auprès de l'assistance IDRIS (assist@idris.fr).

Le support de la version 2.7 ayant pris fin le 01/01/2020 nous n'installons les nouvelles versions des logiciels que pour Python 3. Seules les anciennes versions sont encore disponibles en Python 2.

Environnements disponibles

Les environnements Anaconda que nous installons sont construits autour de quatre librairies principales :

  • TensorFlow
  • PyTorch
  • Caffe
  • MXNet

Ces environnements sont accessibles via la commande module. Pour afficher la liste des modules IA disponibles :

$ module avail tensorflow pytorch caffe mxnet

Pour activer l'environnement qui vous intéresse, il faut charger le module correspondant. Par exemple, pour activer l'environnement Anaconda contenant la version 2.5.0 de TensorFlow, il faudra charger :

$ module load tensorflow-gpu/py3/2.5.0

Une fois l'environnement activé, vous pouvez lister l'ensemble des paquets Python installés dans cet environnement avec les commandes suivantes :

$ pip list
$ conda list

Remarques :

  • un environnement Anaconda dédié au domaine de la simulation atomistique est disponible via la commande suivante :
    $ module load atomistic_simulation/py3

    Vous trouverez davantage d'informations sur la page de documentation associée.

  • Seuls les environnements PyTorch et TensorFlow à partir des versions pytorch-1.11.0 et tensorflow-2.8.0 sont compatibles avec les GPU Nvidia A100 SXM4 80 Go de la partition ''gpu_p5''. Ces 52 nœuds étant équipés de CPU AMD, il faut de plus charger le module cpuarch/amd avant de charger le module PyTorch ou TensorFlow :
    $ module load cpuarch/amd

    Pour plus d'informations : Modules compatibles avec la partition gpu_p5.

Versions installées

Pour voir la liste des versions installées sur Jean Zay, il faut utiliser la commande module avail :

  • pour TensorFlow
    $ module avail tensorflow
  • pour PyTorch
    $ module avail pytorch
  • pour Caffe
    $ module avail caffe
  • pour MXNet
    $ module avail mxnet

Les noms des produits apparaissent sous la forme : <logiciel>-gpu/<version python>/<version produit> à l'exception de MXNet qui a été installé après la fin de vie de Python2.
Par exemple, la version 2.2.0 de TensorFlow pour Python 3 sera nommée tensorflow-gpu/py3/2.2.0.

Lorsque vous chargez un de ces produits via la commande module, vous chargez également les dépendances suivantes :

  • OpenMPI
  • CUDA
  • NCCL
  • cuDNN

Les versions de ces dépendances sont indiquées au chargement du produit. Par exemple :

$ module load tensorflow-gpu/py3/2.2.0
Loading tensorflow-gpu/py3/2.2.0
  Loading requirement: cuda/10.1.2 nccl/2.5.6-2-cuda cudnn/7.6.5.32-cuda-10.1 intel-compilers/19.0.4 openmpi/4.0.2-cuda

Vous chargez également la version de Python correspondante (py3 ou py2).

Note : de nouvelles versions peuvent être installées sur demande auprès de l'assistance IDRIS (assist@idris.fr).

Remarque

Les commandes module purge, module switch, module unload ne fonctionnent pas pour l'instant avec Anaconda.

Pour changer de produit au cours d'une même session, en gardant la même version de Python, vous pouvez utiliser les commandes conda suivantes :

  • conda deactivate pour quitter l'environnement virtuel du produit que vous utilisez,
  • conda info -e pour avoir la liste de tous les environnements virtuels disponibles,
  • conda activate nom_environnement_virtuel pour activer le produit souhaité.

Exemple :

$ module load tensorflow-gpu/py3/1.14
 
$ conda deactivate
 
$ conda info -e
# conda environments:
#
base                  *  /gpfslocalsup/pub/anaconda-py3/2019.03
caffe-gpu-1.0            /gpfslocalsup/pub/anaconda-py3/2019.03/envs/caffe-gpu-1.0
habitat                  /gpfslocalsup/pub/anaconda-py3/2019.03/envs/habitat
pytorch-gpu-1.1          /gpfslocalsup/pub/anaconda-py3/2019.03/envs/pytorch-gpu-1.1
pytorch-gpu-1.2.0        /gpfslocalsup/pub/anaconda-py3/2019.03/envs/pytorch-gpu-1.2.0
pytorch-gpu-1.3          /gpfslocalsup/pub/anaconda-py3/2019.03/envs/pytorch-gpu-1.3
pytorch-gpu-1.3.0+nccl-2.5.6-2     /gpfslocalsup/pub/anaconda-py3/2019.03/envs/pytorch-gpu-1.3.0+nccl-2.5.6-2
pytorch-gpu-1.3.1        /gpfslocalsup/pub/anaconda-py3/2019.03/envs/pytorch-gpu-1.3.1
pytorch-gpu-1.3.1+nccl-2.4.8-1     /gpfslocalsup/pub/anaconda-py3/2019.03/envs/pytorch-gpu-1.3.1+nccl-2.4.8-1
pytorch-gpu-1.3.1+nccl-2.5.6     /gpfslocalsup/pub/anaconda-py3/2019.03/envs/pytorch-gpu-1.3.1+nccl-2.5.6
pytorch-gpu-1.3.1+nccl-2.5.6-2     /gpfslocalsup/pub/anaconda-py3/2019.03/envs/pytorch-gpu-1.3.1+nccl-2.5.6-2
pytorch-gpu-1.4.0        /gpfslocalsup/pub/anaconda-py3/2019.03/envs/pytorch-gpu-1.4.0
pytorch-gpu-1.4.0+nccl-2.5.6-2     /gpfslocalsup/pub/anaconda-py3/2019.03/envs/pytorch-gpu-1.4.0+nccl-2.5.6-2
pytorch-gpu-1.5.0+nccl-2.4.8     /gpfslocalsup/pub/anaconda-py3/2019.03/envs/pytorch-gpu-1.5.0+nccl-2.4.8
tensorflow-gpu-1.12      /gpfslocalsup/pub/anaconda-py3/2019.03/envs/tensorflow-gpu-1.12
tensorflow-gpu-1.13      /gpfslocalsup/pub/anaconda-py3/2019.03/envs/tensorflow-gpu-1.13
tensorflow-gpu-1.14      /gpfslocalsup/pub/anaconda-py3/2019.03/envs/tensorflow-gpu-1.14
tensorflow-gpu-1.14-mpi     /gpfslocalsup/pub/anaconda-py3/2019.03/envs/tensorflow-gpu-1.14-mpi
tensorflow-gpu-1.4       /gpfslocalsup/pub/anaconda-py3/2019.03/envs/tensorflow-gpu-1.4
tensorflow-gpu-1.8       /gpfslocalsup/pub/anaconda-py3/2019.03/envs/tensorflow-gpu-1.8
tensorflow-gpu-2.0.0-beta1     /gpfslocalsup/pub/anaconda-py3/2019.03/envs/tensorflow-gpu-2.0.0-beta1
 
$ conda activate tensorflow-gpu-2.0.0-beta1