Closed Arcadia197 closed 2 years ago
2D CuFFT for Complex to Real only seems to work on one dimension to reduce the array by two. However, since both directions are affected, maybe it cannot be implemented for two-dimensional arrays.
I read about cuFFT callbacks, this could be used to implement own input and output functions with automatic conversion
cuFFT callbacks are an experimental feature, this does therefore not work for the implementation.
However, as the temporary variables take up a huge amount of space (2x2xN_fine), reducing this further with make room for a lot of storage. I should look into this at some point again.
For this I have to:
I'm working on this. It looks very fine. Transformed already for translate_initial_condition and evaluate_stream_hermite.
Still have to check where we use temporary variables, nevertheless this should possibly reduce in a nice reduction. Due to the fact, that we do not need comp_to_real and real_to_comp anymore, maybe we can free more space than i actually imagined (i mean, everything that counts is actually the fine and psi size, so maybe just that is already enough great).
I implemented this and it works very well on my computer. However, I face some issues at anthycithere which I believe are linked to this change.
This has to be checked.
It was pretty dirty, but everything was solved and it is working properly now.
in theory, the FFT is done from Real -> Complex -> Real. This could be looked over and maybe changed, as it may change some space (and maybe time?)