I am working on a project that should use FFT on Nvidia and AMD graphics cards. At first I was looking for a library that would work on both (thinking it would be OpenCL), but I had no luck.
Someone suggested that I use every implementation of the vendorβs FFT and write a package that chose what to do on the platform. I found the AMD implementation pretty easy, but I actually work with the Nvidia card in the meantime (and this is more important for my particular application).
The only Nvidia implementation I can find is CUFFT. Does anyone know how I can actually use the CUFFT library from OpenCL? The only way I can think of is to have CUDA code along with my OpenCL code. I read that I cannot just use OpenCL buffers as CUDA pointers ( Try to mix in OpenCL with CUDA in the NVIDIA SDK template ). Instead, will I have to copy the buffers back to the host after running OpenCL cores, and then copy them back to the GPU using CUDA data transfer procedures? I do not like this approach, since it seems to include meaningless memory transfers, I would prefer it if I could use CUFFT from OpenCL.
opencl gpgpu cuda nvidia
Lorentz
source share