Projet

Général

Profil

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

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.

| 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.
  • Pour consulter la documentation, reportez-vous au site de NVidia en fonction de la version