Hi all,
during compilation i am getting an error message that I do not understand:
( pgf90 -c -I ../CBS -I /opt/pgi/linux86-64/2014/mpi/mpich/include -Mcuda -Minfo -byteswapio -O2 -Mvect=nosse -Ktrap=fp -Mr8 -Mprof=lines,mpich -g ../CODE/lwtt_gpu.f )
PGF90-F-0155-Compiler failed to translate accelerator region (see -Minfo messages): Unexpected runtime function call (../CODE/lwtt_gpu.f: 1)
The first lines of my subroutine are like this:
attributes(global) SUBROUTINE LWTT_GPU (KLON,KAER,KCFC,
& PGA,PGB,PGC,PGD,PUU,PTT)
Thanks for you help.
Hi AClimate,
The error means that a runtime call that’s not supported on the GPU is somehow being inserted into your kernel. Exactly what that function call is, I’m not sure.
The first thing to try is removing the “-Ktrap” and “-Mprof” flags. They shouldn’t be inserting any calls into GPU code, but if they are, we’ll want to correct that.
Can you either post or send to PGI Customer Service (trs@pgroup.com) a reproducing example?
Thanks,
Mat
Thanks Mat,
i reduced the subroutine and found the problematic line:
attributes(global) SUBROUTINE LWTT_GPU (KLON)
USE CUDAFOR
REAL ZTTNC(KLON)
ZTTNC(1)=1
END
Problem was a syntax error in the declaration of ZTTNC.
Changing it to
attributes(global) SUBROUTINE LWTT_GPU (KLON)
USE CUDAFOR
REAL :: ZTTNC(KLON)
ZTTNC(1)=1
END
leads to a new error message, that has nothing to do with this topic, so I will open a new topic.
Thanks
AClimate