Highly Efficient FFT for Exascale: HeFFTe v2.3
|
Contains type tags and templates metadata for the various backends. More...
Classes | |
struct | is_enabled< cufft > |
Indicate that the cuFFT backend has been enabled. More... | |
struct | is_enabled< cufft_cos > |
Indicate that the cuFFT backend has been enabled for Cosine Transform. More... | |
struct | is_enabled< cufft_sin > |
Indicate that the cuFFT backend has been enabled for Sine Transform. More... | |
struct | device_instance< tag::gpu > |
The CUDA backend uses a CUDA stream. More... | |
struct | default_backend< tag::gpu > |
In CUDA mode, the default GPU backend is cufft. More... | |
struct | data_manipulator< tag::gpu > |
Specialization for the data operations in CUDA mode. More... | |
struct | buffer_traits< cufft > |
Defines the location type-tag and the cuda container. More... | |
struct | buffer_traits< cufft_cos > |
Defines the location type-tag and the cuda container. More... | |
struct | buffer_traits< cufft_sin > |
Defines the location type-tag and the cuda container. More... | |
struct | is_enabled< fftw > |
Indicate that the FFTW backend has been enabled. More... | |
struct | is_enabled< fftw_cos > |
Indicate that the cos() transform using the FFTW backend has been enabled. More... | |
struct | is_enabled< fftw_sin > |
Indicate that the cos() transform using the FFTW backend has been enabled. More... | |
struct | is_enabled< mkl > |
Indicate that the MKL backend has been enabled. More... | |
struct | is_enabled< mkl_cos > |
Indicate that the MKL Cosine Transform backend has been enabled. More... | |
struct | is_enabled< mkl_sin > |
Indicate that the MKL Sine Transform backend has been enabled. More... | |
struct | default_backend< tag::cpu > |
Make MKL the default CPU backend. More... | |
struct | is_enabled< onemkl > |
Indicate that the oneMKL backend has been enabled. More... | |
struct | is_enabled< onemkl_cos > |
Indicate that the oneMKL backend has been enabled. More... | |
struct | is_enabled< onemkl_sin > |
Indicate that the oneMKL backend has been enabled. More... | |
struct | buffer_traits< onemkl > |
Defines the location type-tag and the oneAPI container. More... | |
struct | buffer_traits< onemkl_cos > |
Defines the location type-tag and the oneAPI container. More... | |
struct | buffer_traits< onemkl_sin > |
Defines the location type-tag and the oneAPI container. More... | |
struct | is_enabled< rocfft > |
Indicate that the rocFFT backend has been enabled. More... | |
struct | is_enabled< rocfft_cos > |
Indicate that the rocFFT backend has been enabled. More... | |
struct | is_enabled< rocfft_sin > |
Indicate that the rocFFT backend has been enabled. More... | |
struct | buffer_traits< rocfft > |
Defines the location type-tag and the cuda container. More... | |
struct | buffer_traits< rocfft_cos > |
Defines the location type-tag and the cuda container. More... | |
struct | buffer_traits< rocfft_sin > |
Defines the location type-tag and the cuda container. More... | |
struct | is_enabled< stock > |
Indicate that the stock backend has been enabled. More... | |
struct | is_enabled< stock_cos > |
Indicate that the stock backend has been enabled. More... | |
struct | is_enabled< stock_sin > |
Indicate that the stock backend has been enabled. More... | |
struct | data_manipulator |
Common data-transfer operations, must be specializes for each location (cpu/gpu). More... | |
struct | data_manipulator< tag::cpu > |
Common data-transfer operations on the cpu. More... | |
struct | fftw |
Type-tag for the FFTW backend. More... | |
struct | fftw_cos |
Type-tag for the Cosine Transform using the FFTW backend. More... | |
struct | fftw_sin |
Type-tag for the Sine Transform using the FFTW backend. More... | |
struct | stock |
Type-tag for the stock FFT backend. More... | |
struct | stock_cos |
Type-tag for the Cosine Transform using the stock FFT backend. More... | |
struct | stock_sin |
Type-tag for the Sine Transform using the stock FFT backend. More... | |
struct | mkl |
Type-tag for the MKL backend. More... | |
struct | mkl_cos |
Type-tag for the Cosine Transform using the MKL FFT backend. More... | |
struct | mkl_sin |
Type-tag for the Sine Transform using the MKL FFT backend. More... | |
struct | cufft |
Type-tag for the cuFFT backend. More... | |
struct | cufft_cos |
Type-tag for the Cosine Transform using the cuFFT backend. More... | |
struct | cufft_sin |
Type-tag for the Sine Transform using the cuFFT backend. More... | |
struct | rocfft |
Type-tag for the rocFFT backend. More... | |
struct | rocfft_cos |
Type-tag for the Cosine Transform using the rocFFT backend. More... | |
struct | rocfft_sin |
Type-tag for the Sine Transform using the rocFFT backend. More... | |
struct | onemkl |
Type-tag for the oneMKL backend. More... | |
struct | onemkl_cos |
Type-tag for the Cosine Transform using the oneMKL backend. More... | |
struct | onemkl_sin |
Type-tag for the Sine Transform using the oneMKL backend. More... | |
struct | is_enabled |
Allows to define whether a specific backend interface has been enabled. More... | |
struct | buffer_traits |
Defines the container for the temporary buffers. More... | |
struct | uses_gpu |
Struct that specializes to true type if the location of the backend is on the gpu (false type otherwise). More... | |
struct | uses_gpu< backend_tag, typename std::enable_if< std::is_same< typename buffer_traits< backend_tag >::location, tag::gpu >::value, void >::type > |
Specialization for the on-gpu case. More... | |
struct | device_instance |
Holds the auxiliary variables needed by each backend. More... | |
struct | default_backend |
Defines inverse mapping from the location tag to a default backend tag. More... | |
struct | uses_fft_types |
Defines whether the backend accepts the standard FFT real-complex or complex-complex transform. More... | |
struct | check_types |
Set to true/false type depending whether the types are compatible with the backend transform. More... | |
struct | check_types< backend_tag, input, output, typename std::enable_if< uses_fft_types< backend_tag >::value and((std::is_same< input, float >::value and is_ccomplex< output >::value) or(std::is_same< input, double >::value and is_zcomplex< output >::value) or(is_ccomplex< input >::value and is_ccomplex< output >::value) or(is_zcomplex< input >::value and is_zcomplex< output >::value))>::type > |
Defines the types compatible for a standard FFT transform. More... | |
struct | uses_fft_types< fftw_cos > |
Sets the cos() transform types. More... | |
struct | uses_fft_types< fftw_sin > |
Sets the sin() transform types. More... | |
struct | uses_fft_types< stock_cos > |
Sets the cos() transform types. More... | |
struct | uses_fft_types< stock_sin > |
Sets the sin() transform types. More... | |
struct | uses_fft_types< mkl_cos > |
Sets the cos() transform types. More... | |
struct | uses_fft_types< mkl_sin > |
Sets the sin() transform types. More... | |
struct | uses_fft_types< cufft_cos > |
Sets the cos() transform types. More... | |
struct | uses_fft_types< cufft_sin > |
Sets the sin() transform types. More... | |
struct | uses_fft_types< rocfft_cos > |
Sets the cos() transform types. More... | |
struct | uses_fft_types< rocfft_sin > |
Sets the sin() transform types. More... | |
struct | uses_fft_types< onemkl_cos > |
Sets the cos() transform types. More... | |
struct | uses_fft_types< onemkl_sin > |
Sets the sin() transform types. More... | |
struct | check_types< backend_tag, input, output, typename std::enable_if< not uses_fft_types< backend_tag >::value and((std::is_same< input, float >::value and std::is_same< output, float >::value) or(std::is_same< input, double >::value and std::is_same< output, double >::value))>::type > |
Defines the types compatible for a cos() transform. More... | |
Functions | |
template<typename backend_tag > | |
std::string | name () |
Returns the human readable name of the backend. | |
template<> | |
std::string | name< fftw > () |
Returns the human readable name of the FFTW backend. | |
template<> | |
std::string | name< fftw_cos > () |
Returns the human readable name of the FFTW backend. | |
template<> | |
std::string | name< fftw_sin > () |
Returns the human readable name of the FFTW backend. | |
template<> | |
std::string | name< stock > () |
Returns the human readable name of the stock backend. | |
template<> | |
std::string | name< stock_cos > () |
Returns the human readable name of the stock backend. | |
template<> | |
std::string | name< stock_sin > () |
Returns the human readable name of the stock backend. | |
template<> | |
std::string | name< mkl > () |
Returns the human readable name of the MKL backend. | |
template<> | |
std::string | name< mkl_cos > () |
Returns the human readable name of the MKL backend. | |
template<> | |
std::string | name< mkl_sin > () |
Returns the human readable name of the MKL backend. | |
template<> | |
std::string | name< cufft > () |
Returns the human readable name of the cuFFT backend. | |
template<> | |
std::string | name< cufft_cos > () |
Returns the human readable name of the cuFFT backend. | |
template<> | |
std::string | name< cufft_sin > () |
Returns the human readable name of the cuFFT backend. | |
template<> | |
std::string | name< rocfft > () |
Returns the human readable name of the rocFFT backend. | |
template<> | |
std::string | name< rocfft_cos > () |
Returns the human readable name of the rocFFT backend. | |
template<> | |
std::string | name< rocfft_sin > () |
Returns the human readable name of the rocFFT backend. | |
template<> | |
std::string | name< onemkl > () |
Returns the human readable name of the oneMKL backend. | |
template<> | |
std::string | name< onemkl_cos > () |
Returns the human readable name of the oneMKL backend. | |
template<> | |
std::string | name< onemkl_sin > () |
Returns the human readable name of the oneMKL backend. | |
template<> | |
std::string | name< tag::cpu > () |
Indicates the name of the location tag. | |
template<> | |
std::string | name< tag::gpu > () |
Indicates the name of the location tag. | |
Contains type tags and templates metadata for the various backends.