Releases: llnl/CARE
Releases · llnl/CARE
v0.15.3
Added
- Added support to
care::KeyValueSorterfor sorting by both key and value.
Changed
- Algorithms returning a sum were changed to allow returning a different type to avoid integer overflow.
- Extended
care::CompressArrayto allow providing a list of indices to keep or to remove.
Fixed
- Removed template arguments when declaring special member functions of a template class. They are unnecessary and even disallowed by some compilers.
- Fixed several chunked loop macros.
- Fixed comparison function passed to cub/hipcub.
Full Changelog: v0.15.2...v0.15.3
Please download the care-v0.15.3.tar.gz file below. The others, generated by GitHub, may not work for you due to CARE's dependencies on git submodules.
v0.15.2
Added
- Added parameter for creating Umpire pools with a specified alignment for allocations.
Changed
- Minimum C++ standard is now set to c++17.
- CUB submodule has been removed. CARE now defaults to the CUB shipped with the CUDA toolkit.
A different CUB install can be used by specifyingCUB_DIR. - Updated to BLT v0.7.1
- Updated to Umpire v2025.09.0
- Updated to RAJA v2025.09.0
- Updated to CHAI v2025.09.1
Fixed
- Fixed build errors when CARE is compiled with C++20.
- Updated to nvtx3 to support CUDA 12.9 (nvtx3 still supports back to CUDA 10.0).
- Fixed build errors when CARE is configured with ENABLE_OPENMP or CARE_ENABLE_GPU_SIMULATION_MODE.
- Fixed some build warnings.
Full Changelog: v0.15.1...v0.15.2
Please download the care-0.15.2.tar.gz file below. The others, generated by GitHub, may not work for you due to CARE's dependencies on git submodules.
v0.15.1
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
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
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
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
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
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
v0.13.0
[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