I have the next example CUDA PGI code:
module VectorSumModul
use cudafor
contains
attributes(global) subroutine VectorSum_kernel(v,s,sizevector)
implicit none
integer, value :: sizevector
real, value :: s
real, device :: v(sizevector)
integer :: tx
tx = threadidx%x
v(tx) = v(tx) + s
end subroutine VectorSum_kernel
end module VectorSumModul
program Main
use cudafor
use VectorSumModul
implicit none
integer, parameter :: sizevector = 512
real, parameter :: s = 5
real, allocatable :: v(:)
real, device, allocatable :: cudav(:)
integer :: i
allocate (v(sizevector))
allocate (cudav(sizevector))
do i=1,sizevector
v(i) = 1
end do
!print *,“v=”, v(512)
cudav = v
call VectorSum_kernel<<<1,sizevector>>>(cudav,s,sizevector)
v = cudav
!print *,“v=”, v(512)
deallocate (v)
deallocate (cudav)
end program Main
I know that this code works fine, however in my machine doesn’t work. When I compile
“pgfortran VectorSum.cuf” I recieve :
/opt/pgi/linux86-64/2010/cuda/2.3/include/driver_types.h(186): error: identifier “size_t” is undefined
/opt/pgi/linux86-64/2010/cuda/2.3/include/driver_types.h(187): error: identifier “size_t” is undefined
/opt/pgi/linux86-64/2010/cuda/2.3/include/driver_types.h(188): error: identifier “size_t” is undefined
/opt/pgi/linux86-64/2010/cuda/2.3/include/driver_types.h(197): error: identifier “size_t” is undefined
/opt/pgi/linux86-64/2010/cuda/2.3/include/driver_types.h(198): error: identifier “size_t” is undefined
/opt/pgi/linux86-64/2010/cuda/2.3/include/driver_types.h(199): error: identifier “size_t” is undefined
/opt/pgi/linux86-64/2010/cuda/2.3/include/driver_types.h(208): error: identifier “size_t” is undefined
/opt/pgi/linux86-64/2010/cuda/2.3/include/driver_types.h(209): error: identifier “size_t” is undefined
/opt/pgi/linux86-64/2010/cuda/2.3/include/driver_types.h(210): error: identifier “size_t” is undefined
/opt/pgi/linux86-64/2010/cuda/2.3/include/driver_types.h(237): error: identifier “size_t” is undefined
/opt/pgi/linux86-64/2010/cuda/2.3/include/driver_types.h(238): error: identifier “size_t” is undefined
/opt/pgi/linux86-64/2010/cuda/2.3/include/driver_types.h(239): error: identifier “size_t” is undefined
/opt/pgi/linux86-64/2010/cuda/2.3/include/driver_types.h(264): error: identifier “size_t” is undefined
/opt/pgi/linux86-64/2010/cuda/2.3/include/driver_types.h(265): error: identifier “size_t” is undefined
/opt/pgi/linux86-64/2010/cuda/2.3/include/driver_types.h(268): error: identifier “size_t” is undefined
/opt/pgi/linux86-64/2010/cuda/2.3/include/driver_types.h(273): error: identifier “size_t” is undefined
/opt/pgi/linux86-64/2010/cuda/2.3/include/driver_types.h(276): error: identifier “size_t” is undefined
17 errors detected in the compilation of “/tmp/pgnvdVt6cnUobsBXL.nv2”.
PGF90-F-0000-Internal compiler error. pgnvd job exited with nonzero status code 0 (VectorSum.cuf: 20)
PGF90/x86-64 Linux 10.8-0: compilation aborted
pedro@pedro:~/Poisson/PGIExample$ pgfortran VectorSum.cuf
/opt/pgi/linux86-64/2010/cuda/2.3/include/driver_types.h(186): error: identifier “size_t” is undefined
/opt/pgi/linux86-64/2010/cuda/2.3/include/driver_types.h(187): error: identifier “size_t” is undefined
/opt/pgi/linux86-64/2010/cuda/2.3/include/driver_types.h(188): error: identifier “size_t” is undefined
/opt/pgi/linux86-64/2010/cuda/2.3/include/driver_types.h(197): error: identifier “size_t” is undefined
/opt/pgi/linux86-64/2010/cuda/2.3/include/driver_types.h(198): error: identifier “size_t” is undefined
/opt/pgi/linux86-64/2010/cuda/2.3/include/driver_types.h(199): error: identifier “size_t” is undefined
/opt/pgi/linux86-64/2010/cuda/2.3/include/driver_types.h(208): error: identifier “size_t” is undefined
/opt/pgi/linux86-64/2010/cuda/2.3/include/driver_types.h(209): error: identifier “size_t” is undefined
/opt/pgi/linux86-64/2010/cuda/2.3/include/driver_types.h(210): error: identifier “size_t” is undefined
/opt/pgi/linux86-64/2010/cuda/2.3/include/driver_types.h(237): error: identifier “size_t” is undefined
/opt/pgi/linux86-64/2010/cuda/2.3/include/driver_types.h(238): error: identifier “size_t” is undefined
/opt/pgi/linux86-64/2010/cuda/2.3/include/driver_types.h(239): error: identifier “size_t” is undefined
/opt/pgi/linux86-64/2010/cuda/2.3/include/driver_types.h(264): error: identifier “size_t” is undefined
/opt/pgi/linux86-64/2010/cuda/2.3/include/driver_types.h(265): error: identifier “size_t” is undefined
/opt/pgi/linux86-64/2010/cuda/2.3/include/driver_types.h(268): error: identifier “size_t” is undefined
/opt/pgi/linux86-64/2010/cuda/2.3/include/driver_types.h(273): error: identifier “size_t” is undefined
/opt/pgi/linux86-64/2010/cuda/2.3/include/driver_types.h(276): error: identifier “size_t” is undefined
17 errors detected in the compilation of “/tmp/pgnvdUK6cknxzRmVD.nv2”.
PGF90-F-0000-Internal compiler error. pgnvd job exited with nonzero status code 0 (VectorSum.cuf: 20)
PGF90/x86-64 Linux 10.8-0: compilation aborted
Can someone help me?