Skip to content

Releases: LLNL/CARE

v0.15.1

07 Apr 16:33
f198c8b
Compare
Choose a tag to compare

Release date 2025-04-07

Added

  • Added support for RAJA MultiReducers (Min/Max/Sum).

Changed

  • Changed RAJA reduce policy for CUDA to RAJA::cuda_reduce_atomic.
  • Rearranged template parameters of care::sortKeyValueArrays (used by care::KeyValueSorter) for ease of use

Fixed

  • Only enable calls to cub::DeviceMergeSort when it is available (used by care::sortArray and care::KeyValueSorter when the type is not arithmetic)
  • Fixes inputs to [hip]cub::DeviceMergeSort::StableSortKeys (used by care::sortArray when the type is not arithmetic)
  • Avoids hardcoding one overload of care::sortArray to use [hip]cub::DeviceRadixSort
  • Fixes a case where care::sort_uniq should not modify the input array
  • Miscellaneous fixes for care::host_device_map
  • Clarified documentation for care::BinarySearch
  • Added missing attributes to functions for building as a shared library on Windows
  • Moved helper function to be accessible when the loop fuser is disabled

Removed

  • Removed dead ENABLE_PICK option (corresponding option has been removed from CHAI)

Full Changelog: v0.15.0...v0.15.1

v0.15.0

20 Mar 23:49
aff9eea
Compare
Choose a tag to compare

Release date 2025-03-20

Added

  • Added CARE_DEEP_COPY_RAW_PTR configuration option.
  • Added ATOMIC_SUB, ATOMIC_LOAD, ATOMIC_STORE, ATOMIC_EXCHANGE, and ATOMIC_CAS macros.

Removed

  • Removed Accessor template parameter from host_device_ptr.
  • Removed NoOpAccessor and RaceConditionAccessor. It is recommended to use ThreadSanitizer (TSAN) instead to locate race conditions.
  • Removed CARE_ENABLE_RACE_DETECTION configuration option.
  • Removed implicit conversions between raw pointers and host_device_ptrs/host_ptrs and the corresponding CARE_ENABLE_IMPLICIT_CONVERSIONS configuration option.
  • Removed make_managed_from_factory wrapper function

Changed

  • Renamed host_device_ptr::getPointer to host_device_ptr::data.

Fixed

  • Replaced calls to chai::ManagedArray::getPointer (previously deprecated and now removed) with calls to chai::ManagedArray::data.

Updated

  • Updated to BLT v0.7.0
  • Updated to Umpire v2025.03.0
  • Updated to RAJA v2025.03.0
  • Updated to CHAI v2025.03.0

Full Changelog: v0.14.1...v0.15.0

v0.14.1

16 Oct 21:03
110c6e5
Compare
Choose a tag to compare

Release date 2024-10-15

Fixed

  • Explicitly define host_device_map constructors since some versions of CUDA do not properly generate them.

Full Changelog: v0.14.0...v0.14.1

v0.14.0

11 Sep 16:07
2784188
Compare
Choose a tag to compare

Release date 2024-09-11

Added

  • Added default and move constructors and move assignment operator to host_device_map

Changed

  • Default policies concerning reductions were updated to RAJA's newly recommended policies.
  • Now using '<' in care::BinarySearch.

Fixed

  • Removed C++17 features so that CARE is C++14 compliant. The next release of CARE will require C++17.
  • LLNL_GlobalID is no longer required downstream from CARE if it is disabled in CARE.
  • Const correctness fix in uniqArray API.
  • Sequential IntersectArrays now allocates data in a way that is consistent with the memory model CHAI uses for Hip GPU builds.

Full Changelog: v0.13.3...v0.14.0

v0.13.3

31 Jul 18:22
9385369
Compare
Choose a tag to compare

Release date 2024-07-31

Fixed

  • Replaced loop_work alias with seq_work (loop_work was removed in RAJA v2024.02.2)
  • Fixed CHUNKED loop macro implementations

Full Changelog: v0.13.2...v0.13.3

v0.13.2

29 Jul 18:56
b25dcd2
Compare
Choose a tag to compare

Release date 2024-07-29

Changed

  • Updated to Umpire/RAJA/CHAI v2024.07.0
  • Updated minimum required CMake to 3.23

Full Changelog: v0.13.1...v0.13.2

v0.13.1

27 Jun 18:13
0fd0d47
Compare
Choose a tag to compare

What's Changed

  • Update to CHAI v2024.02.2

Full Changelog: v0.13.0...v0.13.1

v0.13.0

13 Jun 20:41
2b288e2
Compare
Choose a tag to compare

[Version 0.13.0] - Release date 2024-06-11

Added

  • Alias for execution policy specifically for kernels with reductions
  • Chunked loop policies

Full Changelog: v0.12.0...v0.13.0

v0.12.0

11 Mar 18:36
a997808
Compare
Choose a tag to compare

Please download the care-0.12.0.tar.gz tarball below, which includes all of the submodules.

[Version 0.12.0] - Release date 2024-03-11

Corresponds to v2024.02.0 releases of Umpire, RAJA, and CHAI

Added

  • Support for APUs with a single memory space.
  • ArrayDup overloads
  • LocalSortPairs for a thread local simultaneous sort
  • Better support for unsigned and 64 bit integers (explicit instantiations of some algorithms, a SCAN_LOOP_64 macro)

Removed

  • Camp submodule
  • radiuss-ci submodule
  • The chai_force_sync function used for debugging (the corresponding functionality in CHAI has also been removed)

Changed

  • When building with submodules, they now need to be initialized recursively
  • When building with external libraries, specify the install location with -D<uppercase name>_DIR (previously, the lowercase version was also accepted)
  • Only tests are built by default now. Docs, examples, and benchmarks must be enabled explicitly.
  • The CARE_ENABLE_* options for tests, docs, examples, and benchmarks now CMake dependent options based on the corresponding ENABLE_* options
  • care-config.cmake has been moved to ${INSTALL_PREFIX}/lib/cmake/care and now properly exports CMake targets for care

Fixed

  • Eliminated some unnecessary data motion for GPU builds
  • Several fixes were added for shared library builds on Windows
  • Some warnings have been fixed

v0.11.1

01 Aug 20:59
5728628
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.11.0...v0.11.1