Gromacs  2024.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Enumerations | Functions | Variables
gmx::anonymous_namespace{gpu_3dfft_sycl_rocfft.cpp} Namespace Reference

Classes

class  RocfftInitializer
 Provides RAII-style initialization of rocFFT library. More...
 
struct  RocfftPlan
 All the persistent data for planning an executing a 3D FFT. More...
 
struct  PlanSetupData
 Helper struct to reduce repetitive code setting up a 3D FFT plan. More...
 

Enumerations

enum  FftDirection : int { RealToComplex, ComplexToReal, Count }
 Model the kinds of 3D FFT implemented.
 

Functions

void handleFftError (rocfft_status result, const std::string &msg)
 Helper for consistent error handling.
 
void handleFftError (rocfft_status result, const std::string &direction, const std::string &msg)
 Helper for consistent error handling.
 
std::array< size_t, DIM > makeRealStrides (ivec realGridSizePadded)
 Compute the stride through the real 1D array.
 
std::array< size_t, DIM > makeComplexStrides (ivec complexGridSizePadded)
 Compute the stride through the complex 1D array.
 
size_t computeTotalSize (ivec gridSize)
 Compute total grid size.
 
RocfftPlan makePlan (const std::string &descriptiveString, rocfft_transform_type transformType, const PlanSetupData &inputPlanSetupData, const PlanSetupData &outputPlanSetupData, ArrayRef< const size_t > rocfftRealGridSize, const DeviceStream &pmeStream)
 Prepare plans for the forward and reverse transformation. More...
 

Variables

const std::array< const char
*, rocfft_status_invalid_work_buffer+1 > 
c_rocfftErrorStrings
 Strings that match enum rocfft_status_e in rocfft.h. More...
 

Function Documentation

RocfftPlan gmx::anonymous_namespace{gpu_3dfft_sycl_rocfft.cpp}::makePlan ( const std::string &  descriptiveString,
rocfft_transform_type  transformType,
const PlanSetupData &  inputPlanSetupData,
const PlanSetupData &  outputPlanSetupData,
ArrayRef< const size_t >  rocfftRealGridSize,
const DeviceStream pmeStream 
)

Prepare plans for the forward and reverse transformation.

Because these require device-side allocations, some of them must be done in a SYCL queue.

Variable Documentation

const std::array<const char*, rocfft_status_invalid_work_buffer + 1> gmx::anonymous_namespace{gpu_3dfft_sycl_rocfft.cpp}::c_rocfftErrorStrings
Initial value:
= {
"success",
"failure",
"invalid argument value",
"invalid dimensions",
"invalid array type",
"invalid strides",
"invalid distance",
"invalid offset",
"invalid work buffer"
}

Strings that match enum rocfft_status_e in rocfft.h.