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).
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
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.0Une 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
É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...
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> ...
| 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 [--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.txtde dépendances :idr_module_search -f requirements.txt
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...- 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.
- 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
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>
Un environnement conda dédié au domaine de la simulation atomistique est disponible via la commande suivante :
module load atomistic_simulation/py3
- 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)
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.