From d04b26bbd09d4e8e629adc4fd58e53430847430d Mon Sep 17 00:00:00 2001 From: Alan Dayton Date: Tue, 25 Aug 2026 14:48:09 -0700 Subject: [PATCH 1/2] Add host_device_ptr slice method --- src/care/host_device_ptr.h | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/src/care/host_device_ptr.h b/src/care/host_device_ptr.h index 94ff10f2..d47ad4ab 100644 --- a/src/care/host_device_ptr.h +++ b/src/care/host_device_ptr.h @@ -211,6 +211,11 @@ namespace care { return *reinterpret_cast const *> (this); } + /// + /// Copy assignment operator + /// + host_device_ptr& operator=(const host_device_ptr& other) = default; + #if defined(CARE_ENABLE_BOUNDS_CHECKING) template inline void boundsCheck(const Index i) const { @@ -231,11 +236,6 @@ namespace care { } #endif - /// - /// Copy assignment operator - /// - host_device_ptr& operator=(const host_device_ptr& other) = default; - /// /// @author Peter Robinson /// @@ -512,6 +512,18 @@ namespace care { CARE_HOST void move(ExecutionSpace space) { MA::move(chai::ExecutionSpace((int) space)); } + + /// + /// Create a shallow slice of this array. + /// + /// @param begin The starting element of the slice. + /// @param elems The number of elements in the slice. + /// @return A host_device_ptr referring to the sliced range. + /// + CARE_HOST_DEVICE host_device_ptr slice(size_t begin, + size_t elems = (size_t)-1) const { + return host_device_ptr(MA::slice(begin, elems)); + } }; // class host_device_ptr } // namespace care From 363bc3dc9047258682416350071d88f973e0cc1d Mon Sep 17 00:00:00 2001 From: Alan Dayton Date: Tue, 25 Aug 2026 15:18:41 -0700 Subject: [PATCH 2/2] Update release notes --- RELEASE_NOTES.md | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 4440b34d..76e044a0 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -12,10 +12,21 @@ 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 + +### Added +- Added `host_device_ptr::slice` function to make passing slices easier to algorithms. + +### Changed +- Inlined many device APIs to reduce the need for relocatable device code, though the LoopFuser still requires it. + +### Fixed +- Fixed macro name conflict in tests. + ## [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. +- 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.