Calling FFT from device


Is there a way to call fft from device? As far as I could figure out cufft is host only. Basically, I need to do a bunch of (small) 3D ffts, and if there was a way I could put that into code that is already running on device, that would be lovely. I have a quite large volume and are going through that using CUDA. I would like to look at frequencies from just the area around the point I am at in the volume. Is this posible in any way?


No, Try the batch transforms. You put all the data in a long array and do all the transforms in the same time. it should do the trick and more efficient if each core would do a transform.

Okay. Thank you, I’ll have a look at the batch transforms.

It is happening quite often when I talk about CUDA to people to consider the core of the gpu in the same way the look at the core of the cpus when they do mpi or openmp parallel program. The gpu cores and the cpu core behave very different. The gpu cores they all work in the same time executing the same instruction (SIMT= single instruction multiple threads) for at least 32 threads (one warp) in the same way as an assembly line works.