diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6c79b1c1398..51d0ceeb991 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -2,6 +2,7 @@ stages: - init-status - sync - trigger_pipeline + - configure - build - test - code_quality @@ -90,6 +91,27 @@ trigger_pipeline: echo "Can not find the corresponding Pull Request" fi +configure/cmake-3.16: + extends: + - .quick_test_conditions + - .configure_template + - .use_gko-rocm45-nompi-gnu8-llvm8 + variables: + BUILD_CUDA: "OFF" + BUILD_HIP: "ON" + BUILD_SYCL: "OFF" + BUILD_MPI: "ON" + +configure/cmake-3.18: + extends: + - .quick_test_conditions + - .configure_template + - .use_gko-cuda102-nompi-gnu8-llvm8-intel2019 + variables: + BUILD_CUDA: "ON" + BUILD_HIP: "OFF" + BUILD_SYCL: "OFF" + BUILD_MPI: "OFF" # Build jobs # Job with example runs. diff --git a/.gitlab/scripts.yml b/.gitlab/scripts.yml index 874700d2124..886de9a8d52 100644 --- a/.gitlab/scripts.yml +++ b/.gitlab/scripts.yml @@ -15,23 +15,42 @@ - git config --global user.name "${BOT_USER}" - git config --global user.email "${BOT_EMAIL}" +.environment_script: &environment_script + - if [ -n "${CUDA_ARCH}" ]; then + export CUDA_ARCH_STR=-DGINKGO_CUDA_ARCHITECTURES=${CUDA_ARCH}; + fi + - | + export OMPI_ALLOW_RUN_AS_ROOT=1; + export OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1; + - export CC=${C_COMPILER} CXX=${CXX_COMPILER} CUDAHOSTCXX=${CXX_COMPILER} CUDACXX=${CUDA_COMPILER} + + +.configure_template: + stage: configure + extends: + - .before_script_template + script: + - mkdir -p ${CI_JOB_NAME} && cd ${CI_JOB_NAME} + - *environment_script + - | + cmake -S .. -B . -DGINKGO_BUILD_REFERENCE=ON -DGINKGO_BUILD_OMP=ON \ + -DGINKGO_BUILD_MPI=${BUILD_MPI} -DGINKGO_BUILD_CUDA=${BUILD_CUDA} \ + -DGINKGO_BUILD_HIP=${BUILD_HIP} -DGINKGO_BUILD_SYCL=${BUILD_SYCL} \ + -DGINKGO_MIXED_PRECISION=ON -DGINKGO_HAVE_GPU_AWARE_MPI=ON \ + -DGINKGO_BUILD_TESTS=ON -DGINKGO_FAST_TESTS=ON -DGINKGO_BUILD_EXTLIB_EXAMPLE=OFF \ + -DGINKGO_BUILD_BENCHMARKS=ON -DGINKGO_BENCHMARK_ENABLE_TUNING=ON \ + -DGINKGO_DEVEL_TOOLS=ON -DGINKGO_WITH_CLANG_TIDY=OFF -DGINKGO_WITH_IWYU=OFF \ + -DGINKGO_CHECK_CIRCULAR_DEPS=ON -DGINKGO_WITH_CCACHE=ON \ + -DGINKGO_BUILD_PAPI_SDE=OFF -DGINKGO_BUILD_HWLOC=ON + dependencies: [] + .build_template: stage: build extends: - .before_script_template script: - mkdir -p ${CI_JOB_NAME} && cd ${CI_JOB_NAME} - - if [ -n "${CUDA_ARCH}" ]; then - export CUDA_ARCH_STR=-DGINKGO_CUDA_ARCHITECTURES=${CUDA_ARCH}; - fi - - if [[ "${MPI_AS_ROOT}" == "ON" ]];then - export OMPI_ALLOW_RUN_AS_ROOT=1; - export OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1; - fi - - if [[ "${BUILD_MPI}" == "ON" ]]; then - MPI_STR=-DGINKGO_MPI_EXEC_SUFFIX=${MPI_SUFFIX}; - fi - - export CC=${C_COMPILER} CXX=${CXX_COMPILER} CUDAHOSTCXX=${CXX_COMPILER} CUDACXX=${CUDA_COMPILER} + - *environment_script - cmake -S ${CI_PROJECT_DIR}${CI_PROJECT_DIR_SUFFIX} -B . --preset ${CI_CMAKE_PRESET} - ninja -j${NUM_CORES} -l${CI_LOAD_LIMIT} install - awk '!/^#/ { print ($2 - $1)/1000 " " $4 }' .ninja_log | sort -nr @@ -45,20 +64,7 @@ - .before_script_template script: - mkdir -p ${CI_JOB_NAME} && cd ${CI_JOB_NAME} - - if [ -n "${CUDA_ARCH}" ]; then - export CUDA_ARCH_STR=-DGINKGO_CUDA_ARCHITECTURES=${CUDA_ARCH}; - fi - - if [ -n "${SYCL_DEVICE_TYPE}" ]; then export SYCL_DEVICE_TYPE; fi - - if [ -n "${SYCL_DEVICE_FILTER}" ]; then export SYCL_DEVICE_FILTER; fi - - if [ -n "${ONEAPI_DEVICE_SELECTOR}" ]; then export ONEAPI_DEVICE_SELECTOR; fi - - if [[ "${MPI_AS_ROOT}" == "ON" ]];then - export OMPI_ALLOW_RUN_AS_ROOT=1; - export OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1; - fi - - if [[ "${BUILD_MPI}" == "ON" ]]; then - MPI_STR=-DGINKGO_MPI_EXEC_SUFFIX=${MPI_SUFFIX}; - fi - - export CC=${C_COMPILER} CXX=${CXX_COMPILER} CUDAHOSTCXX=${CXX_COMPILER} CUDACXX=${CUDA_COMPILER} + - *environment_script - cmake -S ${CI_PROJECT_DIR}${CI_PROJECT_DIR_SUFFIX} -B . --preset ${CI_CMAKE_PRESET} - ninja -j${NUM_CORES} -l${CI_LOAD_LIMIT} install - awk '!/^#/ { print ($2 - $1)/1000 " " $4 }' .ninja_log | sort -nr