PyForTool
Python-fortran-tool
Loading...
Searching...
No Matches
Public Member Functions | List of all members
pyfortool.openacc.Openacc Class Reference
Inheritance diagram for pyfortool.openacc.Openacc:
Inheritance graph
[legend]

Public Member Functions

 removeACC (self)
 
 removebyPassDOCONCURRENT (self)
 
 craybyPassDOCONCURRENT (self)
 
 allocatetoHIP (self)
 
 addACCData (self)
 
 addACCRoutineSeq (self, stopScopes)
 

Detailed Description

Methods relative to openacc

Definition at line 11 of file openacc.py.

Member Function Documentation

◆ addACCData()

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.

Here is the call graph for this function:

◆ addACCRoutineSeq()

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.

Here is the call graph for this function:

◆ allocatetoHIP()

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.

Here is the call graph for this function:

◆ craybyPassDOCONCURRENT()

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.

Here is the call graph for this function:

◆ removeACC()

pyfortool.openacc.Openacc.removeACC (   self)
Remove openACC directives

Definition at line 16 of file openacc.py.

Here is the call graph for this function:

◆ removebyPassDOCONCURRENT()

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.

Here is the call graph for this function:

The documentation for this class was generated from the following file: