Skip to content

Add SYCL-related information to the mdrun version header

For DPCPP: print compiler flags. SYCL support is integrated into the C++ compiler, so no need to print any more version data.

For hipSYCL: print the path to the SYCL wrapper, command-line flags, and the list of supported platforms.

Closes #4061

Example outputs:

GROMACS:      gmx, version 2022-dev-20210604-59f107b0b9-dirty
Executable:   /home/aland/gromacs/build/sycl-edge-rel/./bin/gmx
Data prefix:  /home/aland/gromacs (source tree)
Working dir:  /home/aland/gromacs/build/sycl-edge-rel
Command line:
  gmx -version

GROMACS version:    2022-dev-20210604-279e7fcb26-dirty
GIT SHA1 hash:      279e7fcb269e7e5434ad7ccfdcf9839ac3630e88 (dirty)
Precision:          mixed
Memory model:       64 bit
MPI library:        thread_mpi
OpenMP support:     enabled (GMX_OPENMP_MAX_THREADS = 64)
GPU support:        SYCL (DPCPP)
SIMD instructions:  AVX2_256
FFT library:        fftw-3.3.8-sse2-avx
RDTSCP usage:       enabled
TNG support:        enabled
Hwloc support:      disabled
Tracing support:    disabled
C compiler:         /home/aland/sycl_workspace/llvm/build/bin/clang Clang 13.0.0
C compiler flags:   -mavx2 -mfma -Wall -Wno-unused -Wunused-value -Wunused-parameter -Wno-missing-field-initializers  -O3 
C++ compiler:       /home/aland/sycl_workspace/llvm/build/bin/clang++ Clang 13.0.0
C++ compiler flags: -mavx2 -mfma -Wall -Wextra -Wpointer-arith -Wmissing-prototypes -Wdeprecated -Wno-unused-function -Wno-missing-field-initializers -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-disabled-macro-expansion -Wno-cast-align -Wno-reserved-id-macro -Wno-global-constructors -Wno-exit-time-destructors -Wno-unused-macros -Wno-weak-vtables -Wno-conditional-uninitialized -Wno-format-nonliteral -Wno-shadow -Wno-cast-qual -Wno-documentation -Wno-used-but-marked-unused -Wno-padded -Wno-float-equal -Wno-old-style-cast -Wno-conversion -Wno-double-promotion -fopenmp=libomp  -O3 
SYCL DPCPP flags:   -fsycl -fsycl-device-code-split=per_kernel
GPU support:        SYCL (DPCPP)
SIMD instructions:  AVX2_256
FFT library:        fftw-3.3.8-sse2-avx
RDTSCP usage:       enabled
TNG support:        enabled
Hwloc support:      disabled
Tracing support:    disabled
C compiler:         /opt/intel/oneapi/compiler/2021.2.0/linux/bin/icx Clang 12.0.0
C compiler flags:   -mavx2 -mfma -Wall -Wno-unused -Wunused-value -Wunused-parameter -Wno-missing-field-initializers  -O3 
C++ compiler:       /opt/intel/oneapi/compiler/2021.2.0/linux/bin/icpx Clang 12.0.0
C++ compiler flags: -mavx2 -mfma -Wall -Wextra -Wpointer-arith -Wmissing-prototypes -Wdeprecated -Wno-unused-function -Wno-missing-field-initializers -fno-finite-math-only -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-disabled-macro-expansion -Wno-cast-align -Wno-reserved-id-macro -Wno-global-constructors -Wno-exit-time-destructors -Wno-unused-macros -Wno-weak-vtables -Wno-conditional-uninitialized -Wno-format-nonliteral -Wno-shadow -Wno-cast-qual -Wno-documentation -Wno-used-but-marked-unused -Wno-padded -Wno-float-equal -Wno-old-style-cast -Wno-conversion -Wno-double-promotion -fopenmp=libiomp5  -O3 
SYCL DPCPP flags:   -fsycl -fsycl-device-code-split=per_kernel
OpenMP support:     enabled (GMX_OPENMP_MAX_THREADS = 64)
GPU support:        SYCL (hipSYCL)
SIMD instructions:  AVX2_256
FFT library:        fftw-3.3.8-sse2-avx
RDTSCP usage:       enabled
TNG support:        enabled
Hwloc support:      disabled
Tracing support:    disabled
C compiler:         /usr/bin/clang-11 Clang 11.0.0
C compiler flags:   -mavx2 -mfma -Wall -Wno-unused -Wunused-value -Wunused-parameter -Wno-missing-field-initializers  -O3 
C++ compiler:       /usr/bin/clang++-11 Clang 11.0.0
C++ compiler flags: -mavx2 -mfma -Wall -Wextra -Wpointer-arith -Wmissing-prototypes -Wdeprecated -Wno-unused-function -Wno-missing-field-initializers -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-disabled-macro-expansion -Wno-cast-align -Wno-reserved-id-macro -Wno-global-constructors -Wno-exit-time-destructors -Wno-unused-macros -Wno-weak-vtables -Wno-conditional-uninitialized -Wno-format-nonliteral -Wno-shadow -Wno-cast-qual -Wno-documentation -Wno-used-but-marked-unused -Wno-padded -Wno-float-equal -Wno-old-style-cast -Wno-conversion -Wno-double-promotion -fopenmp=libomp  -O3 
hipSYCL launcher:   /home/aland/local/lib/cmake/hipSYCL/syclcc-launcher
hipSYCL flags:      -Wno-unknown-cuda-version -Wno-unknown-attributes --hipsycl-explicit-multipass --hipsycl-targets="cuda:sm_75" --hipsycl-clang=/usr/bin/clang++-11
hipSYCL platforms:  omp | cuda
Edited by Andrey Alekseenko

Merge request reports

Loading