Difference between revisions of "PGI: PGI and OpenACC"

From Define Wiki
Jump to navigation Jump to search
Line 14: Line 14:
 
# After trying to compile a Fortran code I got the following error:
 
# After trying to compile a Fortran code I got the following error:
 
  /tmp/pgaccTlnihVRmAnZx.gpu(244): error: expression must have class type
 
  /tmp/pgaccTlnihVRmAnZx.gpu(244): error: expression must have class type
#: ddddd
+
 
#ffff
+
'''Solution''':
 +
 
 +
There was an OpenACC directive that was causing the problem, which was commented out:
 +
!$ACC  parallel present(alpha,nitcg)
 +
      alpha=0
 +
      nitcg=nitcg+1
 +
!$ACC  end parallel

Revision as of 12:50, 19 December 2014

Compiling the code with OpenACC support

In order to find the correct flags for the compiler run:

pgaccelinfo

The flags are in the last output line. Example:

pgicc/pgfortran -ta=tesla:cc35

Note: Don't forget to add the OpenACC flags to the linker:

pgicc/pgfortran -acc -acclibs

Issues met

  1. After trying to compile a Fortran code I got the following error:
/tmp/pgaccTlnihVRmAnZx.gpu(244): error: expression must have class type

Solution:

There was an OpenACC directive that was causing the problem, which was commented out:

!$ACC  parallel present(alpha,nitcg) 
      alpha=0
      nitcg=nitcg+1
!$ACC  end parallel