- Clone with
git clone --recurse-submodules git@github.com:blegouix/similie.gitor any similar commande which suits the network configuration. Be sure to pull the submodules recursively.
- Requirement: By default (no particular contradictory instructions), build and run in the
docker/similie_env/Dockerfileimage that you callsimilie_env:latest. You'll need to mount thesimilie/folder before compiling it. Compile directly in the host environment only if specifically asked for (if so, check if all the necessary dependencies listed indocker/similie_env/Dockerfileare available in the current environment, in particularnvccandopenmpi). - Mount path in Docker: If you reuse an existing
build/orbuild_cpu/directory from the host, mount the repository in Docker at the same absolute path as on the host. Otherwise CMake may fail because the cached source/build paths no longer match. - CUDA in Docker: When building or running the CUDA backend inside Docker, start the container with
--gpus allso the NVIDIA driver and GPU devices are exposed in the container. - Git safe.directory in Docker: Some vendored submodules query Git metadata during CMake. If Docker reports "detected dubious ownership" on the mounted repository or its submodules, add temporary
git config --global --add safe.directory <path>entries inside the container for the repository and the relevant submodules before building. - Configure CMake: For CPU with
cmake -DCMAKE_CXX_COMPILER=g++-13 -DCMAKE_BUILD_TYPE=Debug -DKokkos_ENABLE_OPENMP=ON -B build -S .or for CUDA withcmake -DCMAKE_CXX_COMPILER=$PWD/vendor/ddc/vendor/kokkos/bin/nvcc_wrapper -DCMAKE_BUILD_TYPE=Debug -DKokkos_ENABLE_CUDA=ON -DKokkos_ARCH_<YOUR_ARCH_NAMECODE>=ON -B build -S .. Of course replace<YOUR_ARCH_NAMECODE>with the arch namecode which suits the GPU. - Compile: As usual once configured (
make -jN_PROCfrom thebuild/folder). Never exceed N_PROC=8. Be sure to compile in thebuild/for CUDA backend andbuild_cpu/for CPU backend.
- From
build, first recompile then runctest.