Hi,
I have a 3d array in host and i’m trying to copy a part of it to device and viceversa.
I didn’t find a good documentation for cudamemcpy3d in CUDA FORTRAN.
This is the pseudocode
REAL VEL1(M, N, W)
REAL, DEVICE :: VEL1D(M, N, W)
TYPE(CUDAMEMCPY3DPARMS) :: CUDA3DPARMS
CUDA3DPARMS%srcPtr%ptr = UXVEL1(0,0,0);
CUDA3DPARMS%srcPtr%pitch = ACTUAL_N !actual_n < n
CUDA3DPARMS%srcPtr%xsize = ACTUAL_N !actual_m < m
CUDA3DPARMS%srcPtr%ysize = ACTUAL_M
CUDA3DPARMS%dstPtr%ptr = UXVEL1D(0,0,0);
CUDA3DPARMS%dstPtr%pitch = ACTUAL_N
CUDA3DPARMS%dstPtr%xsize = ACTUAL_N
CUDA3DPARMS%dstPtr%ysize = ACTUAL_M
CUDA3DPARMS%extent%width = ACTUAL_N
CUDA3DPARMS%extent%height = ACTUAL_M
CUDA3DPARMS%extent%depth = KMMAI !actual_k < k
CALL KERNEL
COPY BACK THE 3D ARRAY
The output of the compiler is:
PGF90-S-0148-Reference to derived type required
for the instructions
CUDA3DPARMS%srcPtr%ptr = UXVEL1(0,0,0)
CUDA3DPARMS%dstPtr%ptr = UXVEL1D(0,0,0)
any idea?
-Alberto