Yes, I’m working on images so I want to do a 2D FFT, I used a 2-by-2 matrix but even with that small number doesn’t work, in fact, my images are from 60 thousand pixels to 70 MP,
but I wanted to try it first on a small data set.
I’ll explain my problem:
My data is thought as a 2D matrix, let’s say:
1 2 3 4
6 7 8 9
1 8 3 4
And i want to perform a 2D FFT, but in memory I have the following:
1 2 3 4 6 7 8 9 1 8 3 4
But as I said I need a 2D FFT. I checked with the examples on the site of nvidia but couldn’t make it work. The direction of the CUFFT is implicit (at least that’s what it says on the CUFFT library pdf)
It is correct you do not need to specify the direction. Have you tried to allocate memory using malloc() instead of doing it “the C++ way?” I have done some 2D FFTs lately, but I did all of my own memory allocation. I would also ensure your data being sent to the GPU before th FFT is what you expect it to be. The rest of the code seems ok to me.
You said some of your data is large data sets - 70M pixels…how do you plan on doing images that large that will not fit on the GPU? I am trying to accomplish this same goal, and just recently got my code working, but it will crash if I try to create FFT plans too large for my device.
By “the C++ way” you mean using new? I use malloc since I’m basically using C (although there’s no much problem writing that on C++)
Yes I checked if my pointers (on the host) to the data have the right info and they do.
Well I haven’t tried with 70 MP images, I think there’s a limit on the size of the matrix in CUFFT…but first I need to make the CUFFT work desperately :S