Skip to content

Commit 4d7fcba

Browse files
authored
Merge pull request #1696 from LLNL/task/rhornung67/v2024.07.0-RC
Merge RC branch to main for release
2 parents 593f756 + 0e1c0fc commit 4d7fcba

File tree

143 files changed

+10785
-2143
lines changed

Some content is hidden

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

143 files changed

+10785
-2143
lines changed

.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,5 @@
1414
/install_*/
1515
/install-*/
1616
/Debug/
17+
*.swp
18+
*.orig

.gitlab-ci.yml

+4-4
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ stages:
7575
include:
7676
- local: '.gitlab/custom-jobs-and-variables.yml'
7777
- project: 'radiuss/radiuss-shared-ci'
78-
ref: 'v2024.04.0'
78+
ref: 'v2024.06.0'
7979
file: 'pipelines/${CI_MACHINE}.yml'
8080
- artifact: '${CI_MACHINE}-jobs.yml'
8181
job: 'generate-job-lists'
@@ -91,20 +91,20 @@ stages:
9191
trigger-rajaperf:
9292
stage: multi-project
9393
rules:
94-
- if: '$CI_COMMIT_BRANCH == "${MP_BRANCH}" || $MULTI_PROJECT == "ON"' #run only if ...
94+
- if: $CI_COMMIT_BRANCH == $MP_BRANCH || $MULTI_PROJECT == "ON" #run only if ...
9595
variables:
9696
UPDATE_RAJA: ${MP_BRANCH}
9797
trigger:
9898
project: radiuss/rajaperf
9999
branch: develop
100-
strategy: depend
101100

102101
include:
102+
# Sets ID tokens for every job using `default:`
103103
- project: 'lc-templates/id_tokens'
104104
file: 'id_tokens.yml'
105105
# [Optional] checks preliminary to running the actual CI test
106106
- project: 'radiuss/radiuss-shared-ci'
107-
ref: 'v2024.04.0'
107+
ref: 'v2024.06.0'
108108
file: 'utilities/preliminary-ignore-draft-pr.yml'
109109
# pipelines subscribed by the project
110110
- local: '.gitlab/subscribed-pipelines.yml'

.gitlab/custom-jobs-and-variables.yml

+14-2
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ variables:
2121
# Project specific variants for ruby
2222
PROJECT_RUBY_VARIANTS: "~shared +openmp +vectorization +tests"
2323
# Project specific deps for ruby
24-
PROJECT_RUBY_DEPS: ""
24+
PROJECT_RUBY_DEPS: "^blt@develop "
2525

2626
# Poodle
2727
# Arguments for top level allocation
@@ -31,7 +31,7 @@ variables:
3131
# Project specific variants for poodle
3232
PROJECT_POODLE_VARIANTS: "~shared +openmp +vectorization +tests"
3333
# Project specific deps for poodle
34-
PROJECT_POODLE_DEPS: ""
34+
PROJECT_POODLE_DEPS: "^blt@develop "
3535

3636
# Corona
3737
# Arguments for top level allocation
@@ -70,3 +70,15 @@ variables:
7070
artifacts:
7171
reports:
7272
junit: junit.xml
73+
74+
.reproducer_vars:
75+
script:
76+
- |
77+
echo -e "
78+
# Required variables \n
79+
export MODULE_LIST=\"${MODULE_LIST}\" \n
80+
export SPEC=\"${SPEC//\"/\\\"}\" \n
81+
# Allow to set job script for debugging (only this differs from CI) \n
82+
export DEBUG_MODE=true \n
83+
# Using the CI build cache is optional and requires a token. Set it like so: \n
84+
# export REGISTRY_TOKEN=\"<your token here>\" \n"

.gitlab/jobs/corona.yml

+7-3
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,7 @@
88
# Override reproducer section to define project specific variables.
99
.corona_reproducer_vars:
1010
script:
11-
- |
12-
echo -e "export MODULE_LIST=\"${MODULE_LIST}\""
13-
echo -e "export SPEC=\"${SPEC//\"/\\\"}\""
11+
- !reference [.reproducer_vars, script]
1412

1513
########################
1614
# Overridden shared jobs
@@ -33,3 +31,9 @@ rocmcc_5_7_0_hip_desul_atomics:
3331
SPEC: " ~shared +rocm ~openmp +tests +desul amdgpu_target=gfx906 %rocmcc@=5.7.0 ^hip@5.7.0 ^blt@develop"
3432
extends: .job_on_corona
3533

34+
clang_19_0_0_sycl_gcc_10_3_1_rocmcc_5_7_1_hip:
35+
variables:
36+
SPEC: " ~shared +sycl ~openmp +tests %clang@=19.0.0 cxxflags==\"-w -fsycl -fsycl-unnamed-lambda -fsycl-targets=amdgcn-amd-amdhsa -Xsycl-target-backend --offload-arch=gfx906\" ^blt@develop"
37+
MODULE_LIST: "rocm/5.7.1"
38+
extends: .job_on_corona
39+

.gitlab/jobs/lassen.yml

+11-3
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,7 @@
88
# Override reproducer section to define project specific variables.
99
.lassen_reproducer_vars:
1010
script:
11-
- |
12-
echo -e "export MODULE_LIST=\"${MODULE_LIST}\""
13-
echo -e "export SPEC=\"${SPEC//\"/\\\"}\""
11+
- !reference [.reproducer_vars, script]
1412

1513
########################
1614
# Overridden shared jobs
@@ -68,3 +66,13 @@ gcc_8_3_1_cuda_10_1_243_desul_atomics:
6866
variables:
6967
SPEC: " ~shared +openmp +tests +cuda +desul %gcc@=8.3.1 cuda_arch=70 ^cuda@10.1.243+allow-unsupported-compilers ^blt@develop"
7068
extends: .job_on_lassen
69+
70+
# Warning: Allowed to fail temporarily
71+
# Deactivated due to issues with OpenMP Target and various tests and compilers.
72+
clang_16_0_6_ibm_omptarget:
73+
variables:
74+
SPEC: " ~shared +openmp +omptarget +tests %clang@=16.0.6.ibm.gcc.8.3.1 ^blt@develop"
75+
ON_LASSEN: "OFF"
76+
extends: .job_on_lassen
77+
allow_failure: true
78+

.gitlab/jobs/poodle.yml

+13-9
Original file line numberDiff line numberDiff line change
@@ -5,38 +5,42 @@
55
# SPDX-License-Identifier: (BSD-3-Clause)
66
##############################################################################
77

8-
# Override reproducer section to define projet specific variables.
8+
# Override reproducer section to define project specific variables.
99
.poodle_reproducer_vars:
1010
script:
11-
- |
12-
echo -e "export MODULE_LIST=\"${MODULE_LIST}\""
13-
echo -e "export SPEC=\"${SPEC//\"/\\\"}\""
11+
- !reference [.reproducer_vars, script]
1412

1513
########################
1614
# Overridden shared jobs
1715
########################
1816
# We duplicate the shared jobs description and add necessary changes for this
1917
# project. We keep ${PROJECT_<MACHINE>_VARIANTS} and ${PROJECT_<MACHINE>_DEPS}
20-
# So that the comparison with the original job is easier.
18+
# when possible so that the comparison with the original job is easier.
2119

20+
# Identical to shared job, but use OpenMP tasks and no vectorization
2221
clang_14_0_6:
2322
variables:
24-
SPEC: " ~shared +openmp +omptask +tests %clang@=14.0.6 ^blt@develop"
23+
SPEC: " ~shared +openmp +omptask +tests %clang@=14.0.6 ${PROJECT_POODLE_DEPS}"
2524
extends: .job_on_poodle
2625

26+
# Identical to shared job, but use OpenMP tasks and no vectorization
2727
gcc_10_3_1:
2828
variables:
29-
SPEC: " ~shared +openmp +omptask +tests %gcc@=10.3.1 ^blt@develop"
29+
SPEC: " ~shared +openmp +omptask +tests %gcc@=10.3.1 ${PROJECT_POODLE_DEPS}"
3030
extends: .job_on_poodle
3131

32+
# Identical to shared job, but use OpenMP tasks and no vectorization
33+
# Deactivated (too long on poodle)
3234
intel_19_1_2_gcc_10_3_1:
3335
variables:
34-
SPEC: " ~shared +openmp +omptask +tests %intel@=19.1.2.gcc.10.3.1 ^blt@develop"
36+
ON_POODLE: "OFF"
37+
SPEC: " ~shared +openmp +omptask +tests %intel@=19.1.2.gcc.10.3.1 ${PROJECT_POODLE_DEPS}"
3538
extends: .job_on_poodle
3639

40+
# Allowed to fail
3741
intel_2022_1_0:
3842
variables:
39-
SPEC: "${PROJECT_POODLE_VARIANTS} %intel@=2022.1.0 ${PROJECT_POODLE_DEPS} ^blt@develop"
43+
SPEC: "${PROJECT_POODLE_VARIANTS} %intel@=2022.1.0 ${PROJECT_POODLE_DEPS}"
4044
allow_failure: true
4145
extends: .job_on_poodle
4246

.gitlab/jobs/ruby.yml

+10-8
Original file line numberDiff line numberDiff line change
@@ -8,35 +8,37 @@
88
# Override reproducer section to define project specific variables.
99
.ruby_reproducer_vars:
1010
script:
11-
- |
12-
echo -e "export MODULE_LIST=\"${MODULE_LIST}\""
13-
echo -e "export SPEC=\"${SPEC//\"/\\\"}\""
11+
- !reference [.reproducer_vars, script]
1412

1513
########################
1614
# Overridden shared jobs
1715
########################
1816
# We duplicate the shared jobs description and add necessary changes for this
1917
# project. We keep ${PROJECT_<MACHINE>_VARIANTS} and ${PROJECT_<MACHINE>_DEPS}
20-
# So that the comparison with the original job is easier.
18+
# when possible so that the comparison with the original job is easier.
2119

20+
# Identical to shared job, but use OpenMP tasks and no vectorization
2221
clang_14_0_6:
2322
variables:
24-
SPEC: " ~shared +openmp +omptask +tests %clang@=14.0.6 ^blt@develop"
23+
SPEC: " ~shared +openmp +omptask +tests %clang@=14.0.6 ${PROJECT_RUBY_DEPS}"
2524
extends: .job_on_ruby
2625

26+
# Identical to shared job, but use OpenMP tasks and no vectorization
2727
gcc_10_3_1:
2828
variables:
29-
SPEC: " ~shared +openmp +omptask +tests %gcc@=10.3.1 ^blt@develop"
29+
SPEC: " ~shared +openmp +omptask +tests %gcc@=10.3.1 ${PROJECT_RUBY_DEPS}"
3030
extends: .job_on_ruby
3131

32+
# Identical to shared job, but use OpenMP tasks and no vectorization
3233
intel_19_1_2_gcc_10_3_1:
3334
variables:
34-
SPEC: " ~shared +openmp +omptask +tests %intel@=19.1.2.gcc.10.3.1 ^blt@develop"
35+
SPEC: " ~shared +openmp +omptask +tests %intel@=19.1.2.gcc.10.3.1 ${PROJECT_RUBY_DEPS}"
3536
extends: .job_on_ruby
3637

38+
# Allowed to fail
3739
intel_2022_1_0:
3840
variables:
39-
SPEC: "${PROJECT_RUBY_VARIANTS} %intel@=2022.1.0 ${PROJECT_RUBY_DEPS} ^blt@develop"
41+
SPEC: "${PROJECT_RUBY_VARIANTS} %intel@=2022.1.0 ${PROJECT_RUBY_DEPS}"
4042
allow_failure: true
4143
extends: .job_on_ruby
4244

.gitlab/jobs/tioga.yml

+5-7
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,7 @@
88
# Override reproducer section to define project specific variables.
99
.tioga_reproducer_vars:
1010
script:
11-
- |
12-
echo -e "export MODULE_LIST=\"${MODULE_LIST}\""
13-
echo -e "export SPEC=\"${SPEC//\"/\\\"}\""
11+
- !reference [.reproducer_vars, script]
1412

1513
########################
1614
# Overridden shared jobs
@@ -28,12 +26,12 @@
2826
# ${PROJECT_<MACHINE>_DEPS} in the extra jobs. There is no reason not to fully
2927
# describe the spec here.
3028

31-
rocmcc_5_7_1_hip_desul_atomics:
29+
rocmcc_6_1_1_hip_desul_atomics:
3230
variables:
33-
SPEC: "~shared +rocm ~openmp +desul +tests amdgpu_target=gfx90a %rocmcc@=5.7.1 ^hip@5.7.1 ^blt@develop"
31+
SPEC: "~shared +rocm ~openmp +desul +tests amdgpu_target=gfx90a %rocmcc@=6.1.1 ^hip@6.1.1 ^blt@develop"
3432
extends: .job_on_tioga
3533

36-
rocmcc_5_7_1_hip_openmp:
34+
rocmcc_6_1_1_hip_openmp:
3735
variables:
38-
SPEC: "~shared +rocm +openmp +omptask +tests amdgpu_target=gfx90a %rocmcc@=5.7.1 ^hip@5.7.1 ^blt@develop"
36+
SPEC: "~shared +rocm +openmp +omptask +tests amdgpu_target=gfx90a %rocmcc@=6.1.1 ^hip@6.1.1 ^blt@develop"
3937
extends: .job_on_tioga

.uberenv_config.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"package_final_phase" : "initconfig",
55
"package_source_dir" : "../..",
66
"spack_url": "https://github.com/spack/spack.git",
7-
"spack_branch": "develop-2024-02-18",
7+
"spack_branch": "develop-2024-07-07",
88
"spack_activate" : {},
99
"spack_configs_path": "scripts/radiuss-spack-configs",
1010
"spack_packages_path": "scripts/radiuss-spack-configs/packages",

CMakeLists.txt

+3-7
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ include(CMakeDependentOption)
1515

1616
# Set version number
1717
set(RAJA_VERSION_MAJOR 2024)
18-
set(RAJA_VERSION_MINOR 02)
19-
set(RAJA_VERSION_PATCHLEVEL 2)
18+
set(RAJA_VERSION_MINOR 07)
19+
set(RAJA_VERSION_PATCHLEVEL 0)
2020

2121
if (RAJA_LOADED AND (NOT RAJA_LOADED STREQUAL "${RAJA_VERSION_MAJOR}.${RAJA_VERSION_MINOR}.${RAJA_VERSION_PATCHLEVEL}"))
2222
message(FATAL_ERROR "You are mixing RAJA versions. Loaded is ${RAJA_LOADED}, expected ${RAJA_VERSION_MAJOR}.${RAJA_VERSION_MINOR}.${RAJA_VERSION_PATCHLEVEL}")
@@ -44,11 +44,7 @@ set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake/thirdparty" ${CMAKE_MODULE_PA
4444

4545
include(cmake/SetupRajaOptions.cmake)
4646

47-
if (ENABLE_HIP)
48-
cmake_minimum_required(VERSION 3.23)
49-
else()
50-
cmake_minimum_required(VERSION 3.20)
51-
endif()
47+
cmake_minimum_required(VERSION 3.23)
5248

5349
# Detect C++ standard and add appropriate flag _before_ loading BLT
5450
set(COMPILERS_KNOWN_TO_CMAKE33 AppleClang Clang GNU MSVC)

RELEASE_NOTES.md

+51
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,57 @@ Notable changes include:
2020
* Bug fixes/improvements:
2121

2222

23+
Version 2024.07.0 -- Release date 2024-07-24
24+
============================================
25+
26+
This release contains new features, improvements, and bugfixes.
27+
28+
Notable changes include:
29+
30+
* New features / API changes:
31+
* Added support for a "multi-reduction" operation which allows users to
32+
perform a run time-defined number of reduction operations in a kernel.
33+
Please see the RAJA User Guide for details and examples.
34+
* Added first couple of sections for a "RAJA Cookbook" in the RAJA User
35+
Guide. The goal is to provide users with more detailed guidance about
36+
using RAJA features, choosing execution policies, etc. Additional
37+
content will be provided in future releases.
38+
* Added atomicLoad and atomicStore routines for correctness in some
39+
use cases.
40+
* Added OpenMP 5.1 implementations for atomicMin and atomicMax.
41+
* Add SYCL reduction support in RAJA::launch
42+
43+
* Build changes/improvements:
44+
* Update camp submodule to v2024.07.0 release. This will be a version
45+
constraint for this release in RAJA Spack package.
46+
* Minimum required CMake version bumped to 3.23.
47+
48+
* Bug fixes/improvements:
49+
* Fix CMake issue for case when RAJA is used as a submodule dependency.
50+
* Various fixes and improvements to builtin atomic support.
51+
* Fixes and improvements to other atomic operations:
52+
* Modified HIP and CUDA generic atomic compare and swap algorithms
53+
to use atomic loads instead of relying on volatile.
54+
* Re-implemented atomic loads in terms of builtin atomics for CUDA
55+
and HIP so that the generic compare and swap functions can use it.
56+
* Removes volatile qualifier in atomic function signatures.
57+
* Use cuda::atomic_ref in newer versions of CUDA to back
58+
atomicLoad/atomicStore.
59+
* Use atomicAdd as a fallback for atomicSub in CUDA.
60+
* Removed checks where __CUDA_ARCH__ is less than 350 since RAJA
61+
requires that as the minimum supported architecture (CMake check).
62+
* Fixed issues with naming RAJA forall::kernels when using CUDA.
63+
* Fixes in SYCL back-end for RAJA::launch.
64+
* Fixed some issues in examples.
65+
* Bugfixes and cleanup in parts of the SYCL back-end needed to
66+
support a bunch of new SYCL kernels that will appear in
67+
RAJA Performance Suite release.
68+
* Fix type naming issue that was exposed with a new version of the
69+
Intel oneAPI compiler.
70+
* Fix issue in User Guide documentation for configuring a project
71+
using RAJA CMake configuration.
72+
73+
2374
Version 2024.02.2 -- Release date 2024-05-08
2475
============================================
2576

docs/conf.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -86,9 +86,9 @@
8686
# built documents.
8787
#
8888
# The short X.Y version.
89-
version = u'2024.02'
89+
version = u'2024.07'
9090
# The full version, including alpha/beta/rc tags.
91-
release = u'2024.02.2'
91+
release = u'2024.07.0'
9292

9393
# The language for content autogenerated by Sphinx. Refer to documentation
9494
# for a list of supported languages.

0 commit comments

Comments
 (0)