Difference between revisions of "PGI: PGI and OpenACC"
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 | ||
| − | + | ||
| − | + | '''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
- 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