| Highly Efficient FFT for Exascale: HeFFTe v2.3
    | 

| Classes | |
| struct | heffte::backend::default_backend< tag::gpu > | 
| In CUDA mode, the default GPU backend is cufft.  More... | |
| struct | heffte::backend::data_manipulator< tag::gpu > | 
| Specialization for the data operations in CUDA mode.  More... | |
| struct | heffte::backend::is_enabled< rocfft > | 
| Indicate that the rocFFT backend has been enabled.  More... | |
| struct | heffte::backend::is_enabled< rocfft_cos > | 
| Indicate that the rocFFT backend has been enabled.  More... | |
| struct | heffte::backend::is_enabled< rocfft_sin > | 
| Indicate that the rocFFT backend has been enabled.  More... | |
| struct | heffte::backend::device_instance< tag::gpu > | 
| The CUDA backend uses a CUDA stream.  More... | |
| struct | heffte::backend::buffer_traits< rocfft > | 
| Defines the location type-tag and the cuda container.  More... | |
| struct | heffte::backend::buffer_traits< rocfft_cos > | 
| Defines the location type-tag and the cuda container.  More... | |
| struct | heffte::backend::buffer_traits< rocfft_sin > | 
| Defines the location type-tag and the cuda container.  More... | |
| struct | heffte::plan_rocfft< precision_type, dir > | 
| Plan for the r2c single precision transform.  More... | |
| struct | heffte::plan_rocfft< std::complex< precision_type >, dir > | 
| Plan for the single precision complex transform.  More... | |
| class | heffte::rocfft_executor | 
| Wrapper around the rocFFT API.  More... | |
| class | heffte::rocfft_executor_r2c | 
| Wrapper to rocFFT API for real-to-complex transform with shortening of the data.  More... | |
| struct | heffte::one_dim_backend< backend::rocfft > | 
| Helper struct that defines the types and creates instances of one-dimensional executors.  More... | |
| struct | heffte::one_dim_backend< backend::rocfft_cos > | 
| Helper struct that defines the types and creates instances of one-dimensional executors.  More... | |
| struct | heffte::one_dim_backend< backend::rocfft_sin > | 
| Helper struct that defines the types and creates instances of one-dimensional executors.  More... | |
| struct | heffte::default_plan_options< backend::rocfft > | 
| Sets the default options for the cufft backend.  More... | |
| struct | heffte::default_plan_options< backend::rocfft_cos > | 
| Sets the default options for the cufft backend.  More... | |
| struct | heffte::default_plan_options< backend::rocfft_sin > | 
| Sets the default options for the cufft backend.  More... | |
| struct | heffte::backend::rocfft | 
| Type-tag for the rocFFT backend.  More... | |
| struct | heffte::backend::rocfft_cos | 
| Type-tag for the Cosine Transform using the rocFFT backend.  More... | |
| struct | heffte::backend::rocfft_sin | 
| Type-tag for the Sine Transform using the rocFFT backend.  More... | |
| Functions | |
| void | heffte::rocm::check_error (hipError_t status, const char *function_name) | 
| Checks the status of a ROCm command and in case of a failure, converts it to a C++ exception. | |
| void | heffte::rocm::check_error (rocfft_status status, const char *function_name) | 
| Checks the status of a cufft command and in case of a failure, converts it to a C++ exception. | |
| template<typename precision_type , typename index > | |
| void | heffte::rocm::convert (hipStream_t stream, index num_entries, precision_type const source[], std::complex< precision_type > destination[]) | 
| Convert real numbers to complex when both are located on the GPU device.  More... | |
| template<typename precision_type , typename index > | |
| void | heffte::rocm::convert (hipStream_t stream, index num_entries, std::complex< precision_type > const source[], precision_type destination[]) | 
| Convert complex numbers to real when both are located on the GPU device.  More... | |
| template<typename scalar_type , typename index > | |
| void | heffte::rocm::scale_data (hipStream_t stream, index num_entries, scalar_type *data, double scale_factor) | 
| Scales real data (double or float) by the scaling factor. | |
| template<typename scalar_type , typename index > | |
| void | heffte::rocm::direct_pack (hipStream_t stream, index nfast, index nmid, index nslow, index line_stride, index plane_stide, scalar_type const source[], scalar_type destination[]) | 
| Performs a direct-pack operation for data sitting on the GPU device.  More... | |
| template<typename scalar_type , typename index > | |
| void | heffte::rocm::direct_unpack (hipStream_t stream, index nfast, index nmid, index nslow, index line_stride, index plane_stide, scalar_type const source[], scalar_type destination[]) | 
| Performs a direct-unpack operation for data sitting on the GPU device.  More... | |
| template<typename scalar_type , typename index > | |
| void | heffte::rocm::transpose_unpack (hipStream_t stream, index nfast, index nmid, index nslow, index line_stride, index plane_stide, index buff_line_stride, index buff_plane_stride, int map0, int map1, int map2, scalar_type const source[], scalar_type destination[]) | 
| Performs a transpose-unpack operation for data sitting on the GPU device.  More... | |
| template<> | |
| std::string | heffte::backend::name< rocfft > () | 
| Returns the human readable name of the rocFFT backend. | |
| template<> | |
| std::string | heffte::backend::name< rocfft_cos > () | 
| Returns the human readable name of the rocFFT backend. | |
| template<> | |
| std::string | heffte::backend::name< rocfft_sin > () | 
| Returns the human readable name of the rocFFT backend. | |
| plan_options | heffte::force_reorder (plan_options opts) | 
| Forces the reorder logic for the ROCM r2c variant. | |
Wrappers and template specializations related to the rocFFT backend. Requires CMake option:
In addition to the rocFFT wrappers, this also includes a series of kernels for packing/unpacking/scaling the data, as well as a simple container that wraps around ROCM arrays for RAII style of resource management.
| void heffte::rocm::convert | ( | hipStream_t | stream, | 
| index | num_entries, | ||
| precision_type const | source[], | ||
| std::complex< precision_type > | destination[] | ||
| ) | 
Convert real numbers to complex when both are located on the GPU device.
Launches a ROCM kernel.
| void heffte::rocm::convert | ( | hipStream_t | stream, | 
| index | num_entries, | ||
| std::complex< precision_type > const | source[], | ||
| precision_type | destination[] | ||
| ) | 
Convert complex numbers to real when both are located on the GPU device.
Launches a ROCM kernel.
| void heffte::rocm::direct_pack | ( | hipStream_t | stream, | 
| index | nfast, | ||
| index | nmid, | ||
| index | nslow, | ||
| index | line_stride, | ||
| index | plane_stide, | ||
| scalar_type const | source[], | ||
| scalar_type | destination[] | ||
| ) | 
Performs a direct-pack operation for data sitting on the GPU device.
Launches a HIP kernel.
| void heffte::rocm::direct_unpack | ( | hipStream_t | stream, | 
| index | nfast, | ||
| index | nmid, | ||
| index | nslow, | ||
| index | line_stride, | ||
| index | plane_stide, | ||
| scalar_type const | source[], | ||
| scalar_type | destination[] | ||
| ) | 
Performs a direct-unpack operation for data sitting on the GPU device.
Launches a HIP kernel.
| void heffte::rocm::transpose_unpack | ( | hipStream_t | stream, | 
| index | nfast, | ||
| index | nmid, | ||
| index | nslow, | ||
| index | line_stride, | ||
| index | plane_stide, | ||
| index | buff_line_stride, | ||
| index | buff_plane_stride, | ||
| int | map0, | ||
| int | map1, | ||
| int | map2, | ||
| scalar_type const | source[], | ||
| scalar_type | destination[] | ||
| ) | 
Performs a transpose-unpack operation for data sitting on the GPU device.
Launches a HIP kernel.