<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Building GROMACS-SYCL in Intel® oneAPI DPC++/C++ Compiler</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/Building-GROMACS-SYCL/m-p/1284346#M1184</link>
    <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;Thanks for accepting as a solution.&lt;/P&gt;
&lt;P&gt;As this issue has been resolved, we will no longer respond to this thread.&lt;/P&gt;
&lt;P&gt;If you require any additional assistance from Intel, please start a new thread.&lt;/P&gt;
&lt;P&gt;Any further interaction in this thread will be considered community only.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks &amp;amp; Regards&lt;/P&gt;
&lt;P&gt;Noorjahan.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Mon, 21 Jun 2021 11:16:52 GMT</pubDate>
    <dc:creator>NoorjahanSk_Intel</dc:creator>
    <dc:date>2021-06-21T11:16:52Z</dc:date>
    <item>
      <title>Building GROMACS-SYCL</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/Building-GROMACS-SYCL/m-p/1282147#M1179</link>
      <description>&lt;P&gt;Dear Support Team,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I chronicle problems arised when building process for experimental version of GROMACS-SYCL&lt;/P&gt;
&lt;P&gt;&lt;A href="https://manual.gromacs.org/documentation/2021-sycl/download.html" target="_blank"&gt;https://manual.gromacs.org/documentation/2021-sycl/download.html&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Typical cmake options are: &lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;cmake ..                         \
    -DGMX_GPU=SYCL               \ 
    -DGMX_BUILD_OWN_FFTW=ON      \ 
    -DCMAKE_CXX_COMPILER=clang++ \ 
    -DCMAKE_C_COMPILER=clang&lt;/LI-CODE&gt;
&lt;UL&gt;
&lt;LI&gt;First of all, since oneAPI's clang is identified as 'IntelLLVM 2021.2.0' instead of just 'Clang', 'FindLibStdCpp.cmake' must be modified as follow to correctly pass '-gcc-toolchain' &lt;/LI&gt;
&lt;/UL&gt;
&lt;LI-CODE lang="markup"&gt;142     else() #Intel
143         set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --gcc- toolchain=${GMX_GPLUSPLUS_PATH}")
144         #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -gcc-name=${GMX_GPLUSPLUS_PATH}")
145     endif()
146 endif()
&lt;/LI-CODE&gt;
&lt;UL&gt;
&lt;LI&gt;The next issue is gcc/7.4 paths are not properly set up:&amp;nbsp;&lt;/LI&gt;
&lt;/UL&gt;
&lt;LI-CODE lang="markup"&gt;/home/u66264/apps/src/gromacs/build/CMakeFiles/CMakeTmp/src.cxx:2:10: fatal error: 'string_view' file not found
#include &amp;lt;string_view&amp;gt;
         ^~~~~~~~~~~~~
1 error generated.&lt;/LI-CODE&gt;
&lt;UL&gt;
&lt;LI&gt;&amp;nbsp;'string_view' is located in '/usr/include/c++/7', hence&lt;/LI&gt;
&lt;/UL&gt;
&lt;LI-CODE lang="markup"&gt;cmake ..                                     \
    -DGMX_GPU=SYCL                           \ 
    -DGMX_BUILD_OWN_FFTW=ON                  \ 
    -DCMAKE_CXX_COMPILER=clang++             \ 
    -DCMAKE_C_COMPILER=clang                 \
    -DCMAKE_CXX_FLAGS='-I/usr/include/c++/7' &lt;/LI-CODE&gt;
&lt;UL&gt;
&lt;LI&gt;however&lt;/LI&gt;
&lt;/UL&gt;
&lt;LI-CODE lang="markup"&gt;#include &amp;lt;bits/c++config.h&amp;gt;
         ^~~~~~~~~~~~~~~~~~
1 error generated.
CMakeFiles/cmTC_e2fa7.dir/build.make:78: recipe for target 'CMakeFiles/cmTC_e2fa7.dir/src.cxx.o' failed
&lt;/LI-CODE&gt;
&lt;UL&gt;
&lt;LI&gt;'bits/c++config.h' is located in /usr/include/x86_64-linux-gnu/c++/7, hence&lt;/LI&gt;
&lt;/UL&gt;
&lt;LI-CODE lang="markup"&gt;cmake ..                                     \
    -DGMX_GPU=SYCL                           \ 
    -DGMX_BUILD_OWN_FFTW=ON                  \ 
    -DCMAKE_CXX_COMPILER=clang++             \ 
    -DCMAKE_C_COMPILER=clang                 \
    -DCMAKE_CXX_FLAGS='-I/usr/include/c++/7 -I/usr/include/x86_64-linux-gnu/c++/7'&lt;/LI-CODE&gt;
&lt;UL&gt;
&lt;LI&gt;However&lt;/LI&gt;
&lt;/UL&gt;
&lt;LI-CODE lang="markup"&gt;/glob/development-tools/versions/oneapi/2021.2/inteloneapi/compiler/2021.2.0/linux/bin/clang++ -I/usr/include/x86_64-linux-gnu/c++/7 -I/usr/include/c++/7 --gcc-toolchain=/usr/bin/g++  CMakeFiles/cmTC_53942.dir/src.cxx.o -o cmTC_53942
/usr/bin/ld: cannot find crtbegin.o: No such file or directory
/usr/bin/ld: cannot find -lstdc++
&lt;/LI-CODE&gt;
&lt;UL&gt;
&lt;LI&gt;Both 'crtbegin.o' and 'libstdc++.so' are located in '/usr/lib/gcc/x86_64-linux-gnu/7'. The latter can be found by passing '-L/usr/lib/gcc/x86_64-linux-gnu/7' to CMAKE_CXX_FLAGS. But 'crtbegin.o' error still stand. So configure failed at the very beginnning of build process.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;So&amp;nbsp; a QRD:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Naming of oneAPI's clang will confuse cmake&lt;/LI&gt;
&lt;LI&gt;On DevCloud I think the gcc-related paths are not properly set up.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;A way to successfully build GROMACS-SYCL is much appreciated !&lt;/P&gt;
&lt;P&gt;Regards.&lt;/P&gt;</description>
      <pubDate>Tue, 18 May 2021 01:31:14 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/Building-GROMACS-SYCL/m-p/1282147#M1179</guid>
      <dc:creator>Viet-Duc</dc:creator>
      <dc:date>2021-05-18T01:31:14Z</dc:date>
    </item>
    <item>
      <title>Re:Building GROMACS-SYCL</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/Building-GROMACS-SYCL/m-p/1282348#M1180</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;Thanks for reaching out to us.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;we tried following the below steps and it worked fine&lt;/P&gt;&lt;P&gt; &amp;gt;&amp;gt; cmake .. -DGMX_BUILD_OWN_FFTW=ON -DREGRESSIONTEST_DOWNLOAD=ON -DCMAKE_INSTALL_PREFIX=/path&lt;/P&gt;&lt;P&gt; &amp;gt;&amp;gt; make&lt;/P&gt;&lt;P&gt;&amp;gt;&amp;gt;make check&lt;/P&gt;&lt;P&gt;&amp;gt;&amp;gt; make install&lt;/P&gt;&lt;P&gt;&amp;gt;&amp;gt; source path/GMXRC&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;By default clang/clang++ compiler points to the oneAPI root directory. You may confirm the same using "which clang" command.  &lt;/P&gt;&lt;P&gt;I did not find  SYCL as a valid option  for DGMX_GPU flag.&lt;/P&gt;&lt;P&gt;&lt;A href="https://manual.gromacs.org/documentation/2021-sycl/install-guide/index.html" target="_blank"&gt;https://manual.gromacs.org/documentation/2021-sycl/install-guide/index.html&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt; These are my Environment details:&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;GCC version: 9.3.0&lt;/P&gt;&lt;P&gt;BaseToolKit Version: 2021.2.0&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;Please do let us know if you have any issues&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt; Thanks &amp;amp; Regards,&lt;/P&gt;&lt;P&gt; Noorjahan.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;BR /&gt;</description>
      <pubDate>Tue, 18 May 2021 13:08:46 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/Building-GROMACS-SYCL/m-p/1282348#M1180</guid>
      <dc:creator>NoorjahanSk_Intel</dc:creator>
      <dc:date>2021-05-18T13:08:46Z</dc:date>
    </item>
    <item>
      <title>Re: Re:Building GROMACS-SYCL</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/Building-GROMACS-SYCL/m-p/1282367#M1181</link>
      <description>&lt;P&gt;Since it is under development,&amp;nbsp; the document has not been updated to reflect the SYCL support. But 'CMakeLists.txt' does support SYCL.&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;203 gmx_option_multichoice(
204     GMX_GPU
205     "Framework for GPU acceleration"
206     OFF
207     OFF CUDA OpenCL SYCL)
...
574 if(GMX_GPU)
575 
576     string(TOUPPER "${GMX_GPU}" _gmx_gpu_uppercase)
577     if(${_gmx_gpu_uppercase} STREQUAL "CUDA")
578         include(gmxManageCuda)
579     elseif(${_gmx_gpu_uppercase} STREQUAL "OPENCL")
580         message(STATUS "GPU support with OpenCL is deprecated. It is still fully supported (and "
581             "recommended for AMD and Intel GPUs). It may be replaced by different approaches in "
582             "future releases of GROMACS.")
583         include(gmxManageOpenCL)
584     elseif(${_gmx_gpu_uppercase} STREQUAL "SYCL")
585         include(gmxManageSYCL)
586     endif()&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I was motivated to test SYCL build following the presentation of Heinrich Bockhorst (Intel) at the oneAPI Dev Summit.&lt;/P&gt;
&lt;P&gt;&lt;A href="https://www.hlrn.de/doc/display/PUB/Joint+NHR@ZIB+-+INTEL+++oneAPI+Workshop" target="_blank"&gt;https://www.hlrn.de/doc/display/PUB/Joint+NHR@ZIB+-+INTEL+++oneAPI+Workshop&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;However, his cmake options, as indicated in the slides, mixed icx (dpcpp) and icpc (intel c++), leading to incompatible compilation error since they are two different compilers.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you omit GMX_GPU, by default the CPU version will be built. There would be no error since only standard gcc is required.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Regarding gcc, I don't have access to gcc/9.3&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;$ gcc --version
gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Could you try again with -DGMX_GPU=SYCL and clang compilers ?&lt;/P&gt;
&lt;P&gt;Thanks.&lt;/P&gt;</description>
      <pubDate>Tue, 18 May 2021 14:28:40 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/Building-GROMACS-SYCL/m-p/1282367#M1181</guid>
      <dc:creator>Viet-Duc</dc:creator>
      <dc:date>2021-05-18T14:28:40Z</dc:date>
    </item>
    <item>
      <title>Re:Building GROMACS-SYCL</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/Building-GROMACS-SYCL/m-p/1283967#M1182</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt; We have tried with CMAKE version 3.16.3  and gcc 9.3.0 on Devcloud using the below command&lt;/P&gt;&lt;P&gt;&lt;I&gt;cmake -DGMX_BUILD_OWN_FFTW=ON -DREGRESSIONTEST_DOWNLOAD=ON -DGMX_GPU=SYCL -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=dpcpp -DCMAKE_INSTALL_PREFIX=../.. ..&lt;/I&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;Surprisingly CMAKE identified compiler as&lt;B&gt; clang 12.0 &lt;/B&gt;for me.&lt;/P&gt;&lt;P&gt;Could you share your CMAKE version and Devcloud node number?&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;Alternatively could you try the below command and let us know if it works.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;&lt;I&gt;cmake -DGMX_BUILD_OWN_FFTW=ON -DREGRESSIONTEST_DOWNLOAD=ON -DGMX_GPU=SYCL -DCMAKE_C_COMPILER=icc -DCMAKE_CXX_COMPILER=icpc -DCMAKE_INSTALL_PREFIX=../.. ..&lt;/I&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;Thanks &amp;amp; Regards&lt;/P&gt;&lt;P&gt;Noorjahan&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;BR /&gt;</description>
      <pubDate>Mon, 24 May 2021 06:02:36 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/Building-GROMACS-SYCL/m-p/1283967#M1182</guid>
      <dc:creator>NoorjahanSk_Intel</dc:creator>
      <dc:date>2021-05-24T06:02:36Z</dc:date>
    </item>
    <item>
      <title>Re: Building GROMACS-SYCL</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/Building-GROMACS-SYCL/m-p/1284332#M1183</link>
      <description>&lt;P&gt;Dear Noorjahan,&lt;/P&gt;
&lt;P&gt;Thanks for update. It is indeed an issue related to cmake. I had to downgrade my cmake to 3.16.3 for compilers to be identified.&lt;/P&gt;
&lt;P&gt;Below is result with 3.20.2:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;-- The C compiler identification is IntelLLVM 2021.2.0
-- The CXX compiler identification is IntelLLVM 2021.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /glob/development-tools/versions/oneapi/2021.2/inteloneapi/compiler/2021.2.0/linux/bin/icx - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /glob/development-tools/versions/oneapi/2021.2/inteloneapi/compiler/2021.2.0/linux/bin/dpcpp - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Performing Test USING_LIBSTDCXX
-- Performing Test USING_LIBSTDCXX - Success
-- Performing Test CXX17_COMPILES
-- Performing Test CXX17_COMPILES - Failed
CMake Error at cmake/FindLibStdCpp.cmake:165 (message):
  GROMACS requires C++17, but a test of such functionality in the C++
  standard library failed to compile.  The g++ found at /usr/bin/g++ had a
  suitable version, so ;something else must be the problem
Call Stack (most recent call first):
  CMakeLists.txt:68 (find_package)&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For the future reference, here are the neccessary steps to build GROMACS-SYCL:&lt;/P&gt;
&lt;P&gt;1. build cmake/3.16.3&lt;/P&gt;
&lt;P&gt;2. start an iteractive sessions to avoid OOM during compilation: &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;$ qsub -I -l nodes=1:gen9:ppn=2&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;3. since dpcpp does not support OpenMP, the following should be used:&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;$ cmake ..                    \ 
    -DGMX_BUILD_OWN_FFTW=ON   \
    -DGMX_GPU=SYCL            \  
    -DCMAKE_C_COMPILER=icx    \
    -DCMAKE_CXX_COMPILER=icpx \
    -DCMAKE_INSTALL_PREFIX=...&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The result binary will work on Gen9 GPUs.&lt;/P&gt;
&lt;P&gt;Once again, thank you for your time!&lt;/P&gt;</description>
      <pubDate>Tue, 25 May 2021 05:20:34 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/Building-GROMACS-SYCL/m-p/1284332#M1183</guid>
      <dc:creator>Viet-Duc</dc:creator>
      <dc:date>2021-05-25T05:20:34Z</dc:date>
    </item>
    <item>
      <title>Re: Building GROMACS-SYCL</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/Building-GROMACS-SYCL/m-p/1284346#M1184</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;Thanks for accepting as a solution.&lt;/P&gt;
&lt;P&gt;As this issue has been resolved, we will no longer respond to this thread.&lt;/P&gt;
&lt;P&gt;If you require any additional assistance from Intel, please start a new thread.&lt;/P&gt;
&lt;P&gt;Any further interaction in this thread will be considered community only.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks &amp;amp; Regards&lt;/P&gt;
&lt;P&gt;Noorjahan.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 21 Jun 2021 11:16:52 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/Building-GROMACS-SYCL/m-p/1284346#M1184</guid>
      <dc:creator>NoorjahanSk_Intel</dc:creator>
      <dc:date>2021-06-21T11:16:52Z</dc:date>
    </item>
  </channel>
</rss>

