|
PyForTool
Python-fortran-tool
|

Public Member Functions | |
| removeACC (self) | |
| removebyPassDOCONCURRENT (self) | |
| craybyPassDOCONCURRENT (self) | |
| allocatetoHIP (self) | |
| addACCData (self) | |
| addACCRoutineSeq (self, stopScopes) | |
Methods relative to openacc
Definition at line 11 of file openacc.py.
| pyfortool.openacc.Openacc.addACCData | ( | self | ) |
1) Add after declaration: !$acc data present ( list of intent arrays) 2) Add at the end of the routine !$acc end data
Definition at line 221 of file openacc.py.

| pyfortool.openacc.Openacc.addACCRoutineSeq | ( | self, | |
| stopScopes | |||
| ) |
Adds the '!$acc routine (<name>) seq' directive :param stopScopes: scope paths where we stop to add the directive
Definition at line 270 of file openacc.py.

| pyfortool.openacc.Openacc.allocatetoHIP | ( | self | ) |
Convert (DE)ALLOCATE to (DE)ALLOCATE_HIP on variables only sent to the GPU via !$acc enter data copyin or !$acc enter data create This is necessary for using the managed memory with GPU AMD MI250X (on Adastra)
Definition at line 133 of file openacc.py.

| pyfortool.openacc.Openacc.craybyPassDOCONCURRENT | ( | self | ) |
By pass a bug of the CRAY compiler in which the vectorisation is not done with
BR_ fonctions use or locally.
On all expanded compute kernels with !$acc loop independent collapse(X) placed:
- if BR_ fonction is used : !$acc loop independent collapse(X) is removed and
the nested DO loops are factorised into DO CONCURRENT
- if a mnh_undef(OPENACC) macro is in place, !$acc loop collapse independant(X)
is removed
- if a mnh_undef(LOOP) macro is in place the nested DO loops are factorised into
DO CONCURRENT
Definition at line 40 of file openacc.py.

| pyfortool.openacc.Openacc.removeACC | ( | self | ) |
Remove openACC directives
Definition at line 16 of file openacc.py.

| pyfortool.openacc.Openacc.removebyPassDOCONCURRENT | ( | self | ) |
Remove macro !$mnh_(un)def(OPENACC) and !$mnh_(un)def(LOOP) directives for other compiler than Cray
Definition at line 24 of file openacc.py.
