Gromacs
2022-beta1
|
#include "gmxpre.h"
#include "gpu_3dfft_sycl_mkl.h"
#include "config.h"
#include "gromacs/gpu_utils/devicebuffer_sycl.h"
#include "gromacs/gpu_utils/device_stream.h"
#include "gromacs/utility/exceptions.h"
#include "gromacs/utility/gmxassert.h"
#include <cstddef>
#include <oneapi/mkl/dfti.hpp>
#include <oneapi/mkl/exceptions.hpp>
#include <mkl_version.h>
Implements GPU 3D FFT routines for SYCL.
In DPC++, we use Intel oneMKL to perform the FFT. It requires using the binary version of MKL, since the open-source one does not support FFT yet (https://github.com/oneapi-src/oneMKL/issues/27).
There are issues with out-of-place transform, existing at least in oneAPI 2021.2-2021.4, so we allow only in-place transforms.
Variables | |
static constexpr bool | sc_mklHasBuggyOutOfPlaceFFT = (INTEL_MKL_VERSION <= 20210004) |