* LIBXS (https://libxs.readthedocs.io/) foundational library.
- Implements SMMs with different JIT providers, e.g., MKL-JIT.
- LIBXSMM only provides kernels (reg. upstream version).
* LIBXSTREAM (https://libxstream.readthedocs.io/).
- Revised OpenCL backend now formally separate.
* CMake and Toolchain
- Eliminated mkl_sequential/mkl_gnu_thread mismatch.
- Toolchain adjusted for libxs/libxstream/libxsmm.
- Case-insensitive CP2K_USE_ACCEL.
DBCSR originally wanted lower case.
This is to harmonize with DBCSR.
- Allow CP2K's FYPP to be used for DBCSR.
This enables DBCSR Tarball versions.
* Regenerated all Docker recipes.
- This make FYPP available for DBCSR build.
- This enables DBCSR Tarball versions.
This script should facilitate the CP2K development as a replacement for
the Makefile and the Toolchain while keep everything local and versatile.
It builds CP2K using Spack and CMake locally within the folder CP2K_ROOT
which defaults to the current working directory. This should be a
"cp2k/" folder containing the CP2K source tree.
The script can either be sourced with
> source ./make_cp2k.sh
or run in a subshell with
> ./make_cp2k.sh
The flags -h or --help print the available options.
The first run will take longer as it will build all CP2K dependencies
with Spack. The Spack installation is kept fully local in the subfolder
cp2k/spack which corresponds to the tools/toolchain/install folder
created by the CP2K toolchain.
Subsequent runs of the script will use the software stack from that
cp2k/spack/ folder.
A rebuild of all CP2K dependencies can be enforced simply by removing
or renaming the folder cp2k/spack. The latter allows for keeping different
software stacks.
It is recommended to install podman to take advantage of a spack cache.
This will accelerate the build of the CP2K dependencies with Spack
significantly.
After the CP2K dependencies are built with Spack, CP2K itself is built
and installed using CMake in the subfolders cp2k/build and cp2k/install.
Subsequent runs of the script will use the CMake configuration in the
subfolder cp2k/build. A rebuild of CP2K from scratch can be enforced
by removing or renaming that subfolder.
A CP2K regression run can be launched automatically by adding the flag
-t "" (or --test ""). This flag expects a string with the TESTOPTS, e.g.
> source ./make_cp2k.sh -t "--restrictdir QS/regtest-gpw-1"
Alternatively, the script cp2k/install/run_tests can be launched after
a successful CP2K build.
- For the OpenCL based GPU code-path, or by choice, ELPA may not be built with GPU support.
- Introduced __NO_OFFLOAD_ELPA to allow CPU-only ELPA (related to #4617).
- Allow compile-time selection of ELPA solver-kind (1-stage vs 2-stage).
- For ELPA/SYCL, use 1-stage ELPA solver by default for the time being.
- ELPA/SYCL (MKL in general?) has an index-fix currently only in a branch.
Index/ILP issue (undefined behavior):
- ELPA eventually mismatches index-kinds (LP64 vs ILP64 when linking BLAS/MKL).
- For static linkage it usually does not not matter (at least CPU-only).
- CP2K links the correct BLAS flavor (SO and GPU-build may be affected?).
- ELPA 2-stage may be even affected beyond MKL (or for GPU in general).
- ELPA 1-stage is apparently not affected by index issue.