Highly Efficient FFT for Exascale: HeFFTe v2.3
heffte::backend Namespace Reference

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.
 

Detailed Description

Contains type tags and templates metadata for the various backends.