#
# This file is part of the GROMACS molecular simulation package.
#
-# Copyright (c) 2013,2014,2015,2018,2019,2020, by the GROMACS development team, led by
+# Copyright (c) 2013,2014,2015,2018,2019,2020,2021, by the GROMACS development team, led by
# Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
# and including many others, as listed in the AUTHORS file in the
# top-level source directory and at http://www.gromacs.org.
fft.cpp
fft5d.cpp
parallel_3dfft.cpp
+ gpu_3dfft.cpp
)
if (GMX_FFT_FFTPACK)
if (GMX_FFT_MKL)
gmx_add_libgromacs_sources(fft_mkl.cpp)
endif()
+if(Heffte_FOUND)
+ gmx_add_libgromacs_sources(
+ gpu_3dfft_heffte.cpp
+ )
+endif()
+if (GMX_GPU_CUDA)
+ gmx_add_libgromacs_sources(
+ # CUDA-specific sources
+ gpu_3dfft_cufft.cu
+ )
+ _gmx_add_files_to_property(CUDA_SOURCES
+ # Must add these files so they can include cuda_runtime.h
+ gpu_3dfft.cpp
+ )
+elseif (GMX_GPU_OPENCL)
+ gmx_add_libgromacs_sources(
+ # OpenCL-specific sources
+ gpu_3dfft_ocl.cpp
+ )
+elseif (GMX_GPU_SYCL)
+ if (NOT GMX_SYCL_HIPSYCL AND GMX_FFT_MKL)
+ gmx_add_libgromacs_sources(
+ gpu_3dfft_sycl_mkl.cpp
+ )
+ _gmx_add_files_to_property(SYCL_SOURCES
+ gpu_3dfft_sycl_mkl.cpp
+ )
+ endif()
+ if (GMX_SYCL_HIPSYCL)
+ gmx_add_libgromacs_sources(
+ gpu_3dfft_sycl_rocfft.cpp
+ )
+ _gmx_add_files_to_property(SYCL_SOURCES
+ gpu_3dfft_sycl_rocfft.cpp
+ )
+ endif()
+ gmx_add_libgromacs_sources(
+ gpu_3dfft_sycl.cpp
+ )
+ _gmx_add_files_to_property(SYCL_SOURCES
+ gpu_3dfft_sycl.cpp
+ gpu_3dfft.cpp
+ )
+else()
+ gmx_add_libgromacs_sources(
+ # Stub sources for CPU-only build
+ gpu_3dfft.cpp
+ )
+endif()
# Source files have the following private module dependencies.
target_link_libraries(fft PRIVATE