Skip to content

Releases: llnl/CHAI

v2025.12.0

22 Dec 22:47
26d5646

Choose a tag to compare

Fixed

  • Fixed compiler error related to using a lambda as a default function argument.
  • Fixed thin version of a ManagedArray constructor.

Changed

  • Updated Umpire to v2025.12.0.
  • Updated RAJA to v2025.12.0.

Added

  • Added CHAI_VERSION_* macros to chai/config.hpp.
  • Added overload of chai::unpack for ManagedArray<managed_ptr<T>> for use in calls to chai::make_managed.

Full Changelog: v2025.09.1...v2025.12.0

Please download the chai-v2025.12.0.tar.gz file below. The others, generated by GitHub, may not work for you due to CHAI's dependencies on git submodules.

v2025.09.1

15 Sep 21:39
51e66b8

Choose a tag to compare

Fixed

  • Fixed build error when CHAI_ENABLE_EXPERIMENTAL was set to ON.

Changed

  • Turned off CHAI_ENABLE_EXPERIMENTAL by default.

Full Changelog: v2025.09.0...v2025.09.1

Please download the chai-2025.09.1.tar.gz file below. The others, generated by GitHub, may not work for you due to CHAI's dependencies on git submodules.

v2025.09.0

12 Sep 19:47
352ae30

Choose a tag to compare

Fixed

  • Improved support for non-trivial element types in ManagedArray.

Changed

  • CHAI now requires C++17 as the minimum C++ standard.
  • CHAI now requires CUDA 11 as the minimum CUDA version.
  • Updated BLT to v0.7.1.
  • Updated Umpire to v2025.09.0.
  • Updated RAJA to v2025.09.0.

Experimental

  • Added a ManagedSharedPtr class similar to managed_ptr that acts like std::shared_ptr on the host and a view on the device.
  • Added CHAI_ENABLE_EXPERIMENTAL build option for experimental features. Defaults to ON.

Full Changelog: v2025.03.1...v2025.09.0

Please download the chai-2025.09.0.tar.gz file below. The others, generated by GitHub, may not work for you due to CHAI's dependencies on git submodules.

v2025.03.1

23 Jun 22:54
2e83ca8

Choose a tag to compare

Changed

  • Updated to RAJA v2025.03.2
  • Use memcpy instead of umpire copy for CPU-only thin managed array realloc (allows tracking to be disabled).

Fixed

  • Fixed ManagedArray::set when CHAI_DISABLE_RM=OFF and the initial space is not CPU.
  • Fixed memory leaks in ArrayManager.

Full Changelog: v2025.03.0...v2025.03.1

Please download the chai-2025.03.1.tar.gz file below. The others, generated by GitHub, may not work for you due to CHAI's dependencies on git submodules.

v2025.03.0

20 Mar 22:59
79f6414

Choose a tag to compare

Added

  • Added a ManagedArray::clone function and deprecated chai::deepCopy.

Fixed

  • Fixes reallocate when using pinned or unified memory.
  • Adds missing synchronize when using pinned memory.
  • Fixes possible hangs when evicting data.
  • Now respects allocators passed to ManagedArray constructors when CHAI_DISABLE_RM=TRUE.

Removed

  • Removes deprecated ManagedArray::getPointer method. Use ManagedArray::data instead.
  • Removes ManagedArray::incr and ManagedArray::decr methods. Use ManagedArray::pick and ManagedArray::set instead.
  • Removes optional support for implicitly casting between raw pointers and ManagedArrays (CHAI_ENABLE_IMPLICIT_CONVERSIONS). Use makeManagedArray and ManagedArray::data to perform explicit conversions instead.
  • Removes equality and inequality comparison operators between ManagedArrays and raw pointers.
  • Removes make_managed_from_factory function for creating managed_ptr objects from factory functions. This change will lead to safer adoption of allocators during construction and destruction of managed_ptr objects.
  • Removes CHAI_ENABLE_PICK CMake option. ManagedArray::pick and ManagedArray::set will always be available.

Updated

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

Full Changelog: v2024.07.0...v2025.03.0

Note: The tarball and v2025.03.0 tag were updated on Mar 20, 2025 at ~4 pm. If someone happened to obtain a version before then, they should grab a new version (which might necessitate deleting the v2025.03.0 tag locally in CHAI repositories and pulling the tag down again).

v2024.07.0

26 Jul 19:52
df7741f

Choose a tag to compare

Changed

  • Updated to Umpire v2024.07.0 and RAJA v2024.07.0
  • Increased minimum CMake version required to 3.23
  • Turns off benchmarks and examples by default
  • Enable RAJA plugin by default

Full Changelog: v2024.02.2...v2024.07.0

v2024.02.2

26 Jun 22:35
5ba0944

Choose a tag to compare

What's Changed

  • Replaced RAJA::loop_exec with RAJA::seq_exec
  • Updated to RAJA v2024.02.2
  • Improved debugging with GPU simulation mode

Full Changelog: v2024.02.1...v2024.02.2

v2024.02.1

30 Apr 14:56
7597134

Choose a tag to compare

What's Changed

  • Update BLT to v0.6.2
  • Update Umpire and RAJA to v2024.02.1
  • CI updates

v2024.02.0

05 Mar 17:44
31773a2

Choose a tag to compare

Added

  • Support for APUs with a single memory space. To use, configure with -DCHAI_DISABLE_RM=ON -DCHAI_GPU_THIN_ALLOCATE=ON.

Changed

  • Moved installed CMake targets from share/chai/cmake to lib/cmake/chai to be consistent with other libraries in the RAJA Portability Suite
  • Improved dependency handling during the build of CHAI and when it is imported into another library/application
  • Removed ArrayManager::enableDeviceSynchronization and ArrayManager::disableDeviceSynchronization. Instead, use the environment variables for device synchronization after all kernels (e.g. CUDA_LAUNCH_BLOCKING or HIP_LAUNCH_BLOCKING)

Fixed

  • Use free instead of realloc when the size is 0 (fixes a warning from valgrind)

v2023.06.0

25 Jul 17:55
6fe3470

Choose a tag to compare

Release v2023.06.0 (#232)