Aller au contenu principal

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 directive ACC 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 tesla de -ta et la compute capability cc70. 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.