Skip to content

Commit

Permalink
Merge pull request #1696 from LLNL/task/rhornung67/v2024.07.0-RC
Browse files Browse the repository at this point in the history
Merge RC branch to main for release
  • Loading branch information
rhornung67 authored Jul 24, 2024
2 parents 593f756 + 0e1c0fc commit 4d7fcba
Show file tree
Hide file tree
Showing 143 changed files with 10,785 additions and 2,143 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,5 @@
/install_*/
/install-*/
/Debug/
*.swp
*.orig
8 changes: 4 additions & 4 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ stages:
include:
- local: '.gitlab/custom-jobs-and-variables.yml'
- project: 'radiuss/radiuss-shared-ci'
ref: 'v2024.04.0'
ref: 'v2024.06.0'
file: 'pipelines/${CI_MACHINE}.yml'
- artifact: '${CI_MACHINE}-jobs.yml'
job: 'generate-job-lists'
Expand All @@ -91,20 +91,20 @@ stages:
trigger-rajaperf:
stage: multi-project
rules:
- if: '$CI_COMMIT_BRANCH == "${MP_BRANCH}" || $MULTI_PROJECT == "ON"' #run only if ...
- if: $CI_COMMIT_BRANCH == $MP_BRANCH || $MULTI_PROJECT == "ON" #run only if ...
variables:
UPDATE_RAJA: ${MP_BRANCH}
trigger:
project: radiuss/rajaperf
branch: develop
strategy: depend

include:
# Sets ID tokens for every job using `default:`
- project: 'lc-templates/id_tokens'
file: 'id_tokens.yml'
# [Optional] checks preliminary to running the actual CI test
- project: 'radiuss/radiuss-shared-ci'
ref: 'v2024.04.0'
ref: 'v2024.06.0'
file: 'utilities/preliminary-ignore-draft-pr.yml'
# pipelines subscribed by the project
- local: '.gitlab/subscribed-pipelines.yml'
16 changes: 14 additions & 2 deletions .gitlab/custom-jobs-and-variables.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ variables:
# Project specific variants for ruby
PROJECT_RUBY_VARIANTS: "~shared +openmp +vectorization +tests"
# Project specific deps for ruby
PROJECT_RUBY_DEPS: ""
PROJECT_RUBY_DEPS: "^blt@develop "

# Poodle
# Arguments for top level allocation
Expand All @@ -31,7 +31,7 @@ variables:
# Project specific variants for poodle
PROJECT_POODLE_VARIANTS: "~shared +openmp +vectorization +tests"
# Project specific deps for poodle
PROJECT_POODLE_DEPS: ""
PROJECT_POODLE_DEPS: "^blt@develop "

# Corona
# Arguments for top level allocation
Expand Down Expand Up @@ -70,3 +70,15 @@ variables:
artifacts:
reports:
junit: junit.xml

.reproducer_vars:
script:
- |
echo -e "
# Required variables \n
export MODULE_LIST=\"${MODULE_LIST}\" \n
export SPEC=\"${SPEC//\"/\\\"}\" \n
# Allow to set job script for debugging (only this differs from CI) \n
export DEBUG_MODE=true \n
# Using the CI build cache is optional and requires a token. Set it like so: \n
# export REGISTRY_TOKEN=\"<your token here>\" \n"
10 changes: 7 additions & 3 deletions .gitlab/jobs/corona.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,7 @@
# Override reproducer section to define project specific variables.
.corona_reproducer_vars:
script:
- |
echo -e "export MODULE_LIST=\"${MODULE_LIST}\""
echo -e "export SPEC=\"${SPEC//\"/\\\"}\""
- !reference [.reproducer_vars, script]

########################
# Overridden shared jobs
Expand All @@ -33,3 +31,9 @@ rocmcc_5_7_0_hip_desul_atomics:
SPEC: " ~shared +rocm ~openmp +tests +desul amdgpu_target=gfx906 %rocmcc@=5.7.0 ^[email protected] ^blt@develop"
extends: .job_on_corona

clang_19_0_0_sycl_gcc_10_3_1_rocmcc_5_7_1_hip:
variables:
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"
MODULE_LIST: "rocm/5.7.1"
extends: .job_on_corona

14 changes: 11 additions & 3 deletions .gitlab/jobs/lassen.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,7 @@
# Override reproducer section to define project specific variables.
.lassen_reproducer_vars:
script:
- |
echo -e "export MODULE_LIST=\"${MODULE_LIST}\""
echo -e "export SPEC=\"${SPEC//\"/\\\"}\""
- !reference [.reproducer_vars, script]

########################
# Overridden shared jobs
Expand Down Expand Up @@ -68,3 +66,13 @@ gcc_8_3_1_cuda_10_1_243_desul_atomics:
variables:
SPEC: " ~shared +openmp +tests +cuda +desul %gcc@=8.3.1 cuda_arch=70 ^[email protected]+allow-unsupported-compilers ^blt@develop"
extends: .job_on_lassen

# Warning: Allowed to fail temporarily
# Deactivated due to issues with OpenMP Target and various tests and compilers.
clang_16_0_6_ibm_omptarget:
variables:
SPEC: " ~shared +openmp +omptarget +tests %clang@=16.0.6.ibm.gcc.8.3.1 ^blt@develop"
ON_LASSEN: "OFF"
extends: .job_on_lassen
allow_failure: true

22 changes: 13 additions & 9 deletions .gitlab/jobs/poodle.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,38 +5,42 @@
# SPDX-License-Identifier: (BSD-3-Clause)
##############################################################################

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

########################
# Overridden shared jobs
########################
# We duplicate the shared jobs description and add necessary changes for this
# project. We keep ${PROJECT_<MACHINE>_VARIANTS} and ${PROJECT_<MACHINE>_DEPS}
# So that the comparison with the original job is easier.
# when possible so that the comparison with the original job is easier.

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

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

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

# Allowed to fail
intel_2022_1_0:
variables:
SPEC: "${PROJECT_POODLE_VARIANTS} %intel@=2022.1.0 ${PROJECT_POODLE_DEPS} ^blt@develop"
SPEC: "${PROJECT_POODLE_VARIANTS} %intel@=2022.1.0 ${PROJECT_POODLE_DEPS}"
allow_failure: true
extends: .job_on_poodle

Expand Down
18 changes: 10 additions & 8 deletions .gitlab/jobs/ruby.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,35 +8,37 @@
# Override reproducer section to define project specific variables.
.ruby_reproducer_vars:
script:
- |
echo -e "export MODULE_LIST=\"${MODULE_LIST}\""
echo -e "export SPEC=\"${SPEC//\"/\\\"}\""
- !reference [.reproducer_vars, script]

########################
# Overridden shared jobs
########################
# We duplicate the shared jobs description and add necessary changes for this
# project. We keep ${PROJECT_<MACHINE>_VARIANTS} and ${PROJECT_<MACHINE>_DEPS}
# So that the comparison with the original job is easier.
# when possible so that the comparison with the original job is easier.

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

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

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

# Allowed to fail
intel_2022_1_0:
variables:
SPEC: "${PROJECT_RUBY_VARIANTS} %intel@=2022.1.0 ${PROJECT_RUBY_DEPS} ^blt@develop"
SPEC: "${PROJECT_RUBY_VARIANTS} %intel@=2022.1.0 ${PROJECT_RUBY_DEPS}"
allow_failure: true
extends: .job_on_ruby

Expand Down
12 changes: 5 additions & 7 deletions .gitlab/jobs/tioga.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,7 @@
# Override reproducer section to define project specific variables.
.tioga_reproducer_vars:
script:
- |
echo -e "export MODULE_LIST=\"${MODULE_LIST}\""
echo -e "export SPEC=\"${SPEC//\"/\\\"}\""
- !reference [.reproducer_vars, script]

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

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

rocmcc_5_7_1_hip_openmp:
rocmcc_6_1_1_hip_openmp:
variables:
SPEC: "~shared +rocm +openmp +omptask +tests amdgpu_target=gfx90a %rocmcc@=5.7.1 ^hip@5.7.1 ^blt@develop"
SPEC: "~shared +rocm +openmp +omptask +tests amdgpu_target=gfx90a %rocmcc@=6.1.1 ^hip@6.1.1 ^blt@develop"
extends: .job_on_tioga
2 changes: 1 addition & 1 deletion .uberenv_config.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"package_final_phase" : "initconfig",
"package_source_dir" : "../..",
"spack_url": "https://github.com/spack/spack.git",
"spack_branch": "develop-2024-02-18",
"spack_branch": "develop-2024-07-07",
"spack_activate" : {},
"spack_configs_path": "scripts/radiuss-spack-configs",
"spack_packages_path": "scripts/radiuss-spack-configs/packages",
Expand Down
10 changes: 3 additions & 7 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ include(CMakeDependentOption)

# Set version number
set(RAJA_VERSION_MAJOR 2024)
set(RAJA_VERSION_MINOR 02)
set(RAJA_VERSION_PATCHLEVEL 2)
set(RAJA_VERSION_MINOR 07)
set(RAJA_VERSION_PATCHLEVEL 0)

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

include(cmake/SetupRajaOptions.cmake)

if (ENABLE_HIP)
cmake_minimum_required(VERSION 3.23)
else()
cmake_minimum_required(VERSION 3.20)
endif()
cmake_minimum_required(VERSION 3.23)

# Detect C++ standard and add appropriate flag _before_ loading BLT
set(COMPILERS_KNOWN_TO_CMAKE33 AppleClang Clang GNU MSVC)
Expand Down
51 changes: 51 additions & 0 deletions RELEASE_NOTES.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,57 @@ Notable changes include:
* Bug fixes/improvements:


Version 2024.07.0 -- Release date 2024-07-24
============================================

This release contains new features, improvements, and bugfixes.

Notable changes include:

* New features / API changes:
* Added support for a "multi-reduction" operation which allows users to
perform a run time-defined number of reduction operations in a kernel.
Please see the RAJA User Guide for details and examples.
* Added first couple of sections for a "RAJA Cookbook" in the RAJA User
Guide. The goal is to provide users with more detailed guidance about
using RAJA features, choosing execution policies, etc. Additional
content will be provided in future releases.
* Added atomicLoad and atomicStore routines for correctness in some
use cases.
* Added OpenMP 5.1 implementations for atomicMin and atomicMax.
* Add SYCL reduction support in RAJA::launch

* Build changes/improvements:
* Update camp submodule to v2024.07.0 release. This will be a version
constraint for this release in RAJA Spack package.
* Minimum required CMake version bumped to 3.23.

* Bug fixes/improvements:
* Fix CMake issue for case when RAJA is used as a submodule dependency.
* Various fixes and improvements to builtin atomic support.
* Fixes and improvements to other atomic operations:
* Modified HIP and CUDA generic atomic compare and swap algorithms
to use atomic loads instead of relying on volatile.
* Re-implemented atomic loads in terms of builtin atomics for CUDA
and HIP so that the generic compare and swap functions can use it.
* Removes volatile qualifier in atomic function signatures.
* Use cuda::atomic_ref in newer versions of CUDA to back
atomicLoad/atomicStore.
* Use atomicAdd as a fallback for atomicSub in CUDA.
* Removed checks where __CUDA_ARCH__ is less than 350 since RAJA
requires that as the minimum supported architecture (CMake check).
* Fixed issues with naming RAJA forall::kernels when using CUDA.
* Fixes in SYCL back-end for RAJA::launch.
* Fixed some issues in examples.
* Bugfixes and cleanup in parts of the SYCL back-end needed to
support a bunch of new SYCL kernels that will appear in
RAJA Performance Suite release.
* Fix type naming issue that was exposed with a new version of the
Intel oneAPI compiler.
* Fix issue in User Guide documentation for configuring a project
using RAJA CMake configuration.


Version 2024.02.2 -- Release date 2024-05-08
============================================

Expand Down
4 changes: 2 additions & 2 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -86,9 +86,9 @@
# built documents.
#
# The short X.Y version.
version = u'2024.02'
version = u'2024.07'
# The full version, including alpha/beta/rc tags.
release = u'2024.02.2'
release = u'2024.07.0'

# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
Expand Down
Loading

0 comments on commit 4d7fcba

Please sign in to comment.