MKL needed for Gromacs SYCL with DPC++

GROMACS version: latest
GROMACS modification: No

Hi,

I’m trying to build Gromacs with SYCL backend. The goal is to run it through PoCL and for this I have custom build of DPC++. When I try to build Gromacs I get error:

CMake Error at cmake/gmxManageSyclOneApi.cmake:168 (find_library):
  Could not find mkl_sycl_PATH using the following names: mkl_sycl
Call Stack (most recent call first):
  cmake/gmxManageSycl.cmake:49 (include)
  CMakeLists.txt:718 (include)

because I don’t have the whole oneAPI installed (and specifically oneMKL).
I have standalone DPC++ built from GitHub - intel/llvm: Intel staging area for llvm.org contribution. Home for Intel LLVM-based projects..
If I understood correctly, Gromacs is utilizing MKL for FFTs, is there any way around this?
I also tried installing MKL separately but then there were version mismatches between DPC++ compiler and MKL.

Any suggestions how to deal with this? I don’t want to install DPC++ with oneAPI because it enforces Intels OpenCL. Should I just try building/installing different versions of DPC++/oneAPI and try to find a match. Intels llvm branch on github does not have release tags so its problematic (at least i did not find it).

Thanks,

Tapio

Yes. You can either build with the double-batched FFT library or without a GPU FFT library at all (at the detriment of the overall performance) using -DGMX_GPU_FFT_LIBRARY=none option.

They have roughly quarterly releases (Release oneAPI DPC++ Compiler dependencies · intel/llvm · GitHub), but, as far as I know, there is no exact match between the open-source and the closed-source versions.