L'installation de torch par pip ou conda sur l'architecture ARM (aarch64) installe une version CPU et pas une version GPU avec support CUDA.
Pour permettre une utilisation GPU, nous avons créé un conteneur apptainer en adaptant pour TURPAN le conteneur pytorch de Nvidia depuis le NGC. Il contient l'ensemble des programmes et librairies décrits ici : https://docs.nvidia.com/deeplearning/frameworks/pytorch-release-notes/rel-23-10.html
Utilisation du conteneur pytorch
Il y a deux façons d'utiliser ce conteneur :
- En interactif (pour tester) :
srun -p shared -n1 --gres=gpu:1 --pty apptainer shell --nv /work/conteneurs/pytorch_23.10-py3-calmip.sif
python
import torch
<vos commandes python>
- Ou dans un script sbatch (ici 1 cœur CPU + 1GPU) :
#!/bin/bash#SBATCH -J mon_job#SBATCH -p shared#SBATCH --nodes 1#SBATCH --ntasks 1#SBATCH --time=0:15:00#SBATCH --gres=gpu:1apptainer exec --nv /work/conteneurs/pytorch_23.10-py3-calmip.sif python mon_script.py
Le conteneur n'a accès par défaut qu'à votre espace $HOME. Si vous avez besoin du /work ou du /tmpdir vous pouvez les accrocher en utilisant l'option bind d'apptainer par exemple :
apptainer exec --nv --bind /tmpdir,/work ....
Plus d'information dans la documentation d'apptainer : https://apptainer.org/docs/user/1.1/
Pytorch et modules python supplémentaires
Attention, l'utilisation de ce conteneur est incompatible avec l'utilisation des environnements conda !
Néanmoins, vous pouvez ajouter des modules avec pip depuis le conteneur à condition de le lancer sur une frontale de connexion, les noeuds de calcul n'ayant pas d'accès à internet :
apptainer shell --nv /work/conteneurs/pytorch_23.10-py3-calmip.sif
Puis installer les modules souhaités (avec l'option --user pour installer dans votre home) :
Apptainer> pip install --user wandb