Compilation de code OpenACC (Fortran, C/C++)
Sur Jean Zay, les compilateurs NVIDIA HPC offrent la possibilité d'utiliser OpenACC.
Options de compilation pour NVIDIA HPCâ
La documentation des compilateurs NVIDIA est accessible sur le site Web de NVIDIA.
Prise en compte de OpenACCâ
Les options de compilation pour la prise en charge d'OpenACC par le compilateur NVIDIA HPC sont les suivantes :
-acc: cette option active le support d'OpenACC. Il est possible de lui donner les sous-options suivantes :[no]autopar: Active (ou pas) la parallĂ©lisation automatique pour la directiveACC PARALLEL. Le dĂ©faut est de l'activer.[no]routineseq: Compile (ou pas) toutes les routines pour l'accĂ©lĂ©rateur. Le dĂ©faut est de ne pas compiler chaque routine comme sĂ©quentielle.strict: Affiche des messages d'avertissement en cas d'utilisation de directives non OpenACC pour l'accĂ©lĂ©rateur.verystrict: ArrĂȘte la compilation en cas d'utilisation de directives non OpenACC pour l'accĂ©lĂ©rateur.sync: Ignore les clauses async.[no]wait: Attend (ou pas) la fin de chaque noyau de calcul sur l'accĂ©lĂ©rateur. Le lancement de noyaux est bloquĂ© par dĂ©faut, sauf si async est utilisĂ©.- Exemple :
nvfortran -acc=noautopar,sync -o prog_ACC prog_ACC.f90
`
-ta: Cette option active le dĂ©port de calcul sur l'accĂ©lĂ©rateur. Elle implique l'option-acc.- Elle est utile pour choisir l'architecture cible pour laquelle le code va ĂȘtre compilĂ©.
- Pour utiliser les GPU V100 de Jean Zay, il faut utiliser la
sous-option
teslade-taet la compute capabilitycc70. Par exemple :nvfortran -ta=tesla:cc70 -o prog_gpu prog_gpu.f90 - Quelques exemples utiles de sous-options de
tesla:managed: Permet de créer une vue partagée de la mémoire des GPU et des CPU.pinned: Active l'épinglage de la mémoire sur le CPU. Cela peut améliorer les performances des transferts de données.autocompare: Active la comparaison des résultats sur CPU et GPU.
Les autres options sont disponibles dans la documentation Web NVIDIA.