Utilisation des noeuds GPU
Le mésocentre dispose de plusieurs nœuds équipés de cartes graphiques NVIDIA Tesla.
Pour indiquer à SLURM que l’on veut disposer d’une machine équipée de processeurs graphiques (GPU), il faut indiquer, lors de la soumission du job, l’une de partitions dédiées au calcul GPU.
| Nom de la partition | Nœud(s) associé(s) | Mémoire par CPU (Mo) |
|---|---|---|
| kepler | gpu[004-010] | 13430 |
| pascal | gpu[011-012] | 11512 |
| volta | gpu[013-017] | 11500 |
Il faut également spécifier le nombre de ressources GPU souhaitées par exemple --gres=gpu:2.
Sur une machine GPU donnée, les GPU sont numérotés par un ID variant de 0 à 4 selon le nombre d’accélérateurs embarqués. Il est généralement nécessaire d’indiquer au programme quel(s) GPU_ID utiliser. La variable d’environnement $CUDA_VISIBLE_DEVICES liste le ou les GPU attribués.
Exemple de mise en place dans un code fortran :
dans le .cuf remplacer le cudaSetDevice(0) par: #ifdef GPUID cudaSetDevice(GPUID) #else cudaSetDevice(0) #endif
Associé au script de soumission à SLURM
#!/bin/bash #SBATCH -p kepler #SBATCH --gres=gpu:2 module load userspace/all module load PGI/14.9 pgf90 -Mpreprocess -DGPUID=$CUDA_VISIBLE_DEVICES -fast -o exec exec.cuf ./exec
Exemple de demande de ressource gpu en interactif
srun -p pascal --gres=gpu:1 --pty bash -i
Last updated : 22 novembre 2024