# include "gpu_3dfft_ocl.h"
#elif GMX_GPU_SYCL
# include "gpu_3dfft_sycl.h"
+# if GMX_SYCL_DPCPP && GMX_FFT_MKL
+# include "gpu_3dfft_sycl_mkl.h"
+# endif
+# if GMX_SYCL_HIPSYCL && GMX_HIPSYCL_HAVE_HIP_TARGET
+# include "gpu_3dfft_sycl_rocfft.h"
+# endif
#endif
#if Heffte_FOUND
# elif GMX_GPU_SYCL
switch (backend)
{
+# if GMX_SYCL_DPCPP && GMX_FFT_MKL
+ case FftBackend::SyclMkl:
+ impl_ = std::make_unique<Gpu3dFft::ImplSyclMkl>(allocateGrids,
+ comm,
+ gridSizesInXForEachRank,
+ gridSizesInYForEachRank,
+ nz,
+ performOutOfPlaceFFT,
+ context,
+ pmeStream,
+ realGridSize,
+ realGridSizePadded,
+ complexGridSizePadded,
+ realGrid,
+ complexGrid);
+ break;
+# endif
+# if GMX_SYCL_HIPSYCL && GMX_HIPSYCL_HAVE_HIP_TARGET
+ case FftBackend::SyclRocfft:
+ impl_ = std::make_unique<Gpu3dFft::ImplSyclRocfft>(allocateGrids,
+ comm,
+ gridSizesInXForEachRank,
+ gridSizesInYForEachRank,
+ nz,
+ performOutOfPlaceFFT,
+ context,
+ pmeStream,
+ realGridSize,
+ realGridSizePadded,
+ complexGridSizePadded,
+ realGrid,
+ complexGrid);
+ break;
+# endif
case FftBackend::Sycl:
impl_ = std::make_unique<Gpu3dFft::ImplSycl>(allocateGrids,
comm,