vtk-m/.gitlab/ci/crusher.yml

118 lines
3.6 KiB
YAML
Raw Normal View History

##=============================================================================
##
## 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.
##
##=============================================================================
2022-10-25 19:39:23 +00:00
# Ad-hoc build that runs in the ECP Hardware, concretely in OLCF Spock.
.crusher_gcc_hip:
2022-10-25 19:39:23 +00:00
variables:
2023-04-25 16:33:26 +00:00
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"
2022-10-25 19:39:23 +00:00
# -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"
2022-10-25 19:39:23 +00:00
2023-04-25 16:33:26 +00:00
# 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
2023-04-25 23:36:04 +00:00
-DCMAKE_CXX_COMPILER:FILEPATH=/opt/rocm-5.4.3/hip/bin/hipcc
-DKokkos_ARCH_VEGA90A:BOOL=ON
2023-04-25 23:36:04 +00:00
# The user default module list should not exist
# craype;rocm;gcc should be loaded first
2022-10-25 19:39:23 +00:00
JOB_MODULES: >-
craype-accel-amd-gfx90a
gcc/12
2023-04-25 23:36:04 +00:00
cmake
rocm/5.4.3
2022-10-25 19:39:23 +00:00
git
git-lfs
ninja
zstd
VTKM_SETTINGS: kokkos+hip+gfx90a+crusher+ccache+no_rendering
2022-10-25 19:39:23 +00:00
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:
2022-10-25 19:39:23 +00:00
stage: build
tags: [crusher, shell]
2022-10-25 19:39:23 +00:00
extends:
- .crusher_gcc_hip
- .run_crusher_ci
2022-10-25 19:39:23 +00:00
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
2022-10-25 19:39:23 +00:00
- 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:
2022-10-25 19:39:23 +00:00
stage: test
tags: [crusher, slurm]
2022-10-25 19:39:23 +00:00
extends:
- .crusher_gcc_hip
- .run_crusher_ci
2022-10-25 19:39:23 +00:00
needs:
- build:crusher_gcc_hip
2022-10-25 19:39:23 +00:00
dependencies:
- build:crusher_gcc_hip
2022-10-25 19:39:23 +00:00
variables:
SCHEDULER_PARAMETERS: "-ACSC331_crusher -pbatch -t120 --nice=0 -c32 --gpus=4 -N 1"
2022-10-25 19:39:23 +00:00
# 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