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