diff --git a/CMakeLists.txt b/CMakeLists.txt index 9e5ecec0b7..1659021970 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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}") @@ -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) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index c2df2a03ea..e86890d13d 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -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 ============================================ diff --git a/docs/conf.py b/docs/conf.py index 3212170b30..5f76d77b76 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -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. diff --git a/docs/sphinx/user_guide/feature/resource.rst b/docs/sphinx/user_guide/feature/resource.rst index 860af3eddd..d0ca13a3ab 100644 --- a/docs/sphinx/user_guide/feature/resource.rst +++ b/docs/sphinx/user_guide/feature/resource.rst @@ -95,7 +95,7 @@ Memory Operations ------------------- The example discussed in this section illustrates most of the memory -operations that can be performed with +operations that can be performed with RAJA resource objects. A common use case for a resource is to manage arrays in the appropriate memory space to use in a kernel. Consider the following code example:: diff --git a/include/RAJA/policy/cuda/params/kernel_name.hpp b/include/RAJA/policy/cuda/params/kernel_name.hpp index 507465d955..4edf645ed3 100644 --- a/include/RAJA/policy/cuda/params/kernel_name.hpp +++ b/include/RAJA/policy/cuda/params/kernel_name.hpp @@ -4,6 +4,7 @@ #if defined(RAJA_CUDA_ACTIVE) #include +#include "RAJA/policy/cuda/MemUtils_CUDA.hpp" #include "RAJA/pattern/params/kernel_name.hpp" namespace RAJA { diff --git a/include/RAJA/policy/hip/params/kernel_name.hpp b/include/RAJA/policy/hip/params/kernel_name.hpp index ef432b9818..30269f8406 100644 --- a/include/RAJA/policy/hip/params/kernel_name.hpp +++ b/include/RAJA/policy/hip/params/kernel_name.hpp @@ -3,6 +3,7 @@ #if defined(RAJA_HIP_ACTIVE) +#include "RAJA/policy/hip/MemUtils_HIP.hpp" #include "RAJA/pattern/params/kernel_name.hpp" #if defined(RAJA_ENABLE_ROCTX) diff --git a/tpl/camp b/tpl/camp index 0f07de4240..d580fd8feb 160000 --- a/tpl/camp +++ b/tpl/camp @@ -1 +1 @@ -Subproject commit 0f07de4240c42e0b38a8d872a20440cb4b33d9f5 +Subproject commit d580fd8feb10ddb7a63a784b4afcd857ac686e39