| Version 6 (modified by , 4 years ago) (diff) |
|---|
Page d'information sur le portage GPU de LMDZ
Liste de liens divers
- la chaîne slack LMDZ/hackathon : https://lmdz.slack.com/archives/C01TGQWR6J2
- la chaîne mattermost 'Portage accélérateurs' : https://mattermost.lmd.ipsl.fr/lmdz/channels/portage-accelerateurs
- le google doc de Thomas utilisé pendant le Hackathon: https://docs.google.com/document/d/1dSlVbJD1aMrB5wT-_TnYoMLUdaqSAfji1O8q_wzuDNE
Règles de codage / portage
Traitement des DATA
- Déclarer en
!$acc data create (...)les variablesALLOCATABLEd'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 sontintent(IN) - déclarer en
!$acc data copyout (...)les tableaux en argument qui sontintent(OUT) - déclarer en
!$acc data copy (...)les tableaux en argument qui sontintent(INOUT)
- déclarer en
- 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)
- On peut rajouter systématiquement après un
Mode d'emploi pour installer la branche portée sur jean-zay-pp
- la branche est ici: https://svn.lmd.jussieu.fr/LMDZ/LMDZ6/branches/Portage_acc
