wiki:PortageGpu

Version 6 (modified by Laurent Fairhead, 2 years ago) (diff)

--

Page d'information sur le portage GPU de LMDZ

Liste de liens divers


Règles de codage / portage

Traitement des DATA

  • Déclarer en !$acc data create (...) les variables ALLOCATABLE d'un module. Elles seront déclarées en !$acc data present (...) dans tous les modules les utilisant
  • Au début d'une routine:
    • déclarer en !$acc data create (...) les tableaux locaux
    • déclarer en !$acc data copyin (...) les tableaux en argument qui sont intent(IN)
    • déclarer en !$acc data copyout (...) les tableaux en argument qui sont intent(OUT)
    • déclarer en !$acc data copy (...) les tableaux en argument qui sont intent(INOUT)
  • Pour les variables de modules:
    • On peut rajouter systématiquement après un !$OMP THREADPRIVATE(...) le !$acc declare create() correspondant, e.g.
             REAL, SAVE, ALLOCATABLE :: t_seri(:,:), q_seri(:,:)
            !$OMP THREADPRIVATE(t_seri, q_seri)
            !$acc declare create(t_seri, q_seri)
      


Mode d'emploi pour installer la branche portée sur jean-zay-pp