From abc21aefb7626006264f7f902873c4e61467d71f Mon Sep 17 00:00:00 2001 From: Rich Hornung Date: Wed, 26 Jun 2024 15:11:08 -0700 Subject: [PATCH 01/12] Update version number --- CMakeLists.txt | 4 ++-- docs/conf.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9e5ecec0b7..631ecb20b5 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}") 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. From 602b6501ea6e191bf56f6d943348d2be305bb965 Mon Sep 17 00:00:00 2001 From: Rich Hornung Date: Wed, 26 Jun 2024 15:11:37 -0700 Subject: [PATCH 02/12] Initial draft of release notes. --- RELEASE_NOTES.md | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index c2df2a03ea..aa8a2a3023 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -20,6 +20,48 @@ Notable changes include: * Bug fixes/improvements: +Version 2024.07.0 -- Release date 2024-07-xx +============================================ + +This release contains ... + +Notable changes include: + + * New features / API changes: + * Added basic "multi-reduction" support... + * Added atomicLoad and atomicStore routines for correctness in some + use cases. + * Added OpenMP 5.1 implementations for atomicMin and atomicMax. + + * Build changes/improvements: + * NONE. + + * Bug fixes/improvements: + * 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). + * Add SYCL reduction support in RAJA::launch + * 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 ============================================ From 3f00a5af3ec88224d2bfb0a885fa68768e5cc56e Mon Sep 17 00:00:00 2001 From: Rich Hornung Date: Wed, 26 Jun 2024 15:12:36 -0700 Subject: [PATCH 03/12] Add note about Camp submodule update --- RELEASE_NOTES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index aa8a2a3023..de14445224 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -34,7 +34,7 @@ Notable changes include: * Added OpenMP 5.1 implementations for atomicMin and atomicMax. * Build changes/improvements: - * NONE. + * Update camp submodule to v2024.07.0 release. * Bug fixes/improvements: * Various fixes and improvements to builtin atomic support. From 5097e4809054eb36e9b66c4e47aad152c3a5c992 Mon Sep 17 00:00:00 2001 From: Rich Hornung Date: Thu, 11 Jul 2024 13:38:10 -0700 Subject: [PATCH 04/12] Bump min required cmake version to 3.23 --- CMakeLists.txt | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 631ecb20b5..1659021970 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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) From 5373fdd1afda6d74312c314f4349d6a15dbd2b38 Mon Sep 17 00:00:00 2001 From: Rich Hornung Date: Thu, 11 Jul 2024 13:44:41 -0700 Subject: [PATCH 05/12] Add more items to release notes based on recent PR merges. --- RELEASE_NOTES.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index de14445224..529fd28349 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -32,11 +32,13 @@ Notable changes include: * 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. * 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 @@ -49,7 +51,8 @@ Notable changes include: * 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). - * Add SYCL reduction support in RAJA::launch + * Fix issue related to the fact that only C version of memcpy is supported + in device code. * Fixed issues with naming RAJA forall::kernels when using CUDA. * Fixes in SYCL back-end for RAJA::launch. * Fixed some issues in examples. From 90061820c801b6820cd9cdefeb6ccc1a9dcdc0d9 Mon Sep 17 00:00:00 2001 From: Rich Hornung Date: Thu, 11 Jul 2024 13:48:32 -0700 Subject: [PATCH 06/12] Bump camp submodule to v2024.07.0 release. --- RELEASE_NOTES.md | 3 ++- tpl/camp | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 529fd28349..714e5f4ddf 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -35,7 +35,8 @@ Notable changes include: * Add SYCL reduction support in RAJA::launch * Build changes/improvements: - * Update camp submodule to v2024.07.0 release. + * Update camp submodule to v2024.07.0 release. This will be a version + constraint for this release in RAJA Spack package. * Bug fixes/improvements: * Fix CMake issue for case when RAJA is used as a submodule dependency. diff --git a/tpl/camp b/tpl/camp index 79c320fa09..d580fd8feb 160000 --- a/tpl/camp +++ b/tpl/camp @@ -1 +1 @@ -Subproject commit 79c320fa09db987923b56884afdc9f82f4b70fc4 +Subproject commit d580fd8feb10ddb7a63a784b4afcd857ac686e39 From 937523bf32f5cf16234ed94ae64e648b5fda111f Mon Sep 17 00:00:00 2001 From: Rich Hornung Date: Mon, 15 Jul 2024 15:43:11 -0700 Subject: [PATCH 07/12] Add latest items to release notes. --- RELEASE_NOTES.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 714e5f4ddf..2f62423681 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -28,7 +28,13 @@ This release contains ... Notable changes include: * New features / API changes: - * Added basic "multi-reduction" support... + * 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. From acd61aa0cb60d15b877929cd7f01235c8111fa6e Mon Sep 17 00:00:00 2001 From: Rich Hornung Date: Mon, 15 Jul 2024 15:43:31 -0700 Subject: [PATCH 08/12] Fix missing content in user guide. --- docs/sphinx/user_guide/feature/resource.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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:: From f98a3ea0cd4d36955a4f1d52b1eafffd924b654c Mon Sep 17 00:00:00 2001 From: Rich Hornung Date: Fri, 19 Jul 2024 13:46:27 -0700 Subject: [PATCH 09/12] Update release notes --- RELEASE_NOTES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 2f62423681..36154ac535 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -23,7 +23,7 @@ Notable changes include: Version 2024.07.0 -- Release date 2024-07-xx ============================================ -This release contains ... +This release contains new features, improvements, and bugfixes. Notable changes include: From 7d591980187e21cb19e0478c8f38269a60f23dda Mon Sep 17 00:00:00 2001 From: Rich Hornung Date: Tue, 23 Jul 2024 11:44:17 -0700 Subject: [PATCH 10/12] Add release date, address review comment --- RELEASE_NOTES.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 36154ac535..8c4387c165 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -20,7 +20,7 @@ Notable changes include: * Bug fixes/improvements: -Version 2024.07.0 -- Release date 2024-07-xx +Version 2024.07.0 -- Release date 2024-07-24 ============================================ This release contains new features, improvements, and bugfixes. @@ -58,8 +58,6 @@ Notable changes include: * 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). - * Fix issue related to the fact that only C version of memcpy is supported - in device code. * Fixed issues with naming RAJA forall::kernels when using CUDA. * Fixes in SYCL back-end for RAJA::launch. * Fixed some issues in examples. From 40290a144528b6a72a64ea4cb7cd5d6976902583 Mon Sep 17 00:00:00 2001 From: Rich Hornung Date: Wed, 24 Jul 2024 09:40:26 -0700 Subject: [PATCH 11/12] Add note about bump of min required CMake version --- RELEASE_NOTES.md | 1 + 1 file changed, 1 insertion(+) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 8c4387c165..e86890d13d 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -43,6 +43,7 @@ Notable changes include: * 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. From 8ed8e80e9479c2c810195095797aef1e784c2cc0 Mon Sep 17 00:00:00 2001 From: Robert Chen Date: Wed, 24 Jul 2024 10:33:15 -0700 Subject: [PATCH 12/12] Add headers for GPU info. --- include/RAJA/policy/cuda/params/kernel_name.hpp | 1 + include/RAJA/policy/hip/params/kernel_name.hpp | 1 + 2 files changed, 2 insertions(+) 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)