Fix hipSYCL build with CUDA target
[alexxy/gromacs.git] / src / gromacs / fft / gpu_3dfft.cpp
index 17ffe13f682e12354a74091320886fc97a48d41c..3eeca1a78440392e0d39cbd88b409ec4b2e00967 100644 (file)
 #    include "gpu_3dfft_ocl.h"
 #elif GMX_GPU_SYCL
 #    include "gpu_3dfft_sycl.h"
-#    if GMX_SYCL_HIPSYCL
+#    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
@@ -135,7 +138,24 @@ Gpu3dFft::Gpu3dFft(FftBackend           backend,
 #    elif GMX_GPU_SYCL
     switch (backend)
     {
-#        if GMX_SYCL_HIPSYCL
+#        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,