GROMACS version: 2023.2
GROMACS modification: Yes/No
Hi,
I’ve just install GROMACS with SYCL enabled, however, it seems like GROMACS cannot detect my GPU. My GPU is Intel Iris Xe Graphics, I’m using Ubuntu 22.04, CMake 3.27.4, and Intel oneAPI DPC++/C++ Compiler with MKL library 2023.2 for SYCL. Here it says SYCL is enabled:
gmx mdrun --version
:-) GROMACS - gmx mdrun, 2023.2 (-:
Executable: /usr/local/gromacs/bin/gmx
Data prefix: /usr/local/gromacs
Working dir: /home/ducki/Work
Command line:
gmx mdrun --version
GROMACS version: 2023.2
Precision: mixed
Memory model: 64 bit
MPI library: thread_mpi
OpenMP support: enabled (GMX_OPENMP_MAX_THREADS = 128)
GPU support: SYCL (DPCPP)
NB cluster size: 4
SIMD instructions: AVX2_256
CPU FFT library: Intel MKL version 2023.0.2 Build 20230613
GPU FFT library: Intel MKL version 2023.0.2 Build 20230613
Multi-GPU FFT: none
RDTSCP usage: enabled
TNG support: enabled
Hwloc support: disabled
Tracing support: disabled
C compiler: /opt/intel/oneapi/compiler/2023.2.1/linux/bin/icx IntelLLVM 2023.2.0
C compiler flags: -mavx2 -mfma -Wno-missing-field-initializers -O3 -DNDEBUG
C++ compiler: /opt/intel/oneapi/compiler/2023.2.1/linux/bin/icpx IntelLLVM 2023.2.0
C++ compiler flags: -mavx2 -mfma -Wno-reserved-identifier -Wno-missing-field-initializers -Wno-pass-failed -Weverything -Wno-c++98-compat -Wno-c++98-compat-pedantic -Wno-source-uses-openmp -Wno-c++17-extensions -Wno-documentation-unknown-command -Wno-covered-switch-default -Wno-switch-enum -Wno-extra-semi-stmt -Wno-weak-vtables -Wno-shadow -Wno-padded -Wno-reserved-id-macro -Wno-double-promotion -Wno-exit-time-destructors -Wno-global-constructors -Wno-documentation -Wno-format-nonliteral -Wno-used-but-marked-unused -Wno-float-equal -Wno-cuda-compat -Wno-conditional-uninitialized -Wno-conversion -Wno-disabled-macro-expansion -Wno-unused-macros -Wno-unsafe-buffer-usage -Wno-cast-function-type-strict SHELL:-fiopenmp -O3 -DNDEBUG
BLAS library: Intel MKL version 2023.0.2 Build 20230613
LAPACK library: Intel MKL version 2023.0.2 Build 20230613
SYCL DPC++ flags: -fsycl
SYCL DPC++ version: 20230721 (libsycl 6.2.0)
But when i run a command in MD simulation, it appears as:
Program: gmx mdrun, version 2023.2
Source file: src/gromacs/taskassignment/findallgputasks.cpp (line 85)
Fatal error:
Cannot run short-ranged nonbonded interactions on a GPU because no GPU is
detected.
Here is the CMake flags i used and the running details if it helps:
cmake … -DGMX_BUILD_OWN_FFTW=ON -DGMX_GPU=SYCL -DGMX_SYCL_DEVICE=INTEL -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx -DGMX_SYCL=ON
– The C compiler identification is IntelLLVM 2023.2.0
– The CXX compiler identification is IntelLLVM 2023.2.0
– Detecting C compiler ABI info
– Detecting C compiler ABI info - done
– Check for working C compiler: /opt/intel/oneapi/compiler/2023.2.1/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: /opt/intel/oneapi/compiler/2023.2.1/linux/bin/icpx - skipped
– Detecting CXX compile features
– Detecting CXX compile features - done
– Performing Test CXX17_COMPILES_SIMPLY
– Performing Test CXX17_COMPILES_SIMPLY - Success
– Found Python3: /usr/bin/python3.10 (found suitable version “3.10.12”, minimum required is “3.7”) found components: Interpreter Development Development.Module Development.Embed
– Found OpenMP_C: -fiopenmp (found version “5.0”)
– Found OpenMP_CXX: -fiopenmp (found version “5.0”)
– Found OpenMP: TRUE (found version “5.0”)
– Performing Test CFLAGS_WARN_NO_MISSING_FIELD_INITIALIZERS
– Performing Test CFLAGS_WARN_NO_MISSING_FIELD_INITIALIZERS - Success
– Performing Test CXXFLAGS_WARN_NO_RESERVED_IDENTIFIER
– Performing Test CXXFLAGS_WARN_NO_RESERVED_IDENTIFIER - Success
– Performing Test CXXFLAGS_WARN_NO_MISSING_FIELD_INITIALIZERS
– Performing Test CXXFLAGS_WARN_NO_MISSING_FIELD_INITIALIZERS - Success
– Performing Test CXXFLAGS_NO_UNROLL_WARNING
– Performing Test CXXFLAGS_NO_UNROLL_WARNING - Success
– Looking for include file unistd.h
– Looking for include file unistd.h - found
– Looking for include file pwd.h
– Looking for include file pwd.h - found
– Looking for include file dirent.h
– Looking for include file dirent.h - found
– Looking for include file time.h
– Looking for include file time.h - found
– Looking for include file sys/time.h
– Looking for include file sys/time.h - found
– Looking for include file io.h
– Looking for include file io.h - not found
– Looking for include file sched.h
– Looking for include file sched.h - found
– Looking for include file xmmintrin.h
– Looking for include file xmmintrin.h - found
– Looking for gettimeofday
– Looking for gettimeofday - found
– Looking for sysconf
– Looking for sysconf - found
– Looking for nice
– Looking for nice - found
– Looking for fsync
– Looking for fsync - found
– Looking for _fileno
– Looking for _fileno - not found
– Looking for fileno
– Looking for fileno - found
– Looking for _commit
– Looking for _commit - not found
– Looking for sigaction
– Looking for sigaction - found
– Performing Test HAVE_BUILTIN_CLZ
– Performing Test HAVE_BUILTIN_CLZ - Success
– Performing Test HAVE_BUILTIN_CLZLL
– Performing Test HAVE_BUILTIN_CLZLL - Success
– Looking for clock_gettime in rt
– Looking for clock_gettime in rt - found
– Looking for feenableexcept in m
– Looking for feenableexcept in m - found
– Looking for fedisableexcept in m
– Looking for fedisableexcept in m - found
– Checking for sched.h GNU affinity API
– Performing Test sched_affinity_compile
– Performing Test sched_affinity_compile - Success
– Looking for include file mm_malloc.h
– Looking for include file mm_malloc.h - found
– Looking for include file malloc.h
– Looking for include file malloc.h - found
– Checking for _mm_malloc()
– Checking for _mm_malloc() - supported
– Looking for posix_memalign
– Looking for posix_memalign - found
– Looking for memalign
– Looking for memalign - not found
– GROMACS is being built without library MPI support (-DGMX_MPI=no). However MPI is potentially useful for the gmxapi Python API, so we will search for MPI anyway. If this causes problems, disable the check with -DCMAKE_DISABLE_FIND_PACKAGE_MPI=on.
– Could NOT find MPI_C (missing: MPI_C_WORKS)
– Could NOT find MPI_CXX (missing: MPI_CXX_WORKS)
– Could NOT find MPI (missing: MPI_C_FOUND MPI_CXX_FOUND)
– Using default binary suffix: “”
– Using default library suffix: “”
– Performing Test CMAKE_HAVE_LIBC_PTHREAD
– Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
– Found Threads: TRUE
– Looking for C++ include pthread.h
– Looking for C++ include pthread.h - found
– Performing Test TEST_ATOMICS
– Performing Test TEST_ATOMICS - Success
– Atomic operations found
– Performing Test PTHREAD_SETAFFINITY
– Performing Test PTHREAD_SETAFFINITY - Success
– Detecting best SIMD instructions for this CPU
– Checking for GCC x86 inline asm
– Checking for GCC x86 inline asm - supported
– Detected build CPU features - aes apic avx avx2 clfsh cmov cx8 cx16 f16c fma htt intel lahf mmx msr nonstop_tsc pcid pclmuldq pdcm pdpe1gb popcnt pse rdrnd rdtscp sha sse2 sse3 sse4.1 sse4.2 ssse3 tdt x2apic
– Detected build CPU brand - 12th Gen Intel(R) Core™ i5-1240P
– Detected best SIMD instructions for this CPU - AVX2_256
– Performing Test C_mavx2_mfma_FLAG_ACCEPTED
– Performing Test C_mavx2_mfma_FLAG_ACCEPTED - Success
– Performing Test C_mavx2_mfma_COMPILE_WORKS
– Performing Test C_mavx2_mfma_COMPILE_WORKS - Success
– Performing Test CXX_mavx2_mfma_FLAG_ACCEPTED
– Performing Test CXX_mavx2_mfma_FLAG_ACCEPTED - Success
– Performing Test CXX_mavx2_mfma_COMPILE_WORKS
– Performing Test CXX_mavx2_mfma_COMPILE_WORKS - Success
– Enabling 256-bit AVX2 SIMD instructions using CXX flags: -mavx2 -mfma
– Detecting flags to enable runtime detection of AVX-512 units on newer CPUs
– Performing Test C_xCORE_AVX512_qopt_zmm_usage_high_FLAG_ACCEPTED
– Performing Test C_xCORE_AVX512_qopt_zmm_usage_high_FLAG_ACCEPTED - Success
– Performing Test C_xCORE_AVX512_qopt_zmm_usage_high_COMPILE_WORKS
– Performing Test C_xCORE_AVX512_qopt_zmm_usage_high_COMPILE_WORKS - Success
– Performing Test CXX_xCORE_AVX512_qopt_zmm_usage_high_FLAG_ACCEPTED
– Performing Test CXX_xCORE_AVX512_qopt_zmm_usage_high_FLAG_ACCEPTED - Success
– Performing Test CXX_xCORE_AVX512_qopt_zmm_usage_high_COMPILE_WORKS
– Performing Test CXX_xCORE_AVX512_qopt_zmm_usage_high_COMPILE_WORKS - Success
– Detecting flags to enable runtime detection of AVX-512 units on newer CPUs - -xCORE-AVX512 -qopt-zmm-usage=high
– Performing Test Wno_unused_command_line_argument_FLAG_ACCEPTED
– Performing Test Wno_unused_command_line_argument_FLAG_ACCEPTED - Success
– Performing Test callconv___vectorcall
– Performing Test callconv___vectorcall - Success
– Detected build CPU vendor - Intel
– Detected build CPU family - 6
– Detected build CPU model - 154
– Detected build CPU stepping - 3
– Checking for 64-bit off_t
– Checking for 64-bit off_t - present
– Checking for fseeko/ftello
– Checking for fseeko/ftello - present
– Checking for SIGUSR1
– Checking for SIGUSR1 - found
– Checking for pipe support
– Checking for system XDR support
– Checking for system XDR support - not present
– Found MKL at /opt/intel/oneapi/mkl/2023.2.0
– Looking for DftiCreateDescriptor
– Looking for DftiCreateDescriptor - found
– Using external FFT library - Intel MKL
– Looking for dgemm
– Looking for dgemm - found
– Looking for cheev
– Looking for cheev - found
– Could not convert sample image, ImageMagick convert can not be used. A possible way to fix it can be found here: Fixing Imagick's “not authorized” exception — Alex Vanderbist
– Performing Test HAS_WARNING_EVERYTHING
– Performing Test HAS_WARNING_EVERYTHING - Success
– Performing Test HAS_WARNING_NO_CPLUSPLUS98_COMPAT
– Performing Test HAS_WARNING_NO_CPLUSPLUS98_COMPAT - Success
– Performing Test HAS_WARNING_NO_CPLUSPLUS98_COMPAT_PEDANTIC
– Performing Test HAS_WARNING_NO_CPLUSPLUS98_COMPAT_PEDANTIC - Success
– Performing Test HAS_WARNING_NO_RETURN_STD_MOVE_IN_CPLUSPLUS11
– Performing Test HAS_WARNING_NO_RETURN_STD_MOVE_IN_CPLUSPLUS11 - Failed
– Performing Test HAS_WARNING_NO_SOURCE_USED_OPENMP
– Performing Test HAS_WARNING_NO_SOURCE_USED_OPENMP - Success
– Performing Test HAS_WARNING_NO_CPLUSPLUS17_EXTENSIONS
– Performing Test HAS_WARNING_NO_CPLUSPLUS17_EXTENSIONS - Success
– Performing Test HAS_WARNING_NO_DOCUMENTATION_UNKNOWN_COMMAND
– Performing Test HAS_WARNING_NO_DOCUMENTATION_UNKNOWN_COMMAND - Success
– Performing Test HAS_WARNING_NO_COVERED_SWITCH_DEFAULT
– Performing Test HAS_WARNING_NO_COVERED_SWITCH_DEFAULT - Success
– Performing Test HAS_WARNING_NO_SWITCH_ENUM
– Performing Test HAS_WARNING_NO_SWITCH_ENUM - Success
– Performing Test HAS_WARNING_NO_EXTRA_SEMI_STMT
– Performing Test HAS_WARNING_NO_EXTRA_SEMI_STMT - Success
– Performing Test HAS_WARNING_NO_WEAK_VTABLES
– Performing Test HAS_WARNING_NO_WEAK_VTABLES - Success
– Performing Test HAS_WARNING_NO_SHADOW
– Performing Test HAS_WARNING_NO_SHADOW - Success
– Performing Test HAS_WARNING_NO_PADDED
– Performing Test HAS_WARNING_NO_PADDED - Success
– Performing Test HAS_WARNING_NO_RESERVED_ID_MACRO
– Performing Test HAS_WARNING_NO_RESERVED_ID_MACRO - Success
– Performing Test HAS_WARNING_NO_DOUBLE_PROMOTION
– Performing Test HAS_WARNING_NO_DOUBLE_PROMOTION - Success
– Performing Test HAS_WARNING_NO_EXIT_TIME_DESTRUCTORS
– Performing Test HAS_WARNING_NO_EXIT_TIME_DESTRUCTORS - Success
– Performing Test HAS_WARNING_NO_GLOBAL_CONSTRUCTORS
– Performing Test HAS_WARNING_NO_GLOBAL_CONSTRUCTORS - Success
– Performing Test HAS_WARNING_NO_DOCUMENTATION
– Performing Test HAS_WARNING_NO_DOCUMENTATION - Success
– Performing Test HAS_WARNING_NO_FORMAT_NONLITERAL
– Performing Test HAS_WARNING_NO_FORMAT_NONLITERAL - Success
– Performing Test HAS_WARNING_NO_USED_BUT_MARKED_UNUSED
– Performing Test HAS_WARNING_NO_USED_BUT_MARKED_UNUSED - Success
– Performing Test HAS_WARNING_NO_FLOAT_EQUAL
– Performing Test HAS_WARNING_NO_FLOAT_EQUAL - Success
– Performing Test HAS_WARNING_CONDITIONAL_UNINITIALIZED
– Performing Test HAS_WARNING_CONDITIONAL_UNINITIALIZED - Success
– Performing Test HAS_WARNING_NO_CONVERSION
– Performing Test HAS_WARNING_NO_CONVERSION - Success
– Performing Test HAS_WARNING_NO_DISABLED_MACRO_EXPANSION
– Performing Test HAS_WARNING_NO_DISABLED_MACRO_EXPANSION - Success
– Performing Test HAS_WARNING_NO_UNUSED_MACROS
– Performing Test HAS_WARNING_NO_UNUSED_MACROS - Success
– Performing Test HAS_WARNING_NO_UNSAFE_BUFFER_USAGE
– Performing Test HAS_WARNING_NO_UNSAFE_BUFFER_USAGE - Success
– Performing Test HAS_WARNING_NO_ZERO_AS_NULL_POINTER_CONSTANT
– Performing Test HAS_WARNING_NO_ZERO_AS_NULL_POINTER_CONSTANT - Success
– Performing Test HAS_WARNING_NO_GNU_ZERO_VARIADIC_MACRO_ARGUMENTS
– Performing Test HAS_WARNING_NO_GNU_ZERO_VARIADIC_MACRO_ARGUMENTS - Success
– Performing Test HAS_WARNING_NO_UNUSED_MEMBER_FUNCTION
– Performing Test HAS_WARNING_NO_UNUSED_MEMBER_FUNCTION - Success
– Found Doxygen: /usr/bin/doxygen (found version “1.9.1”) found components: doxygen missing components: dot
– Found Python: /usr/bin/python3.10 (found version “3.10.12”) found components: Interpreter
– Performing Test HAVE_NO_DEPRECATED_COPY
– Performing Test HAVE_NO_DEPRECATED_COPY - Success
– Performing Test HAS_NO_STRINGOP_TRUNCATION
– Performing Test HAS_NO_STRINGOP_TRUNCATION - Failed
– Performing Test HAS_NO_REDUNDANT_MOVE
– Performing Test HAS_NO_REDUNDANT_MOVE - Success
– Performing Test HAS_WARNING_NO_CAST_FUNCTION_TYPE_STRICT
– Performing Test HAS_WARNING_NO_CAST_FUNCTION_TYPE_STRICT - Success
– Performing Test HAS_NO_UNUSED
– Performing Test HAS_NO_UNUSED - Success
– Performing Test HAS_NO_UNUSED_PARAMETER
– Performing Test HAS_NO_UNUSED_PARAMETER - Success
– Performing Test HAS_NO_MISSING_DECLARATIONS
– Performing Test HAS_NO_MISSING_DECLARATIONS - Success
– Performing Test HAS_NO_NULL_CONVERSIONS
– Performing Test HAS_NO_NULL_CONVERSIONS - Success
– Looking for inttypes.h
– Looking for inttypes.h - found
– Performing Test HAS_WARNING_NO_ARRAY_BOUNDS
– Performing Test HAS_WARNING_NO_ARRAY_BOUNDS - Success
– Performing Test HAS_WARNING_NO_DEPRECATED_NON_PROTOTYPE
– Performing Test HAS_WARNING_NO_DEPRECATED_NON_PROTOTYPE - Success
– Performing Test COMPILER_HAS_HIDDEN_VISIBILITY
– Performing Test COMPILER_HAS_HIDDEN_VISIBILITY - Success
– Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY
– Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY - Success
– Performing Test COMPILER_HAS_DEPRECATED_ATTR
– Performing Test COMPILER_HAS_DEPRECATED_ATTR - Success
– Could NOT find Sphinx (missing: SPHINX_EXECUTABLE) (Required is at least version “4.0.0”)
– Selected GPU FFT library - MKL
– Checking for flags to enable SYCL
– Performing Test SYCL_CXX_FLAGS_RESULT
– Performing Test SYCL_CXX_FLAGS_RESULT - Success
– Checking for flags to enable SYCL - -fsycl
– Performing Test SYCL_DEVICE_CODE_SPLIT_CXX_FLAGS_RESULT
– Performing Test SYCL_DEVICE_CODE_SPLIT_CXX_FLAGS_RESULT - Success
– Performing Test CXX_ffast_math_FLAG_ACCEPTED
– Performing Test CXX_ffast_math_FLAG_ACCEPTED - Success
– Performing Test CXX_ffast_math_COMPILE_WORKS
– Performing Test CXX_ffast_math_COMPILE_WORKS - Success
– Performing Test CAN_LINK_SYCL_MKL
– Performing Test CAN_LINK_SYCL_MKL - Success
– Performing Test HAS_WARNING_NO_CUDA_COMPAT
– Performing Test HAS_WARNING_NO_CUDA_COMPAT - Success
CMake Deprecation Warning at src/external/googletest/CMakeLists.txt:4 (cmake_minimum_required):
Compatibility with CMake < 3.5 will be removed from a future version of
CMake.
Update the VERSION argument value or use a … suffix to tell
CMake that the project does not need compatibility with older versions.
CMake Deprecation Warning at src/external/googletest/googlemock/CMakeLists.txt:45 (cmake_minimum_required):
Compatibility with CMake < 3.5 will be removed from a future version of
CMake.
Update the VERSION argument value or use a … suffix to tell
CMake that the project does not need compatibility with older versions.
CMake Deprecation Warning at src/external/googletest/googletest/CMakeLists.txt:56 (cmake_minimum_required):
Compatibility with CMake < 3.5 will be removed from a future version of
CMake.
Update the VERSION argument value or use a … suffix to tell
CMake that the project does not need compatibility with older versions.
– Configuring done (37.2s)
– Generating done (12.2s)
CMake Warning:
Manually-specified variables were not used by the project:
GMX_SYCL
GMX_SYCL_DEVICE
– Configuring done (108.0s)
– Generating done (7.9s)
I recognize that in the cmake running, it found CPU but didn’t mention about GPU, I don’t know if it’s normally not mentioned in SYCL building or it is a fault.
Please help me sort it out as soon as possible, I really need GPU acceleration for my works. Thanks in advance.
Best regards.