From f20727fd39df1662ff48243ad5cf073070156bb3 Mon Sep 17 00:00:00 2001 From: robinson96 Date: Thu, 22 Jan 2026 08:40:59 -0800 Subject: [PATCH 01/31] Add globalID support for ArraySum methods (#364) --- src/care/care_inst.h | 39 ++++++++++++++++++++++++++++++++------- 1 file changed, 32 insertions(+), 7 deletions(-) diff --git a/src/care/care_inst.h b/src/care/care_inst.h index b1356ce4..2d8ad534 100644 --- a/src/care/care_inst.h +++ b/src/care/care_inst.h @@ -882,7 +882,10 @@ CARE_EXTERN template CARE_DLL_API float ArraySum(care::host_device_ptr, int, float) ; CARE_EXTERN template CARE_DLL_API double ArraySum(care::host_device_ptr, int, double) ; -// TODO GID not implemented +#if CARE_HAVE_LLNL_GLOBALID +CARE_EXTERN template CARE_DLL_API +globalID ArraySum(care::host_device_ptr, int, globalID) ; +#endif #endif // defined(CARE_PARALLEL_DEVICE) @@ -894,6 +897,10 @@ CARE_EXTERN template CARE_DLL_API float ArraySum(care::host_device_ptr, int, float) ; CARE_EXTERN template CARE_DLL_API double ArraySum(care::host_device_ptr, int, double) ; +#if CARE_HAVE_LLNL_GLOBALID +CARE_EXTERN template CARE_DLL_API +globalID ArraySum(care::host_device_ptr, int, globalID) ; +#endif // TODO GID not implemented /////////////////////////////////////////////////////////////////////////////// @@ -908,7 +915,10 @@ CARE_EXTERN template CARE_DLL_API float ArraySumSubset(care::host_device_ptr, care::host_device_ptr, int, float) ; CARE_EXTERN template CARE_DLL_API double ArraySumSubset(care::host_device_ptr, care::host_device_ptr, int, double) ; -// TODO GID not implemented +#if CARE_HAVE_LLNL_GLOBALID +CARE_EXTERN template CARE_DLL_API +globalID ArraySumSubset(care::host_device_ptr, care::host_device_ptr, int, globalID) ; +#endif #endif // defined(CARE_PARALLEL_DEVICE) @@ -920,7 +930,10 @@ CARE_EXTERN template CARE_DLL_API float ArraySumSubset(care::host_device_ptr, care::host_device_ptr, int, float) ; CARE_EXTERN template CARE_DLL_API double ArraySumSubset(care::host_device_ptr, care::host_device_ptr, int, double) ; -// TODO GID not implemented +#if CARE_HAVE_LLNL_GLOBALID +CARE_EXTERN template CARE_DLL_API +globalID ArraySumSubset(care::host_device_ptr, care::host_device_ptr, int, globalID) ; +#endif /////////////////////////////////////////////////////////////////////////////// @@ -934,7 +947,10 @@ CARE_EXTERN template CARE_DLL_API float ArrayMaskedSumSubset(care::host_device_ptr, care::host_device_ptr, care::host_device_ptr, int, float) ; CARE_EXTERN template CARE_DLL_API double ArrayMaskedSumSubset(care::host_device_ptr, care::host_device_ptr, care::host_device_ptr, int, double) ; -// TODO GID not implemented +#if CARE_HAVE_LLNL_GLOBALID +CARE_EXTERN template CARE_DLL_API +globalID ArrayMaskedSumSubset(care::host_device_ptr, care::host_device_ptr, care::host_device_ptr, int, globalID) ; +#endif #endif // defined(CARE_PARALLEL_DEVICE) @@ -946,7 +962,10 @@ CARE_EXTERN template CARE_DLL_API float ArrayMaskedSumSubset(care::host_device_ptr, care::host_device_ptr, care::host_device_ptr, int, float) ; CARE_EXTERN template CARE_DLL_API double ArrayMaskedSumSubset(care::host_device_ptr, care::host_device_ptr, care::host_device_ptr, int, double) ; -// TODO GID not implemented +#if CARE_HAVE_LLNL_GLOBALID +CARE_EXTERN template CARE_DLL_API +globalID ArrayMaskedSumSubset(care::host_device_ptr, care::host_device_ptr, care::host_device_ptr, int, globalID) ; +#endif /////////////////////////////////////////////////////////////////////////////// @@ -960,7 +979,10 @@ CARE_EXTERN template CARE_DLL_API float ArrayMaskedSum(care::host_device_ptr, care::host_device_ptr, int, float) ; CARE_EXTERN template CARE_DLL_API double ArrayMaskedSum(care::host_device_ptr, care::host_device_ptr, int, double) ; -// TODO GID not implemented +#if CARE_HAVE_LLNL_GLOBALID +CARE_EXTERN template CARE_DLL_API +globalID ArrayMaskedSum(care::host_device_ptr, care::host_device_ptr, int, globalID) ; +#endif #endif // defined(CARE_PARALLEL_DEVICE) @@ -972,7 +994,10 @@ CARE_EXTERN template CARE_DLL_API float ArrayMaskedSum(care::host_device_ptr, care::host_device_ptr, int, float) ; CARE_EXTERN template CARE_DLL_API double ArrayMaskedSum(care::host_device_ptr, care::host_device_ptr, int, double) ; -// TODO GID not implemented +#if CARE_HAVE_LLNL_GLOBALID +CARE_EXTERN template CARE_DLL_API +globalID ArrayMaskedSum(care::host_device_ptr, care::host_device_ptr, int, globalID) ; +#endif /////////////////////////////////////////////////////////////////////////////// From 4aaef362b954c6804d51fde0da3c2ad2be31644d Mon Sep 17 00:00:00 2001 From: Adrien Bernede <51493078+adrienbernede@users.noreply.github.com> Date: Tue, 3 Mar 2026 21:02:29 +0100 Subject: [PATCH 02/31] Fix cuda arch on matrix (#366) --- .gitlab/custom-variables.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab/custom-variables.yml b/.gitlab/custom-variables.yml index 903a1520..e7cd9bc5 100644 --- a/.gitlab/custom-variables.yml +++ b/.gitlab/custom-variables.yml @@ -31,7 +31,7 @@ variables: # Note: we repeat the reservation, helpful when jobs are manually re-triggered. MATRIX_JOB_ALLOC: "--partition=pdebug --overlap --nodes=1" # Project specific variants for matrix - PROJECT_MATRIX_VARIANTS: "+cuda cuda_arch=75" + PROJECT_MATRIX_VARIANTS: "+cuda cuda_arch=90" # Project specific deps for matrix PROJECT_MATRIX_DEPS: "^umpire~c~shared ^raja~examples~exercises~tests ^chai~shared~examples " From e3a3b55fefad7964685b4bb0eda08b85757c0379 Mon Sep 17 00:00:00 2001 From: Adrien Bernede <51493078+adrienbernede@users.noreply.github.com> Date: Thu, 12 Mar 2026 17:20:38 +0100 Subject: [PATCH 03/31] No more local spack packages in Radiuss Spack Configs (#358) * Update to spack v1.1.0 * Point at RSC with packages synced upstream to spack-packages * Update uberenv to main --- .uberenv_config.json | 2 +- scripts/radiuss-spack-configs | 2 +- scripts/uberenv | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.uberenv_config.json b/.uberenv_config.json index ef48d326..95ffe834 100644 --- a/.uberenv_config.json +++ b/.uberenv_config.json @@ -4,7 +4,7 @@ "package_final_phase": "initconfig", "package_source_dir": "../..", "spack_url": "https://github.com/spack/spack.git", -"spack_branch": "v1.0.2", +"spack_branch": "v1.1.0", "spack_configs_path": "scripts/radiuss-spack-configs", "spack_packages_path": ["scripts/radiuss-spack-configs/spack_repo/llnl_radiuss/packages", "scripts/spack_packages/spack_repo/llnl_care/packages"], "spack_setup_clingo": false diff --git a/scripts/radiuss-spack-configs b/scripts/radiuss-spack-configs index fddc4f16..82c829af 160000 --- a/scripts/radiuss-spack-configs +++ b/scripts/radiuss-spack-configs @@ -1 +1 @@ -Subproject commit fddc4f16ee987abc9c1c61879eaf8a2d6a8253d9 +Subproject commit 82c829afc727791d08c1441f75258b6bb2fa2c10 diff --git a/scripts/uberenv b/scripts/uberenv index bec05e20..bf2f438f 160000 --- a/scripts/uberenv +++ b/scripts/uberenv @@ -1 +1 @@ -Subproject commit bec05e20bf2a1634d97ead358a9072c36f1fdcac +Subproject commit bf2f438fc1fe97bb8290a11e5d4f2d56085b4ee3 From 9aa0241d7cdb06b157cce4c975a08ed5481d6daf Mon Sep 17 00:00:00 2001 From: Adrien Bernede <51493078+adrienbernede@users.noreply.github.com> Date: Thu, 12 Mar 2026 17:41:22 +0100 Subject: [PATCH 04/31] Update RSCI and adapt to machine-status-override (#365) --- .gitlab-ci.yml | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8238e7c1..de9d848e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -71,7 +71,7 @@ include: file: 'id_tokens.yml' # Base pipeline templates and utilities - - component: $CI_SERVER_FQDN/radiuss/radiuss-shared-ci/base-pipeline@v2025.12.0 + - component: $CI_SERVER_FQDN/radiuss/radiuss-shared-ci/base-pipeline@v2026.02.0 inputs: github_project_name: $GITHUB_PROJECT_NAME github_project_org: $GITHUB_PROJECT_ORG @@ -115,13 +115,15 @@ generate-job-lists: # DANE dane-up-check: extends: [.dane, .machine-check] + variables: + ASSOCIATED_CHILD_PIPELINE: "dane-build-and-test" dane-build-and-test: extends: [.dane, .build-and-test] needs: [dane-up-check, generate-job-lists] trigger: include: - - component: $CI_SERVER_FQDN/radiuss/radiuss-shared-ci/dane-pipeline@v2025.12.0 + - component: $CI_SERVER_FQDN/radiuss/radiuss-shared-ci/dane-pipeline@v2026.02.0 inputs: job_cmd: $JOB_CMD shared_alloc: $DANE_SHARED_ALLOC @@ -135,13 +137,15 @@ dane-build-and-test: # MATRIX matrix-up-check: extends: [.matrix, .machine-check] + variables: + ASSOCIATED_CHILD_PIPELINE: "matrix-build-and-test" matrix-build-and-test: extends: [.matrix, .build-and-test] needs: [matrix-up-check, generate-job-lists] trigger: include: - - component: $CI_SERVER_FQDN/radiuss/radiuss-shared-ci/matrix-pipeline@v2025.12.0 + - component: $CI_SERVER_FQDN/radiuss/radiuss-shared-ci/matrix-pipeline@v2026.02.0 inputs: job_cmd: $JOB_CMD shared_alloc: $MATRIX_SHARED_ALLOC @@ -155,13 +159,15 @@ matrix-build-and-test: # CORONA corona-up-check: extends: [.corona, .machine-check] + variables: + ASSOCIATED_CHILD_PIPELINE: "corona-build-and-test" corona-build-and-test: extends: [.corona, .build-and-test] needs: [corona-up-check, generate-job-lists] trigger: include: - - component: $CI_SERVER_FQDN/radiuss/radiuss-shared-ci/corona-pipeline@v2025.12.0 + - component: $CI_SERVER_FQDN/radiuss/radiuss-shared-ci/corona-pipeline@v2026.02.0 inputs: job_cmd: $JOB_CMD shared_alloc: $CORONA_SHARED_ALLOC @@ -175,13 +181,15 @@ corona-build-and-test: # TIOGA tioga-up-check: extends: [.tioga, .machine-check] + variables: + ASSOCIATED_CHILD_PIPELINE: "tioga-build-and-test" tioga-build-and-test: extends: [.tioga, .build-and-test] needs: [tioga-up-check, generate-job-lists] trigger: include: - - component: $CI_SERVER_FQDN/radiuss/radiuss-shared-ci/tioga-pipeline@v2025.12.0 + - component: $CI_SERVER_FQDN/radiuss/radiuss-shared-ci/tioga-pipeline@v2026.02.0 inputs: job_cmd: $JOB_CMD shared_alloc: $TIOGA_SHARED_ALLOC @@ -195,13 +203,15 @@ tioga-build-and-test: # TUOLUMNE tuolumne-up-check: extends: [.tuolumne, .machine-check] + variables: + ASSOCIATED_CHILD_PIPELINE: "tuolumne-build-and-test" tuolumne-build-and-test: extends: [.tuolumne, .build-and-test] needs: [tuolumne-up-check, generate-job-lists] trigger: include: - - component: $CI_SERVER_FQDN/radiuss/radiuss-shared-ci/tuolumne-pipeline@v2025.12.0 + - component: $CI_SERVER_FQDN/radiuss/radiuss-shared-ci/tuolumne-pipeline@v2026.02.0 inputs: job_cmd: $JOB_CMD shared_alloc: $TUOLUMNE_SHARED_ALLOC From 277d4e4f04362126a941028570456acbec9e6c7e Mon Sep 17 00:00:00 2001 From: Adrien Bernede <51493078+adrienbernede@users.noreply.github.com> Date: Fri, 13 Mar 2026 19:02:07 +0100 Subject: [PATCH 05/31] Update RSC (rocm toolchain, mpich, cce), spack and spack-packages (#367) --- .uberenv_config.json | 2 +- scripts/radiuss-spack-configs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.uberenv_config.json b/.uberenv_config.json index 95ffe834..f801759f 100644 --- a/.uberenv_config.json +++ b/.uberenv_config.json @@ -4,7 +4,7 @@ "package_final_phase": "initconfig", "package_source_dir": "../..", "spack_url": "https://github.com/spack/spack.git", -"spack_branch": "v1.1.0", +"spack_branch": "v1.1.1", "spack_configs_path": "scripts/radiuss-spack-configs", "spack_packages_path": ["scripts/radiuss-spack-configs/spack_repo/llnl_radiuss/packages", "scripts/spack_packages/spack_repo/llnl_care/packages"], "spack_setup_clingo": false diff --git a/scripts/radiuss-spack-configs b/scripts/radiuss-spack-configs index 82c829af..ebe485fe 160000 --- a/scripts/radiuss-spack-configs +++ b/scripts/radiuss-spack-configs @@ -1 +1 @@ -Subproject commit 82c829afc727791d08c1441f75258b6bb2fa2c10 +Subproject commit ebe485fe17164623df7ec79df1e0371be536f343 From 4726548db5ad440eb32c0abea4471047cb9ff8aa Mon Sep 17 00:00:00 2001 From: robinson96 Date: Fri, 3 Apr 2026 17:01:43 -0700 Subject: [PATCH 06/31] Expose sortKeyValueArrays as a public API (#369) --- src/care/KeyValueSorter_decl.h | 12 +- src/care/KeyValueSorter_impl.h | 339 ++++++++++++++++----------------- src/care/KeyValueSorter_inst.h | 7 +- src/care/care_inst.h | 10 + 4 files changed, 187 insertions(+), 181 deletions(-) diff --git a/src/care/KeyValueSorter_decl.h b/src/care/KeyValueSorter_decl.h index 9595ced8..15f452c7 100644 --- a/src/care/KeyValueSorter_decl.h +++ b/src/care/KeyValueSorter_decl.h @@ -43,11 +43,10 @@ template using LocalKeyValueSorter = KeyValueSorter ; -#if defined(CARE_PARALLEL_DEVICE) || CARE_ENABLE_GPU_SIMULATION_MODE /////////////////////////////////////////////////////////////////////////// /// @author Peter Robinson, Alan Dayton -/// @brief ManagedArray API to cub::DeviceRadixSort::SortPairs +/// @brief ManagedArray API for sorting paired key and value arrays /// @param[in, out] keys - The array to sort /// @param[in, out] values - The array that is sorted simultaneously /// @param[in] start - The index to start sorting at @@ -60,21 +59,22 @@ using LocalKeyValueSorter = KeyValueSorter ; /// @return void /////////////////////////////////////////////////////////////////////////// template -std::enable_if_t::raw_type>::value, void> +std::enable_if_t::raw_type>::value, void> sortKeyValueArrays(host_device_ptr & keys, host_device_ptr & values, const size_t start, const size_t len, const bool noCopy=false); -#if defined(__HIPCC__) || (defined(__CUDACC__) && defined(CUB_MAJOR_VERSION) && defined(CUB_MINOR_VERSION) && (CUB_MAJOR_VERSION >= 2 || (CUB_MAJOR_VERSION == 1 && CUB_MINOR_VERSION >= 14))) || defined(_OPENMP) || CARE_ENABLE_GPU_SIMULATION_MODE + template -std::enable_if_t::raw_type>::value, void> +std::enable_if_t::raw_type>::value, void> sortKeyValueArrays(host_device_ptr & keys, host_device_ptr & values, const size_t start, const size_t len, const bool noCopy=false); -#endif + +#if defined(CARE_PARALLEL_DEVICE) || CARE_ENABLE_GPU_SIMULATION_MODE /////////////////////////////////////////////////////////////////////////// /// @author Benjamin Liu after Alan Dayton /// @brief Initializes keys and values by copying elements from the array diff --git a/src/care/KeyValueSorter_impl.h b/src/care/KeyValueSorter_impl.h index bd2b1a43..6103a640 100644 --- a/src/care/KeyValueSorter_impl.h +++ b/src/care/KeyValueSorter_impl.h @@ -38,13 +38,39 @@ namespace care { // TODO openMP parallel implementation -#if defined(CARE_PARALLEL_DEVICE) || CARE_ENABLE_GPU_SIMULATION_MODE -// TODO: Use if constexpr and std::is_arithmetic_v when c++17 support is required +namespace detail { +template +CARE_INLINE void stableSortKeyValuePairs(host_device_ptr & keys, + host_device_ptr & values, + const size_t len, + const size_t start=0) +{ + host_device_ptr<_kv> keyValues(len); + + CARE_SEQUENTIAL_LOOP(i, 0, (int) len) { + keyValues[i].key = keys[i+start]; + keyValues[i].value = values[i+start]; + } CARE_SEQUENTIAL_LOOP_END + + CHAIDataGetter<_kv, RAJA::seq_exec> getter {}; + _kv * rawData = getter.getRawArrayData(keyValues); + std::stable_sort(rawData, rawData + len, cmpKeys<_kv>); + + CARE_SEQUENTIAL_LOOP(i, 0, (int) len) { + keys[i+start] = keyValues[i].key; + values[i+start] = keyValues[i].value; + } CARE_SEQUENTIAL_LOOP_END + + keyValues.free(); +} + +} // namespace detail + /////////////////////////////////////////////////////////////////////////// /// @author Peter Robinson, Alan Dayton -/// @brief ManagedArray API to cub::DeviceRadixSort::SortPairs +/// @brief ManagedArray API for sorting paired key and value arrays /// @param[in, out] keys - The array to sort /// @param[in, out] values - The array that is sorted simultaneously /// @param[in] start - The index to start sorting at @@ -58,7 +84,7 @@ namespace care { /////////////////////////////////////////////////////////////////////////// template CARE_INLINE -std::enable_if_t::raw_type>::value, void> +std::enable_if_t::raw_type>::value, void> sortKeyValueArrays(host_device_ptr & keys, host_device_ptr & values, const size_t start, const size_t len, @@ -73,126 +99,110 @@ sortKeyValueArrays(host_device_ptr & keys, _noCopy = noCopy; } - // TODO openMP parallel implementation -#ifdef CARE_GPUCC + if constexpr (std::is_same_v) { + detail::stableSortKeyValuePairs(keys, values, len, start); + } + else { + // TODO openMP parallel implementation +#if defined(__HIPCC__) || (defined(__CUDACC__) && defined(CUB_MAJOR_VERSION) && defined(CUB_MINOR_VERSION) && (CUB_MAJOR_VERSION >= 2 || (CUB_MAJOR_VERSION == 1 && CUB_MINOR_VERSION >= 14))) - // Allocate space for the result - host_device_ptr keyResult{len}; - host_device_ptr valueResult{len}; + // Allocate space for the result + host_device_ptr keyResult{len}; + host_device_ptr valueResult{len}; - // Get the raw data to pass to cub - CHAIDataGetter keyGetter {}; - CHAIDataGetter valueGetter {}; + // Get the raw data to pass to cub + CHAIDataGetter keyGetter {}; + CHAIDataGetter valueGetter {}; - auto * rawKeyData = keyGetter.getRawArrayData(keys) + start; - auto * rawValueData = valueGetter.getRawArrayData(values) + start; + auto * rawKeyData = keyGetter.getRawArrayData(keys) + start; + auto * rawValueData = valueGetter.getRawArrayData(values) + start; - auto * rawKeyResult = keyGetter.getRawArrayData(keyResult); - auto * rawValueResult = valueGetter.getRawArrayData(valueResult); + auto * rawKeyResult = keyGetter.getRawArrayData(keyResult); + auto * rawValueResult = valueGetter.getRawArrayData(valueResult); - // Get the temp storage length - char * d_temp_storage = nullptr; - size_t temp_storage_bytes = 0; + // Get the temp storage length + char * d_temp_storage = nullptr; + size_t temp_storage_bytes = 0; - // When called with a nullptr for temp storage, this returns how much - // temp storage should be allocated. - if (len > 0) { + // When called with a nullptr for temp storage, this returns how much + // temp storage should be allocated. + if (len > 0) { #if defined(__CUDACC__) - cub::DeviceRadixSort::SortPairs((void *)d_temp_storage, temp_storage_bytes, - rawKeyData, rawKeyResult, - rawValueData, rawValueResult, - len); + cub::DeviceRadixSort::SortPairs((void *)d_temp_storage, temp_storage_bytes, + rawKeyData, rawKeyResult, + rawValueData, rawValueResult, + len); #elif defined(__HIPCC__) - hipcub::DeviceRadixSort::SortPairs((void *)d_temp_storage, temp_storage_bytes, - rawKeyData, rawKeyResult, - rawValueData, rawValueResult, - len); + hipcub::DeviceRadixSort::SortPairs((void *)d_temp_storage, temp_storage_bytes, + rawKeyData, rawKeyResult, + rawValueData, rawValueResult, + len); #endif - } + } - // Allocate the temp storage and get raw data to pass to cub - host_device_ptr tmpManaged {temp_storage_bytes}; + // Allocate the temp storage and get raw data to pass to cub + host_device_ptr tmpManaged {temp_storage_bytes}; - CHAIDataGetter charGetter {}; - d_temp_storage = charGetter.getRawArrayData(tmpManaged); + CHAIDataGetter charGetter {}; + d_temp_storage = charGetter.getRawArrayData(tmpManaged); - // Now sort - if (len > 0) { + // Now sort + if (len > 0) { #if defined(CHAI_THIN_GPU_ALLOCATE) - chai::ArrayManager::getInstance()->setExecutionSpace(chai::GPU); + chai::ArrayManager::getInstance()->setExecutionSpace(chai::GPU); #endif #if defined(__CUDACC__) - cub::DeviceRadixSort::SortPairs((void *)d_temp_storage, temp_storage_bytes, - rawKeyData, rawKeyResult, - rawValueData, rawValueResult, - len); + cub::DeviceRadixSort::SortPairs((void *)d_temp_storage, temp_storage_bytes, + rawKeyData, rawKeyResult, + rawValueData, rawValueResult, + len); #elif defined(__HIPCC__) - hipcub::DeviceRadixSort::SortPairs((void *)d_temp_storage, temp_storage_bytes, - rawKeyData, rawKeyResult, - rawValueData, rawValueResult, - len); + hipcub::DeviceRadixSort::SortPairs((void *)d_temp_storage, temp_storage_bytes, + rawKeyData, rawKeyResult, + rawValueData, rawValueResult, + len); #endif #if defined(CHAI_THIN_GPU_ALLOCATE) - chai::ArrayManager::getInstance()->setExecutionSpace(chai::NONE); + chai::ArrayManager::getInstance()->setExecutionSpace(chai::NONE); #endif - tmpManaged.free(); - } - - // Get the result - if (_noCopy) { - if (len > 0) { - keys.free(); - values.free(); + tmpManaged.free(); } - keys = keyResult; - values = valueResult; - } - else { - CARE_STREAM_LOOP(i, 0, len) { - keys[i+start] = keyResult[i]; - values[i+start] = valueResult[i]; - } CARE_STREAM_LOOP_END + // Get the result + if (_noCopy) { + if (len > 0) { + keys.free(); + values.free(); + } - if (len > 0) { - keyResult.free(); - valueResult.free(); + keys = keyResult; + values = valueResult; + } + else { + CARE_STREAM_LOOP(i, 0, len) { + keys[i+start] = keyResult[i]; + values[i+start] = valueResult[i]; + } CARE_STREAM_LOOP_END + + if (len > 0) { + keyResult.free(); + valueResult.free(); + } } - } #else // defined(CARE_GPUCC) - - host_device_ptr<_kv> keyValues(len); - - CARE_STREAM_LOOP(i, 0, (int) len) { - keyValues[i].key = keys[i+start]; - keyValues[i].value = values[i+start]; - } CARE_STREAM_LOOP_END - - // Now sort - - CHAIDataGetter<_kv, RAJA::seq_exec> getter {}; - _kv * rawData = getter.getRawArrayData(keyValues); - std::stable_sort(rawData, rawData + len, cmpKeys<_kv>); - - CARE_STREAM_LOOP(i, 0, (int) len) { - keys[i+start] = keyValues[i].key; - values[i+start] = keyValues[i].value; - } CARE_STREAM_LOOP_END - - keyValues.free(); - + // fall back to an implementation that uses std::stable_sort on the host + detail::stableSortKeyValuePairs(keys, values, len, start); #endif // defined(CARE_GPUCC) - + } } -#if defined(__HIPCC__) || (defined(__CUDACC__) && defined(CUB_MAJOR_VERSION) && defined(CUB_MINOR_VERSION) && (CUB_MAJOR_VERSION >= 2 || (CUB_MAJOR_VERSION == 1 && CUB_MINOR_VERSION >= 14))) || defined(_OPENMP) || CARE_ENABLE_GPU_SIMULATION_MODE /////////////////////////////////////////////////////////////////////////// /// @author Peter Robinson, Alan Dayton -/// @brief ManagedArray API to cub::DeviceRadixSort::SortPairs +/// @brief ManagedArray API for sorting paired key and value arrays /// @param[in, out] keys - The array to sort /// @param[in, out] values - The array that is sorted simultaneously /// @param[in] start - The index to start sorting at @@ -206,7 +216,7 @@ sortKeyValueArrays(host_device_ptr & keys, /////////////////////////////////////////////////////////////////////////// template CARE_INLINE -std::enable_if_t::raw_type>::value, void> +std::enable_if_t::raw_type>::value, void> sortKeyValueArrays(host_device_ptr & keys, host_device_ptr & values, const size_t start, const size_t len, @@ -221,117 +231,103 @@ sortKeyValueArrays(host_device_ptr & keys, _noCopy = noCopy; } - // TODO openMP parallel implementation -#ifdef CARE_GPUCC + if constexpr (std::is_same_v) { + detail::stableSortKeyValuePairs(keys, values, len, start); + } + else { + // TODO openMP parallel implementation +#if defined(__HIPCC__) || (defined(__CUDACC__) && defined(CUB_MAJOR_VERSION) && defined(CUB_MINOR_VERSION) && (CUB_MAJOR_VERSION >= 2 || (CUB_MAJOR_VERSION == 1 && CUB_MINOR_VERSION >= 14))) - // Allocate space for the result - host_device_ptr keyResult{len}; - host_device_ptr valueResult{len}; + // Allocate space for the result + host_device_ptr keyResult{len}; + host_device_ptr valueResult{len}; - // Get the raw data to pass to cub - CHAIDataGetter keyGetter {}; - CHAIDataGetter valueGetter {}; + // Get the raw data to pass to cub + CHAIDataGetter keyGetter {}; + CHAIDataGetter valueGetter {}; - auto * rawKeyData = keyGetter.getRawArrayData(keys) + start; - auto * rawValueData = valueGetter.getRawArrayData(values) + start; + auto * rawKeyData = keyGetter.getRawArrayData(keys) + start; + auto * rawValueData = valueGetter.getRawArrayData(values) + start; - auto * rawKeyResult = keyGetter.getRawArrayData(keyResult); - auto * rawValueResult = valueGetter.getRawArrayData(valueResult); + auto * rawKeyResult = keyGetter.getRawArrayData(keyResult); + auto * rawValueResult = valueGetter.getRawArrayData(valueResult); - using RawKeyType = std::remove_reference_t; + using RawKeyType = std::remove_reference_t; - auto custom_comparator = [] CARE_HOST_DEVICE (const RawKeyType& lhs, - const RawKeyType& rhs) { - return lhs < rhs; - }; + auto custom_comparator = [] CARE_HOST_DEVICE (const RawKeyType& lhs, + const RawKeyType& rhs) { + return lhs < rhs; + }; - // Get the temp storage length - char * d_temp_storage = nullptr; - size_t temp_storage_bytes = 0; + // Get the temp storage length + char * d_temp_storage = nullptr; + size_t temp_storage_bytes = 0; - // When called with a nullptr for temp storage, this returns how much - // temp storage should be allocated. - if (len > 0) { + // When called with a nullptr for temp storage, this returns how much + // temp storage should be allocated. + if (len > 0) { #if defined(__CUDACC__) - cub::DeviceMergeSort::StableSortPairs((void *)d_temp_storage, temp_storage_bytes, - rawKeyData, - rawValueData, - len, custom_comparator); + cub::DeviceMergeSort::StableSortPairs((void *)d_temp_storage, temp_storage_bytes, + rawKeyData, + rawValueData, + len, custom_comparator); #elif defined(__HIPCC__) - hipcub::DeviceMergeSort::StableSortPairs((void *)d_temp_storage, temp_storage_bytes, - rawKeyData, - rawValueData, - len, custom_comparator); + hipcub::DeviceMergeSort::StableSortPairs((void *)d_temp_storage, temp_storage_bytes, + rawKeyData, + rawValueData, + len, custom_comparator); #endif - } + } - // Allocate the temp storage and get raw data to pass to cub - host_device_ptr tmpManaged {temp_storage_bytes}; + // Allocate the temp storage and get raw data to pass to cub + host_device_ptr tmpManaged {temp_storage_bytes}; - CHAIDataGetter charGetter {}; - d_temp_storage = charGetter.getRawArrayData(tmpManaged); + CHAIDataGetter charGetter {}; + d_temp_storage = charGetter.getRawArrayData(tmpManaged); - // Now sort - if (len > 0) { + // Now sort + if (len > 0) { #if defined(CHAI_THIN_GPU_ALLOCATE) - chai::ArrayManager::getInstance()->setExecutionSpace(chai::GPU); + chai::ArrayManager::getInstance()->setExecutionSpace(chai::GPU); #endif #if defined(__CUDACC__) - cub::DeviceMergeSort::StableSortPairs((void *)d_temp_storage, temp_storage_bytes, - rawKeyData, - rawValueData, - len, - custom_comparator); + cub::DeviceMergeSort::StableSortPairs((void *)d_temp_storage, temp_storage_bytes, + rawKeyData, + rawValueData, + len, + custom_comparator); #elif defined(__HIPCC__) - hipcub::DeviceMergeSort::StableSortPairs((void *)d_temp_storage, temp_storage_bytes, - rawKeyData, - rawValueData, - len, - custom_comparator); + hipcub::DeviceMergeSort::StableSortPairs((void *)d_temp_storage, temp_storage_bytes, + rawKeyData, + rawValueData, + len, + custom_comparator); #endif #if defined(CHAI_THIN_GPU_ALLOCATE) - chai::ArrayManager::getInstance()->setExecutionSpace(chai::NONE); + chai::ArrayManager::getInstance()->setExecutionSpace(chai::NONE); #endif - tmpManaged.free(); - } + tmpManaged.free(); + } - // merge sort did an inplace sort, so the answer is already in keys and Values - if (len > 0) { - keyResult.free(); - valueResult.free(); - } + // merge sort did an inplace sort, so the answer is already in keys and Values + if (len > 0) { + keyResult.free(); + valueResult.free(); + } #else // defined(CARE_GPUCC) - - host_device_ptr<_kv> keyValues(len); - - CARE_STREAM_LOOP(i, 0, (int) len) { - keyValues[i].key = keys[i+start]; - keyValues[i].value = values[i+start]; - } CARE_STREAM_LOOP_END - - // Now sort - - CHAIDataGetter<_kv, RAJA::seq_exec> getter {}; - _kv * rawData = getter.getRawArrayData(keyValues); - std::stable_sort(rawData, rawData + len, cmpKeys<_kv>); - - CARE_STREAM_LOOP(i, 0, (int) len) { - keys[i+start] = keyValues[i].key; - values[i+start] = keyValues[i].value; - } CARE_STREAM_LOOP_END - - keyValues.free(); + // fall back to an implementation that uses std::stable_sort on the host + detail::stableSortKeyValuePairs(keys, values, len, start); #endif // defined(CARE_GPUCC) - + } } -#endif +#if defined(CARE_PARALLEL_DEVICE) || CARE_ENABLE_GPU_SIMULATION_MODE /////////////////////////////////////////////////////////////////////////// /// @author Benjamin Liu after Alan Dayton /// @brief Initializes keys and values by copying elements from the array @@ -759,4 +755,3 @@ CARE_INLINE void IntersectKeyValueSorters(RAJA::seq_exec /* exec */, } // namespace care #endif // !defined(_CARE_KEY_VALUE_SORTER_IMPL_H_) - diff --git a/src/care/KeyValueSorter_inst.h b/src/care/KeyValueSorter_inst.h index 54705a0a..5bbe0b88 100644 --- a/src/care/KeyValueSorter_inst.h +++ b/src/care/KeyValueSorter_inst.h @@ -40,16 +40,18 @@ namespace care { #if !CARE_ENABLE_GPU_SIMULATION_MODE CARE_EXTERN template class CARE_DLL_API KeyValueSorter; - CARE_EXTERN template CARE_DLL_API void IntersectKeyValueSorters(RAJA::seq_exec, KeyValueSorter, int, KeyValueSorter, int, host_device_ptr &, host_device_ptr &, int &); + CARE_EXTERN template CARE_DLL_API void sortKeyValueArrays(host_device_ptr &, host_device_ptr &, const size_t, const size_t, const bool); + #endif // !CARE_ENABLE_GPU_SIMULATION_MODE + #if defined(CARE_PARALLEL_DEVICE) || CARE_ENABLE_GPU_SIMULATION_MODE + CARE_EXTERN template CARE_DLL_API void sortKeyValueArrays(host_device_ptr &, host_device_ptr &, const size_t, const size_t, const bool); CARE_EXTERN template CARE_DLL_API void setKeyValueArraysFromArray(host_device_ptr &, host_device_ptr &, const size_t, const CARE_TEMPLATE_ARRAY_TYPE*); CARE_EXTERN template CARE_DLL_API void setKeyValueArraysFromManagedArray(host_device_ptr &, host_device_ptr &, const size_t, const host_device_ptr&); CARE_EXTERN template CARE_DLL_API size_t eliminateKeyValueDuplicates(host_device_ptr&, host_device_ptr&, const host_device_ptr&, const host_device_ptr&, const size_t); - CARE_EXTERN template CARE_DLL_API void sortKeyValueArrays(host_device_ptr &, host_device_ptr &, const size_t, const size_t, const bool); CARE_EXTERN template class CARE_DLL_API KeyValueSorter; @@ -61,4 +63,3 @@ namespace care { #undef CARE_TEMPLATE_ARRAY_TYPE #undef CARE_TEMPLATE_KEY_TYPE - diff --git a/src/care/care_inst.h b/src/care/care_inst.h index 2d8ad534..d2cf4c11 100644 --- a/src/care/care_inst.h +++ b/src/care/care_inst.h @@ -11,6 +11,8 @@ // CARE config header #include "care/config.h" +#include + #ifdef CARE_ENABLE_EXTERN_INSTANTIATE /////////////////////////////////////////////////////////////////////////////// @@ -44,12 +46,20 @@ #define CARE_TEMPLATE_ARRAY_TYPE double #include "care/KeyValueSorter_inst.h" +#define CARE_TEMPLATE_KEY_TYPE int64_t +#define CARE_TEMPLATE_ARRAY_TYPE int64_t +#include "care/KeyValueSorter_inst.h" + #if CARE_HAVE_LLNL_GLOBALID #define CARE_TEMPLATE_KEY_TYPE int #define CARE_TEMPLATE_ARRAY_TYPE globalID #include "care/KeyValueSorter_inst.h" +#define CARE_TEMPLATE_KEY_TYPE globalID +#define CARE_TEMPLATE_ARRAY_TYPE int +#include "care/KeyValueSorter_inst.h" + #define CARE_TEMPLATE_KEY_TYPE globalID #define CARE_TEMPLATE_ARRAY_TYPE globalID #include "care/KeyValueSorter_inst.h" From e342c4b2583f1a45a89bb670e3e47a6136417ae7 Mon Sep 17 00:00:00 2001 From: robinson96 Date: Mon, 6 Apr 2026 10:22:08 -0700 Subject: [PATCH 07/31] Fix behavior inconsistency between CPU and GPU algorithm for IntersectKeyValueSorters (#368) --- src/care/KeyValueSorter_decl.h | 4 +--- src/care/KeyValueSorter_impl.h | 12 +++++++++++- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/care/KeyValueSorter_decl.h b/src/care/KeyValueSorter_decl.h index 15f452c7..46a9e66a 100644 --- a/src/care/KeyValueSorter_decl.h +++ b/src/care/KeyValueSorter_decl.h @@ -1491,9 +1491,7 @@ void IntersectKeyValueSorters(RAJADeviceExec exec, KeyValueSorter void IntersectKeyValueSorters(RAJA::seq_exec exec, diff --git a/src/care/KeyValueSorter_impl.h b/src/care/KeyValueSorter_impl.h index 6103a640..2b4b9608 100644 --- a/src/care/KeyValueSorter_impl.h +++ b/src/care/KeyValueSorter_impl.h @@ -464,7 +464,17 @@ CARE_INLINE void IntersectKeyValueSorters(RAJADeviceExec exec, host_device_ptr searches{smaller+1}; host_device_ptr matched{smaller+1}; CARE_STREAM_LOOP(i, 0, smaller+1) { - searches[i] = i != smaller ? care::BinarySearch(largerArray, largeStart, larger, smallerArray[i+smallStart]) : -1; + if (i == smaller) { + searches[i] = -1; + } + else { + // to be consistent with CPU algorithm, find the first match + int match = care::BinarySearch(largerArray, largeStart, larger, smallerArray[i+smallStart]); + while (match > largeStart && largerArray[match-1] == largerArray[match]) { + --match; + } + searches[i] = match; + } matched[i] = i != smaller && searches[i] > -1; } CARE_STREAM_LOOP_END From 8ce9991d7ba82a46adba1f47c3edeb1b45be2d95 Mon Sep 17 00:00:00 2001 From: robinson96 Date: Thu, 9 Apr 2026 13:08:48 -0700 Subject: [PATCH 08/31] Add more explicit instantiations for KeyValueSorter (#370) --- src/care/care_inst.h | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/care/care_inst.h b/src/care/care_inst.h index d2cf4c11..17b7e5e8 100644 --- a/src/care/care_inst.h +++ b/src/care/care_inst.h @@ -20,18 +20,34 @@ #define CARE_TEMPLATE_ARRAY_TYPE int #include "care/KeyValueSorter_inst.h" +#define CARE_TEMPLATE_KEY_TYPE int +#define CARE_TEMPLATE_ARRAY_TYPE size_t +#include "care/KeyValueSorter_inst.h" + #define CARE_TEMPLATE_KEY_TYPE size_t #define CARE_TEMPLATE_ARRAY_TYPE float #include "care/KeyValueSorter_inst.h" +#define CARE_TEMPLATE_KEY_TYPE float +#define CARE_TEMPLATE_ARRAY_TYPE size_t +#include "care/KeyValueSorter_inst.h" + #define CARE_TEMPLATE_KEY_TYPE size_t #define CARE_TEMPLATE_ARRAY_TYPE double #include "care/KeyValueSorter_inst.h" +#define CARE_TEMPLATE_KEY_TYPE double +#define CARE_TEMPLATE_ARRAY_TYPE size_t +#include "care/KeyValueSorter_inst.h" + #if CARE_HAVE_LLNL_GLOBALID #define CARE_TEMPLATE_KEY_TYPE size_t #define CARE_TEMPLATE_ARRAY_TYPE globalID #include "care/KeyValueSorter_inst.h" + +#define CARE_TEMPLATE_KEY_TYPE globalID +#define CARE_TEMPLATE_ARRAY_TYPE size_t +#include "care/KeyValueSorter_inst.h" #endif #define CARE_TEMPLATE_KEY_TYPE int @@ -42,10 +58,18 @@ #define CARE_TEMPLATE_ARRAY_TYPE float #include "care/KeyValueSorter_inst.h" +#define CARE_TEMPLATE_KEY_TYPE float +#define CARE_TEMPLATE_ARRAY_TYPE int +#include "care/KeyValueSorter_inst.h" + #define CARE_TEMPLATE_KEY_TYPE int #define CARE_TEMPLATE_ARRAY_TYPE double #include "care/KeyValueSorter_inst.h" +#define CARE_TEMPLATE_KEY_TYPE double +#define CARE_TEMPLATE_ARRAY_TYPE int +#include "care/KeyValueSorter_inst.h" + #define CARE_TEMPLATE_KEY_TYPE int64_t #define CARE_TEMPLATE_ARRAY_TYPE int64_t #include "care/KeyValueSorter_inst.h" From 26f79121ce24d31439f0d0c24c34a21eb9437170 Mon Sep 17 00:00:00 2001 From: Adrien Bernede <51493078+adrienbernede@users.noreply.github.com> Date: Tue, 26 May 2026 17:00:10 +0200 Subject: [PATCH 09/31] Instruct spack to treat custom deps as @ develop (#371) --- scripts/gitlab/build_and_test.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/gitlab/build_and_test.sh b/scripts/gitlab/build_and_test.sh index 16de843b..0500f0fa 100755 --- a/scripts/gitlab/build_and_test.sh +++ b/scripts/gitlab/build_and_test.sh @@ -115,22 +115,22 @@ then if [[ -n ${camp_version} ]] then - extra_deps="${extra_deps} ^camp@${camp_version}" + extra_deps="${extra_deps} ^camp@git.${camp_version}=main" fi if [[ -n ${umpire_version} ]] then - extra_deps="${extra_deps} ^umpire@${umpire_version}" + extra_deps="${extra_deps} ^umpire@git.${umpire_version}=develop" fi if [[ -n ${raja_version} ]] then - extra_deps="${extra_deps} ^raja@${raja_version}" + extra_deps="${extra_deps} ^raja@git.${raja_version}=develop" fi if [[ -n ${chai_version} ]] then - extra_deps="${extra_deps} ^chai@${chai_version}" + extra_deps="${extra_deps} ^chai@git.${chai_version}=develop" fi [[ -n ${extra_deps} ]] && spec="${spec} ${extra_deps}" From df01956e63632c920d49b8ddb6848c963f8952b3 Mon Sep 17 00:00:00 2001 From: Alan Dayton <6393677+adayton1@users.noreply.github.com> Date: Tue, 2 Jun 2026 11:18:18 -0700 Subject: [PATCH 10/31] Switch to hubcast for CI (#372) --- .github/hubcast.yml | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 .github/hubcast.yml diff --git a/.github/hubcast.yml b/.github/hubcast.yml new file mode 100644 index 00000000..ef9d479e --- /dev/null +++ b/.github/hubcast.yml @@ -0,0 +1,27 @@ +Repo: + # Destination organization + dest_org: CARE + + # Destination repository + dest_name: CARE + + # Name of the CI check as reported back to GitHub + check_name: gitlab-ci + + # Optional: granularity of CI statuses reported to GitHub (default: [pipeline]) + # Set to [pipeline] for overall pipeline status only + # Set to [jobs] for individual job statuses only + # Set to [pipeline, jobs] to report both + check_types: [pipeline, jobs] + + # Delete branches from destination when source PR is closed + delete_closed: true + + # Sync draft PRs/MRs + sync_drafts: true + + # Post message when draft sync is disabled + sync_drafts_msg: true + + # Disable creation of GitLab MRs from GitHub PRs + create_mr: false From 86fa1f17c0d0fe4057470ecc2667c8c8c3dc6e03 Mon Sep 17 00:00:00 2001 From: Alan Dayton <6393677+adayton1@users.noreply.github.com> Date: Tue, 2 Jun 2026 14:41:26 -0700 Subject: [PATCH 11/31] Update host configs to use newer compilers (#373) --- .gitignore | 2 ++ host-configs/lc/toss_4_x86_64_ib/clang.cmake | 2 +- .../lc/toss_4_x86_64_ib/clang_tsan.cmake | 7 ++++--- .../lc/toss_4_x86_64_ib/clang_ubsan.cmake | 19 +++++++++++++++++++ host-configs/lc/toss_4_x86_64_ib/intel.cmake | 2 +- .../lc/toss_4_x86_64_ib/nvcc_clang.cmake | 2 +- .../lc/toss_4_x86_64_ib_cray/amdclang.cmake | 2 +- 7 files changed, 29 insertions(+), 7 deletions(-) create mode 100644 host-configs/lc/toss_4_x86_64_ib/clang_ubsan.cmake diff --git a/.gitignore b/.gitignore index 448c6c24..b7bf1592 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,5 @@ hc-* *.orig *.vscode spack-*.txt +slirp.out +.codex diff --git a/host-configs/lc/toss_4_x86_64_ib/clang.cmake b/host-configs/lc/toss_4_x86_64_ib/clang.cmake index 19c42362..bf770cdf 100644 --- a/host-configs/lc/toss_4_x86_64_ib/clang.cmake +++ b/host-configs/lc/toss_4_x86_64_ib/clang.cmake @@ -5,7 +5,7 @@ # SPDX-License-Identifier: BSD-3-Clause ############################################################################## -set(COMPILER_BASE "/usr/tce/packages/clang/clang-14.0.6-magic" CACHE PATH "") +set(COMPILER_BASE "/usr/tce/packages/clang/clang-19.1.3-magic" CACHE PATH "") set(CMAKE_C_COMPILER "${COMPILER_BASE}/bin/clang" CACHE PATH "") set(CMAKE_CXX_COMPILER "${COMPILER_BASE}/bin/clang++" CACHE PATH "") diff --git a/host-configs/lc/toss_4_x86_64_ib/clang_tsan.cmake b/host-configs/lc/toss_4_x86_64_ib/clang_tsan.cmake index 05654970..f13a2b2b 100644 --- a/host-configs/lc/toss_4_x86_64_ib/clang_tsan.cmake +++ b/host-configs/lc/toss_4_x86_64_ib/clang_tsan.cmake @@ -5,14 +5,15 @@ # SPDX-License-Identifier: BSD-3-Clause ############################################################################## -set(COMPILER_BASE "/usr/tce/packages/clang/clang-14.0.6-magic" CACHE PATH "") +set(COMPILER_BASE "/usr/tce/packages/clang/clang-19.1.3-magic" CACHE PATH "") set(CMAKE_C_COMPILER "${COMPILER_BASE}/bin/clang" CACHE PATH "") set(CMAKE_CXX_COMPILER "${COMPILER_BASE}/bin/clang++" CACHE PATH "") set(GCC_HOME "/usr/tce/packages/gcc/gcc-13.3.1-magic" CACHE PATH "") -set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --gcc-toolchain=${GCC_HOME} -fsanitize=thread -g" CACHE STRING "") -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --gcc-toolchain=${GCC_HOME} -fsanitize=thread -g" CACHE STRING "") +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --gcc-toolchain=${GCC_HOME} -fsanitize=thread" CACHE STRING "") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --gcc-toolchain=${GCC_HOME} -fsanitize=thread" CACHE STRING "") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=thread" CACHE STRING "") +set(CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE STRING "") set(ENABLE_OPENMP ON CACHE BOOL "") set(BLT_EXPORT_THIRDPARTY OFF CACHE BOOL "") diff --git a/host-configs/lc/toss_4_x86_64_ib/clang_ubsan.cmake b/host-configs/lc/toss_4_x86_64_ib/clang_ubsan.cmake new file mode 100644 index 00000000..cd836260 --- /dev/null +++ b/host-configs/lc/toss_4_x86_64_ib/clang_ubsan.cmake @@ -0,0 +1,19 @@ +############################################################################## +# Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE +# project contributors. See the CARE LICENSE file for details. +# +# SPDX-License-Identifier: BSD-3-Clause +############################################################################## + +set(COMPILER_BASE "/usr/tce/packages/clang/clang-19.1.3-magic" CACHE PATH "") +set(CMAKE_C_COMPILER "${COMPILER_BASE}/bin/clang" CACHE PATH "") +set(CMAKE_CXX_COMPILER "${COMPILER_BASE}/bin/clang++" CACHE PATH "") + +set(GCC_HOME "/usr/tce/packages/gcc/gcc-13.3.1-magic" CACHE PATH "") +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --gcc-toolchain=${GCC_HOME} -fsanitize=undefined -fno-omit-frame-pointer" CACHE STRING "") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --gcc-toolchain=${GCC_HOME} -fsanitize=undefined -fno-omit-frame-pointer" CACHE STRING "") +set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=undefined" CACHE STRING "") +set(CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE STRING "") + +set(BLT_EXPORT_THIRDPARTY OFF CACHE BOOL "") + diff --git a/host-configs/lc/toss_4_x86_64_ib/intel.cmake b/host-configs/lc/toss_4_x86_64_ib/intel.cmake index beac3364..e475adef 100644 --- a/host-configs/lc/toss_4_x86_64_ib/intel.cmake +++ b/host-configs/lc/toss_4_x86_64_ib/intel.cmake @@ -5,7 +5,7 @@ # SPDX-License-Identifier: BSD-3-Clause ############################################################################## -set(COMPILER_BASE "/usr/tce/packages/intel/intel-2022.1.0-magic" CACHE PATH "") +set(COMPILER_BASE "/usr/tce/packages/intel/intel-2025.2.0-magic" CACHE PATH "") set(CMAKE_C_COMPILER "${COMPILER_BASE}/bin/icx" CACHE PATH "") set(CMAKE_CXX_COMPILER "${COMPILER_BASE}/bin/icpx" CACHE PATH "") diff --git a/host-configs/lc/toss_4_x86_64_ib/nvcc_clang.cmake b/host-configs/lc/toss_4_x86_64_ib/nvcc_clang.cmake index 6c018c2b..a6d9821c 100644 --- a/host-configs/lc/toss_4_x86_64_ib/nvcc_clang.cmake +++ b/host-configs/lc/toss_4_x86_64_ib/nvcc_clang.cmake @@ -10,7 +10,7 @@ set(GCC_VER "13.3.1" CACHE STRING "") set(GCC_DIR "/usr/tce/packages/gcc/gcc-${GCC_VER}-magic" CACHE PATH "") # Use clang toolchain for host code compilers -set(CLANG_VER "14.0.6" CACHE STRING "") +set(CLANG_VER "19.1.3" CACHE STRING "") set(CLANG_DIR "/usr/tce/packages/clang/clang-${CLANG_VER}-magic" CACHE PATH "") set(CMAKE_C_COMPILER "${CLANG_DIR}/bin/clang" CACHE PATH "") diff --git a/host-configs/lc/toss_4_x86_64_ib_cray/amdclang.cmake b/host-configs/lc/toss_4_x86_64_ib_cray/amdclang.cmake index 1687b7dd..28ee0214 100644 --- a/host-configs/lc/toss_4_x86_64_ib_cray/amdclang.cmake +++ b/host-configs/lc/toss_4_x86_64_ib_cray/amdclang.cmake @@ -5,7 +5,7 @@ # SPDX-License-Identifier: BSD-3-Clause ############################################################################## -set(ROCM_VER "6.4.1" CACHE STRING "") +set(ROCM_VER "6.4.3" CACHE STRING "") set(ROCM_PATH "/usr/tce/packages/rocmcc/rocmcc-${ROCM_VER}-magic" CACHE PATH "") set(COMPILER_BASE "/usr/tce/packages/rocmcc/rocmcc-${ROCM_VER}-magic" CACHE PATH "") set(CMAKE_C_COMPILER "${COMPILER_BASE}/bin/amdclang" CACHE PATH "") From edc5687bdeaae726343961a425ba2bbc4a6e0da7 Mon Sep 17 00:00:00 2001 From: Adrien Bernede <51493078+adrienbernede@users.noreply.github.com> Date: Thu, 4 Jun 2026 19:58:45 +0200 Subject: [PATCH 12/31] Improve CI jobs logs and error handling (#374) --- scripts/gitlab/build_and_test.sh | 343 +++++++++++++++++++++++++------ 1 file changed, 276 insertions(+), 67 deletions(-) diff --git a/scripts/gitlab/build_and_test.sh b/scripts/gitlab/build_and_test.sh index 0500f0fa..575bcd4b 100755 --- a/scripts/gitlab/build_and_test.sh +++ b/scripts/gitlab/build_and_test.sh @@ -7,15 +7,31 @@ then fi ############################################################################### -# Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE +# Copyright (c) 2020-26, Lawrence Livermore National Security, LLC and CARE # project contributors. See the CARE LICENSE file for details. # # SPDX-License-Identifier: BSD-3-Clause ############################################################################### +# Navigation: +# - VARIABLES +# - HELPER FUNCTIONS +# - SETUP +# - BUILD DEPENDENCIES +# - HOST CONFIG / CMAKE CACHE FILES +# - BUILD PROJECT +# - TEST PROJECT +# - CLEANUP + +############################################################################### +# VARIABLES +############################################################################### + set -o errexit set -o nounset +exec 2>&1 + option=${1:-""} hostname="$(hostname)" truehostname=${hostname//[0-9]/} @@ -37,12 +53,157 @@ ci_registry_image=${CI_REGISTRY_IMAGE:-"czregistry.llnl.gov:5050/radiuss/care"} export ci_registry_user=${CI_REGISTRY_USER:-"${USER}"} export ci_registry_token=${CI_JOB_TOKEN:-"${registry_token}"} -timed_message () +############################################################################### +# HELPER FUNCTIONS +############################################################################### + +# Helper function to print errors in red +print_error () +{ + local error_msg="${1}" + echo -e "\e[31m[Error]: ${error_msg}\e[0m" +} + +# Helper function to print warnings in gray +print_warning () { - echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" - echo "~ $(date --rfc-3339=seconds) ~ ${1}" - echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" + local warning_msg="${1}" + echo -e "\e[1;30m[Warning]: ${warning_msg}\e[0m" } + +# Helper function to print information +print_info () +{ + local info_msg="${1}" + echo -e "[Information]: ${info_msg}" +} + +# Portable UTC timestamp formatter for epoch seconds. +format_utc_timestamp () +{ + local timestamp="${1}" + # BSD/macOS date supports epoch conversion via: date -r + if date -u -r "${timestamp}" "+%Y-%m-%d %H:%M:%S UTC" >/dev/null 2>&1 + then + date -u -r "${timestamp}" "+%Y-%m-%d %H:%M:%S UTC" + else + # GNU date supports epoch conversion via: date -d "@" + date -u -d "@${timestamp}" "+%Y-%m-%d %H:%M:%S UTC" + fi +} + +# Portable elapsed time formatter (HH:MM:SS). +format_elapsed_hms () +{ + local elapsed="${1}" + printf '%02d:%02d:%02d' $((elapsed / 3600)) $(((elapsed % 3600) / 60)) $((elapsed % 60)) +} + +# Track script start time for elapsed time calculations +script_start_time=$(date +%s) + +# Storage for section start times (supports nesting) +declare -A section_start_times + +# Section stack for tracking nested sections +section_id_stack=() +section_counter=0 +section_indent="" + +# GitLab CI collapsible section helpers with nesting support +section_start () +{ + local section_name="${1}" + local section_title="${2}" + local section_state="${3:-""}" + + local collapsed="false" + if [[ "${section_state}" == "collapsed" ]] + then + collapsed="true" + fi + + # Generate unique section ID + section_counter=$((section_counter + 1)) + local section_id="${section_name}_${section_counter}" + + local timestamp=$(date +%s) + local current_time=$(format_utc_timestamp "${timestamp}") + local total_elapsed=$((timestamp - script_start_time)) + local total_elapsed_formatted=$(format_elapsed_hms "${total_elapsed}") + + # Store section start time for later calculation + section_start_times[${section_id}]=${timestamp} + + # Push section ID onto stack + section_id_stack+=("${section_id}") + + echo -e "\e[1;30m${section_indent}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\e[0m" + echo -e "\e[1;30m${section_indent}~ TIME | TOTAL | SECTION \e[0m" + echo -e "\e[1;30m${section_indent}~ ${current_time} | ${total_elapsed_formatted} | ${section_title}\e[0m" + echo -e "\e[0Ksection_start:${timestamp}:${section_id}[collapsed=${collapsed}]\r\e[0K${section_indent}~ ${section_title}" + + # Increase indentation for nested sections + section_indent="${section_indent} " +} + +section_end () +{ + # Pop section ID from stack + if [[ ${#section_id_stack[@]} -eq 0 ]]; then + print_warning "section_end called with empty stack" + return 1 + fi + + # Decrease indentation before displaying + section_indent="${section_indent% }" + + local stack_index=$((${#section_id_stack[@]} - 1)) + local section_id="${section_id_stack[$stack_index]}" + unset section_id_stack[$stack_index] + + local timestamp=$(date +%s) + local current_time=$(format_utc_timestamp "${timestamp}") + local total_elapsed=$((timestamp - script_start_time)) + local total_elapsed_formatted=$(format_elapsed_hms "${total_elapsed}") + + # Calculate section elapsed time + local section_start=${section_start_times[${section_id}]:-${timestamp}} + local section_elapsed=$((timestamp - section_start)) + local section_elapsed_formatted=$(format_elapsed_hms "${section_elapsed}") + + echo -e "\e[0Ksection_end:${timestamp}:${section_id}\r\e[0K\e[0m" + echo -e "\e[1;30m${section_indent}~ ${current_time} | ${total_elapsed_formatted} | ${section_elapsed_formatted}\e[0m" + echo -e "\e[1;30m${section_indent}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\e[0m" + + # Clean up stored time + unset section_start_times[${section_id}] +} + +# For convenience, a helper function to run a command within a section and handle errors +run_section () +{ + local id="$1" + local title="$2" + local collapsed="$3" + local err_msg="$4" + local status=0 + shift 4 + + section_start "$id" "$title" "$collapsed" + if "$@"; then + section_end + else + status=$? + section_end + print_error "$err_msg" + exit $status + fi +} + +############################################################################### +# SETUP +############################################################################### camp_version=${UPDATE_CAMP:-""} raja_version=${UPDATE_RAJA:-""} umpire_version=${UPDATE_UMPIRE:-""} @@ -50,12 +211,10 @@ chai_version=${UPDATE_CHAI:-""} if [[ ${debug_mode} == true ]] then - echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" - echo "~~~~~ Debug mode:" - echo "~~~~~ - Spack debug mode." - echo "~~~~~ - Deactivated shared memory." - echo "~~~~~ - Do not push to buildcache." - echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" + print_info "Debug mode:" + print_info "- Spack debug mode." + print_info "- Deactivated shared memory." + print_info "- Do not push to buildcache." use_dev_shm=false spack_debug=true push_to_registry=false @@ -63,7 +222,7 @@ fi if [[ -n ${module_list} ]] then - timed_message "Modules to load: ${module_list}" + print_info "Loading modules: ${module_list}" module load ${module_list} fi @@ -86,28 +245,30 @@ else prefix="${project_dir}/../spack-and-build-root" fi -echo "Creating directory ${prefix}" -echo "project_dir: ${project_dir}" +print_info "Creating directory ${prefix}" +print_info "project_dir: ${project_dir}" mkdir -p ${prefix} spack_cmd="${prefix}/spack/bin/spack" spack_env_path="${prefix}/spack_env" -uberenv_cmd="./scripts/uberenv/uberenv.py" +uberenv_cmd="${project_dir}/scripts/uberenv/uberenv.py" if [[ ${spack_debug} == true ]] then spack_cmd="${spack_cmd} --debug --stacktrace" uberenv_cmd="${uberenv_cmd} --spack-debug" fi -# Dependencies +############################################################################### +# BUILD DEPENDENCIES +############################################################################### if [[ "${option}" != "--build-only" && "${option}" != "--test-only" ]] then - timed_message "Building dependencies" + section_start "dependencies" "Building Dependencies" if [[ -z ${spec} ]] then - echo "[Error]: SPEC is undefined, aborting..." + section_end ; print_error "SPEC is undefined, aborting..." exit 1 fi @@ -146,45 +307,51 @@ then mkdir -p ${spack_user_cache} # generate cmake cache file with uberenv and radiuss spack package - timed_message "Spack setup and environment" - ${uberenv_cmd} --setup-and-env-only --spec="${spec}" ${prefix_opt} + run_section "spack_setup" "Spack setup and environment" "collapsed" \ + "Spack environment setup failed (Uberenv)" \ + ${uberenv_cmd} --setup-and-env-only --spec="${spec}" ${prefix_opt} if [[ -n ${ci_registry_token} ]] then - timed_message "GitLab registry as Spack Buildcache" - ${spack_cmd} -D ${spack_env_path} mirror add --unsigned --oci-username-variable ci_registry_user --oci-password-variable ci_registry_token gitlab_ci oci://${ci_registry_image} + run_section "registry_setup" "GitLab registry as Spack Buildcache" "collapsed" \ + "Adding gitlab registry to spack environment failed" \ + ${spack_cmd} -D ${spack_env_path} mirror add --unsigned --oci-username-variable ci_registry_user --oci-password-variable ci_registry_token gitlab_ci oci://${ci_registry_image} fi - timed_message "Spack build of dependencies" - ${uberenv_cmd} --skip-setup-and-env --spec="${spec}" ${prefix_opt} + run_section "spack_build" "Spack build of dependencies" "collapsed" \ + "Spack build of dependencies failed (Uberenv)" \ + ${uberenv_cmd} --skip-setup-and-env --spec="${spec}" ${prefix_opt} if [[ -n ${ci_registry_token} && ${push_to_registry} == true ]] then - timed_message "Push dependencies to buildcache" - ${spack_cmd} -D ${spack_env_path} buildcache push --only dependencies gitlab_ci + run_section "buildcache_push" "Push dependencies to buildcache" "collapsed" \ + "Pushing dependencies to gitlab registry failed" \ + ${spack_cmd} -D ${spack_env_path} buildcache push --only dependencies gitlab_ci fi - timed_message "Dependencies built" + section_end fi -# Find cmake cache file (hostconfig) +############################################################################### +# HOST CONFIG / CMAKE CACHE FILE +############################################################################### if [[ -z ${hostconfig} ]] then # If no host config file was provided, we assume it was generated. # This means we are looking of a unique one in project dir. - hostconfigs=( $( ls "${project_dir}/"*.cmake ) ) + shopt -s nullglob; hostconfigs=( "${project_dir}"/*.cmake ); shopt -u nullglob if [[ ${#hostconfigs[@]} == 1 ]] then hostconfig_path=${hostconfigs[0]} elif [[ ${#hostconfigs[@]} == 0 ]] then - echo "[Error]: No result for: ${project_dir}/*.cmake" - echo "[Error]: Spack generated host-config not found." + print_error "No result for: ${project_dir}/*.cmake" + print_error "Spack generated host-config not found." exit 1 else - echo "[Error]: More than one result for: ${project_dir}/*.cmake" - echo "[Error]: ${hostconfigs[@]}" - echo "[Error]: Please specify one with HOST_CONFIG variable" + print_error "More than one result for: ${project_dir}/*.cmake" + print_error "${hostconfigs[@]}" + print_error "Please specify one with HOST_CONFIG variable" exit 1 fi else @@ -193,8 +360,11 @@ else fi hostconfig=$(basename ${hostconfig_path}) -echo "[Information]: Found hostconfig ${hostconfig_path}" +print_info "Found hostconfig ${hostconfig_path}" +############################################################################### +# BUILD PROJECT +############################################################################### # Build Directory # When using /dev/shm, we use prefix for both spack builds and source build, unless BUILD_ROOT was defined build_root=${BUILD_ROOT:-"${prefix}"} @@ -202,23 +372,20 @@ build_root=${BUILD_ROOT:-"${prefix}"} build_dir="${build_root}/build_${hostconfig//.cmake/}" install_dir="${build_root}/install_${hostconfig//.cmake/}" -cmake_exe=`grep 'CMake executable' ${hostconfig_path} | cut -d ':' -f 2 | xargs` +cmake_exe=$(grep 'CMake executable' ${hostconfig_path} | cut -d ':' -f 2 | xargs 2>/dev/null) -# Build if [[ "${option}" != "--deps-only" && "${option}" != "--test-only" ]] then - echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" - echo "~~~~~ Prefix: ${prefix}" - echo "~~~~~ Host-config: ${hostconfig_path}" - echo "~~~~~ Build Dir: ${build_dir}" - echo "~~~~~ Project Dir: ${project_dir}" - echo "~~~~~ Install Dir: ${install_dir}" - echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" - echo "" - timed_message "Cleaning working directory" + print_info "Prefix ${prefix}" + print_info "Host-config ${hostconfig_path}" + print_info "Build Dir ${build_dir}" + print_info "Project Dir ${project_dir}" + print_info "Install Dir ${install_dir}" + + section_start "clean" "Cleaning working directory" "collapsed" # Map CPU core allocations - declare -A core_counts=(["lassen"]=40 ["poodle"]=28 ["dane"]=28 ["corona"]=32 ["rzansel"]=48 ["tioga"]=32 ["tuolumne"]=48 ["matrix"]=48) + declare -A core_counts=(["dane"]=28 ["matrix"]=28 ["corona"]=32 ["tioga"]=32 ["tuolumne"]=48) # If building, then delete everything first # NOTE: 'cmake --build . -j core_counts' attempts to reduce individual build resources. @@ -226,8 +393,8 @@ then # use max cores. rm -rf ${build_dir} 2>/dev/null mkdir -p ${build_dir} && cd ${build_dir} + section_end - timed_message "Building CARE" # We set the MPI tests command to allow overlapping. # Shared allocation: Allows build_and_test.sh to run within a sub-allocation (see CI config). # Use /dev/shm: Prevent MPI tests from running on a node where the build dir doesn't exist. @@ -237,63 +404,105 @@ then cmake_options="-DBLT_MPI_COMMAND_APPEND:STRING=--overlap" fi - $cmake_exe \ + section_start "cmake_config" "CMake Configuration" "collapsed" + if $cmake_exe \ -C ${hostconfig_path} \ ${cmake_options} \ -DCMAKE_INSTALL_PREFIX=${install_dir} \ ${project_dir} - if ! $cmake_exe --build . -j ${core_counts[$truehostname]} then - echo "[Error]: Compilation failed, building with verbose output..." - timed_message "Re-building with --verbose" - $cmake_exe --build . --verbose -j 1 + section_end else - timed_message "Installing" - $cmake_exe --install . + status=$? + section_end ; print_error "CMake configuration failed, dumping output..." + + $cmake_exe \ + -C ${hostconfig_path} \ + ${cmake_options} \ + -DCMAKE_INSTALL_PREFIX=${install_dir} \ + ${project_dir} --debug-output --trace-expand + + exit ${status} fi - timed_message "CARE built and installed" + section_start "build" "Building CARE" "collapsed" + if $cmake_exe --build . -j ${core_counts[$truehostname]} + then + section_end + else + status=$? + section_end ; print_error "Compilation failed, building with verbose output..." + + section_start "build_verbose" "Verbose Rebuild" + $cmake_exe --build . --verbose -j 1 + section_end + + exit ${status} + fi + + run_section "install" "Installing CARE" "collapsed" \ + "Installation failed" \ + $cmake_exe --install . fi -# Test +############################################################################### +# TEST PROJECT +############################################################################### if [[ "${option}" != "--build-only" ]] && grep -q -i "ENABLE_TESTS.*ON" ${hostconfig_path} then if [[ ! -d ${build_dir} ]] then - echo "[Error]: Build directory not found : ${build_dir}" && exit 1 + print_error "Build directory not found : ${build_dir}" + exit 1 fi cd ${build_dir} - timed_message "Testing CARE" + section_start "tests" "Running Tests" "collapsed" ctest --output-on-failure --no-compress-output -T test -VV 2>&1 | tee tests_output.txt + ctest_status=${PIPESTATUS[0]} no_test_str="No tests were found!!!" if [[ "$(tail -n 1 tests_output.txt)" == "${no_test_str}" ]] then - echo "[Error]: No tests were found" && exit 1 + section_end ; print_error "No tests were found (ctest status: ${ctest_status})" + exit 1 fi - timed_message "Preparing tests xml reports for export" tree Testing xsltproc -o junit.xml ${project_dir}/scripts/radiuss-spack-configs/utilities/ctest-to-junit.xsl Testing/*/Test.xml mv junit.xml ${project_dir}/junit.xml if grep -q "Errors while running CTest" ./tests_output.txt then - echo "[Error]: Failure(s) while running CTest" && exit 1 + section_end ; print_error "Failure(s) while running CTest (ctest status: ${ctest_status})" + exit 1 fi if [[ ! -d ${install_dir} ]] then - echo "[Error]: Install directory not found : ${install_dir}" && exit 1 + section_end ; print_error "Install directory not found : ${install_dir}" + exit 1 fi - timed_message "CARE tests completed" + section_end fi -timed_message "Cleaning up" -make clean +############################################################################### +# CLEANUP +############################################################################### + +section_start "cleanup" "Cleaning up" "collapsed" +if make clean +then + section_end +else + status=$? + section_end ; print_error "Cleanup failed" + exit ${status} +fi -timed_message "Build and test completed" +echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" +echo "~ Build and test completed" +echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" From 628809b2af4187fb1d3142e9dfdc1b914f956c3e Mon Sep 17 00:00:00 2001 From: Alan Dayton <6393677+adayton1@users.noreply.github.com> Date: Thu, 4 Jun 2026 16:35:26 -0700 Subject: [PATCH 13/31] Simplify copyright changes (#376) --- .github/hubcast.yml | 7 ++ .github/workflows/ci.yml | 7 ++ .gitignore | 7 ++ .gitlab-ci.yml | 4 +- .gitlab/custom-jobs.yml | 4 +- .gitlab/custom-variables.yml | 4 +- .gitlab/jobs/corona.yml | 4 +- .gitlab/jobs/dane.yml | 4 +- .gitlab/jobs/matrix.yml | 4 +- .gitlab/jobs/tioga.yml | 4 +- .gitlab/jobs/tuolumne.yml | 4 +- CMakeLists.txt | 4 +- COPYRIGHT | 40 +++++++++-- LICENSE | 3 +- README.md | 16 +++-- RELEASE_NOTES.md | 4 +- benchmarks/BenchmarkArrayView.cpp | 4 +- benchmarks/BenchmarkForall.cpp | 4 +- benchmarks/BenchmarkHostDeviceMap.cpp | 4 +- benchmarks/BenchmarkNumeric.cpp | 4 +- benchmarks/CMakeLists.txt | 4 +- cmake/Setup.cmake | 4 +- cmake/SetupBLTWrapper.cmake | 4 +- cmake/SetupCompilerOptions.cmake | 4 +- cmake/SetupDependencies.cmake | 4 +- cmake/SetupMacros.cmake | 4 +- cmake/SetupOptions.cmake | 4 +- cmake/care-config.cmake.in | 4 +- cmake/modules/FindCUB.cmake | 4 +- debug/gdb/care-gdb.py | 4 +- debug/totalview/host_device_ptr.tvd | 4 +- docs/CMakeLists.txt | 4 +- docs/doxygen/CMakeLists.txt | 4 +- docs/doxygen/Doxyfile.in | 4 +- docs/sphinx/CMakeLists.txt | 4 +- docs/sphinx/conf.py | 6 +- docs/sphinx/data_structures.rst | 4 +- docs/sphinx/index.rst | 4 +- docs/sphinx/infrastructure.rst | 4 +- docs/sphinx/install.rst | 4 +- docs/sphinx/loop_fuser.rst | 4 +- docs/sphinx/tutorial.rst | 4 +- examples/CMakeLists.txt | 4 +- examples/DeviceASAN.cpp | 6 +- examples/RaceConditions.cpp | 4 +- examples/ScanLoop.cpp | 4 +- examples/StreamLoop.cpp | 4 +- host-configs/lc/toss_4_x86_64_ib/clang.cmake | 4 +- .../lc/toss_4_x86_64_ib/clang_tsan.cmake | 4 +- .../lc/toss_4_x86_64_ib/clang_ubsan.cmake | 4 +- host-configs/lc/toss_4_x86_64_ib/intel.cmake | 4 +- .../lc/toss_4_x86_64_ib/nvcc_clang.cmake | 4 +- .../lc/toss_4_x86_64_ib_cray/amdclang.cmake | 4 +- reproducers/CMakeLists.txt | 4 +- reproducers/ReproducerManagedPtr.cpp | 4 +- scripts/check-license-info.sh | 24 +++---- scripts/gitlab/build_and_test.sh | 4 +- scripts/make_release_tarball.sh | 4 +- .../spack_repo/llnl_care/packages/README.md | 4 +- scripts/update-copyright.sh | 68 +++---------------- src/CMakeLists.txt | 4 +- src/care/ArrayView.h | 4 +- src/care/CHAICallback.cpp | 4 +- src/care/CHAICallback.h | 4 +- src/care/CHAIDataGetter.h | 4 +- src/care/CMakeLists.txt | 4 +- src/care/Debug.h | 4 +- src/care/DebugPlugin.cpp | 4 +- src/care/DebugPlugin.h | 4 +- src/care/DefaultMacros.h | 4 +- src/care/ExecutionSpace.cpp | 4 +- src/care/ExecutionSpace.h | 4 +- src/care/FOREACHMACRO.h | 4 +- src/care/GPUMacros.h | 4 +- src/care/GPUWatchpoint.h | 4 +- src/care/KeyValueSorter.h | 4 +- src/care/KeyValueSorter_decl.h | 4 +- src/care/KeyValueSorter_impl.h | 4 +- src/care/KeyValueSorter_inst.h | 4 +- src/care/LoopFuser.cpp | 4 +- src/care/LoopFuser.h | 4 +- src/care/PluginData.cpp | 4 +- src/care/PluginData.h | 4 +- src/care/PointerTypes.h | 4 +- src/care/ProfilePlugin.cpp | 4 +- src/care/ProfilePlugin.h | 4 +- src/care/Setup.h | 4 +- src/care/SortFuser.h | 4 +- src/care/algorithm.h | 4 +- src/care/algorithm_decl.h | 4 +- src/care/algorithm_impl.h | 4 +- src/care/array.h | 4 +- src/care/atomic.h | 4 +- src/care/care.cpp | 4 +- src/care/care.h | 4 +- src/care/care_inst.cpp | 4 +- src/care/care_inst.h | 4 +- src/care/compress_algorithm_impl.h | 4 +- src/care/config.h.in | 4 +- src/care/detail/test_utils.h | 4 +- src/care/device_ptr.h | 4 +- src/care/forall.h | 4 +- src/care/host_device_map.h | 4 +- src/care/host_device_ptr.h | 4 +- src/care/host_ptr.h | 4 +- src/care/local_host_device_ptr.h | 4 +- src/care/local_ptr.h | 4 +- src/care/managed_ptr.h | 4 +- src/care/numeric.h | 4 +- src/care/openmp.h | 4 +- src/care/policies.h | 4 +- src/care/scan.cpp | 4 +- src/care/scan.h | 4 +- src/care/scan_impl.h | 4 +- src/care/single_access_ptr.h | 4 +- src/care/util.h | 4 +- test/Benchmarks.cpp | 4 +- test/CMakeLists.txt | 4 +- test/TestAlgorithm.cpp | 4 +- test/TestArray.cpp | 4 +- test/TestForall.cpp | 4 +- test/TestKeyValueSorter.cpp | 4 +- test/TestLoopFuser.cxx | 4 +- test/TestManagedPtr.cpp | 4 +- test/TestNestedMA.cpp | 4 +- test/TestNumeric.cpp | 4 +- test/TestScan.cpp | 4 +- test/TestSortFuser.cxx | 4 +- tpl/versions.txt | 4 +- 129 files changed, 331 insertions(+), 329 deletions(-) diff --git a/.github/hubcast.yml b/.github/hubcast.yml index ef9d479e..522d259a 100644 --- a/.github/hubcast.yml +++ b/.github/hubcast.yml @@ -1,3 +1,10 @@ +############################################################################## +# Copyright (c) Lawrence Livermore National Security, LLC and other CARE +# contributors. See the CARE LICENSE and COPYRIGHT files for details. +# +# SPDX-License-Identifier: BSD-3-Clause +############################################################################## + Repo: # Destination organization dest_org: CARE diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c2e354b2..6df7e370 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,3 +1,10 @@ +############################################################################### +# Copyright (c) Lawrence Livermore National Security, LLC and other CARE +# contributors. See the CARE LICENSE and COPYRIGHT files for details. +# +# SPDX-License-Identifier: BSD-3-Clause +############################################################################### + name: C/C++ CI on: diff --git a/.gitignore b/.gitignore index b7bf1592..2321d077 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,10 @@ +############################################################################## +# Copyright (c) Lawrence Livermore National Security, LLC and other CARE +# contributors. See the CARE LICENSE and COPYRIGHT files for details. +# +# SPDX-License-Identifier: BSD-3-Clause +############################################################################## + *.swp *.swo build diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index de9d848e..52633b73 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,6 +1,6 @@ ############################################################################### -# Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -# project contributors. See the CARE LICENSE file for details. +# Copyright (c) Lawrence Livermore National Security, LLC and other CARE +# contributors. See the CARE LICENSE and COPYRIGHT files for details. # # SPDX-License-Identifier: BSD-3-Clause ############################################################################### diff --git a/.gitlab/custom-jobs.yml b/.gitlab/custom-jobs.yml index a2c04252..2cdf2e12 100644 --- a/.gitlab/custom-jobs.yml +++ b/.gitlab/custom-jobs.yml @@ -1,6 +1,6 @@ ############################################################################### -# Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -# project contributors. See the CARE LICENSE file for details. +# Copyright (c) Lawrence Livermore National Security, LLC and other CARE +# contributors. See the CARE LICENSE and COPYRIGHT files for details. # # SPDX-License-Identifier: BSD-3-Clause ############################################################################### diff --git a/.gitlab/custom-variables.yml b/.gitlab/custom-variables.yml index e7cd9bc5..8b1dd503 100644 --- a/.gitlab/custom-variables.yml +++ b/.gitlab/custom-variables.yml @@ -1,6 +1,6 @@ ############################################################################### -# Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -# project contributors. See the CARE LICENSE file for details. +# Copyright (c) Lawrence Livermore National Security, LLC and other CARE +# contributors. See the CARE LICENSE and COPYRIGHT files for details. # # SPDX-License-Identifier: BSD-3-Clause ############################################################################### diff --git a/.gitlab/jobs/corona.yml b/.gitlab/jobs/corona.yml index cfe67ff6..dbfbbc01 100644 --- a/.gitlab/jobs/corona.yml +++ b/.gitlab/jobs/corona.yml @@ -1,6 +1,6 @@ ############################################################################## -# Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -# project contributors. See the CARE LICENSE file for details. +# Copyright (c) Lawrence Livermore National Security, LLC and other CARE +# contributors. See the CARE LICENSE and COPYRIGHT files for details. # # SPDX-License-Identifier: BSD-3-Clause ############################################################################## diff --git a/.gitlab/jobs/dane.yml b/.gitlab/jobs/dane.yml index 1fad0ce4..e05a4e83 100644 --- a/.gitlab/jobs/dane.yml +++ b/.gitlab/jobs/dane.yml @@ -1,6 +1,6 @@ ############################################################################### -# Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -# project contributors. See the CARE LICENSE file for details. +# Copyright (c) Lawrence Livermore National Security, LLC and other CARE +# contributors. See the CARE LICENSE and COPYRIGHT files for details. # # SPDX-License-Identifier: BSD-3-Clause ############################################################################### diff --git a/.gitlab/jobs/matrix.yml b/.gitlab/jobs/matrix.yml index 480d97c6..0637b1be 100644 --- a/.gitlab/jobs/matrix.yml +++ b/.gitlab/jobs/matrix.yml @@ -1,6 +1,6 @@ ############################################################################### -# Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -# project contributors. See the CARE LICENSE file for details. +# Copyright (c) Lawrence Livermore National Security, LLC and other CARE +# contributors. See the CARE LICENSE and COPYRIGHT files for details. # # SPDX-License-Identifier: BSD-3-Clause ############################################################################### diff --git a/.gitlab/jobs/tioga.yml b/.gitlab/jobs/tioga.yml index 208e1711..f8621be5 100644 --- a/.gitlab/jobs/tioga.yml +++ b/.gitlab/jobs/tioga.yml @@ -1,6 +1,6 @@ ############################################################################## -# Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -# project contributors. See the CARE LICENSE file for details. +# Copyright (c) Lawrence Livermore National Security, LLC and other CARE +# contributors. See the CARE LICENSE and COPYRIGHT files for details. # # SPDX-License-Identifier: BSD-3-Clause ############################################################################## diff --git a/.gitlab/jobs/tuolumne.yml b/.gitlab/jobs/tuolumne.yml index 0be6c7f1..dbe7ab19 100644 --- a/.gitlab/jobs/tuolumne.yml +++ b/.gitlab/jobs/tuolumne.yml @@ -1,6 +1,6 @@ ############################################################################## -# Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -# project contributors. See the CARE LICENSE file for details. +# Copyright (c) Lawrence Livermore National Security, LLC and other CARE +# contributors. See the CARE LICENSE and COPYRIGHT files for details. # # SPDX-License-Identifier: BSD-3-Clause ############################################################################## diff --git a/CMakeLists.txt b/CMakeLists.txt index 940f8eaa..5b284eb3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,6 @@ ############################################################################## -# Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -# project contributors. See the CARE LICENSE file for details. +# Copyright (c) Lawrence Livermore National Security, LLC and other CARE +# contributors. See the CARE LICENSE and COPYRIGHT files for details. # # SPDX-License-Identifier: BSD-3-Clause ############################################################################## diff --git a/COPYRIGHT b/COPYRIGHT index e24a3c0f..35b8e8bf 100644 --- a/COPYRIGHT +++ b/COPYRIGHT @@ -1,14 +1,44 @@ Intellectual Property Notice ------------------------------ -CARE is licensed under the BSD-3 license, -(BSD-3 or https://opensource.org/licenses/BSD-3-Clause). +This file is part of CARE. +For details, see https://github.com/llnl/CARE -See the LICENSE file for details. +CARE is produced at the Lawrence Livermore National Laboratory. +See NOTICE file. -Copyrights and patents in the CARE project are retained by contributors. No -copyright assignment is required to contribute to CARE. +Unlimited Open Source - BSD Distribution +LLNL-CODE-809741 +CARE licensed under the BSD 3-Clause license +(BSD-3-Clause or https://opensource.org/licenses/BSD-3-Clause). +See LICENSE file. + +Copyrights and patents in the CARE project are retained by contributors. +No copyright assignment is required to contribute to CARE. + +See https://github.com/llnl/CARE/contributors for the list of contributors. + +Additional BSD Notice + +1. This notice is required to be provided under our contract with the U.S. +Department of Energy (DOE). This work was produced at Lawrence Livermore +National Laboratory under Contract No. DE-AC52-07NA27344 with the DOE. + +2. Neither the United States Government nor Lawrence Livermore National +Security, LLC nor any of their employees, makes any warranty, express or +implied, or assumes any liability or responsibility for the accuracy, +completeness, or usefulness of any information, apparatus, product, or process +disclosed, or represents that its use would not infringe privately-owned rights. + +3. Also, reference herein to any specific commercial products, process, or +services by trade name, trademark, manufacturer or otherwise does not +necessarily constitute or imply its endorsement, recommendation, or favoring by +the United States Government or Lawrence Livermore National Security, LLC. The +views and opinions of authors expressed herein do not necessarily state or +reflect those of the United States Government or Lawrence Livermore National +Security, LLC, and shall not be used for advertising or product endorsement +purposes. SPDX usage ------------ diff --git a/LICENSE b/LICENSE index 0e7db4be..e009e0ed 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,7 @@ BSD 3-Clause License -Copyright (c) 2020-2025, Lawrence Livermore National Security, LLC. +Copyright (c) 2020-2026, Lawrence Livermore National Security, LLC and other CARE contributors. + All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/README.md b/README.md index 5a0e65e0..3bed7faf 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ [comment]: # (#################################################################) -[comment]: # (Copyright 2020-25, Lawrence Livermore National Security, LLC and CARE) -[comment]: # (project contributors. See the CARE LICENSE file for details.) +[comment]: # (Copyright Lawrence Livermore National Security, LLC and other CARE) +[comment]: # (contributors. See the CARE LICENSE and COPYRIGHT files for details.) [comment]: # [comment]: # (SPDX-License-Identifier: BSD-3-Clause) [comment]: # (#################################################################) @@ -33,8 +33,16 @@ By default, only the tests are built. Documentation, benchmarks, and examples ca License ======= -CARE is release under the BSD-3-Clause License. See the LICENSE and NOTICE files for more details. +CARE is licensed under the [BSD 3-Clause license](https://opensource.org/licenses/BSD-3-Clause). +Unlimited Open Source - BSD 3-clause Distribution SPDX-License-Identifier: BSD-3-Clause +`LLNL-CODE-809741` -LLNL-CODE-809741 +Copyrights and patents in the CARE project are retained by contributors. +No copyright assignment is required to contribute to CARE. + +For release details and restrictions, please see the information in the +following: +- [COPYRIGHT](./COPYRIGHT) +- [LICENSE](./LICENSE) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index bc074012..fad0e95a 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -1,6 +1,6 @@ [comment]: # (#################################################################) -[comment]: # (Copyright 2020-25, Lawrence Livermore National Security, LLC and CARE) -[comment]: # (project contributors. See the CARE LICENSE file for details.) +[comment]: # (Copyright Lawrence Livermore National Security, LLC and other CARE) +[comment]: # (contributors. See the CARE LICENSE and COPYRIGHT files for details.) [comment]: # [comment]: # (SPDX-License-Identifier: BSD-3-Clause) [comment]: # (#################################################################) diff --git a/benchmarks/BenchmarkArrayView.cpp b/benchmarks/BenchmarkArrayView.cpp index 3b7c0c40..06388b9d 100644 --- a/benchmarks/BenchmarkArrayView.cpp +++ b/benchmarks/BenchmarkArrayView.cpp @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/benchmarks/BenchmarkForall.cpp b/benchmarks/BenchmarkForall.cpp index 25015c20..2145b3a7 100644 --- a/benchmarks/BenchmarkForall.cpp +++ b/benchmarks/BenchmarkForall.cpp @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/benchmarks/BenchmarkHostDeviceMap.cpp b/benchmarks/BenchmarkHostDeviceMap.cpp index 88a182e5..37438a16 100644 --- a/benchmarks/BenchmarkHostDeviceMap.cpp +++ b/benchmarks/BenchmarkHostDeviceMap.cpp @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/benchmarks/BenchmarkNumeric.cpp b/benchmarks/BenchmarkNumeric.cpp index 928bcf3f..1be8905e 100644 --- a/benchmarks/BenchmarkNumeric.cpp +++ b/benchmarks/BenchmarkNumeric.cpp @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/benchmarks/CMakeLists.txt b/benchmarks/CMakeLists.txt index fc7c2524..cb40e84d 100644 --- a/benchmarks/CMakeLists.txt +++ b/benchmarks/CMakeLists.txt @@ -1,6 +1,6 @@ ############################################################################## -# Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -# project contributors. See the CARE LICENSE file for details. +# Copyright (c) Lawrence Livermore National Security, LLC and other CARE +# contributors. See the CARE LICENSE and COPYRIGHT files for details. # # SPDX-License-Identifier: BSD-3-Clause ############################################################################## diff --git a/cmake/Setup.cmake b/cmake/Setup.cmake index a7a023ba..e9437eab 100644 --- a/cmake/Setup.cmake +++ b/cmake/Setup.cmake @@ -1,6 +1,6 @@ ############################################################################## -# Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -# project contributors. See the CARE LICENSE file for details. +# Copyright (c) Lawrence Livermore National Security, LLC and other CARE +# contributors. See the CARE LICENSE and COPYRIGHT files for details. # # SPDX-License-Identifier: BSD-3-Clause ############################################################################## diff --git a/cmake/SetupBLTWrapper.cmake b/cmake/SetupBLTWrapper.cmake index 0294b16d..2418492f 100644 --- a/cmake/SetupBLTWrapper.cmake +++ b/cmake/SetupBLTWrapper.cmake @@ -1,6 +1,6 @@ ############################################################################## -# Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -# project contributors. See the CARE LICENSE file for details. +# Copyright (c) Lawrence Livermore National Security, LLC and other CARE +# contributors. See the CARE LICENSE and COPYRIGHT files for details. # # SPDX-License-Identifier: BSD-3-Clause ############################################################################## diff --git a/cmake/SetupCompilerOptions.cmake b/cmake/SetupCompilerOptions.cmake index 95776ce2..6cce42e2 100644 --- a/cmake/SetupCompilerOptions.cmake +++ b/cmake/SetupCompilerOptions.cmake @@ -1,6 +1,6 @@ ############################################################################## -# Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -# project contributors. See the CARE LICENSE file for details. +# Copyright (c) Lawrence Livermore National Security, LLC and other CARE +# contributors. See the CARE LICENSE and COPYRIGHT files for details. # # SPDX-License-Identifier: BSD-3-Clause ############################################################################## diff --git a/cmake/SetupDependencies.cmake b/cmake/SetupDependencies.cmake index 7a80b448..cfd551dc 100644 --- a/cmake/SetupDependencies.cmake +++ b/cmake/SetupDependencies.cmake @@ -1,6 +1,6 @@ ############################################################################## -# Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -# project contributors. See the CARE LICENSE file for details. +# Copyright (c) Lawrence Livermore National Security, LLC and other CARE +# contributors. See the CARE LICENSE and COPYRIGHT files for details. # # SPDX-License-Identifier: BSD-3-Clause ############################################################################## diff --git a/cmake/SetupMacros.cmake b/cmake/SetupMacros.cmake index cf811b39..2da6d9bf 100644 --- a/cmake/SetupMacros.cmake +++ b/cmake/SetupMacros.cmake @@ -1,6 +1,6 @@ ############################################################################## -# Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -# project contributors. See the CARE LICENSE file for details. +# Copyright (c) Lawrence Livermore National Security, LLC and other CARE +# contributors. See the CARE LICENSE and COPYRIGHT files for details. # # SPDX-License-Identifier: BSD-3-Clause ############################################################################## diff --git a/cmake/SetupOptions.cmake b/cmake/SetupOptions.cmake index 07ed16cd..3331f0e5 100644 --- a/cmake/SetupOptions.cmake +++ b/cmake/SetupOptions.cmake @@ -1,6 +1,6 @@ ############################################################################## -# Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -# project contributors. See the CARE LICENSE file for details. +# Copyright (c) Lawrence Livermore National Security, LLC and other CARE +# contributors. See the CARE LICENSE and COPYRIGHT files for details. # # SPDX-License-Identifier: BSD-3-Clause ############################################################################## diff --git a/cmake/care-config.cmake.in b/cmake/care-config.cmake.in index 4adcb845..df813694 100644 --- a/cmake/care-config.cmake.in +++ b/cmake/care-config.cmake.in @@ -1,6 +1,6 @@ ############################################################################## -# Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -# project contributors. See the CARE LICENSE file for details. +# Copyright (c) Lawrence Livermore National Security, LLC and other CARE +# contributors. See the CARE LICENSE and COPYRIGHT files for details. # # SPDX-License-Identifier: BSD-3-Clause ############################################################################## diff --git a/cmake/modules/FindCUB.cmake b/cmake/modules/FindCUB.cmake index b8406105..379c5c77 100644 --- a/cmake/modules/FindCUB.cmake +++ b/cmake/modules/FindCUB.cmake @@ -1,6 +1,6 @@ ############################################################################## -# Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -# project contributors. See the CARE LICENSE file for details. +# Copyright (c) Lawrence Livermore National Security, LLC and other CARE +# contributors. See the CARE LICENSE and COPYRIGHT files for details. # # SPDX-License-Identifier: BSD-3-Clause ############################################################################## diff --git a/debug/gdb/care-gdb.py b/debug/gdb/care-gdb.py index cf778990..cbf05524 100644 --- a/debug/gdb/care-gdb.py +++ b/debug/gdb/care-gdb.py @@ -1,6 +1,6 @@ ############################################################################## -# Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -# project contributors. See the CARE LICENSE file for details. +# Copyright (c) Lawrence Livermore National Security, LLC and other CARE +# contributors. See the CARE LICENSE and COPYRIGHT files for details. # # SPDX-License-Identifier: BSD-3-Clause ############################################################################## diff --git a/debug/totalview/host_device_ptr.tvd b/debug/totalview/host_device_ptr.tvd index f91c21d6..8b980280 100644 --- a/debug/totalview/host_device_ptr.tvd +++ b/debug/totalview/host_device_ptr.tvd @@ -1,6 +1,6 @@ ############################################################################## -# Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -# project contributors. See the CARE LICENSE file for details. +# Copyright (c) Lawrence Livermore National Security, LLC and other CARE +# contributors. See the CARE LICENSE and COPYRIGHT files for details. # # SPDX-License-Identifier: BSD-3-Clause ############################################################################## diff --git a/docs/CMakeLists.txt b/docs/CMakeLists.txt index 7680d234..f6bcbbf9 100644 --- a/docs/CMakeLists.txt +++ b/docs/CMakeLists.txt @@ -1,6 +1,6 @@ ############################################################################## -# Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -# project contributors. See the CARE LICENSE file for details. +# Copyright (c) Lawrence Livermore National Security, LLC and other CARE +# contributors. See the CARE LICENSE and COPYRIGHT files for details. # # SPDX-License-Identifier: BSD-3-Clause ############################################################################## diff --git a/docs/doxygen/CMakeLists.txt b/docs/doxygen/CMakeLists.txt index 1ecb86ff..35540016 100644 --- a/docs/doxygen/CMakeLists.txt +++ b/docs/doxygen/CMakeLists.txt @@ -1,6 +1,6 @@ ############################################################################## -# Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -# project contributors. See the CARE LICENSE file for details. +# Copyright (c) Lawrence Livermore National Security, LLC and other CARE +# contributors. See the CARE LICENSE and COPYRIGHT files for details. # # SPDX-License-Identifier: BSD-3-Clause ############################################################################## diff --git a/docs/doxygen/Doxyfile.in b/docs/doxygen/Doxyfile.in index 7a03c11d..348135d3 100644 --- a/docs/doxygen/Doxyfile.in +++ b/docs/doxygen/Doxyfile.in @@ -1,6 +1,6 @@ ############################################################################## -# Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -# project contributors. See the CARE LICENSE file for details. +# Copyright (c) Lawrence Livermore National Security, LLC and other CARE +# contributors. See the CARE LICENSE and COPYRIGHT files for details. # # SPDX-License-Identifier: BSD-3-Clause ############################################################################## diff --git a/docs/sphinx/CMakeLists.txt b/docs/sphinx/CMakeLists.txt index 363b5b6f..6b8c8a34 100644 --- a/docs/sphinx/CMakeLists.txt +++ b/docs/sphinx/CMakeLists.txt @@ -1,6 +1,6 @@ ############################################################################## -# Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -# project contributors. See the CARE LICENSE file for details. +# Copyright (c) Lawrence Livermore National Security, LLC and other CARE +# contributors. See the CARE LICENSE and COPYRIGHT files for details. # # SPDX-License-Identifier: BSD-3-Clause ############################################################################## diff --git a/docs/sphinx/conf.py b/docs/sphinx/conf.py index af9955d8..a92a23ba 100644 --- a/docs/sphinx/conf.py +++ b/docs/sphinx/conf.py @@ -1,6 +1,6 @@ ############################################################################## -# Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -# project contributors. See the CARE LICENSE file for details. +# Copyright (c) Lawrence Livermore National Security, LLC and other CARE +# contributors. See the CARE LICENSE and COPYRIGHT files for details. # # SPDX-License-Identifier: BSD-3-Clause ############################################################################## @@ -48,7 +48,7 @@ # General information about the project. project = u'CARE' -copyright = u'2020-2025, Peter Robinson, Ben Liu, Alan Dayton, Arlie Capps, Al Nichols' +copyright = u'2020-2026, Lawrence Livermore National Security, LLC and other CARE contributors' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the diff --git a/docs/sphinx/data_structures.rst b/docs/sphinx/data_structures.rst index 54e4d0ba..87d6fd07 100644 --- a/docs/sphinx/data_structures.rst +++ b/docs/sphinx/data_structures.rst @@ -1,6 +1,6 @@ .. ############################################################################## - # Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE - # project contributors. See the CARE LICENSE file for details. + # Copyright (c) Lawrence Livermore National Security, LLC and other CARE + # contributors. See the CARE LICENSE and COPYRIGHT files for details. # # SPDX-License-Identifier: BSD-3-Clause ############################################################################## diff --git a/docs/sphinx/index.rst b/docs/sphinx/index.rst index 259c76b8..0398ba45 100644 --- a/docs/sphinx/index.rst +++ b/docs/sphinx/index.rst @@ -1,6 +1,6 @@ .. ############################################################################## - # Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE - # project contributors. See the CARE LICENSE file for details. + # Copyright (c) Lawrence Livermore National Security, LLC and other CARE + # contributors. See the CARE LICENSE and COPYRIGHT files for details. # # SPDX-License-Identifier: BSD-3-Clause ############################################################################## diff --git a/docs/sphinx/infrastructure.rst b/docs/sphinx/infrastructure.rst index 1db64ea5..12478ae1 100644 --- a/docs/sphinx/infrastructure.rst +++ b/docs/sphinx/infrastructure.rst @@ -1,6 +1,6 @@ .. ############################################################################## - # Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE - # project contributors. See the CARE LICENSE file for details. + # Copyright (c) Lawrence Livermore National Security, LLC and other CARE + # contributors. See the CARE LICENSE and COPYRIGHT files for details. # # SPDX-License-Identifier: BSD-3-Clause ############################################################################## diff --git a/docs/sphinx/install.rst b/docs/sphinx/install.rst index ad03f727..a3460e33 100644 --- a/docs/sphinx/install.rst +++ b/docs/sphinx/install.rst @@ -1,6 +1,6 @@ .. ############################################################################## - # Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE - # project contributors. See the CARE LICENSE file for details. + # Copyright (c) Lawrence Livermore National Security, LLC and other CARE + # contributors. See the CARE LICENSE and COPYRIGHT files for details. # # SPDX-License-Identifier: BSD-3-Clause ############################################################################## diff --git a/docs/sphinx/loop_fuser.rst b/docs/sphinx/loop_fuser.rst index 893b2182..870a65ad 100644 --- a/docs/sphinx/loop_fuser.rst +++ b/docs/sphinx/loop_fuser.rst @@ -1,6 +1,6 @@ .. ############################################################################## - # Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE - # project contributors. See the CARE LICENSE file for details. + # Copyright (c) Lawrence Livermore National Security, LLC and other CARE + # contributors. See the CARE LICENSE and COPYRIGHT files for details. # # SPDX-License-Identifier: BSD-3-Clause ############################################################################## diff --git a/docs/sphinx/tutorial.rst b/docs/sphinx/tutorial.rst index 16bc229d..16d71271 100644 --- a/docs/sphinx/tutorial.rst +++ b/docs/sphinx/tutorial.rst @@ -1,6 +1,6 @@ .. ############################################################################## - # Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE - # project contributors. See the CARE LICENSE file for details. + # Copyright (c) Lawrence Livermore National Security, LLC and other CARE + # contributors. See the CARE LICENSE and COPYRIGHT files for details. # # SPDX-License-Identifier: BSD-3-Clause ############################################################################## diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index d0bb356f..fd0c836c 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -1,6 +1,6 @@ ############################################################################## -# Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -# project contributors. See the CARE LICENSE file for details. +# Copyright (c) Lawrence Livermore National Security, LLC and other CARE +# contributors. See the CARE LICENSE and COPYRIGHT files for details. # # SPDX-License-Identifier: BSD-3-Clause ############################################################################## diff --git a/examples/DeviceASAN.cpp b/examples/DeviceASAN.cpp index daaed196..9d202e0c 100644 --- a/examples/DeviceASAN.cpp +++ b/examples/DeviceASAN.cpp @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// @@ -21,7 +21,7 @@ int main(int, char**) { // // ==4084715==ERROR: AddressSanitizer: heap-buffer-overflow on amdgpu device 0 at pc 0x153d3cdd3db8 // READ of size 4 in workgroup id (3906,0,0) - // #0 0x153d3cdd3db8 in main::'lambda0'(int)::operator()(int) const at /g/g17/dayton8/ale3d/github_care_4/examples/DeviceASAN.cpp:26:14 + // #0 0x153d3cdd3db8 in main::'lambda0'(int)::operator()(int) const at care/examples/DeviceASAN.cpp:26:14 CARE_STREAM_LOOP(i, 0, size + 1) { data[i]++; } CARE_STREAM_LOOP_END diff --git a/examples/RaceConditions.cpp b/examples/RaceConditions.cpp index 4859a064..67bd6d1f 100644 --- a/examples/RaceConditions.cpp +++ b/examples/RaceConditions.cpp @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/examples/ScanLoop.cpp b/examples/ScanLoop.cpp index b5e2d895..2469e6f5 100644 --- a/examples/ScanLoop.cpp +++ b/examples/ScanLoop.cpp @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/examples/StreamLoop.cpp b/examples/StreamLoop.cpp index 97456232..bb0e1786 100644 --- a/examples/StreamLoop.cpp +++ b/examples/StreamLoop.cpp @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/host-configs/lc/toss_4_x86_64_ib/clang.cmake b/host-configs/lc/toss_4_x86_64_ib/clang.cmake index bf770cdf..500beae6 100644 --- a/host-configs/lc/toss_4_x86_64_ib/clang.cmake +++ b/host-configs/lc/toss_4_x86_64_ib/clang.cmake @@ -1,6 +1,6 @@ ############################################################################## -# Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -# project contributors. See the CARE LICENSE file for details. +# Copyright (c) Lawrence Livermore National Security, LLC and other CARE +# contributors. See the CARE LICENSE and COPYRIGHT files for details. # # SPDX-License-Identifier: BSD-3-Clause ############################################################################## diff --git a/host-configs/lc/toss_4_x86_64_ib/clang_tsan.cmake b/host-configs/lc/toss_4_x86_64_ib/clang_tsan.cmake index f13a2b2b..d161e589 100644 --- a/host-configs/lc/toss_4_x86_64_ib/clang_tsan.cmake +++ b/host-configs/lc/toss_4_x86_64_ib/clang_tsan.cmake @@ -1,6 +1,6 @@ ############################################################################## -# Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -# project contributors. See the CARE LICENSE file for details. +# Copyright (c) Lawrence Livermore National Security, LLC and other CARE +# contributors. See the CARE LICENSE and COPYRIGHT files for details. # # SPDX-License-Identifier: BSD-3-Clause ############################################################################## diff --git a/host-configs/lc/toss_4_x86_64_ib/clang_ubsan.cmake b/host-configs/lc/toss_4_x86_64_ib/clang_ubsan.cmake index cd836260..a939530f 100644 --- a/host-configs/lc/toss_4_x86_64_ib/clang_ubsan.cmake +++ b/host-configs/lc/toss_4_x86_64_ib/clang_ubsan.cmake @@ -1,6 +1,6 @@ ############################################################################## -# Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -# project contributors. See the CARE LICENSE file for details. +# Copyright (c) Lawrence Livermore National Security, LLC and other CARE +# contributors. See the CARE LICENSE and COPYRIGHT files for details. # # SPDX-License-Identifier: BSD-3-Clause ############################################################################## diff --git a/host-configs/lc/toss_4_x86_64_ib/intel.cmake b/host-configs/lc/toss_4_x86_64_ib/intel.cmake index e475adef..d9c229d8 100644 --- a/host-configs/lc/toss_4_x86_64_ib/intel.cmake +++ b/host-configs/lc/toss_4_x86_64_ib/intel.cmake @@ -1,6 +1,6 @@ ############################################################################## -# Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -# project contributors. See the CARE LICENSE file for details. +# Copyright (c) Lawrence Livermore National Security, LLC and other CARE +# contributors. See the CARE LICENSE and COPYRIGHT files for details. # # SPDX-License-Identifier: BSD-3-Clause ############################################################################## diff --git a/host-configs/lc/toss_4_x86_64_ib/nvcc_clang.cmake b/host-configs/lc/toss_4_x86_64_ib/nvcc_clang.cmake index a6d9821c..6a3a9806 100644 --- a/host-configs/lc/toss_4_x86_64_ib/nvcc_clang.cmake +++ b/host-configs/lc/toss_4_x86_64_ib/nvcc_clang.cmake @@ -1,6 +1,6 @@ ############################################################################## -# Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -# project contributors. See the CARE LICENSE file for details. +# Copyright (c) Lawrence Livermore National Security, LLC and other CARE +# contributors. See the CARE LICENSE and COPYRIGHT files for details. # # SPDX-License-Identifier: BSD-3-Clause ############################################################################## diff --git a/host-configs/lc/toss_4_x86_64_ib_cray/amdclang.cmake b/host-configs/lc/toss_4_x86_64_ib_cray/amdclang.cmake index 28ee0214..ac4bbafe 100644 --- a/host-configs/lc/toss_4_x86_64_ib_cray/amdclang.cmake +++ b/host-configs/lc/toss_4_x86_64_ib_cray/amdclang.cmake @@ -1,6 +1,6 @@ ############################################################################## -# Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -# project contributors. See the CARE LICENSE file for details. +# Copyright (c) Lawrence Livermore National Security, LLC and other CARE +# contributors. See the CARE LICENSE and COPYRIGHT files for details. # # SPDX-License-Identifier: BSD-3-Clause ############################################################################## diff --git a/reproducers/CMakeLists.txt b/reproducers/CMakeLists.txt index ac7f1768..c6aea565 100644 --- a/reproducers/CMakeLists.txt +++ b/reproducers/CMakeLists.txt @@ -1,6 +1,6 @@ ############################################################################## -# Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -# project contributors. See the CARE LICENSE file for details. +# Copyright (c) Lawrence Livermore National Security, LLC and other CARE +# contributors. See the CARE LICENSE and COPYRIGHT files for details. # # SPDX-License-Identifier: BSD-3-Clause ############################################################################## diff --git a/reproducers/ReproducerManagedPtr.cpp b/reproducers/ReproducerManagedPtr.cpp index 064cceeb..f6c1cd96 100644 --- a/reproducers/ReproducerManagedPtr.cpp +++ b/reproducers/ReproducerManagedPtr.cpp @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/scripts/check-license-info.sh b/scripts/check-license-info.sh index f30cf8ed..fb5ddc0c 100755 --- a/scripts/check-license-info.sh +++ b/scripts/check-license-info.sh @@ -1,7 +1,8 @@ #!/usr/bin/env zsh + ############################################################################## -# Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -# project contributors. See the CARE LICENSE file for details. +# Copyright (c) Lawrence Livermore National Security, LLC and other CARE +# contributors. See the CARE LICENSE and COPYRIGHT files for details. # # SPDX-License-Identifier: BSD-3-Clause ############################################################################## @@ -15,10 +16,9 @@ RED="\033[1;31m" GREEN="\033[1;32m" NOCOLOR="\033[0m" -files_no_license=$(grep -rL "Copyright.*2020-25, Lawrence Livermore National Security, LLC and CARE" . \ +files_no_license=$(grep -rL "Copyright (c) Lawrence Livermore National Security, LLC and other CARE" . \ --exclude-dir=.git \ --exclude-dir=blt \ - --exclude-dir=cub \ --exclude-dir=umpire \ --exclude-dir=raja \ --exclude-dir=chai \ @@ -26,21 +26,20 @@ files_no_license=$(grep -rL "Copyright.*2020-25, Lawrence Livermore National Sec --exclude-dir=uberenv \ --exclude-dir=build \ --exclude=\*.swp \ - --exclude=ci.yml \ - --exclude=.gitignore \ --exclude=.gitmodules \ --exclude=LICENSE \ --exclude=COPYRIGHT \ --exclude=NOTICE \ + --exclude=README.md \ + --exclude=RELEASE_NOTES.md \ --exclude=\*.natvis \ --exclude=repo.yaml \ --exclude=package.py \ --exclude=.uberenv_config.json) -files_no_license+=$(grep -rL "project contributors. See the CARE LICENSE file for details." . \ +files_no_license+=$(grep -rL "contributors. See the CARE LICENSE and COPYRIGHT files for details." . \ --exclude-dir=.git \ --exclude-dir=blt \ - --exclude-dir=cub \ --exclude-dir=umpire \ --exclude-dir=raja \ --exclude-dir=chai \ @@ -48,8 +47,6 @@ files_no_license+=$(grep -rL "project contributors. See the CARE LICENSE file fo --exclude-dir=uberenv \ --exclude-dir=build \ --exclude=\*.swp \ - --exclude=ci.yml \ - --exclude=.gitignore \ --exclude=.gitmodules \ --exclude=LICENSE \ --exclude=COPYRIGHT \ @@ -62,7 +59,6 @@ files_no_license+=$(grep -rL "project contributors. See the CARE LICENSE file fo files_no_license+=$(grep -rL "SPDX-License-Identifier: BSD-3-Clause" . \ --exclude-dir=.git \ --exclude-dir=blt \ - --exclude-dir=cub \ --exclude-dir=umpire \ --exclude-dir=raja \ --exclude-dir=chai \ @@ -70,8 +66,6 @@ files_no_license+=$(grep -rL "SPDX-License-Identifier: BSD-3-Clause" . \ --exclude-dir=uberenv \ --exclude-dir=build \ --exclude=\*.swp \ - --exclude=ci.yml \ - --exclude=.gitignore \ --exclude=.gitmodules \ --exclude=LICENSE \ --exclude=COPYRIGHT \ @@ -82,10 +76,10 @@ files_no_license+=$(grep -rL "SPDX-License-Identifier: BSD-3-Clause" . \ --exclude=.uberenv_config.json) if [ $files_no_license ]; then - print "${RED} [!] Some files are missing license text:${NOCOLOR}" + print "${RED}[!] Some files are missing license text:${NOCOLOR}" echo "${files_no_license}" exit 255 else - print "${GREEN} [Ok] All files have required license info.${NOCOLOR}" + print "${GREEN}[Ok] All files have required license info.${NOCOLOR}" exit 0 fi diff --git a/scripts/gitlab/build_and_test.sh b/scripts/gitlab/build_and_test.sh index 575bcd4b..4df6f2d1 100755 --- a/scripts/gitlab/build_and_test.sh +++ b/scripts/gitlab/build_and_test.sh @@ -7,8 +7,8 @@ then fi ############################################################################### -# Copyright (c) 2020-26, Lawrence Livermore National Security, LLC and CARE -# project contributors. See the CARE LICENSE file for details. +# Copyright (c) Lawrence Livermore National Security, LLC and other CARE +# contributors. See the CARE LICENSE and COPYRIGHT files for details. # # SPDX-License-Identifier: BSD-3-Clause ############################################################################### diff --git a/scripts/make_release_tarball.sh b/scripts/make_release_tarball.sh index e54720e7..d2b872bd 100755 --- a/scripts/make_release_tarball.sh +++ b/scripts/make_release_tarball.sh @@ -1,8 +1,8 @@ #!/bin/bash ############################################################################## -# Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -# project contributors. See the CARE LICENSE file for details. +# Copyright (c) Lawrence Livermore National Security, LLC and other CARE +# contributors. See the CARE LICENSE and COPYRIGHT files for details. # # SPDX-License-Identifier: BSD-3-Clause ############################################################################## diff --git a/scripts/spack_packages/spack_repo/llnl_care/packages/README.md b/scripts/spack_packages/spack_repo/llnl_care/packages/README.md index 5c4a1dfe..ddd388be 100644 --- a/scripts/spack_packages/spack_repo/llnl_care/packages/README.md +++ b/scripts/spack_packages/spack_repo/llnl_care/packages/README.md @@ -1,6 +1,6 @@ [comment]: # (#################################################################) -[comment]: # (Copyright 2020-25, Lawrence Livermore National Security, LLC and CARE) -[comment]: # (project contributors. See the CARE LICENSE file for details.) +[comment]: # (Copyright Lawrence Livermore National Security, LLC and other CARE) +[comment]: # (contributors. See the CARE LICENSE and COPYRIGHT files for details.) [comment]: # [comment]: # (SPDX-License-Identifier: BSD-3-Clause) [comment]: # (#################################################################) diff --git a/scripts/update-copyright.sh b/scripts/update-copyright.sh index db1c3e28..ef77f591 100755 --- a/scripts/update-copyright.sh +++ b/scripts/update-copyright.sh @@ -1,70 +1,18 @@ #!/usr/bin/env bash ############################################################################## -# Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -# project contributors. See the CARE LICENSE file for details. +# Copyright (c) Lawrence Livermore National Security, LLC and other CARE +# contributors. See the CARE LICENSE and COPYRIGHT files for details. # # SPDX-License-Identifier: BSD-3-Clause ############################################################################## -#============================================================================= -# Change the copyright date in all files that contain the text -# "the CARE LICENSE file", which is part of the copyright statement at the -# top of each CARE file. We use this to distinguish CARE files from ones -# that we do not own (e.g., other repos included as submodules), which we -# do not want to modify. Note that this file and *.git files are omitted -# as well. -# -# IMPORTANT: Since this file is not modified (it is running the shell -# script commands), you must EDIT THE COPYRIGHT DATES IN THE HEADER ABOVE -# MANUALLY. -# -# Edit the 'grep' command below to change the set of files that will be -# modified. -# -# Change the 'sed' command below to change the content that is changed -# in each file and what it is changed to. Typically, this would only be -# modifying the end year in the copyright date. -# -#============================================================================= -# -# If you need to modify this script, you may want to run each of these -# commands individually from the command line to make sure things are doing -# what you think they should be doing. This is why they are separated into -# steps here. -# -#============================================================================= +set -euo pipefail -#============================================================================= -# First find all the files we want to modify -#============================================================================= -grep -rl "the CARE LICENSE file" . --exclude-dir=.git --exclude-dir=blt --exclude-dir=cub --exclude-dir=umpire --exclude-dir=raja --exclude-dir=chai --exclude-dir=radiuss-spack-configs --exclude-dir=uberenv --exclude-dir=build --exclude=update-copyright.sh > files2change +NEW_END_YEAR="2026" +echo "Updating copyright end year to ${NEW_END_YEAR}:" -#============================================================================= -# Replace the old copyright dates with new dates -#============================================================================= -for i in `cat files2change` -do - echo $i - cp $i $i.sed.bak - # For when there is only a single year in the copyright - # sed "s/Copyright (c) \([0-9]\{4\}\),/Copyright (c) 2020-25,/" $i.sed.bak > $i - sed "s/Copyright (c) \([0-9]\{4\}\)-[0-9]\{2\},/Copyright (c) 2020-25,/" $i.sed.bak > $i +for file in "LICENSE" "docs/sphinx/conf.py"; do + echo " $file" + sed -i "s/\([0-9]\{4\}\)-[0-9]\{4\}/\1-${NEW_END_YEAR}/g" "$file" done - -echo LICENSE -cp LICENSE LICENSE.sed.bak -sed "s/Copyright (c) \([0-9]\{4\}\)-[0-9]\{4\}/Copyright (c) 2020-2025/" LICENSE.sed.bak > LICENSE - -for i in README.md -do - echo $i - cp $i $i.sed.bak - sed "s/\([0-9]\{4\}\)-[0-9]\{2\}/2020-25/" $i.sed.bak > $i -done - -#============================================================================= -# Remove temporary files created in the process -#============================================================================= -find . -name \*.sed.bak -exec rm {} \; -rm files2change diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 69b4ee33..d131d8dd 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,6 +1,6 @@ ############################################################################## -# Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -# project contributors. See the CARE LICENSE file for details. +# Copyright (c) Lawrence Livermore National Security, LLC and other CARE +# contributors. See the CARE LICENSE and COPYRIGHT files for details. # # SPDX-License-Identifier: BSD-3-Clause ############################################################################## diff --git a/src/care/ArrayView.h b/src/care/ArrayView.h index e2f1ee68..f491ec41 100644 --- a/src/care/ArrayView.h +++ b/src/care/ArrayView.h @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/src/care/CHAICallback.cpp b/src/care/CHAICallback.cpp index bdb7d281..302e4ac1 100644 --- a/src/care/CHAICallback.cpp +++ b/src/care/CHAICallback.cpp @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/src/care/CHAICallback.h b/src/care/CHAICallback.h index d7e656d7..756accae 100644 --- a/src/care/CHAICallback.h +++ b/src/care/CHAICallback.h @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/src/care/CHAIDataGetter.h b/src/care/CHAIDataGetter.h index 9f41d489..89b1536f 100644 --- a/src/care/CHAIDataGetter.h +++ b/src/care/CHAIDataGetter.h @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/src/care/CMakeLists.txt b/src/care/CMakeLists.txt index 59a8de1d..79143d01 100644 --- a/src/care/CMakeLists.txt +++ b/src/care/CMakeLists.txt @@ -1,6 +1,6 @@ ############################################################################## -# Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -# project contributors. See the CARE LICENSE file for details. +# Copyright (c) Lawrence Livermore National Security, LLC and other CARE +# contributors. See the CARE LICENSE and COPYRIGHT files for details. # # SPDX-License-Identifier: BSD-3-Clause ############################################################################## diff --git a/src/care/Debug.h b/src/care/Debug.h index 36495db7..70a444b1 100644 --- a/src/care/Debug.h +++ b/src/care/Debug.h @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/src/care/DebugPlugin.cpp b/src/care/DebugPlugin.cpp index da76ee6d..97f296ad 100644 --- a/src/care/DebugPlugin.cpp +++ b/src/care/DebugPlugin.cpp @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/src/care/DebugPlugin.h b/src/care/DebugPlugin.h index ff4df4b3..e6af1b95 100644 --- a/src/care/DebugPlugin.h +++ b/src/care/DebugPlugin.h @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/src/care/DefaultMacros.h b/src/care/DefaultMacros.h index af00f33b..db94d7a1 100644 --- a/src/care/DefaultMacros.h +++ b/src/care/DefaultMacros.h @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/src/care/ExecutionSpace.cpp b/src/care/ExecutionSpace.cpp index 8ebf2565..3b4ff709 100644 --- a/src/care/ExecutionSpace.cpp +++ b/src/care/ExecutionSpace.cpp @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/src/care/ExecutionSpace.h b/src/care/ExecutionSpace.h index 4f0cf64b..da1a33b1 100644 --- a/src/care/ExecutionSpace.h +++ b/src/care/ExecutionSpace.h @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/src/care/FOREACHMACRO.h b/src/care/FOREACHMACRO.h index 5ffb4a96..07220a3f 100644 --- a/src/care/FOREACHMACRO.h +++ b/src/care/FOREACHMACRO.h @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/src/care/GPUMacros.h b/src/care/GPUMacros.h index 6414fcb7..74d95ff9 100644 --- a/src/care/GPUMacros.h +++ b/src/care/GPUMacros.h @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/src/care/GPUWatchpoint.h b/src/care/GPUWatchpoint.h index 15109277..d405eb1a 100644 --- a/src/care/GPUWatchpoint.h +++ b/src/care/GPUWatchpoint.h @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/src/care/KeyValueSorter.h b/src/care/KeyValueSorter.h index a4883544..a6e4f852 100644 --- a/src/care/KeyValueSorter.h +++ b/src/care/KeyValueSorter.h @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/src/care/KeyValueSorter_decl.h b/src/care/KeyValueSorter_decl.h index 46a9e66a..95347c08 100644 --- a/src/care/KeyValueSorter_decl.h +++ b/src/care/KeyValueSorter_decl.h @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/src/care/KeyValueSorter_impl.h b/src/care/KeyValueSorter_impl.h index 2b4b9608..7b324bcc 100644 --- a/src/care/KeyValueSorter_impl.h +++ b/src/care/KeyValueSorter_impl.h @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/src/care/KeyValueSorter_inst.h b/src/care/KeyValueSorter_inst.h index 5bbe0b88..991564a0 100644 --- a/src/care/KeyValueSorter_inst.h +++ b/src/care/KeyValueSorter_inst.h @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/src/care/LoopFuser.cpp b/src/care/LoopFuser.cpp index 5d149a5e..aaf10a3c 100644 --- a/src/care/LoopFuser.cpp +++ b/src/care/LoopFuser.cpp @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/src/care/LoopFuser.h b/src/care/LoopFuser.h index e23bd562..504a4f20 100644 --- a/src/care/LoopFuser.h +++ b/src/care/LoopFuser.h @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/src/care/PluginData.cpp b/src/care/PluginData.cpp index 660224b8..b55eba3a 100644 --- a/src/care/PluginData.cpp +++ b/src/care/PluginData.cpp @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/src/care/PluginData.h b/src/care/PluginData.h index 5fef41fd..db221fcf 100644 --- a/src/care/PluginData.h +++ b/src/care/PluginData.h @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/src/care/PointerTypes.h b/src/care/PointerTypes.h index 783707f2..8d210bba 100644 --- a/src/care/PointerTypes.h +++ b/src/care/PointerTypes.h @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/src/care/ProfilePlugin.cpp b/src/care/ProfilePlugin.cpp index 6669c8a6..37ebedf0 100644 --- a/src/care/ProfilePlugin.cpp +++ b/src/care/ProfilePlugin.cpp @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/src/care/ProfilePlugin.h b/src/care/ProfilePlugin.h index c6c36a53..785ea615 100644 --- a/src/care/ProfilePlugin.h +++ b/src/care/ProfilePlugin.h @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/src/care/Setup.h b/src/care/Setup.h index 94663dbd..4413917e 100644 --- a/src/care/Setup.h +++ b/src/care/Setup.h @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/src/care/SortFuser.h b/src/care/SortFuser.h index c88a330d..b53ebb45 100644 --- a/src/care/SortFuser.h +++ b/src/care/SortFuser.h @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/src/care/algorithm.h b/src/care/algorithm.h index 6a29a03f..4befa19d 100644 --- a/src/care/algorithm.h +++ b/src/care/algorithm.h @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/src/care/algorithm_decl.h b/src/care/algorithm_decl.h index 3b84815c..a84959e4 100644 --- a/src/care/algorithm_decl.h +++ b/src/care/algorithm_decl.h @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/src/care/algorithm_impl.h b/src/care/algorithm_impl.h index a686d23a..15226388 100644 --- a/src/care/algorithm_impl.h +++ b/src/care/algorithm_impl.h @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/src/care/array.h b/src/care/array.h index 497c71cd..0ee3824b 100644 --- a/src/care/array.h +++ b/src/care/array.h @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/src/care/atomic.h b/src/care/atomic.h index 44e522c5..3605c4cd 100644 --- a/src/care/atomic.h +++ b/src/care/atomic.h @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/src/care/care.cpp b/src/care/care.cpp index c42ecf2e..feb12246 100644 --- a/src/care/care.cpp +++ b/src/care/care.cpp @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/src/care/care.h b/src/care/care.h index 2b1bb1ca..b51d0397 100644 --- a/src/care/care.h +++ b/src/care/care.h @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/src/care/care_inst.cpp b/src/care/care_inst.cpp index 9280089f..edbdebcd 100644 --- a/src/care/care_inst.cpp +++ b/src/care/care_inst.cpp @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/src/care/care_inst.h b/src/care/care_inst.h index 17b7e5e8..0f7511ef 100644 --- a/src/care/care_inst.h +++ b/src/care/care_inst.h @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/src/care/compress_algorithm_impl.h b/src/care/compress_algorithm_impl.h index 9c9ea8de..a124c68e 100644 --- a/src/care/compress_algorithm_impl.h +++ b/src/care/compress_algorithm_impl.h @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/src/care/config.h.in b/src/care/config.h.in index 9fdbdef8..1105eb48 100644 --- a/src/care/config.h.in +++ b/src/care/config.h.in @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/src/care/detail/test_utils.h b/src/care/detail/test_utils.h index 85c8572e..010be3f6 100644 --- a/src/care/detail/test_utils.h +++ b/src/care/detail/test_utils.h @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/src/care/device_ptr.h b/src/care/device_ptr.h index 58ad43b4..5c5f300c 100644 --- a/src/care/device_ptr.h +++ b/src/care/device_ptr.h @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/src/care/forall.h b/src/care/forall.h index 3c4ce3a3..b53c95f1 100644 --- a/src/care/forall.h +++ b/src/care/forall.h @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/src/care/host_device_map.h b/src/care/host_device_map.h index 6c5e780a..4d13da6a 100644 --- a/src/care/host_device_map.h +++ b/src/care/host_device_map.h @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/src/care/host_device_ptr.h b/src/care/host_device_ptr.h index c9aade3a..863a7f45 100644 --- a/src/care/host_device_ptr.h +++ b/src/care/host_device_ptr.h @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/src/care/host_ptr.h b/src/care/host_ptr.h index 5a9521fc..943e4f20 100644 --- a/src/care/host_ptr.h +++ b/src/care/host_ptr.h @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/src/care/local_host_device_ptr.h b/src/care/local_host_device_ptr.h index d6aa2fa8..d6c316e2 100644 --- a/src/care/local_host_device_ptr.h +++ b/src/care/local_host_device_ptr.h @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/src/care/local_ptr.h b/src/care/local_ptr.h index b812a1b9..abe0cbc5 100644 --- a/src/care/local_ptr.h +++ b/src/care/local_ptr.h @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/src/care/managed_ptr.h b/src/care/managed_ptr.h index 35f004d4..a3902d2d 100644 --- a/src/care/managed_ptr.h +++ b/src/care/managed_ptr.h @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/src/care/numeric.h b/src/care/numeric.h index c79e1976..7d91ec9b 100644 --- a/src/care/numeric.h +++ b/src/care/numeric.h @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/src/care/openmp.h b/src/care/openmp.h index 5c6f1b59..6142210f 100644 --- a/src/care/openmp.h +++ b/src/care/openmp.h @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/src/care/policies.h b/src/care/policies.h index c75b069a..45213007 100644 --- a/src/care/policies.h +++ b/src/care/policies.h @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/src/care/scan.cpp b/src/care/scan.cpp index 02d304f4..cec08b3e 100644 --- a/src/care/scan.cpp +++ b/src/care/scan.cpp @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/src/care/scan.h b/src/care/scan.h index 600c17e9..92e3ba21 100644 --- a/src/care/scan.h +++ b/src/care/scan.h @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/src/care/scan_impl.h b/src/care/scan_impl.h index 391610ba..d7a26ca6 100644 --- a/src/care/scan_impl.h +++ b/src/care/scan_impl.h @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/src/care/single_access_ptr.h b/src/care/single_access_ptr.h index f75a8e4e..92db6c86 100644 --- a/src/care/single_access_ptr.h +++ b/src/care/single_access_ptr.h @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/src/care/util.h b/src/care/util.h index bd775138..c6a9baba 100644 --- a/src/care/util.h +++ b/src/care/util.h @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/test/Benchmarks.cpp b/test/Benchmarks.cpp index 5c3ea98a..c4751f31 100644 --- a/test/Benchmarks.cpp +++ b/test/Benchmarks.cpp @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index fde473d5..a8cf4861 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -1,6 +1,6 @@ ############################################################################## -# Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -# project contributors. See the CARE LICENSE file for details. +# Copyright (c) Lawrence Livermore National Security, LLC and other CARE +# contributors. See the CARE LICENSE and COPYRIGHT files for details. # # SPDX-License-Identifier: BSD-3-Clause ############################################################################## diff --git a/test/TestAlgorithm.cpp b/test/TestAlgorithm.cpp index e5bb8ca6..f178bfb3 100644 --- a/test/TestAlgorithm.cpp +++ b/test/TestAlgorithm.cpp @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/test/TestArray.cpp b/test/TestArray.cpp index 83a6db16..cd308ada 100644 --- a/test/TestArray.cpp +++ b/test/TestArray.cpp @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/test/TestForall.cpp b/test/TestForall.cpp index c79812fa..ba75e961 100644 --- a/test/TestForall.cpp +++ b/test/TestForall.cpp @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/test/TestKeyValueSorter.cpp b/test/TestKeyValueSorter.cpp index a9703c7a..35c05a63 100644 --- a/test/TestKeyValueSorter.cpp +++ b/test/TestKeyValueSorter.cpp @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/test/TestLoopFuser.cxx b/test/TestLoopFuser.cxx index 7bb08556..306a4b0e 100644 --- a/test/TestLoopFuser.cxx +++ b/test/TestLoopFuser.cxx @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/test/TestManagedPtr.cpp b/test/TestManagedPtr.cpp index a0a2963c..52164690 100644 --- a/test/TestManagedPtr.cpp +++ b/test/TestManagedPtr.cpp @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/test/TestNestedMA.cpp b/test/TestNestedMA.cpp index 50789b98..9bcaa44e 100644 --- a/test/TestNestedMA.cpp +++ b/test/TestNestedMA.cpp @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/test/TestNumeric.cpp b/test/TestNumeric.cpp index fd372020..2341c5fd 100644 --- a/test/TestNumeric.cpp +++ b/test/TestNumeric.cpp @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/test/TestScan.cpp b/test/TestScan.cpp index e6e312dc..6f7963c2 100644 --- a/test/TestScan.cpp +++ b/test/TestScan.cpp @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/test/TestSortFuser.cxx b/test/TestSortFuser.cxx index 418cbcdc..baf22f8e 100644 --- a/test/TestSortFuser.cxx +++ b/test/TestSortFuser.cxx @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -// project contributors. See the CARE LICENSE file for details. +// Copyright (c) Lawrence Livermore National Security, LLC and other CARE +// contributors. See the CARE LICENSE and COPYRIGHT files for details. // // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// diff --git a/tpl/versions.txt b/tpl/versions.txt index f890b077..352cb5b7 100644 --- a/tpl/versions.txt +++ b/tpl/versions.txt @@ -1,6 +1,6 @@ ############################################################################## -# Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE -# project contributors. See the CARE LICENSE file for details. +# Copyright (c) Lawrence Livermore National Security, LLC and other CARE +# contributors. See the CARE LICENSE and COPYRIGHT files for details. # # SPDX-License-Identifier: BSD-3-Clause ############################################################################## From c49e72866e1c27a98729f4222ce83f30d1ab1025 Mon Sep 17 00:00:00 2001 From: Alan Dayton <6393677+adayton1@users.noreply.github.com> Date: Thu, 4 Jun 2026 16:36:00 -0700 Subject: [PATCH 14/31] Add reporting for child pipelines (#377) --- .github/hubcast.yml | 11 ++++------- .gitlab/custom-jobs.yml | 7 +++++++ 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/.github/hubcast.yml b/.github/hubcast.yml index 522d259a..c4163a05 100644 --- a/.github/hubcast.yml +++ b/.github/hubcast.yml @@ -15,17 +15,14 @@ Repo: # Name of the CI check as reported back to GitHub check_name: gitlab-ci - # Optional: granularity of CI statuses reported to GitHub (default: [pipeline]) - # Set to [pipeline] for overall pipeline status only - # Set to [jobs] for individual job statuses only - # Set to [pipeline, jobs] to report both - check_types: [pipeline, jobs] + # Report status of pipeline, child pipelines, and individual jobs + check_types: [pipeline, child-pipelines, jobs] # Delete branches from destination when source PR is closed delete_closed: true - # Sync draft PRs/MRs - sync_drafts: true + # Do not sync draft PRs/MRs + sync_drafts: false # Post message when draft sync is disabled sync_drafts_msg: true diff --git a/.gitlab/custom-jobs.yml b/.gitlab/custom-jobs.yml index 2cdf2e12..1ab840e1 100644 --- a/.gitlab/custom-jobs.yml +++ b/.gitlab/custom-jobs.yml @@ -9,6 +9,13 @@ # It is included in CHILD pipelines (via trigger: include:) to provide # templates that your jobs can extend. +############################################################################### +# CHILD PIPELINE WORKFLOW CONFIGURATION +############################################################################### + +workflow: + name: "${CI_MACHINE}" + ############################################################################### # JOB CUSTOMIZATION TEMPLATES ############################################################################### From 975025f96fbe1581b2d0d338a9f233925c06c001 Mon Sep 17 00:00:00 2001 From: Alan Dayton <6393677+adayton1@users.noreply.github.com> Date: Thu, 4 Jun 2026 17:02:15 -0700 Subject: [PATCH 15/31] Require C++20 (#375) --- .gitlab/custom-variables.yml | 20 ++++++++++---------- RELEASE_NOTES.md | 7 +++++++ cmake/SetupBLTWrapper.cmake | 7 ++++--- 3 files changed, 21 insertions(+), 13 deletions(-) diff --git a/.gitlab/custom-variables.yml b/.gitlab/custom-variables.yml index 8b1dd503..adb55d0d 100644 --- a/.gitlab/custom-variables.yml +++ b/.gitlab/custom-variables.yml @@ -22,39 +22,39 @@ variables: # Note: we repeat the reservation, helpful when jobs are manually re-triggered. DANE_JOB_ALLOC: "--overlap --reservation=ci --nodes=1" # Project specific variants for dane - PROJECT_DANE_VARIANTS: "" + PROJECT_DANE_VARIANTS: " cxxstd=20" # Project specific deps for dane - PROJECT_DANE_DEPS: "^umpire~c~shared ^raja~examples~exercises~tests ^chai~shared~examples " + PROJECT_DANE_DEPS: "^chai~shared~examples ^raja~examples~exercises~tests ^umpire~c~shared ^fmt@12.1.0" # Matrix (SLURM) allocation settings MATRIX_SHARED_ALLOC: "--exclusive --partition=pdebug --time=10 --nodes=1" # Note: we repeat the reservation, helpful when jobs are manually re-triggered. MATRIX_JOB_ALLOC: "--partition=pdebug --overlap --nodes=1" # Project specific variants for matrix - PROJECT_MATRIX_VARIANTS: "+cuda cuda_arch=90" + PROJECT_MATRIX_VARIANTS: " cxxstd=20 +cuda cuda_arch=90" # Project specific deps for matrix - PROJECT_MATRIX_DEPS: "^umpire~c~shared ^raja~examples~exercises~tests ^chai~shared~examples " + PROJECT_MATRIX_DEPS: "^chai~shared~examples ^raja~examples~exercises~tests ^umpire~c~shared ^fmt@12.1.0" # Corona (flux) allocation settings CORONA_SHARED_ALLOC: "--exclusive --time-limit=20m --nodes=1" CORONA_JOB_ALLOC: "--nodes=1 --begin-time=+5s" # Project specific variants for corona - PROJECT_CORONA_VARIANTS: "" + PROJECT_CORONA_VARIANTS: " cxxstd=20" # Project specific deps for corona - PROJECT_CORONA_DEPS: "^umpire~c~shared ^raja~examples~exercises~tests ^chai~shared~examples " + PROJECT_CORONA_DEPS: "^chai~shared~examples ^raja~examples~exercises~tests ^umpire~c~shared ^fmt@12.1.0" # Tioga (flux) allocation settings TIOGA_SHARED_ALLOC: "--queue=pci --exclusive --time-limit=20m --nodes=1" TIOGA_JOB_ALLOC: "--nodes=1 --begin-time=+5s" # Project specific variants for tioga - PROJECT_TIOGA_VARIANTS: "" + PROJECT_TIOGA_VARIANTS: " cxxstd=20" # Project specific deps for tioga - PROJECT_TIOGA_DEPS: "^umpire~c~shared ^raja~examples~exercises~tests ^chai~shared~examples " + PROJECT_TIOGA_DEPS: "^chai~shared~examples ^raja~examples~exercises~tests ^umpire~c~shared ^fmt@12.1.0" # Tuolumne (flux) allocation settings TUOLUMNE_SHARED_ALLOC: "--queue=pci --exclusive --time-limit=20m --nodes=1" TUOLUMNE_JOB_ALLOC: "--nodes=1 --begin-time=+5s" # Project specific variants for tuolumne - PROJECT_TUOLUMNE_VARIANTS: "" + PROJECT_TUOLUMNE_VARIANTS: " cxxstd=20" # Project specific deps for tuolumne - PROJECT_TUOLUMNE_DEPS: "^umpire~c~shared ^raja~examples~exercises~tests ^chai~shared~examples " + PROJECT_TUOLUMNE_DEPS: "^chai~shared~examples ^raja~examples~exercises~tests ^umpire~c~shared ^fmt@12.1.0" diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index fad0e95a..93139336 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -12,6 +12,13 @@ in this file. The format of this file is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/). +## [Unreleased] - Release date yyyy-mm-dd + +### Changed +- C++20 or higher is required. +- CUDA 12 or higher is required. +- ROCm 6 or higher is required. + ## [Version 0.15.3] - Release date 2025-12-22 ### Added diff --git a/cmake/SetupBLTWrapper.cmake b/cmake/SetupBLTWrapper.cmake index 2418492f..a2839b0b 100644 --- a/cmake/SetupBLTWrapper.cmake +++ b/cmake/SetupBLTWrapper.cmake @@ -50,12 +50,13 @@ if(NOT BLT_LOADED) option(ENABLE_FORTRAN "Enables Fortran compiler support" OFF) - set(BLT_CXX_STD "c++17" CACHE STRING "Set the c++ standard to use") + set(BLT_CXX_STD "c++20" CACHE STRING "Set the c++ standard to use") if(("${BLT_CXX_STD}" STREQUAL "c++98") OR ("${BLT_CXX_STD}" STREQUAL "c++11") OR - ("${BLT_CXX_STD}" STREQUAL "c++14")) - message(FATAL_ERROR "CARE requires a minimum C++ standard of c++17. Please set BLT_CXX_STD accordingly.") + ("${BLT_CXX_STD}" STREQUAL "c++14") OR + ("${BLT_CXX_STD}" STREQUAL "c++17")) + message(FATAL_ERROR "CARE requires a minimum C++ standard of c++20. Please set BLT_CXX_STD accordingly.") endif() include(${BLT_SOURCE_DIR}/SetupBLT.cmake) From d9cfaafedd475a49e31939a0f1bab072d52ad424 Mon Sep 17 00:00:00 2001 From: Adrien Bernede <51493078+adrienbernede@users.noreply.github.com> Date: Wed, 24 Jun 2026 18:26:28 +0200 Subject: [PATCH 16/31] Update RSCI with hubcast support (#378) * Update RSCI with hubcast support * Optimize allocation on matrix: No shared alloc, pci queue, one gpu, no exclusive full not alloc. * Update to RSCI release tag --- .gitlab-ci.yml | 12 ++++++------ .gitlab/custom-jobs.yml | 7 ------- .gitlab/custom-variables.yml | 4 ++-- 3 files changed, 8 insertions(+), 15 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 52633b73..102dc8f3 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -71,7 +71,7 @@ include: file: 'id_tokens.yml' # Base pipeline templates and utilities - - component: $CI_SERVER_FQDN/radiuss/radiuss-shared-ci/base-pipeline@v2026.02.0 + - component: $CI_SERVER_FQDN/radiuss/radiuss-shared-ci/base-pipeline@2026.6.0 inputs: github_project_name: $GITHUB_PROJECT_NAME github_project_org: $GITHUB_PROJECT_ORG @@ -123,7 +123,7 @@ dane-build-and-test: needs: [dane-up-check, generate-job-lists] trigger: include: - - component: $CI_SERVER_FQDN/radiuss/radiuss-shared-ci/dane-pipeline@v2026.02.0 + - component: $CI_SERVER_FQDN/radiuss/radiuss-shared-ci/dane-pipeline@2026.6.0 inputs: job_cmd: $JOB_CMD shared_alloc: $DANE_SHARED_ALLOC @@ -145,7 +145,7 @@ matrix-build-and-test: needs: [matrix-up-check, generate-job-lists] trigger: include: - - component: $CI_SERVER_FQDN/radiuss/radiuss-shared-ci/matrix-pipeline@v2026.02.0 + - component: $CI_SERVER_FQDN/radiuss/radiuss-shared-ci/matrix-pipeline@2026.6.0 inputs: job_cmd: $JOB_CMD shared_alloc: $MATRIX_SHARED_ALLOC @@ -167,7 +167,7 @@ corona-build-and-test: needs: [corona-up-check, generate-job-lists] trigger: include: - - component: $CI_SERVER_FQDN/radiuss/radiuss-shared-ci/corona-pipeline@v2026.02.0 + - component: $CI_SERVER_FQDN/radiuss/radiuss-shared-ci/corona-pipeline@2026.6.0 inputs: job_cmd: $JOB_CMD shared_alloc: $CORONA_SHARED_ALLOC @@ -189,7 +189,7 @@ tioga-build-and-test: needs: [tioga-up-check, generate-job-lists] trigger: include: - - component: $CI_SERVER_FQDN/radiuss/radiuss-shared-ci/tioga-pipeline@v2026.02.0 + - component: $CI_SERVER_FQDN/radiuss/radiuss-shared-ci/tioga-pipeline@2026.6.0 inputs: job_cmd: $JOB_CMD shared_alloc: $TIOGA_SHARED_ALLOC @@ -211,7 +211,7 @@ tuolumne-build-and-test: needs: [tuolumne-up-check, generate-job-lists] trigger: include: - - component: $CI_SERVER_FQDN/radiuss/radiuss-shared-ci/tuolumne-pipeline@v2026.02.0 + - component: $CI_SERVER_FQDN/radiuss/radiuss-shared-ci/tuolumne-pipeline@2026.6.0 inputs: job_cmd: $JOB_CMD shared_alloc: $TUOLUMNE_SHARED_ALLOC diff --git a/.gitlab/custom-jobs.yml b/.gitlab/custom-jobs.yml index 1ab840e1..2cdf2e12 100644 --- a/.gitlab/custom-jobs.yml +++ b/.gitlab/custom-jobs.yml @@ -9,13 +9,6 @@ # It is included in CHILD pipelines (via trigger: include:) to provide # templates that your jobs can extend. -############################################################################### -# CHILD PIPELINE WORKFLOW CONFIGURATION -############################################################################### - -workflow: - name: "${CI_MACHINE}" - ############################################################################### # JOB CUSTOMIZATION TEMPLATES ############################################################################### diff --git a/.gitlab/custom-variables.yml b/.gitlab/custom-variables.yml index adb55d0d..d51ddab0 100644 --- a/.gitlab/custom-variables.yml +++ b/.gitlab/custom-variables.yml @@ -27,9 +27,9 @@ variables: PROJECT_DANE_DEPS: "^chai~shared~examples ^raja~examples~exercises~tests ^umpire~c~shared ^fmt@12.1.0" # Matrix (SLURM) allocation settings - MATRIX_SHARED_ALLOC: "--exclusive --partition=pdebug --time=10 --nodes=1" + MATRIX_SHARED_ALLOC: "OFF" # Note: we repeat the reservation, helpful when jobs are manually re-triggered. - MATRIX_JOB_ALLOC: "--partition=pdebug --overlap --nodes=1" + MATRIX_JOB_ALLOC: "--partition=pci --time=10 --gpus=1" # Project specific variants for matrix PROJECT_MATRIX_VARIANTS: " cxxstd=20 +cuda cuda_arch=90" # Project specific deps for matrix From 0e98d1cfd5ecde0766e84d80521820a24a0b25a9 Mon Sep 17 00:00:00 2001 From: Alan Dayton <6393677+adayton1@users.noreply.github.com> Date: Wed, 1 Jul 2026 08:35:46 -0700 Subject: [PATCH 17/31] Fix conversion errors (#380) --- src/care/KeyValueSorter_impl.h | 4 ++-- src/care/host_device_ptr.h | 5 +++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/care/KeyValueSorter_impl.h b/src/care/KeyValueSorter_impl.h index 7b324bcc..b9039bdf 100644 --- a/src/care/KeyValueSorter_impl.h +++ b/src/care/KeyValueSorter_impl.h @@ -461,8 +461,8 @@ CARE_INLINE void IntersectKeyValueSorters(RAJADeviceExec exec, largerMatches = matches1; } - host_device_ptr searches{smaller+1}; - host_device_ptr matched{smaller+1}; + host_device_ptr searches(smaller+1); + host_device_ptr matched(smaller+1); CARE_STREAM_LOOP(i, 0, smaller+1) { if (i == smaller) { searches[i] = -1; diff --git a/src/care/host_device_ptr.h b/src/care/host_device_ptr.h index 863a7f45..7459c13a 100644 --- a/src/care/host_device_ptr.h +++ b/src/care/host_device_ptr.h @@ -97,6 +97,11 @@ namespace care { /// CARE_HOST_DEVICE host_device_ptr(std::nullptr_t from) noexcept : MA (from) {} + /// + /// Construct from a size + /// + CARE_HOST_DEVICE explicit host_device_ptr(size_t count) noexcept : MA (count) {} + /// /// @author Peter Robinson /// From 5ce035edc18f025251d96e1a8cbd5ca8eb455dde Mon Sep 17 00:00:00 2001 From: robinson96 Date: Thu, 9 Jul 2026 09:34:16 -0700 Subject: [PATCH 18/31] Bugfix/probinso/care nvcc warnings (#381) * Address nvcc build warnings by marking default constructor of KeyValueSorter HOST_DEVICE. --- src/care/KeyValueSorter_decl.h | 2 +- src/care/host_device_map.h | 4 +- test/CMakeLists.txt | 13 +++++ test/TestHostDeviceMap.cpp | 95 ++++++++++++++++++++++++++++++++++ 4 files changed, 112 insertions(+), 2 deletions(-) create mode 100644 test/TestHostDeviceMap.cpp diff --git a/src/care/KeyValueSorter_decl.h b/src/care/KeyValueSorter_decl.h index 95347c08..8803826e 100644 --- a/src/care/KeyValueSorter_decl.h +++ b/src/care/KeyValueSorter_decl.h @@ -135,7 +135,7 @@ class CARE_DLL_API KeyValueSorter { /// @brief Default constructor /// @return a KeyValueSorter instance /////////////////////////////////////////////////////////////////////////// - KeyValueSorter() {} + CARE_HOST_DEVICE KeyValueSorter() noexcept {} /////////////////////////////////////////////////////////////////////////// /// @author Peter Robinson, Alan Dayton diff --git a/src/care/host_device_map.h b/src/care/host_device_map.h index 4d13da6a..3b5e1220 100644 --- a/src/care/host_device_map.h +++ b/src/care/host_device_map.h @@ -245,7 +245,8 @@ namespace care { } // move constructor - CARE_HOST_DEVICE host_device_map(host_device_map&& other) noexcept { + CARE_HOST_DEVICE host_device_map(host_device_map&& other) noexcept + { m_max_size = other.m_max_size; m_signal = other.m_signal; m_gpu_map = std::move(other.m_gpu_map); @@ -271,6 +272,7 @@ namespace care { inline CARE_HOST_DEVICE void emplace(key_type key, mapped_type val) const { care::local_ptr size_ptr = m_size_ptr; int index = ATOMIC_ADD(size_ptr[0], 1); + // TODO: should this be removed? // commenting out to avoid having printfs compiled into every kernel that uses emplace //if (size_ptr[0] > m_max_size) { // printf("[CARE] Warning: host_device_map exceeds max size %d > %d\n", size_ptr[0], m_max_size); diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index a8cf4861..a70a8efe 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -97,6 +97,19 @@ target_include_directories(TestKeyValueSorter blt_add_test( NAME TestKeyValueSorter COMMAND TestKeyValueSorter ) +blt_add_executable( NAME TestHostDeviceMap + SOURCES TestHostDeviceMap.cpp + DEPENDS_ON ${care_test_dependencies} ) + +target_include_directories(TestHostDeviceMap + PRIVATE ${PROJECT_SOURCE_DIR}/src) + +target_include_directories(TestHostDeviceMap + PRIVATE ${PROJECT_BINARY_DIR}/include) + +blt_add_test( NAME TestHostDeviceMap + COMMAND TestHostDeviceMap ) + if (CARE_ENABLE_MANAGED_PTR) blt_add_executable( NAME TestManagedPtr SOURCES TestManagedPtr.cpp diff --git a/test/TestHostDeviceMap.cpp b/test/TestHostDeviceMap.cpp new file mode 100644 index 00000000..c1e229a3 --- /dev/null +++ b/test/TestHostDeviceMap.cpp @@ -0,0 +1,95 @@ +////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2020-25, Lawrence Livermore National Security, LLC and CARE +// project contributors. See the CARE LICENSE file for details. +// +// SPDX-License-Identifier: BSD-3-Clause +////////////////////////////////////////////////////////////////////////////// + +#include "care/config.h" + +#include "gtest/gtest.h" + +#include "care/DefaultMacros.h" +#include "care/host_device_map.h" +#include "care/host_device_ptr.h" +#include "care/detail/test_utils.h" + +#include + +#if defined(CARE_GPUCC) +GPU_TEST(HostDeviceMap, InsertSortLookup) +{ + init_care_for_testing(); + + constexpr int num_entries = 4; + constexpr int missing_key = 77; + constexpr int miss_signal = -999; + care::host_device_map map(num_entries, miss_signal); + + CARE_STREAM_LOOP(i, 0, num_entries) { + map.emplace((num_entries - 1) - i, 100 + i); + } CARE_STREAM_LOOP_END + + map.sort(); + EXPECT_EQ(map.size(), num_entries); + + care::host_device_ptr values(num_entries + 1, "map_values"); + + CARE_STREAM_LOOP(i, 0, num_entries) { + values[i] = map.at((num_entries - 1) - i); + } CARE_STREAM_LOOP_END + + CARE_STREAM_LOOP(i, num_entries, num_entries + 1) { + values[i] = map.at(missing_key); + } CARE_STREAM_LOOP_END + + EXPECT_EQ(values.pick(0), 100); + EXPECT_EQ(values.pick(1), 101); + EXPECT_EQ(values.pick(2), 102); + EXPECT_EQ(values.pick(3), 103); + EXPECT_EQ(values.pick(4), miss_signal); + + map.free(); +} + +GPU_TEST(HostDeviceMap, VectorDefaultConstruction) +{ + init_care_for_testing(); + + constexpr int num_maps = 2; + constexpr int num_entries = 2; + constexpr int miss_signal = -1; + std::vector> maps(num_maps); + + maps[0] = care::host_device_map(num_entries, miss_signal); + maps[1] = care::host_device_map(num_entries, miss_signal); + + auto map0_insert = maps[0]; + auto map1_insert = maps[1]; + + CARE_STREAM_LOOP(i, 0, num_entries) { + map0_insert.emplace(i, 10 + i); + map1_insert.emplace(10 + i, 20 + i); + } CARE_STREAM_LOOP_END + + maps[0].sort(); + maps[1].sort(); + + const auto map0 = maps[0]; + const auto map1 = maps[1]; + care::host_device_ptr values(2 * num_entries, "vector_map_values"); + + CARE_STREAM_LOOP(i, 0, num_entries) { + values[i] = map0.at(i); + values[num_entries + i] = map1.at(10 + i); + } CARE_STREAM_LOOP_END + + EXPECT_EQ(values.pick(0), 10); + EXPECT_EQ(values.pick(1), 11); + EXPECT_EQ(values.pick(2), 20); + EXPECT_EQ(values.pick(3), 21); + + maps[0].free(); + maps[1].free(); +} +#endif // CARE_GPUCC From 5f9831552fd3c1c0ec08b0dd3e6a4168b2959586 Mon Sep 17 00:00:00 2001 From: robinson96 Date: Fri, 17 Jul 2026 08:46:52 -0700 Subject: [PATCH 19/31] Bugfix in GPU version of KeyValueSorter::sortByKeyThenValue (#383) * fix endpost bug in KVS * gpu smoketests pass clean --- src/care/KeyValueSorter_decl.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/care/KeyValueSorter_decl.h b/src/care/KeyValueSorter_decl.h index 8803826e..f231faf5 100644 --- a/src/care/KeyValueSorter_decl.h +++ b/src/care/KeyValueSorter_decl.h @@ -464,10 +464,10 @@ class CARE_DLL_API KeyValueSorter { auto keys = m_keys; // Use SCAN_LOOP to identify where ranges start - SCAN_LOOP(i, start, start+len-1, idx, count, + SCAN_LOOP(i, start, start+len, idx, count, (i == start) || (keys[i] != keys[i-1])) { rangeStarts[idx] = i; - } SCAN_LOOP_END(len, idx, count) + } SCAN_LOOP_END(start+len, idx, count) // Set the last range end rangeStarts.set(count , start+len); @@ -617,7 +617,7 @@ class CARE_DLL_API KeyValueSorter { // Use exclusive scan to compute output positions host_device_ptr positions(m_len+1); - care::exclusive_scan(RAJADeviceExec{}, isUnique, positions, m_len, 0, false); + care::exclusive_scan(RAJADeviceExec{}, isUnique, positions, m_len + 1, 0, false); // Get the total number of unique elements int newSize = positions.pick(m_len); From 28d543bca7d0cc4a9ad675b40d068dabe993a558 Mon Sep 17 00:00:00 2001 From: robinson96 Date: Fri, 17 Jul 2026 09:05:04 -0700 Subject: [PATCH 20/31] Fix for windows linking issue (#382) --- src/care/KeyValueSorter_decl.h | 6 +++--- src/care/KeyValueSorter_inst.h | 30 ++++++++++++++++-------------- src/care/config.h.in | 4 ++++ 3 files changed, 23 insertions(+), 17 deletions(-) diff --git a/src/care/KeyValueSorter_decl.h b/src/care/KeyValueSorter_decl.h index f231faf5..514ebf34 100644 --- a/src/care/KeyValueSorter_decl.h +++ b/src/care/KeyValueSorter_decl.h @@ -31,7 +31,7 @@ namespace care { /// to make this GPU friendly. /////////////////////////////////////////////////////////////////////////// template -class CARE_DLL_API KeyValueSorter; +class CARE_KEY_VALUE_SORTER_DLL_API KeyValueSorter; /// LocalKeyValueSorter should be used as the type for HOSTDEV functions /// to indicate that the function should only be called in a RAJA context. @@ -127,7 +127,7 @@ size_t eliminateKeyValueDuplicates(host_device_ptr& newKeys, /// arrays to be compatible with sortKeyValueArrays. /////////////////////////////////////////////////////////////////////////// template -class CARE_DLL_API KeyValueSorter { +class CARE_KEY_VALUE_SORTER_DLL_API KeyValueSorter { public: /////////////////////////////////////////////////////////////////////////// @@ -854,7 +854,7 @@ void initializeValueArray(host_device_ptr& values, const host_device_ /// the need for copying the keys and values into separate arrays after the sort. /////////////////////////////////////////////////////////////////////////// template -class CARE_DLL_API KeyValueSorter { +class CARE_KEY_VALUE_SORTER_DLL_API KeyValueSorter { public: /////////////////////////////////////////////////////////////////////////// diff --git a/src/care/KeyValueSorter_inst.h b/src/care/KeyValueSorter_inst.h index 991564a0..4f150268 100644 --- a/src/care/KeyValueSorter_inst.h +++ b/src/care/KeyValueSorter_inst.h @@ -32,30 +32,32 @@ namespace care { - CARE_EXTERN template CARE_DLL_API void setKeyValueArraysFromArray(host_device_ptr<_kv > &, const size_t, const CARE_TEMPLATE_ARRAY_TYPE*); - CARE_EXTERN template CARE_DLL_API void setKeyValueArraysFromManagedArray(host_device_ptr<_kv > &, const size_t, const host_device_ptr&); - CARE_EXTERN template CARE_DLL_API size_t eliminateKeyValueDuplicates(host_device_ptr<_kv > &, const size_t); - CARE_EXTERN template CARE_DLL_API void initializeKeyArray(host_device_ptr&, const host_device_ptr >&, const size_t); - CARE_EXTERN template CARE_DLL_API void initializeValueArray(host_device_ptr&, const host_device_ptr >&, const size_t); + CARE_EXTERN template CARE_KEY_VALUE_SORTER_DLL_API void setKeyValueArraysFromArray(host_device_ptr<_kv > &, const size_t, const CARE_TEMPLATE_ARRAY_TYPE*); + CARE_EXTERN template CARE_KEY_VALUE_SORTER_DLL_API void setKeyValueArraysFromManagedArray(host_device_ptr<_kv > &, const size_t, const host_device_ptr&); + CARE_EXTERN template CARE_KEY_VALUE_SORTER_DLL_API size_t eliminateKeyValueDuplicates(host_device_ptr<_kv > &, const size_t); + CARE_EXTERN template CARE_KEY_VALUE_SORTER_DLL_API void initializeKeyArray(host_device_ptr&, const host_device_ptr >&, const size_t); + CARE_EXTERN template CARE_KEY_VALUE_SORTER_DLL_API void initializeValueArray(host_device_ptr&, const host_device_ptr >&, const size_t); #if !CARE_ENABLE_GPU_SIMULATION_MODE - CARE_EXTERN template class CARE_DLL_API KeyValueSorter; - CARE_EXTERN template CARE_DLL_API void IntersectKeyValueSorters(RAJA::seq_exec, KeyValueSorter, int, KeyValueSorter, int, host_device_ptr &, host_device_ptr &, int &); - CARE_EXTERN template CARE_DLL_API void sortKeyValueArrays(host_device_ptr &, host_device_ptr &, const size_t, const size_t, const bool); + CARE_EXTERN template class CARE_KEY_VALUE_SORTER_DLL_API KeyValueSorter; + CARE_EXTERN template CARE_KEY_VALUE_SORTER_DLL_API void IntersectKeyValueSorters(RAJA::seq_exec, KeyValueSorter, int, KeyValueSorter, int, host_device_ptr &, host_device_ptr &, int &); + CARE_EXTERN template CARE_KEY_VALUE_SORTER_DLL_API void sortKeyValueArrays(host_device_ptr &, host_device_ptr &, const size_t, const size_t, const bool); #endif // !CARE_ENABLE_GPU_SIMULATION_MODE #if defined(CARE_PARALLEL_DEVICE) || CARE_ENABLE_GPU_SIMULATION_MODE - CARE_EXTERN template CARE_DLL_API void sortKeyValueArrays(host_device_ptr &, host_device_ptr &, const size_t, const size_t, const bool); - CARE_EXTERN template CARE_DLL_API void setKeyValueArraysFromArray(host_device_ptr &, host_device_ptr &, const size_t, const CARE_TEMPLATE_ARRAY_TYPE*); - CARE_EXTERN template CARE_DLL_API void setKeyValueArraysFromManagedArray(host_device_ptr &, host_device_ptr &, const size_t, const host_device_ptr&); - CARE_EXTERN template CARE_DLL_API size_t eliminateKeyValueDuplicates(host_device_ptr&, host_device_ptr&, const host_device_ptr&, const host_device_ptr&, const size_t); + CARE_EXTERN template CARE_KEY_VALUE_SORTER_DLL_API void sortKeyValueArrays(host_device_ptr &, host_device_ptr &, const size_t, const size_t, const bool); + CARE_EXTERN template CARE_KEY_VALUE_SORTER_DLL_API void setKeyValueArraysFromArray(host_device_ptr &, host_device_ptr &, const size_t, const CARE_TEMPLATE_ARRAY_TYPE*); + CARE_EXTERN template CARE_KEY_VALUE_SORTER_DLL_API void setKeyValueArraysFromManagedArray(host_device_ptr &, host_device_ptr &, const size_t, const host_device_ptr&); + CARE_EXTERN template CARE_KEY_VALUE_SORTER_DLL_API size_t eliminateKeyValueDuplicates(host_device_ptr&, host_device_ptr&, const host_device_ptr&, const host_device_ptr&, const size_t); - CARE_EXTERN template class CARE_DLL_API KeyValueSorter; + CARE_EXTERN template class CARE_KEY_VALUE_SORTER_DLL_API KeyValueSorter; - CARE_EXTERN template CARE_DLL_API void IntersectKeyValueSorters(RAJADeviceExec, KeyValueSorter, int, KeyValueSorter, int, host_device_ptr &, host_device_ptr &, int &); + CARE_EXTERN template CARE_KEY_VALUE_SORTER_DLL_API void IntersectKeyValueSorters(RAJADeviceExec, KeyValueSorter, int, KeyValueSorter, int, host_device_ptr &, host_device_ptr &, int &); + + CARE_EXTERN template CARE_KEY_VALUE_SORTER_DLL_API void IntersectKeyValueSorters(RAJADeviceExec, KeyValueSorter, size_t, KeyValueSorter, size_t, host_device_ptr &, host_device_ptr&, size_t&); #endif // defined(CARE_PARALLEL_DEVICE) || CARE_ENABLE_GPU_SIMULATION_MODE diff --git a/src/care/config.h.in b/src/care/config.h.in index 1105eb48..f64888b7 100644 --- a/src/care/config.h.in +++ b/src/care/config.h.in @@ -47,6 +47,10 @@ #define CARE_DLL_API #endif // defined(_WIN32) && !defined(CARESTATICLIB) +#ifndef CARE_KEY_VALUE_SORTER_DLL_API +#define CARE_KEY_VALUE_SORTER_DLL_API CARE_DLL_API +#endif + #define CARE_STRINGIFY(x) CARE_DO_STRINGIFY(x) #define CARE_DO_STRINGIFY(x) #x #ifdef _WIN32 From 015a1f154177327515258a8fa2e9291db8f8d22f Mon Sep 17 00:00:00 2001 From: Adrien Bernede <51493078+adrienbernede@users.noreply.github.com> Date: Fri, 17 Jul 2026 19:20:58 +0200 Subject: [PATCH 21/31] Update to RSC 2026.6.0 release (#379) --- scripts/radiuss-spack-configs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/radiuss-spack-configs b/scripts/radiuss-spack-configs index ebe485fe..5a73b91c 160000 --- a/scripts/radiuss-spack-configs +++ b/scripts/radiuss-spack-configs @@ -1 +1 @@ -Subproject commit ebe485fe17164623df7ec79df1e0371be536f343 +Subproject commit 5a73b91c06724ff089c13db1a3d197b5ea9d5c0c From acfb555070b5be479ba14b2ca079be4e89d4ce46 Mon Sep 17 00:00:00 2001 From: Alan Dayton <6393677+adayton1@users.noreply.github.com> Date: Tue, 21 Jul 2026 16:19:19 -0700 Subject: [PATCH 22/31] Add support for Camp v2026.07.0 (#384) --- src/care/LoopFuser.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/care/LoopFuser.cpp b/src/care/LoopFuser.cpp index aaf10a3c..45ffad86 100644 --- a/src/care/LoopFuser.cpp +++ b/src/care/LoopFuser.cpp @@ -170,7 +170,11 @@ template void LoopFuser::waitIfNeeded() { if (m_wait_needed) { // ensure asynchronous launch from previous flush is done +#if CAMP_VERSION_MAJOR >= 2026 + m_async_resource.wait_for(m_wait_for_event); +#else m_async_resource.wait_for(&m_wait_for_event); +#endif // clear out our worksites now that their work is done m_aw.clear(); m_cw.clear(); From 81c7c6ecebe92d5d58f7f8788919d50f4ca6612c Mon Sep 17 00:00:00 2001 From: Alan Dayton <6393677+adayton1@users.noreply.github.com> Date: Wed, 22 Jul 2026 09:19:34 -0700 Subject: [PATCH 23/31] Update to BLT v0.7.2 (#385) --- blt | 2 +- tpl/versions.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/blt b/blt index e783e30f..f08f95e0 160000 --- a/blt +++ b/blt @@ -1 +1 @@ -Subproject commit e783e30f2823ee1a208f7f90741b41c1f5a08063 +Subproject commit f08f95e0f49b1d53db8be2dd577d1cdbfd9e9f90 diff --git a/tpl/versions.txt b/tpl/versions.txt index 352cb5b7..59698bb5 100644 --- a/tpl/versions.txt +++ b/tpl/versions.txt @@ -5,7 +5,7 @@ # SPDX-License-Identifier: BSD-3-Clause ############################################################################## -BLT: 0.7.1 +BLT: 0.7.2 CHAI: v2025.12.0 RAJA: v2025.12.0 Umpire: v2025.12.0 From 3168991e4a20c8d4ca36e7e96b577fc1d21fe689 Mon Sep 17 00:00:00 2001 From: Alan Dayton <6393677+adayton1@users.noreply.github.com> Date: Fri, 24 Jul 2026 10:49:25 -0700 Subject: [PATCH 24/31] Remove unncessary requirement for using the platform default stream (#387) --- src/care/LoopFuser.cpp | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/care/LoopFuser.cpp b/src/care/LoopFuser.cpp index 45ffad86..88c39f4e 100644 --- a/src/care/LoopFuser.cpp +++ b/src/care/LoopFuser.cpp @@ -5,9 +5,6 @@ // SPDX-License-Identifier: BSD-3-Clause ////////////////////////////////////////////////////////////////////////////// -// Loop Fuser uses the CUDA/HIP default stream and wants to enqueue events in the default stream -#define CAMP_USE_PLATFORM_DEFAULT_STREAM 1 - #include "umpire/Allocator.hpp" #include "umpire/TypedAllocator.hpp" From 39e8a8f1c9ff5c24de16f314d02a6872af618058 Mon Sep 17 00:00:00 2001 From: Alan Dayton Date: Fri, 24 Jul 2026 14:28:24 -0700 Subject: [PATCH 25/31] Resolve overload ambiguity --- src/care/host_device_ptr.h | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/care/host_device_ptr.h b/src/care/host_device_ptr.h index 7459c13a..94ff10f2 100644 --- a/src/care/host_device_ptr.h +++ b/src/care/host_device_ptr.h @@ -21,6 +21,7 @@ #include "chai/ManagedArray.hpp" // Std library headers +#include #include @@ -93,9 +94,16 @@ namespace care { /// /// @author Peter Robinson /// - /// nullptr constructor + /// Construct from nullptr /// - CARE_HOST_DEVICE host_device_ptr(std::nullptr_t from) noexcept : MA (from) {} + /// @note The constraint prevents overload ambiguity between this + /// constructor and the size_t constructor when constructing + /// with the integer literal 0. Additionally, the constraint + /// is a workaround for a nvcc bug where overload resolution + /// can incorrectly report an ambiguity between this constructor + /// and the size_t constructor. + /// + CARE_HOST_DEVICE host_device_ptr(std::same_as auto from) noexcept : MA (from) {} /// /// Construct from a size From a59a7158c447ef652e66109bacd62ca228252fca Mon Sep 17 00:00:00 2001 From: Alan Dayton Date: Fri, 24 Jul 2026 14:29:03 -0700 Subject: [PATCH 26/31] Revert "Resolve overload ambiguity" This reverts commit 39e8a8f1c9ff5c24de16f314d02a6872af618058. --- src/care/host_device_ptr.h | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/src/care/host_device_ptr.h b/src/care/host_device_ptr.h index 94ff10f2..7459c13a 100644 --- a/src/care/host_device_ptr.h +++ b/src/care/host_device_ptr.h @@ -21,7 +21,6 @@ #include "chai/ManagedArray.hpp" // Std library headers -#include #include @@ -94,16 +93,9 @@ namespace care { /// /// @author Peter Robinson /// - /// Construct from nullptr + /// nullptr constructor /// - /// @note The constraint prevents overload ambiguity between this - /// constructor and the size_t constructor when constructing - /// with the integer literal 0. Additionally, the constraint - /// is a workaround for a nvcc bug where overload resolution - /// can incorrectly report an ambiguity between this constructor - /// and the size_t constructor. - /// - CARE_HOST_DEVICE host_device_ptr(std::same_as auto from) noexcept : MA (from) {} + CARE_HOST_DEVICE host_device_ptr(std::nullptr_t from) noexcept : MA (from) {} /// /// Construct from a size From 2d1d31b8792b9bc452f5a972986faa87306e82b4 Mon Sep 17 00:00:00 2001 From: Alan Dayton <6393677+adayton1@users.noreply.github.com> Date: Fri, 24 Jul 2026 15:37:32 -0700 Subject: [PATCH 27/31] Fix overload ambiguity errors (#388) --- src/care/host_device_ptr.h | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/care/host_device_ptr.h b/src/care/host_device_ptr.h index 7459c13a..94ff10f2 100644 --- a/src/care/host_device_ptr.h +++ b/src/care/host_device_ptr.h @@ -21,6 +21,7 @@ #include "chai/ManagedArray.hpp" // Std library headers +#include #include @@ -93,9 +94,16 @@ namespace care { /// /// @author Peter Robinson /// - /// nullptr constructor + /// Construct from nullptr /// - CARE_HOST_DEVICE host_device_ptr(std::nullptr_t from) noexcept : MA (from) {} + /// @note The constraint prevents overload ambiguity between this + /// constructor and the size_t constructor when constructing + /// with the integer literal 0. Additionally, the constraint + /// is a workaround for a nvcc bug where overload resolution + /// can incorrectly report an ambiguity between this constructor + /// and the size_t constructor. + /// + CARE_HOST_DEVICE host_device_ptr(std::same_as auto from) noexcept : MA (from) {} /// /// Construct from a size From 93f493384c73d719e7985f89c75469c7ed3d253a Mon Sep 17 00:00:00 2001 From: Alan Dayton <6393677+adayton1@users.noreply.github.com> Date: Wed, 29 Jul 2026 07:29:59 -0700 Subject: [PATCH 28/31] Expose new atomics from raja (#389) --- src/care/atomic.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/care/atomic.h b/src/care/atomic.h index 3605c4cd..822e4711 100644 --- a/src/care/atomic.h +++ b/src/care/atomic.h @@ -24,5 +24,9 @@ using RAJAAtomic = RAJA::auto_atomic; #define ATOMIC_STORE(ref, val) RAJA::atomicStore(&(ref), val) #define ATOMIC_EXCHANGE(ref, val) RAJA::atomicExchange(&(ref), val) #define ATOMIC_CAS(ref, compare, val) RAJA::atomicCAS(&(ref), compare, val) +#if RAJA_VERSION_MAJOR >= 2026 +#define ATOMIC_GENERIC(ref, op) RAJA::atomicGeneric(&(ref), op) +#define ATOMIC_GENERIC_WITH_STOP(ref, op, stop) RAJA::atomicGeneric(&(ref), op, stop) +#endif #endif // CARE_ATOMIC_H From e1a667f4fe34b02b6ec6631d6067df2beb12b8d2 Mon Sep 17 00:00:00 2001 From: Alan Dayton Date: Tue, 11 Aug 2026 10:01:41 -0700 Subject: [PATCH 29/31] Prepare for v2026.07.0 release --- CMakeLists.txt | 2 +- RELEASE_NOTES.md | 23 +++++++++++++++++++++-- docs/sphinx/conf.py | 4 ++-- tpl/chai | 2 +- tpl/raja | 2 +- tpl/umpire | 2 +- tpl/versions.txt | 6 +++--- 7 files changed, 30 insertions(+), 11 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5b284eb3..77fb6d18 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,7 +18,7 @@ cmake_policy(SET CMP0096 OLD) # Required when building Umpire submodule project(CARE LANGUAGES C CXX - VERSION 0.15.3) + VERSION 2026.07.0) include(${PROJECT_SOURCE_DIR}/cmake/Setup.cmake) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 93139336..6e55045b 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -12,12 +12,31 @@ in this file. The format of this file is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/). -## [Unreleased] - Release date yyyy-mm-dd +## [Version 2026.07.0] - Release date 2026-08-11 + +### Added +- Add ATOMIC\_GENERIC and ATOMIC\_GENERIC\_WITH\_STOP for new generic atomic implementations in RAJA v2026.07.0. +- Added `sortKeyValueArrays` for simultaneously sorting two arrays. +- Added additional instantiations when configured with explicit template instantiations. ### Changed +- Switched to date-based versioning scheme. - C++20 or higher is required. -- CUDA 12 or higher is required. - ROCm 6 or higher is required. +- CUDA 12 or higher is required. +- Updated BLT to v0.7.2. +- Updated CHAI to v2026.07.0. +- Updated RAJA to v2026.07.0. +- Updated Umpire to v2026.07.1. + +### Fixed +- Added explicit `host_device_ptr` constructor for constructing with a size. Previously, an unexpected chain of implicit conversions would happen. +- Fixed bugs in GPU implementation of `KeyValueSorter::sortByKeyThenValue` +- Fixed inconsistency between sequential and parallel implementations of `IntersectKeyValueSorters`. +- Fixed some compiler warnings. + +### Removed +- Removed unnecessary dependency on the default GPU stream in the `LoopFuser`. ## [Version 0.15.3] - Release date 2025-12-22 diff --git a/docs/sphinx/conf.py b/docs/sphinx/conf.py index a92a23ba..5ff01eff 100644 --- a/docs/sphinx/conf.py +++ b/docs/sphinx/conf.py @@ -55,9 +55,9 @@ # built documents. # # The short X.Y version. -version = '0.15' +version = '2026.07' # The full version, including alpha/beta/rc tags. -release = '0.15.3' +release = '2026.07.0' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/tpl/chai b/tpl/chai index 26d56467..7ed19adb 160000 --- a/tpl/chai +++ b/tpl/chai @@ -1 +1 @@ -Subproject commit 26d5646707e1848b0524379b12a7716e4a830a27 +Subproject commit 7ed19adb246d6df796434750d2994b84cd8558e7 diff --git a/tpl/raja b/tpl/raja index e827035c..80d218eb 160000 --- a/tpl/raja +++ b/tpl/raja @@ -1 +1 @@ -Subproject commit e827035c630e71a9358e2f21c2f3cf6fd5fb6605 +Subproject commit 80d218eba514a6d51bfd99ab6ebd6fbf83a74ca9 diff --git a/tpl/umpire b/tpl/umpire index 0372fbd6..5639f6c1 160000 --- a/tpl/umpire +++ b/tpl/umpire @@ -1 +1 @@ -Subproject commit 0372fbd6e1f17d7e6dd72693f8b857f3ec7559e9 +Subproject commit 5639f6c1fd4ca1fed7f0f1f48dcbbfbd00899484 diff --git a/tpl/versions.txt b/tpl/versions.txt index 59698bb5..f9613d8b 100644 --- a/tpl/versions.txt +++ b/tpl/versions.txt @@ -6,6 +6,6 @@ ############################################################################## BLT: 0.7.2 -CHAI: v2025.12.0 -RAJA: v2025.12.0 -Umpire: v2025.12.0 +CHAI: v2026.07.0 +RAJA: v2026.07.0 +Umpire: v2026.07.1 From 6a7e18afb8c15c1d51bafd8c635b6f31f586aef2 Mon Sep 17 00:00:00 2001 From: Alan Dayton Date: Tue, 11 Aug 2026 10:18:17 -0700 Subject: [PATCH 30/31] Update CI to use CMake 3.24 --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6df7e370..852c023e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -24,9 +24,9 @@ jobs: - name: Make build directory run: mkdir build - name: Set up CMake - uses: jwlawson/actions-setup-cmake@v1.13.1 + uses: jwlawson/actions-setup-cmake@v2 with: - cmake-version: '3.23.x' + cmake-version: '3.24.x' - name: Run CMake run: cmake ../ -DCMAKE_BUILD_TYPE=Debug -DCARE_ENABLE_SUBMODULE_TESTS=Off -DCARE_ENABLE_SUBMODULE_BENCHMARKS=Off -DCARE_ENABLE_SUBMODULE_EXAMPLES=Off -DCARE_ENABLE_SUBMODULE_EXERCISES=Off -DCARE_ENABLE_SUBMODULE_DOCS=Off working-directory: build From 0c229c1501aace77354349a7b2dccc202842cd72 Mon Sep 17 00:00:00 2001 From: Alan Dayton Date: Tue, 11 Aug 2026 10:21:24 -0700 Subject: [PATCH 31/31] Require CMake 3.24 --- CMakeLists.txt | 2 +- RELEASE_NOTES.md | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 77fb6d18..5e9c3805 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,7 +9,7 @@ # Set up CMake ########################################################################## -cmake_minimum_required(VERSION 3.23) +cmake_minimum_required(VERSION 3.24) cmake_policy(SET CMP0096 OLD) # Required when building Umpire submodule ########################################################################## diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 6e55045b..4440b34d 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -24,6 +24,7 @@ The format of this file is based on [Keep a Changelog](http://keepachangelog.com - C++20 or higher is required. - ROCm 6 or higher is required. - CUDA 12 or higher is required. +- CMake 3.24 or higher is required. - Updated BLT to v0.7.2. - Updated CHAI to v2026.07.0. - Updated RAJA to v2026.07.0.