I'm using cuFFT to do some 2D FFTs on matrices of size 2048x2048 or larger. The FFTs are preceded and followed by various scaling operations.

These scaling operations are memory-bound, so they take as long to execute as the FFT itself. I think the best way to accelerate them is to fuse them with the FFT kernel. However, cuFFT's callbacks are executed as separate kernels. To fix this, I think I need access to the FFT source itself.

Has anyone used or does anyone have recommendations for open source GPU FFT implementations? I've found fbFFT, but it seems to have almost no documentation or comparison benchmarks.

  • $\begingroup$ Could you transfer the data to GPU memory, scale using the GPU, then call FFT routines that are designed to work with data already in GPU memory? $\endgroup$ – Brian Borchers Sep 17 '19 at 4:19
  • $\begingroup$ @Brian: That is my current strategy. Unfortunately, the GPU is fast enough that the operations are limited by the speed of its memory. I'm such a situation additional speed can only be gained by increasing arithmetic intensity. $\endgroup$ – Richard Sep 17 '19 at 15:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.