Gromacs  2024.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
List of all members | Public Member Functions
gmx::Gpu3dFft::ImplOcl Class Reference

#include <gromacs/fft/gpu_3dfft_ocl.h>

+ Inheritance diagram for gmx::Gpu3dFft::ImplOcl:
+ Collaboration diagram for gmx::Gpu3dFft::ImplOcl:

Description

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.
 

Constructor & Destructor Documentation

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.

gmx::Gpu3dFft::ImplOcl::~ImplOcl ( )
override

Default destructor.

Member Function Documentation

void gmx::Gpu3dFft::ImplOcl::perform3dFft ( gmx_fft_direction  dir,
CommandEvent timingEvent 
)
overridevirtual

Performs the FFT transform in given direction.

Parameters
[in]dirFFT transform direction specifier
[out]timingEventpointer to the timing event where timing data is recorded

Implements gmx::Gpu3dFft::Impl.


The documentation for this class was generated from the following files: