2
$\begingroup$

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.

$\endgroup$
2
  • $\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$ Commented Sep 17, 2019 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
    Commented Sep 17, 2019 at 15:30

1 Answer 1

1
$\begingroup$

This is a pretty old question, but rocFFT is an open-source GPU FFT library for AMD GPUs. It's written in HIP, so it could likely also work on NVIDIA GPUs with a bit of work.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.