Jean Zay : Compilation d'un code OpenACC

Sur Jean Zay, les compilateurs PGI offrent la possibilité d'utiliser OpenACC.

Options de compilation pour PGI

La documentation des compilateurs est accessible sur le Web chez PGI.

Prise en compte de OpenACC

Les options de compilation pour la prise en charge d'OpenACC par le compilateur PGI sont les suivantes :

  • -acc : cette option active le support d'OpenACC. Il est possible de lui donner les sous-options suivantes :
    • [no]autopar : Active la parallélisation automatique pour la directive ACC PARALLEL. Le défaut est de l'activer.
    • [no]routineseq : Compile 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 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 :
      $ pgfortran -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 :
      $ pgfortran -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 PGI.