Redesign GPU FFT abstraction
authorGaurav Garg <gaugarg@nvidia.com>
Wed, 8 Sep 2021 18:40:06 +0000 (18:40 +0000)
committerAndrey Alekseenko <al42and@gmail.com>
Wed, 8 Sep 2021 18:40:06 +0000 (18:40 +0000)
commit4a4ade895955cba997b6b4b8136bffe36697178d
tree53b53bc18cf2901c5507121077b9334d3c475b89
parentaff557e07c009e9ebd236f96d93466289c481139
Redesign GPU FFT abstraction
- Modify interface to allow distributed FFT implementation in future
- Provide support for choosing FFT backend at runtime. E.g. CUFFT backend can be instantiated for single-GPU FFT but HeFFTe can be instantiated in case PME decomposition is used.

This is a pre-requisite for GPU PME-decomposition implementation.

Refs #3884
13 files changed:
src/gromacs/ewald/pme_gpu_internal.cpp
src/gromacs/fft/CMakeLists.txt
src/gromacs/fft/gpu_3dfft.cpp
src/gromacs/fft/gpu_3dfft.h
src/gromacs/fft/gpu_3dfft_cufft.cu [moved from src/gromacs/fft/gpu_3dfft.cu with 66% similarity]
src/gromacs/fft/gpu_3dfft_cufft.h [new file with mode: 0644]
src/gromacs/fft/gpu_3dfft_impl.h [new file with mode: 0644]
src/gromacs/fft/gpu_3dfft_ocl.cpp
src/gromacs/fft/gpu_3dfft_ocl.h [new file with mode: 0644]
src/gromacs/fft/gpu_3dfft_sycl.cpp
src/gromacs/fft/gpu_3dfft_sycl.h [new file with mode: 0644]
src/gromacs/fft/tests/fft.cpp
src/gromacs/utility/binaryinformation.cpp