Skip to content

Commit 31773a2

Browse files
adayton1davidbeckingsaleliu15Kristikab163
authored
V2024.02.0 RC (#252)
* Depend on develop version of TPLs * Tweak version constraints * Update Umpire package * Fix syntax error in Umpire package * Update packages for CHAI and Umpire * Depend on newer camp * Update versions for RAJA and Umpire * Fixes for libcpp builds * Add SLURM_OVERLAP variable * Add greater control for when CHAI is a submodule * Fix hip build with resource manager disabled * Depend on camp@main * Missed one reference to camp@master * Bug fixes for HIP and managed_ptr * Clean up managed_ptr.hpp * Fix host build warning * Customize block size for HIP build * Add a managed_ptr example * Fix HIP kernel launches * Add reproducer for HIP managed_ptr errors * Clean up managed_ptr reproducer * Add a simpler reproducer * Add simplest reproducer * Fix macro * Fix mutex lock in evict() that overlaps with lock in free() * initial changes to add CHAI_ cmake prefix * fixing cmake option command syntax * trying to fix azure pipeline image and raja plugin flag * make edits to azure pipeline file * Switching from quartz to ruby in gitlab CI * Updating umpire camp dependency * Release v2022.03.0 (#208) * Update Spack packages for CI (#210) * Add CHAI + RAJA launch integration test. (#219) * Release v2022.10.0 (#217) * Make operator overloads bind in more cases (#222) * MigrateInner on CHAI Copyable for PINNED / UM (#223) * Use shared CI (#213) * Deprecate API for synchronization after device kernels (#228) * setExecutionSpace thread safety(#230) Co-authored-by: Neela Kausik <kausik1@llnl.gov> * Release v2023.06.0 (#232) * [Woptim] Update shared ci to v2023.08.0 (#236) * Remove explicit device synchronization (#235) * Update radiuss-shared-ci to new release (with radiuss-spack-configs) (#238) * Use free instead of realloc to zero size (#239) * [Woptim] shared ci 2023.12.0 (#241) * Update Shared CI and Spack Configs to add poodle * Activate poodle subpipeline * Reduce allocated time * Fine tune allocation duration * Fine tune allocation duration in CI * Comment alloc command choices * Update RSC to main * Fix missing poodle alloc info, update to radiuss Shared CI 2023.12.0, sync build_and_test script with RAJA * Update radiuss-spack-configs * CI updates (#244) * Updates radiuss-spack-configs to commit a37c3e1 * Changes to match the CI of other projects * Support for a single memory space writeable by both GPU and CPU (#242) * Support for a single memory space writeable by both GPU and CPU. Provides appropriate synchronizations when needed instead of performing any memory copies. --------- Co-authored-by: Alan Dayton <dayton8@llnl.gov> * Clean up CHAI dependency handling * Revert "Clean up CHAI dependency handling" This reverts commit 5afb66a. * Clean up CMake in CHAI (#247) * Update copyright to 2024 (#248) * Update to BLT v0.6.1 (#243) * Update to BLT v0.6.1 * Update to RAJA v2024.02.0 * Update to Umpire 2024.02.0 * Use new way of exporting tpls * Disable failing container builds since container images are being revamped * Allow failure for the job using libcpp - doesn't play nicely with fmt at the moment * Use branch of radiuss-spack-configs to fix spack builds * Add install tests * Add a file with release notes * Ignoring runner issues on tioga since the jobs passed previously * [Woptim] update spack + update to rocm 5.7.1 (#245) * Update Spack version * Update RADIUSS Spack Configs with February 2024 release changes --------- Co-authored-by: Alan Dayton <dayton8@llnl.gov> * Update version numbers --------- Co-authored-by: David Beckingsale <davidbeckingsale@gmail.com> Co-authored-by: Benjamin T. Liu <liu15@llnl.gov> Co-authored-by: Kristi <belcher6@rzansel61.coral.llnl.gov> Co-authored-by: Kristi <belcher6@llnl.gov> Co-authored-by: Arturo Vargas <artvar3@yahoo.com> Co-authored-by: robinson96 <robinson96@llnl.gov> Co-authored-by: Adrien Bernede <51493078+adrienbernede@users.noreply.github.com> Co-authored-by: Neela Kausik <kausik1@llnl.gov> Co-authored-by: Ben Liu <38140930+liu15@users.noreply.github.com>
1 parent 77d22da commit 31773a2

112 files changed

Lines changed: 2419 additions & 2253 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,4 @@ Win32/chai.vcxproj.user
77
Win32/.vs/
88
Win32/x64/
99
*.aps
10+
*.orig

.gitlab-ci.yml

Lines changed: 68 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -1,80 +1,90 @@
11
###############################################################################
2-
# Copyright (c) 2016-20, Lawrence Livermore National Security, LLC and CHAI
3-
# project contributors. See the COPYRIGHT file for details.
2+
# Copyright (c) 2022-24, Lawrence Livermore National Security, LLC and RADIUSS
3+
# project contributors. See the CHAI LICENSE file for details.
44
#
55
# SPDX-License-Identifier: (MIT)
66
###############################################################################
77

8+
# DESCRIPTION:
89
###############################################################################
910
# General GitLab pipelines configurations for supercomputers and Linux clusters
1011
# at Lawrence Livermore National Laboratory (LLNL).
11-
#
1212
# This entire pipeline is LLNL-specific
13-
# #############################################################################
14-
15-
# We define the following GitLab pipeline variables:
1613
#
17-
# GIT_SUBMODULE_STRATEGY:
18-
# Tells Gitlab to recursively update the submodules when cloning the project
14+
# Important note: This file is a template provided by llnl/radiuss-shared-ci.
15+
# Remains to set variable values, change the reference to the radiuss-shared-ci
16+
# repo, opt-in and out optional features. The project can then extend it with
17+
# additional stages.
1918
#
20-
# ALLOC_NAME:
21-
# On LLNL's quartz, this pipeline creates only one allocation shared among jobs
22-
# in order to save time and resources. This allocation has to be uniquely named
23-
# so that we are sure to retrieve it.
19+
# In addition, each project should copy over and complete:
20+
# - .gitlab/custom-jobs-and-variables.yml
21+
# - .gitlab/subscribed-pipelines.yml
2422
#
25-
# BUILD_ROOT:
26-
# The path to the shared resources between all jobs. The BUILD_ROOT is unique to
27-
# the pipeline, preventing any form of concurrency with other pipelines. This
28-
# also means that the BUILD_ROOT directory will never be cleaned.
29-
# TODO: add a clean-up mechanism
23+
# The jobs should be specified in a file local to the project,
24+
# - .gitlab/jobs/${CI_MACHINE}.yml
25+
# or generated (see LLNL/Umpire for an example).
26+
###############################################################################
3027

28+
# We define the following GitLab pipeline variables:
3129
variables:
30+
##### LC GITLAB CONFIGURATION
31+
# Use an LLNL service user to run CI. This prevents from running pipelines as an
32+
# actual user.
33+
LLNL_SERVICE_USER: umdev
34+
# Use the service user workspace. Solves permission issues, stores everything
35+
# at the same location whoever triggers a pipeline.
36+
CUSTOM_CI_BUILDS_DIR: /usr/workspace/umdev/gitlab-runner
37+
# Tells Gitlab to recursively update the submodules when cloning the project.
3238
GIT_SUBMODULE_STRATEGY: recursive
33-
ALLOC_NAME: ${CI_PROJECT_NAME}_ci_${CI_PIPELINE_ID}
34-
BUILD_ROOT: ${CI_PROJECT_DIR}
35-
36-
# Normally, stages are blocking in Gitlab. However, using the keyword "needs" we
37-
# can express dependencies between job that break the ordering of stages, in
38-
# favor of a DAG.
39-
# In practice q_*, l_* and b_* stages are independently run and start immediately.
4039

41-
stages:
42-
- q_allocate_resources
43-
- q_build_and_test
44-
- q_release_resources
45-
- l_build_and_test
46-
- b_build_and_test
40+
##### PROJECT VARIABLES
41+
# We build the projects in the CI clone directory (used in
42+
# script/gitlab/build_and_test.sh script).
43+
# TODO: add a clean-up mechanism.
44+
BUILD_ROOT: ${CI_PROJECT_DIR}
4745

48-
# This is the rules that drives the activation of "advanced" jobs. All advanced
49-
# jobs will share this through a template mechanism.
50-
.advanced_pipeline:
51-
rules:
52-
- if: '$CI_COMMIT_BRANCH == "main" || $CI_COMMIT_BRANCH == "develop" || $ALL_TARGETS == "ON"' #run only if ...
46+
##### SHARED_CI CONFIGURATION
47+
# Required information about GitHub repository
48+
GITHUB_PROJECT_NAME: "CHAI"
49+
GITHUB_PROJECT_ORG: "LLNL"
50+
# Set the build-and-test command.
51+
# Nested variables are allowed and useful to customize the job command. We
52+
# prevent variable expansion so that you can define them at job level.
53+
JOB_CMD:
54+
value: "./scripts/gitlab/build_and_test.sh"
55+
expand: false
56+
# Override the pattern describing branches that will skip the "draft PR filter
57+
# test". Add protected branches here. See default value in
58+
# preliminary-ignore-draft-pr.yml.
59+
# ALWAYS_RUN_PATTERN: ""
5360

54-
# These are also templates (.name) that define project specific build commands.
55-
# If an allocation exist with the name defined in this pipeline, the job will
56-
# use it (slurm specific).
57-
.build_toss_3_x86_64_ib_script:
58-
script:
59-
- echo ${ALLOC_NAME}
60-
- export JOBID=$(squeue -h --name=${ALLOC_NAME} --format=%A)
61-
- echo ${JOBID}
62-
- srun $( [[ -n "${JOBID}" ]] && echo "--jobid=${JOBID}" ) -t 10 -N 1 scripts/gitlab/build_and_test.sh
61+
# We organize the build-and-test stage with sub-pipelines. Each sub-pipeline
62+
# corresponds to a test batch on a given machine.
6363

64-
# Lassen and Butte use a different job scheduler (spectrum lsf) that does not
65-
# allow pre-allocation the same way slurm does.
66-
.build_blueos_3_ppc64le_ib_script:
67-
script:
68-
- lalloc 1 -W 20 scripts/gitlab/build_and_test.sh
64+
# High level stages
65+
stages:
66+
- prerequisites
67+
- build-and-test
6968

70-
.build_blueos_3_ppc64le_ib_p9_script:
71-
extends: .build_blueos_3_ppc64le_ib_script
69+
# Template for jobs triggering a build-and-test sub-pipeline:
70+
.build-and-test:
71+
stage: build-and-test
72+
trigger:
73+
include:
74+
- local: '.gitlab/custom-jobs-and-variables.yml'
75+
- project: 'radiuss/radiuss-shared-ci'
76+
ref: 'v2023.12.0'
77+
file: 'pipelines/${CI_MACHINE}.yml'
78+
- artifact: '${CI_MACHINE}-jobs.yml'
79+
job: 'generate-job-lists'
80+
strategy: depend
81+
forward:
82+
pipeline_variables: true
7283

73-
# This is where jobs are included.
7484
include:
75-
- local: .gitlab/quartz-templates.yml
76-
- local: .gitlab/quartz-jobs.yml
77-
- local: .gitlab/lassen-templates.yml
78-
- local: .gitlab/lassen-jobs.yml
79-
- local: .gitlab/butte-templates.yml
80-
- local: .gitlab/butte-jobs.yml
85+
# [Optional] checks preliminary to running the actual CI test
86+
#- project: 'radiuss/radiuss-shared-ci'
87+
# ref: 'v2023.12.0'
88+
# file: 'preliminary-ignore-draft-pr.yml'
89+
# pipelines subscribed by the project
90+
- local: '.gitlab/subscribed-pipelines.yml'

.gitlab/butte-jobs.yml

Lines changed: 0 additions & 71 deletions
This file was deleted.

.gitlab/butte-templates.yml

Lines changed: 0 additions & 31 deletions
This file was deleted.
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
###############################################################################
2+
# Copyright (c) 2022-24, Lawrence Livermore National Security, LLC and RADIUSS
3+
# project contributors. See the CHAI LICENSE file for details.
4+
#
5+
# SPDX-License-Identifier: (MIT)
6+
###############################################################################
7+
8+
# We define the following GitLab pipeline variables:
9+
variables:
10+
# On LLNL's ruby, this pipeline creates only one allocation shared among jobs
11+
# in order to save time and resources. This allocation has to be uniquely named
12+
# so that we are sure to retrieve it and avoid collisions.
13+
ALLOC_NAME: ${CI_PROJECT_NAME}_ci_${CI_PIPELINE_ID}
14+
15+
# Ruby
16+
# Arguments for top level allocation
17+
RUBY_SHARED_ALLOC: "--exclusive --reservation=ci --time=7 --nodes=1"
18+
# Arguments for job level allocation
19+
# Note: We repeat the reservation, necessary when jobs are manually re-triggered.
20+
RUBY_JOB_ALLOC: "--overlap --reservation=ci --nodes=1"
21+
# Project specific variants for ruby
22+
PROJECT_RUBY_VARIANTS: "~shared +raja tests=basic "
23+
# Project specific deps for ruby
24+
PROJECT_RUBY_DEPS: ""
25+
26+
# Poodle
27+
# Arguments for top level allocation
28+
POODLE_SHARED_ALLOC: "--exclusive --partition=pdebug --time=7 --nodes=1"
29+
# Arguments for job level allocation
30+
# Note: We repeat the reservation, necessary when jobs are manually re-triggered.
31+
POODLE_JOB_ALLOC: "--overlap --nodes=1"
32+
# Project specific variants for poodle
33+
PROJECT_POODLE_VARIANTS: "~shared +raja tests=basic "
34+
# Project specific deps for poodle
35+
PROJECT_POODLE_DEPS: ""
36+
37+
# Corona
38+
# Arguments for top level allocation
39+
CORONA_SHARED_ALLOC: "--exclusive --time-limit=9m --nodes=1"
40+
# Arguments for job level allocation
41+
CORONA_JOB_ALLOC: "--nodes=1 --begin-time=+5s"
42+
# Project specific variants for corona
43+
PROJECT_CORONA_VARIANTS: "~shared +raja tests=basic "
44+
# Project specific deps for corona
45+
PROJECT_CORONA_DEPS: ""
46+
47+
# Tioga
48+
# Arguments for top level allocation
49+
TIOGA_SHARED_ALLOC: "--exclusive --time-limit=16m --nodes=1"
50+
# Arguments for job level allocation
51+
TIOGA_JOB_ALLOC: "--nodes=1 --begin-time=+5s"
52+
# Project specific variants for tioga
53+
PROJECT_TIOGA_VARIANTS: "~shared +raja tests=basic "
54+
# Project specific deps for tioga
55+
PROJECT_TIOGA_DEPS: ""
56+
57+
# Lassen and Butte use a different job scheduler (spectrum lsf) that does not
58+
# allow pre-allocation the same way slurm does.
59+
# Arguments for job level allocation
60+
LASSEN_JOB_ALLOC: "1 -W 8 -q pci"
61+
# Project specific variants for lassen
62+
PROJECT_LASSEN_VARIANTS: "~shared +raja cuda_arch=70 tests=basic"
63+
# Project specific deps for lassen
64+
PROJECT_LASSEN_DEPS: ""
65+
66+
# Configuration shared by build and test jobs specific to this project.
67+
# Not all configuration can be shared. Here projects can fine tune the
68+
# CI behavior.
69+
# See Umpire for an example (export junit test reports).
70+
.custom_job:
71+
artifacts:
72+
reports:
73+
junit: junit.xml

.gitlab/jobs/corona.yml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
##############################################################################
2+
# Copyright (c) 2022-24, Lawrence Livermore National Security, LLC and RADIUSS
3+
# project contributors. See the CHAI LICENSE file for details.
4+
#
5+
# SPDX-License-Identifier: (MIT)
6+
##############################################################################
7+
8+
# Override reproducer section to define project specific variables.
9+
.corona_reproducer_vars: &corona_reproducer_vars
10+
- |
11+
echo -e "export MODULE_LIST=\"${MODULE_LIST}\""
12+
echo -e "export SPEC=\"${SPEC//\"/\\\"}\""
13+
14+
########################
15+
# Overridden shared jobs
16+
########################
17+
# We duplicate the shared jobs description and add necessary changes for this
18+
# project. We keep ${PROJECT_<MACHINE>_VARIANTS} and ${PROJECT_<MACHINE>_DEPS}
19+
# So that the comparison with the original job is easier.
20+
21+
# No overridden jobs so far.
22+
23+
############
24+
# Extra jobs
25+
############
26+
# We do not recommend using ${PROJECT_<MACHINE>_VARIANTS} and
27+
# ${PROJECT_<MACHINE>_DEPS} in the extra jobs. There is no reason not to fully
28+
# describe the spec here.

0 commit comments

Comments
 (0)