For most users, i am certain the routines in cuFFT are sufficient. However, in the field of multidimensional NMR, and I assume MRI, the imaginary unit is taken differently in the various dimensions. Hence hyper complex transforms are required.
I put together code using an old fashion implementation by Richard Singleton, code that has been converted from Fortran to C. I was able to “fudge” this code to do both 2 dimensional and 3 dimensional transforms correctly.
However, function is not everything - the code is merely 20 times faster on a Fermi 2050 relative to cpu - and I have to put all data into the limiting memory on board, something that unfortunately is not sufficient when using larger and larger data sizes. (The process hence has to be segmented in some way.)
Is there someone in the cuFFT team that would like to look at the code and maybe boost it? I have limited, but some knowledge of cuda c programming.