Error in compiling intel gpu with gromacs

after success installing Intel oneAPI DPC++ and added environment by running it i have runned the following command
cmake … -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx -DGMX_GPU=SYCL
and this error occured

i am using wsl for ubuntu

It looks like you are running CMake in a “dirty” directory. After you install or remove software, it is a good idea to clear CMake cache so it does not rely on now outdate state of the system. Could you try removing CMakeCache.txt file and re-running CMake (or just completely removing the build directory)?

i have deleted build folder in gromacs as build with dirty installation now i am trying to install from typical installation but it seem very complex in Installation guild-Gromacs 2023.3 and i am unable to understand it and there is no tutorial on typical installation of gromacs on youtube

GROMACS is a complex software with a lot of hardware-specific optimizations and a lot of ways to use it. While we do try to automate some things, it is still, in many aspects, up to the user to decide the best compilation options.

For your particular case, however, there should not be anything overly complex:

  1. Full install oneAPI Base Toolkit
  2. Sownload a recent release of GROMACS
  3. Set-up the environment (source /opt/intel/oneapi/setvars.sh) and check that GPUs are detected (look at the output of sycl-ls). If GPUs are not detected, I cannot help you because we don’t use WSL internally, but there should be guides online on how to set up Intel GPU drivers with WSL.
  4. Unpack the GROMACS sources and create a new build directory inside
  5. From there cmake .. -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx -DGMX_GPU=SYCL and then make && make tests && make check to compile GROMACS and run tests. Optionally, run make -jN to speed-up the build process by using N CPU cores.

thank you for helping me and one last query where should i put this make -jN command or after which command line i should execute this command

Hi!

-j flag can be added to any of the make invocations (except for make check) to speed things up. It should not be run separately.