Highly Efficient FFT for Exascale: HeFFTe v2.3
heffte::rocfft_executor Class Reference

Wrapper around the rocFFT API. More...

#include <heffte_backend_rocm.h>

Public Member Functions

template<typename index >
 rocfft_executor (hipStream_t active_stream, box3d< index > const box, int dimension)
 Constructor, specifies the box and dimension.
 
template<typename index >
 rocfft_executor (hipStream_t active_stream, box3d< index > const box, int dir1, int dir2)
 Merges two FFTs into one.
 
template<typename index >
 rocfft_executor (hipStream_t active_stream, box3d< index > const box)
 Merges three FFTs into one.
 
template<typename precision_type , direction dir>
void execute (std::complex< precision_type > data[], std::complex< precision_type > *workspace) const
 Perform an in-place FFT on the data in the given direction.
 
void forward (std::complex< float > data[], std::complex< float > *workspace) const override
 Forward fft, float-complex case.
 
void forward (std::complex< double > data[], std::complex< double > *workspace) const override
 Forward fft, double-complex case.
 
void backward (std::complex< float > data[], std::complex< float > *workspace) const override
 Backward fft, float-complex case.
 
void backward (std::complex< double > data[], std::complex< double > *workspace) const override
 Backward fft, double-complex case.
 
void forward (float const indata[], std::complex< float > outdata[], std::complex< float > *workspace) const override
 Converts the deal data to complex and performs float-complex forward transform.
 
void forward (double const indata[], std::complex< double > outdata[], std::complex< double > *workspace) const override
 Converts the deal data to complex and performs double-complex forward transform.
 
void backward (std::complex< float > indata[], float outdata[], std::complex< float > *workspace) const override
 Performs backward float-complex transform and truncates the complex part of the result.
 
void backward (std::complex< double > indata[], double outdata[], std::complex< double > *workspace) const override
 Performs backward double-complex transform and truncates the complex part of the result.
 
int box_size () const override
 Returns the size of the box.
 
size_t workspace_size () const override
 Return the size of the needed workspace.
 
size_t compute_workspace_size () const
 Computes the size of the needed workspace.
 
virtual void forward (float[], float *) const
 Bring forth method that have not been overloaded.
 
virtual void forward (double[], double *) const
 Bring forth method that have not been overloaded.
 
virtual void forward (std::complex< float >[], std::complex< float > *) const
 Bring forth method that have not been overloaded.
 
virtual void forward (std::complex< double >[], std::complex< double > *) const
 Bring forth method that have not been overloaded.
 
virtual void forward (float const [], std::complex< float >[], std::complex< float > *) const
 Bring forth method that have not been overloaded.
 
virtual void forward (double const [], std::complex< double >[], std::complex< double > *) const
 Bring forth method that have not been overloaded.
 
virtual void backward (float[], float *) const
 Bring forth method that have not been overloaded.
 
virtual void backward (double[], double *) const
 Bring forth method that have not been overloaded.
 
virtual void backward (std::complex< float >[], std::complex< float > *) const
 Bring forth method that have not been overloaded.
 
virtual void backward (std::complex< double >[], std::complex< double > *) const
 Bring forth method that have not been overloaded.
 
virtual void backward (std::complex< float >[], float[], std::complex< float > *) const
 Bring forth method that have not been overloaded.
 
virtual void backward (std::complex< double >[], double[], std::complex< double > *) const
 Bring forth method that have not been overloaded.
 
virtual int complex_size () const
 Bring forth method that have not been overloaded.
 
- Public Member Functions inherited from heffte::executor_base
virtual ~executor_base ()=default
 Virtual destructor.
 
virtual void forward (float[], float *) const
 Forward r2r, single precision.
 
virtual void forward (double[], double *) const
 Forward r2r, double precision.
 
virtual void backward (float[], float *) const
 Backward r2r, single precision.
 
virtual void backward (double[], double *) const
 Backward r2r, double precision.
 
virtual int complex_size () const
 Return the size of the complex-box (r2c executors).
 

Detailed Description

Wrapper around the rocFFT API.

A single class that manages the plans and executions of rocFFT so that a single API is provided for all backends. The executor operates on a box and performs 1-D FFTs for the given dimension. The class silently manages the plans and buffers needed for the different types. All input and output arrays must have size equal to the box.


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