Calculer avec les GPU¶
Cet article donne quelques informations nécessaires pour compiler et/ou utiliser des programmes sur GPU.
GPU et SLURM¶
Pour exécuter un job avec des GPU, vous devez :
- choisir une partition comportant des GPU
- et ajouter une ressource de type
gres
pour donner le nombre de GPU souhaitées
Veuillez consulter l'article Slurm pour tout savoir.
Suite NVidia CUDA¶
La suite CUDA fournie gratuitement par NVidia permet de développer des applications optimisées pour calcul sur GPU (et autres accélérateurs).
Vous devez charger un module pour disposer dans votre environnement des utilitaires et librairies CUDA. Plusieurs versions sont installées. Pour voir celles qui sont disponibles :
module avail nvidia/cuda
- La librairie cuDNN est intégrée dans les versions CUDA
- Si vous avez besoin d'autres librairies, signalez-le nous
Compilation pour la "bonne" architecture¶
Si vous compilez des codes pour GPU, vous devez prêter attention à l'architecture cible. Un code compilé sans le support de l'architecture de la GPU utilisée ne pourra pas fonctionner ! Par exemple avec CUDA et ses compilateurs (nvcc
...), l'option -arch
spécifie l'architecture virtuelle vers laquelle vous êtes en train de compiler.
- Liste des architectures
- Vérifiez le Matériel disponible dans le cluster et compilez pour la carte voulue
| Carte | Partition | Architecture | |----------|-------------|--------------| | GTX 1080 | gpu-gtx1080 | 61 | | RTX6000 | gpu-rtx6000 | 75 | | A40 | gpu-a40 | 86 | | L40 | gpu-l40 | 89 | | H100 | gpu-h100 | 90 |
Version de CUDA et version du pilote¶
Notez bien qu'en chargeant le module CUDA, vous ne modifiez pas la version du pilote :
- Un pilote est compatible avec une certaine version de CUDA, et ses versions antérieures -- mais pas les versions futures
- Pour vérifier la version courante du pilote, et sa version de CUDA, vous pouvez exécuter une commande comme :
srun --gres gpu:1 -p gpu-h100 nvidia-smi
- Pour tout savoir sur la compatibilité entre les versions de pilote et de librairie, consultez la documentation de compatibilité de CUDA
- En général, nous essaierons de maintenir les pilotes dans des versions récentes. Ceci implique que normalement les versions antérieures des librairies CUDA seront supportées, et que vous pourrez développer avec les outils récents
- Par contre, si nous avons un peu de retard dans l'installation des pilotes, n'essayez pas de faire tourner du code avec une version CUDA postérieure aux pilotes installés !
Version du pilote installé en juillet 2024 -> Driver Version: 550.90.07 CUDA Version: 12.4
Nvidia HPC SDK¶
La suite NVIDIA HPC Software Development Kit est installée.
- Les noms des modules (pour configurer votre environnement) commencent par
nvhpc
- La version "standard" s'appelle
nvhpc
- Les autres noms de modules
nvhpc-*
permettent de choisir des variantes, par exemple sans MPI, avec OpenMPI version 3, etc.
- La version "standard" s'appelle
- Pour consulter la documentation, reportez-vous au site de NVidia en fonction de la version