Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 12 additions & 1 deletion RELEASE_NOTES.md
Original file line number Diff line number Diff line change
Expand Up @@ -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<T>::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.

Expand Down
22 changes: 17 additions & 5 deletions src/care/host_device_ptr.h
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,11 @@ namespace care {
return *reinterpret_cast<host_device_ptr<const T> const *> (this);
}

///
/// Copy assignment operator
///
host_device_ptr& operator=(const host_device_ptr& other) = default;

#if defined(CARE_ENABLE_BOUNDS_CHECKING)
template <class Index>
inline void boundsCheck(const Index i) const {
Expand All @@ -231,11 +236,6 @@ namespace care {
}
#endif

///
/// Copy assignment operator
///
host_device_ptr& operator=(const host_device_ptr& other) = default;

///
/// @author Peter Robinson
///
Expand Down Expand Up @@ -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<T> slice(size_t begin,
size_t elems = (size_t)-1) const {
return host_device_ptr<T>(MA::slice(begin, elems));
}
}; // class host_device_ptr

} // namespace care
Expand Down
Loading