Switch FFT backend to vkfft
silx.math.fft
works reasonably well but has the following drawbacks:
-
silx.math
creates unnecessary contexts (fixed in recent version that will take months to be released) - OpenCL:
gpyfft
is cumbersome to install, and its maintenance state is not clear - Cuda: CUFFT memory usage is huge (3.5-4X the original data)
- Cuda scikit-cuda also sometimes creates unnecessary contexts
It might be good to switch to pyvkfft which addresses all these shortcomings.
However, we have to ensure it works on all ESRF machines - for now there is an issue with nvrtc
in several cases.