Aller au contenu principal

Logiciels et bibliothèques pour l'intelligence artificielle

Description

Les logiciels pour l'intelligence artificielle sont installés dans des environnements virtuels conda mis à disposition dans des modules. Ces environnements peuvent être enrichis - ou de nouvelles versions installées - sur demande auprès de l'assistance IDRIS (assist@idris.fr).

info

Le support de la version 2.7 ayant pris fin le 01/01/2020, nous installons les nouvelles versions des logiciels uniquement pour Python 3 depuis cette date.

Environnements disponibles

Les environnements conda que nous installons sont construits autour de plusieurs bibliothèques principales (Pytorch, TensorFlow, NeMo, etc). Ils sont nommés à partir de ces dernières.

Ces environnements sont accessibles via la commande module. Pour activer l'environnement qui vous intéresse, il faut charger le module correspondant à l'aide de module load. Par exemple, pour activer l'environnement conda contenant la version 2.8.0 de Pytorch, il faudra charger :

module load pytorch-gpu/py3/2.8.0Loading pytorch-gpu/py3/2.8.0
info

Si aucune version n'est précisée, c'est une version par défaut qui sera chargée.

module load pytorch-gpuLoading pytorch-gpu/py3/2.8.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
Environnement de module et environnement personnel

Étant donné que les modules contenant un environnement conda (Pytorch, TensorFlow, etc) effectuent un conda activate lors de leur chargement, il n'est pas possible d'activer deux de ces modules en même temps, et il n'est pas non-plus possible d'activer à la fois un module et un environnement conda personnel.

Vous pouvez toutefois surcharger un module existant avec une installation locale

Versions installées

Pour voir la liste des versions installées sur Jean Zay pour un environnement donné, il faut utiliser la commande module avail. Par exemple pour Pytorch:

module avail pytorch----- /lustre/fshomisc/sup/hpe/pub/modules-idris-env4/modulefiles/linux-rhel9-skylake_avx512 -----pytorch-cpu/py3/1.4.0       pytorch-gpu/py3/1.7.0+hvd-0.21.0       pytorch-gpu/py3/2.0.0pytorch-cpu/py3/1.7.1       pytorch-gpu/py3/1.7.1                  pytorch-gpu/py3/2.0.0-cuda11.8...
info

Lorsque vous chargez un de ces produits via la commande module, vous chargez également plusieurs dépendances : OpenMPI, CUDA, NCCL, cuDNN,… Les versions de ces dépendances sont indiquées au chargement du produit.

module load pytorch-gpu/py3/2.8.0Loading pytorch-gpu/py3/2.8.0  Loading requirement: gcc/11.4.1 cuda/12.8.0 nccl/2.27.3-1-cuda cudnn/9.10.2.21-12-cuda [...]

Commande idr_module_search 🔎

La commande idr_module_search développée par l'IDRIS vous permet de savoir quel module Jean Zay est le mieux adapté à vos besoins. Elle permet d'identifier quels environnements contiennent certains paquets, avec ou sans spécification de version.

idr_module_search [options] <package_name1> <package_name2> ...
OptionDescription
--softActive le mode soft. Le script retourne un module si au moins un des paquets demandés est présent (au lieu de tous).
--ignore-versionIgnore les versions spécifiées lors de la recherche. Seule la correspondance du nom du paquet est prise en compte.
--arch <architecture>Limite la recherche à une architecture spécifique. Les valeurs acceptées sont cpu, v100, a100 et h100 (non sensibles à la casse). Par défaut, toutes les architectures sont considérées.
-f [--file] <chemin>Cherche les paquets listés dans un fichier texte (un paquet par ligne). Cette option est adaptée pour les fichiers de type “requirements.txt”.
-h [--help]Affiche l'aide et quitte.

Exemples d'utilisation

  • Recherche simple : idr_module_search numpy
  • Recherche de plusieurs paquets : idr_module_search numpy pandas matplotlib
  • Recherche en mode soft pour trouver au moins un des paquets demandés : idr_module_search --soft numpy pandas
  • Recherche filtrée par architecture : idr_module_search --arch a100 tensorflow
  • Recherche avec version : idr_module_search "numpy>=1.20.0". Il est possible de fournir une version précise ou une contrainte.
  • Recherche à partir d'un fichier requirements.txt de dépendances : idr_module_search -f requirements.txt
Exemple
idr_module_search --arch h100 numpy pandas matplotlibModule amber/22-AmberTools25-mpi-cuda H100:        matplotlib==3.10.6        numpy==2.3.3        pandas==2.3.3Module anaconda-py3/2024.06 H100:        matplotlib==3.8.4        numpy==1.26.4        pandas==2.2.2Module massivefold/1.5.0 H100:        matplotlib==3.10.0        numpy==2.2.3        pandas==2.2.3...
Erreurs possibles
  • La commande ne retourne rien quand vous rajoutez une contrainte sur la version : assurez-vous d'avoir utilisé des guillemets ("numpy>=2.1.0").
  • Nom de paquet invalide : les noms doivent respecter le format standard des dépôts pip ou conda.
info
  • Les noms de paquet peuvent contenir des caractères spéciaux comme * ou + qui sont interprétés comme des expressions régulières.
  • Si les contraintes sont fournies à la fois en ligne de commande et via un fichier (par exemple idr_module_search "numpy==1.26.4" -f requirements.txt), alors celles de la ligne de commande prennent le pas sur celles du fichier.

Remarques générales sur les environnements IA

Désactivation d'un environnement conda

Les commandes module purge, module switch, module unload ne fonctionnent pas avec conda. Pour désactiver un environnement conda et en activer un autre en chargeant un autre module, il faut lancer les commandes suivantes :

conda deactivate
module purge
module load <nouvel_environnement>
Simulation atomistique

Un environnement conda dédié au domaine de la simulation atomistique est disponible via la commande suivante :

module load atomistic_simulation/py3
Modules compatibles A100/H100
  • Pour utiliser les environnements compatibles avec les GPU A100, il faudra charger préalablement le module suivant :
module load arch/a100
  • Pour utiliser les environnements compatibles avec les GPU H100, il faudra charger préalablement le module suivant :
module load arch/h100

(Pour plus d'informations : Modules compatibles avec les partitions A100 et H100)

Bibliothèques anciennes sur H100

L'écosystème logiciel H100 est relativement récent et ne supporte pas ou mal les versions trop anciennes des bibliothèques. Par conséquent, l'assistance ne prévoit pas d'installer de version TensorFlow inférieure à 2.17, ni de version Pytorch inférieure à 2.3.1 sur cette partition.