Internal compiler error: Double precision in kernel function

I am receiving the following error when I compile the code below with the debug (-g) flag. It seems compilation is failing when calling functions like ‘sqrt’ for double precision numbers.
I am compiling on x84-64 Linux with the 14.2.0 pgfortran compiler.


PGF90-F-0000-Internal compiler error. Unsupported MVDP 4


module cuda_kernel

  use cudafor

      attributes(device) double precision function b_sqrt(b)
        implicit none

        double precision:: b

        b_sqrt= sqrt(b) 
      end function 
end module

Hi aring,

Apologies for that. This was an early problem with CUDA Fortran’s LLVM back-end which is enabled by default when debugging is used. The issue was corrected in the 14.4 release.

% pgf90 -Mcuda=llvm test.cuf -c -V14.2
PGF90-F-0000-Internal compiler error. Unsupported MVDP       4 (test.cuf: 14)
PGF90/x86-64 Linux 14.2-0: compilation aborted
% pgf90 -Mcuda=llvm test.cuf -c -V14.4
  • Mat