Table des matières
Jean Zay : logiciels pour l'intelligence artificielle
Description
Les logiciels pour l'intelligence artificielle sont installés dans des environnements virtuels conda.
Ces environnements peuvent être enrichis sur demande auprès de l'assistance IDRIS (assist@idris.fr).
Le support de la version 2.7 de Python ayant pris fin le 01/01/2020, nous n'installons les nouvelles versions des logiciels que pour Python 3 depuis cette date.
Environnements disponibles
Les environnements conda que nous installons sont construits autour de plusieurs librairies principales (PyTorch, TensorFlow, NeMo, etc). Ils sont nommées à partir de ces dernières.
Ces environnements sont accessibles via la commande module. Pour afficher la liste des modules IA disponibles :
$ module avail pytorch tensorflow nemo [autre]
Pour activer l'environnement qui vous intéresse, il faut charger le module correspondant. Par exemple, pour activer l'environnement conda 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
Versions installées
Pour voir la liste des versions installées sur Jean Zay pour un environnement donné (TensorFlow, PyTorch, Caffe ou MXNet), il faut utiliser la commande module avail. Par exemple pour TensorFlow :
$ module avail tensorflow
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 Python 2.
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 plusieurs dépendances : 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).
🔍 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.
Syntaxe de base
idr_module_search [options] <package_name1> <package_name2> ...
Options disponibles
| Option | Description |
|---|---|
--soft | Active le mode soft. Le script retourne un module si au moins un des paquets demandés est présent (au lieu de tous). |
--ignore-version | Ignore 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 <chemin> ou --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 ou --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
Sortie
En cas de succès, le script affiche les modules trouvés ainsi que les paquets correspondants.
# Exemple de sortie
Module CPU-V100 python/3.12.7:
numpy (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"). - Nom de paquet invalide : les noms doivent respecter le format standard des dépôts pip ou conda.
Remarques
- Les noms de paquet peuvent contenir des caractères spéciaux comme
*ou+qui sont interprétés comme des motifs réguliers. - 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), celles de la ligne de commande prennent le pas sur celles du fichier.
Remarques générales sur les environnements IA
- Les commandes
module purge,module switch,module unloadne 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>
- Pour utiliser les environnements compatibles avec les GPU A100, il faudra charger préalablement le module suivant :
$ module load arch/a100
Pour plus d'informations : Modules compatibles avec la partition gpu_p5.
- 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 la partition gpu_p6.
Important : l'écosystème logiciel H100 est récent et ne supporte pas ou mal les versions trop anciennes des librairies. 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. - Un environnement conda 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.
