| View previous topic :: View next topic |
| Author |
Message |
ink
Joined: 25 Nov 2008 Posts: 8
|
Posted: Tue Sep 29, 2009 10:22 am Post subject: CUDA Fortran: supported methods for data transfer |
|
|
hello,
i'm playing with the matrix multiplication example given in CUDA Fortran Programming Guide & Ref, p. 43-44 and i can't get the data back from the device. what methods are currently supported?
btw, i had to add "device" to line 8 (p.43)
real, device :: A(N,M), B(M,L), C(N,L)
to compile the example. Unfortunately when run it it breaks with
copyout Memcpy FAILED:4
i tried using cudaMemcpy2D to do explicit data transfer but still get errors (stat > 0)
thanks |
|
| Back to top |
|
 |
mkcolg
Joined: 30 Jun 2004 Posts: 4996 Location: The Portland Group Inc.
|
Posted: Tue Sep 29, 2009 12:34 pm Post subject: |
|
|
Hi ink,
Looks like our docs people missed some updates. Try using the matrix multiply example found the "etc/samples" instead.
Thanks,
Mat |
|
| Back to top |
|
 |
TheMatt
Joined: 06 Jul 2009 Posts: 263 Location: Greenbelt, MD
|
Posted: Wed Sep 30, 2009 5:38 am Post subject: |
|
|
| mkcolg wrote: | Hi ink,
Looks like our docs people missed some updates. Try using the matrix multiply example found the "etc/samples" instead. | Mat,
I just tried the sgemm example and I got: | Code: | > pgfortran sgemm.cuf
/usr/bin/ld: skipping incompatible /opt/cuda/lib/libcudart.so when searching for -lcudart
/usr/bin/ld: cannot find -lcudart | I currently have CUDA 2.3 installed. Does CUDA Fortran require a different version? |
|
| Back to top |
|
 |
MRA
Joined: 29 Sep 2009 Posts: 2
|
Posted: Wed Sep 30, 2009 6:52 am Post subject: |
|
|
Hi TheMatt,
You are probably using a 64bit OS. You need to point the CUDALIB variable (located inside the sitenvrc) to the lib64 path of CUDA. In your case, it's should be /opt/cuda/lib64.
Mathieu |
|
| Back to top |
|
 |
TheMatt
Joined: 06 Jul 2009 Posts: 263 Location: Greenbelt, MD
|
Posted: Wed Sep 30, 2009 8:54 am Post subject: |
|
|
| MRA wrote: | Hi TheMatt,
You are probably using a 64bit OS. You need to point the CUDALIB variable (located inside the sitenvrc) to the lib64 path of CUDA. In your case, it's should be /opt/cuda/lib64. | You are absolutely right.
Now I'm wondering why this error never popped up while using the accelerators...
Thanks,
Matt |
|
| Back to top |
|
 |
|