PGI Visual Fortran fully integrates PGI Fortran compilers and tools into Microsoft Windows using Microsoft Visual Studio. PGI Visual Fortran is included with all PGI products for Windows. PGI products target 64-bit x64 and 32-bit x86 workstations, servers and clusters with one or more single core or multi-core microprocessors running Linux, macOS or Windows. Compiler Support for the Fortran 2008 Standard. The table below documents features from the Fortran 2008 standard that are supported by recent versions of several available compilers. Of course, development versions of some compilers support may additional features. I'm currently attempting to accelerate a spectral element fluids solver by porting most of the routines to a GPGPU using OpenACC with the PGI (15.10) compiler. Modern methods for robust regression pdf to word. The source code is written in OO-Fortran. This software has 'layers' of subroutines that call other functions and subroutines. To bring the code over to a GPU using openacc, I've been first attempting to place '$acc routine' directives in each routine that needs to be ported. Jill scott long walk free download full. During compilation, using 'pgf90 -acc -Minfo=accel', I receive the following error: nvvmCompileProgram error: 9. Pgi Fortran Compiler Download![]() Pgi Fortran CommunityError: /tmp/pgacc2lMnIf9lMqx8.gpu (146, 24): parse invalid forward reference to function 'innerroutine_' with wrong type! PGF90-S-0155-Compiler failed to translate accelerator region (see -Minfo messages): Device compiler exited with error status code (Test.f90: 1) This same problem can be reproduced with the following simple fortran program: PROGRAM Test IMPLICIT NONE CONTAINS SUBROUTINE OuterRoutine( sol, xF, N )!$acc routine IMPLICIT NONE INTEGER:: N REAL(KIND=8):: sol(0:N,1:3) REAL(KIND=8):: xF(0:N,1:3)! LOCAL INTEGER:: i DO i = 0, N xF(i,1:3) = InnerRoutine( sol(i,1:3) ) ENDDO END SUBROUTINE OuterRoutine FUNCTION InnerRoutine( sol ) RESULT( xF )!$acc routine IMPLICIT NONE REAL(KIND=8):: sol(1:3) REAL(KIND=8):: xF(1:3) xF(1) = sol(1)*sol(2) xF(2) = sol(1)*sol(3) xF(3) = sol(1)*sol(1) END FUNCTION InnerRoutine END PROGRAM Test Again, compiling the above program with 'pgf90 -acc -Minfo=accel' yields the problem. Does openacc support acc-enabled routines calling other acc-enabled routines? If so, what am I doing wrong?
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |