cuda fortran does not work on my computer now

Questions on using the PGI Compilers and Tools
dypang
Posts: 11
Joined: Sep 27 2017

cuda fortran does not work on my computer now

Post by dypang » Wed Nov 27, 2019 8:48 am

I need helps again: my cuda fortran code does not run now. It worked well before. I guess it was because I have made some system updates (Windows 10) or firmware updates (dell precision 7720). I removed and reinstalled the latest CUDA toolkit and PGI fortran compiler (community version) but it did not solve my problem:

The PGI fortran compiler itself works well -- it prints out "hello world" correctly, and it compiles the "deviceQuery.cuf" code and runs correctly,

The CUDA toolkit works well -- I can run the sample programs in the CUDA toolkit package correctly

It seems that the PGI fortran compiler is not calling CUDA gpu (Quadro P4000) correctly. The message when running my code is:
ALLOCATE: copyin Symbol Memcpy FAILED:13(invalid device symbol)
I also tested with the following sampel CUDA fortran code:

Code: Select all

module mathOps
contains
  attributes(global) subroutine saxpy(x, y, a)
    implicit none
    real :: x(:), y(:)
    real, value :: a
    integer :: i, n
    n = size(x)
    i = blockDim%x * (blockIdx%x - 1) + threadIdx%x
    if (i <= n) y(i) = y(i) + a*x(i)
  end subroutine saxpy 
end module mathOps

program testSaxpy
  use mathOps
  use cudafor
  implicit none
  integer, parameter :: N = 40000
  real :: x(N), y(N), a
  real, device :: x_d(N), y_d(N)
  type(dim3) :: grid, tBlock

  tBlock = dim3(256,1,1)
  grid = dim3(ceiling(real(N)/tBlock%x),1,1)

  x = 1.0; y = 2.0; a = 2.0
  x_d = x
  y_d = y
  call saxpy<<<grid, tBlock>>>(x_d, y_d, a)
  y = y_d
  write(*,*) 'Max error: ', maxval(abs(y-4.0))
end program testSaxpy
The result when running this code is:
PGI$ ./saxpy.exe
Max error: 2.000000
Segmentation fault
What might be wrong with my computer? Thanks a lot!

mkcolg
Posts: 8137
Joined: Jun 30 2004

Re: cuda fortran does not work on my computer now

Post by mkcolg » Wed Nov 27, 2019 9:07 am

Hi dypang,

I gave you're program a try with PGI 19.10 on a Windows system with a GTX 1080 which is the closest device I have to your P4000. However I didn't see any issue nor did cuda-memcheck report any problems.
I removed and reinstalled the latest CUDA toolkit
I'm assuming you just installed CUDA 10.2? It's possible that this is the problem since CUDA 10.2 just came out a few weeks ago so not yet supported by the 19.10 compilers. Though a program built with CUDA 10.1 should still run correctly with a 10.2 driver.

Try compiling with "-Mcuda=cuda10.1" so the compiler builds with the CUDA 10.1 components that ship with the compilers instead of trying to use the local 10.2 install.

-Mat

dypang
Posts: 11
Joined: Sep 27 2017

Re: cuda fortran does not work on my computer now

Post by dypang » Wed Nov 27, 2019 3:30 pm

Hi Mat, thanks, I will try you suggestion when I am in my office. But I am not sure it is the solution. initially I was using CUDA10.1+PGI FORTRAN 19.04, and it did not work.

But you reminded me to try downgrading Cuda tools, instead of always upgrading it!

dypang
Posts: 11
Joined: Sep 27 2017

Re: cuda fortran does not work on my computer now

Post by dypang » Wed Nov 27, 2019 7:50 pm

mkcolg wrote:
Wed Nov 27, 2019 9:07 am
Hi dypang,

Try compiling with "-Mcuda=cuda10.1" so the compiler builds with the CUDA 10.1 components that ship with the compilers instead of trying to use the local 10.2 install.

-Mat
Hi Mat, thanks for your suggestion, it turned out that -Mcuda=cuda10.1 did not work, but -Mcuda=cuda9.2 works

And I also realized that I do not need to remove cuda toolkit 10.2, and I do not need to install cuda toolkit 9.2, I only need tu use -Mcuda=cuda9.2 with cuda toolkit 10.2! That's very convenient.

mkcolg
Posts: 8137
Joined: Jun 30 2004

Re: cuda fortran does not work on my computer now

Post by mkcolg » Mon Dec 02, 2019 8:39 am

Interesting. Once I get a 10.2 CUDA SDK installed on a Windows system and see about trying to reproduce this issue. I'd think using 10.1 would work and you shouldn't need to fall back to 9.2, but am glad you got things working.

-Mat

Post Reply