##============================================================================= ## ## Copyright (c) Kitware, Inc. ## All rights reserved. ## See LICENSE.txt for details. ## ## This software is distributed WITHOUT ANY WARRANTY; without even ## the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR ## PURPOSE. See the above copyright notice for more information. ## ##============================================================================= # Ad-hoc build that runs in the ECP Hardware, concretely in OLCF Spock. .crusher_gcc_hip: variables: CCACHE_BASEDIR: "/lustre/orion/csc331/scratch/" CCACHE_DIR: "/lustre/orion/csc331/scratch/vbolea/ci/vtk-m/ccache" CUSTOM_CI_BUILDS_DIR: "/lustre/orion/csc331/scratch/vbolea/ci/vtk-m/runtime" # -isystem= is not affected by CCACHE_BASEDIR, thus we must ignore it CCACHE_IGNOREOPTIONS: "-isystem=*" CCACHE_NOHASHDIR: "true" CCACHE_INSTALL_DIR: "$CI_PROJECT_DIR/build" CMAKE_BUILD_TYPE: "RelWithDebInfo" CMAKE_GENERATOR: "Ninja" CMAKE_PREFIX_PATH: "$CI_BUILDS_DIR/kokkos_install" # We do not want to use the user's ~/.gitconfig GIT_CONFIG_GLOBAL: "true" KOKKOS_OPTS: >- -DCMAKE_INSTALL_PREFIX:PATH=$CI_BUILDS_DIR/kokkos_install -DCMAKE_CXX_COMPILER:FILEPATH=/opt/rocm-5.4.3/hip/bin/hipcc -DKokkos_ARCH_VEGA90A:BOOL=ON # The user default module list should not exist # craype;rocm;gcc should be loaded first JOB_MODULES: >- craype-accel-amd-gfx90a gcc/12 cmake rocm/5.4.3 git git-lfs ninja zstd VTKM_SETTINGS: kokkos+hip+gfx90a+crusher+ccache+no_rendering interruptible: true .setup_env_ecpci: &setup_env_ecpci | module purge module load ${JOB_MODULES} module list export PATH="${CCACHE_INSTALL_DIR}/ccache:$PATH" build:crusher_gcc_hip: stage: build tags: [crusher, shell] extends: - .crusher_gcc_hip - .run_crusher_ci before_script: - *setup_env_ecpci - mkdir -p "$CCACHE_INSTALL_DIR" - cmake --version - cmake -VV -P .gitlab/ci/config/ccache.cmake - ccache -z - ccache -s - .gitlab/ci/config/kokkos.sh "$CI_BUILDS_DIR" "3.7.01" $KOKKOS_OPTS - git remote add lfs https://gitlab.kitware.com/vtk/vtk-m.git - git fetch lfs - git-lfs install - git-lfs pull lfs script: - cmake -V -P .gitlab/ci/config/gitlab_ci_setup.cmake - ctest -VV -S .gitlab/ci/ctest_configure.cmake artifacts: expire_in: 24 hours when: always paths: - build/ - .gitlab/ccache/ccache test:crusher_gcc_hip: stage: test tags: [crusher, slurm] extends: - .crusher_gcc_hip - .run_crusher_ci needs: - build:crusher_gcc_hip dependencies: - build:crusher_gcc_hip variables: SCHEDULER_PARAMETERS: "-ACSC331_crusher -pbatch -t120 --nice=0 -c32 --gpus=4 -N 1" # We need this to skip ctest_submit from being run inside a jsrun job GITLAB_CI_EMULATION: 1 # Tests errors to address due to different env in Spock # Refer to issue: https://gitlab.kitware.com/vtk/vtk-m/-/issues/743 CTEST_EXCLUSIONS: >- UnitTestMIRFilter UnitTestDistributedBranchDecompositionFilter UnitTestWorkletParticleAdvection UnitTestLagrangianFilter before_script: - *setup_env_ecpci script: - CTEST_MAX_PARALLELISM=32 ctest -VV -S .gitlab/ci/ctest_build.cmake - CTEST_MAX_PARALLELISM=4 ctest -VV -S .gitlab/ci/ctest_test.cmake after_script: - *setup_env_ecpci - ccache -s - ctest -VV -S .gitlab/ci/ctest_submit_build.cmake - ctest -VV -S .gitlab/ci/ctest_submit_test.cmake timeout: 150 minutes