Gromacs
2024.4
|
#include <gromacs/fft/gpu_3dfft_ocl.h>
A 3D FFT wrapper class for performing R2C/C2R transforms using clFFT.
Public Member Functions | |
ImplOcl (bool allocateRealGrid, MPI_Comm comm, ArrayRef< const int > gridSizesInXForEachRank, ArrayRef< const int > gridSizesInYForEachRank, int nz, bool performOutOfPlaceFFT, const DeviceContext &context, const DeviceStream &pmeStream, ivec realGridSize, ivec realGridSizePadded, ivec complexGridSizePadded, DeviceBuffer< float > *realGrid, DeviceBuffer< float > *complexGrid) | |
Default constructor. More... | |
~ImplOcl () override | |
Default destructor. More... | |
void | perform3dFft (gmx_fft_direction dir, CommandEvent *timingEvent) override |
Performs the FFT transform in given direction. More... | |
Public Member Functions inherited from gmx::Gpu3dFft::Impl | |
Impl () | |
Default constructor. | |
Impl (bool performOutOfPlaceFFT) | |
Constructor called from dervied classes. | |
Impl (bool allocateRealGrid, MPI_Comm comm, ArrayRef< const int > gridSizesInXForEachRank, ArrayRef< const int > gridSizesInYForEachRank, int nz, bool performOutOfPlaceFFT, const DeviceContext &context, const DeviceStream &pmeStream, ivec realGridSize, ivec realGridSizePadded, ivec complexGridSizePadded, DeviceBuffer< float > *realGrid, DeviceBuffer< float > *complexGrid) | |
Constructs GPU FFT plans for performing 3D FFT on a PME grid. More... | |
virtual | ~Impl () |
Default destructor. | |
Additional Inherited Members | |
Protected Member Functions inherited from gmx::Gpu3dFft::Impl | |
void | allocateComplexGrid (const ivec complexGridSizePadded, DeviceBuffer< float > *realGrid, DeviceBuffer< float > *complexGrid, const DeviceContext &context) |
Allocate and assign complexGrid. | |
void | deallocateComplexGrid () |
free complexGrid | |
Protected Attributes inherited from gmx::Gpu3dFft::Impl | |
bool | performOutOfPlaceFFT_ = false |
A boolean which tells whether the complex and real grids are different or same. Currenty true. | |
DeviceBuffer< float > | complexGrid_ |
FFT complex grid. | |
gmx::Gpu3dFft::ImplOcl::ImplOcl | ( | bool | allocateRealGrid, |
MPI_Comm | comm, | ||
ArrayRef< const int > | gridSizesInXForEachRank, | ||
ArrayRef< const int > | gridSizesInYForEachRank, | ||
int | nz, | ||
bool | performOutOfPlaceFFT, | ||
const DeviceContext & | context, | ||
const DeviceStream & | pmeStream, | ||
ivec | realGridSize, | ||
ivec | realGridSizePadded, | ||
ivec | complexGridSizePadded, | ||
DeviceBuffer< float > * | realGrid, | ||
DeviceBuffer< float > * | complexGrid | ||
) |
Default constructor.
|
override |
Default destructor.
|
overridevirtual |
Performs the FFT transform in given direction.
[in] | dir | FFT transform direction specifier |
[out] | timingEvent | pointer to the timing event where timing data is recorded |
Implements gmx::Gpu3dFft::Impl.