I have some code that is heavily using np.fft.rfft
and np.fft.irfft
, such that this is the bottleneck for optimisation.
Is there any chance of going faster than this, and if so what are my best options. Thoughts that occur to me would be:
- Cython - heard this is very fast; but would it help here though?
- digging into numpy -
rfft
calls_raw_fft
which does lots of checking then callsfftpack.cfftf
. Profiler is telling me only 80% of the time is infftpack.cfftf
, stripping down the wrapping to the only bits I need could save a little time. - find a faster DFT algorithm somewhere?
- buy more computers
So really the question boils down to:
- Does anyone with Cython experience know if it would be worth trying here - or can it not make numpy any faster.
- Are there any faster packages out there? How much faster is possible?