Repository navigation
Refactor Thrust destroy_range and device_[new|delete|free] - #6134
Merged
Merged
Conversation
bernhardmgruber
force-pushed
the
device_delete
branch
from
October 6, 2025 11:57
8f69231 to
a206916
Compare
1 task done
This comment has been minimized.
This comment has been minimized.
miscco
approved these changes
Oct 12, 2025
miscco
left a comment
Contributor
There was a problem hiding this comment.
We should definitely consolidate with the std conformant parts in libcu++
bernhardmgruber
force-pushed
the
device_delete
branch
from
October 13, 2025 06:56
a9a2ea9 to
b60f007
Compare
This comment has been minimized.
This comment has been minimized.
bernhardmgruber
enabled auto-merge (squash)
October 13, 2025 10:57
elstehle
approved these changes
Oct 13, 2025
miscco
approved these changes
Oct 13, 2025
Contributor
🥳 CI Workflow Results🟩 Finished in 6h 19m: Pass: 100%/69 | Total: 2d 23h | Max: 2h 52m | Hits: 60%/116284See results here. |
Naraenda
pushed a commit
to ROCm/rocm-libraries
that referenced
this pull request
Oct 26, 2026
…ge` and `device_[new|delete|free]` (NVIDIA/cccl#6134) Upstream: NVIDIA/cccl@700f2a8 Took upstream refactor: destroy_range.inl, device_delete.inl, device_free.inl, device_new.inl folded into their headers (git rm of the .inl files); destroy_range now uses if constexpr over has_effectful_member_destroy (variable template, std::allocator specialization false) instead of enable_if cases. Local spellings kept (THRUST_HOST_DEVICE, THRUST_EXEC_CHECK_DISABLE, _THRUST_STD::is_trivially_destructible_v); destroy_range.h keeps <thrust/detail/memory_wrapper.h> (see ab99d87e866) and the !_THRUST_HAS_DEVICE_SYSTEM_STD <type_traits> fallback. HIP: no change (generic headers). test/: no counterpart. testing/: no counterpart. Not compiled, tests not run (per human) Co-Authored-By: Claude <noreply@anthropic.com>
amd-jmahovsky
added a commit
to ROCm/rocm-libraries
that referenced
this pull request
Oct 28, 2026
…ocator <type_traits> fallbacks Related upstream commit: 700f2a867a7 Refactor Thrust `destroy_range` and `device_[new|delete|free]` (NVIDIA/cccl#6134) Related upstream commit: fbb9479172c Refactor Thrust allocator internals (NVIDIA/cccl#6136) Related local port commits: 63becda, 17ee233 libhipcxx is now mandatory, so remove the `#if !_THRUST_HAS_DEVICE_SYSTEM_STD` <type_traits> fallbacks from detail/allocator/{destroy_range,value_initialize_range,fill_construct_range, copy_construct_range}.h, detail/temporary_array.h and detail/execute_with_allocator.h, and add the upstream granular _THRUST_STD_INCLUDE headers (__iterator/advance.h, __iterator/distance.h, __type_traits/is_convertible.h, __type_traits/is_trivially_copy_constructible.h, __type_traits/type_identity.h, __utility/pair.h). thrust/detail/memory_wrapper.h stays: <cuda/std/__cccl/memory_wrapper.h> is not in libhipcxx. Not compiled, tests not run (per human) Co-Authored-By: Claude <noreply@anthropic.com>
Naraenda
pushed a commit
to ROCm/rocm-libraries
that referenced
this pull request
Oct 29, 2026
…ge` and `device_[new|delete|free]` (NVIDIA/cccl#6134) Upstream: NVIDIA/cccl@700f2a8 Took upstream refactor: destroy_range.inl, device_delete.inl, device_free.inl, device_new.inl folded into their headers (git rm of the .inl files); destroy_range now uses if constexpr over has_effectful_member_destroy (variable template, std::allocator specialization false) instead of enable_if cases. Local spellings kept (THRUST_HOST_DEVICE, THRUST_EXEC_CHECK_DISABLE, _THRUST_STD::is_trivially_destructible_v); destroy_range.h keeps <thrust/detail/memory_wrapper.h> (see ab99d87e866) and the !_THRUST_HAS_DEVICE_SYSTEM_STD <type_traits> fallback. HIP: no change (generic headers). test/: no counterpart. testing/: no counterpart. Not compiled, tests not run (per human) Co-Authored-By: Claude <noreply@anthropic.com>
Naraenda
pushed a commit
to ROCm/rocm-libraries
that referenced
this pull request
Oct 29, 2026
…ge` and `device_[new|delete|free]` (NVIDIA/cccl#6134) Upstream: NVIDIA/cccl@700f2a8 Took upstream refactor: destroy_range.inl, device_delete.inl, device_free.inl, device_new.inl folded into their headers (git rm of the .inl files); destroy_range now uses if constexpr over has_effectful_member_destroy (variable template, std::allocator specialization false) instead of enable_if cases. Local spellings kept (THRUST_HOST_DEVICE, THRUST_EXEC_CHECK_DISABLE, _THRUST_STD::is_trivially_destructible_v); destroy_range.h keeps <thrust/detail/memory_wrapper.h> (see ab99d87e866) and the !_THRUST_HAS_DEVICE_SYSTEM_STD <type_traits> fallback. HIP: no change (generic headers). test/: no counterpart. testing/: no counterpart. Not compiled, tests not run (per human) Co-Authored-By: Claude <noreply@anthropic.com>
Naraenda
pushed a commit
to ROCm/rocm-libraries
that referenced
this pull request
Oct 29, 2026
…ocator <type_traits> fallbacks Related upstream commit: 700f2a867a7 Refactor Thrust `destroy_range` and `device_[new|delete|free]` (NVIDIA/cccl#6134) Related upstream commit: fbb9479172c Refactor Thrust allocator internals (NVIDIA/cccl#6136) Related local port commits: 63becda, 17ee233 libhipcxx is now mandatory, so remove the `#if !_THRUST_HAS_DEVICE_SYSTEM_STD` <type_traits> fallbacks from detail/allocator/{destroy_range,value_initialize_range,fill_construct_range, copy_construct_range}.h, detail/temporary_array.h and detail/execute_with_allocator.h, and add the upstream granular _THRUST_STD_INCLUDE headers (__iterator/advance.h, __iterator/distance.h, __type_traits/is_convertible.h, __type_traits/is_trivially_copy_constructible.h, __type_traits/type_identity.h, __utility/pair.h). thrust/detail/memory_wrapper.h stays: <cuda/std/__cccl/memory_wrapper.h> is not in libhipcxx. Not compiled, tests not run (per human) Co-Authored-By: Claude <noreply@anthropic.com>
Naraenda
pushed a commit
to ROCm/rocm-libraries
that referenced
this pull request
Oct 30, 2026
…ge` and `device_[new|delete|free]` (NVIDIA/cccl#6134) Upstream: NVIDIA/cccl@700f2a8 Took upstream refactor: destroy_range.inl, device_delete.inl, device_free.inl, device_new.inl folded into their headers (git rm of the .inl files); destroy_range now uses if constexpr over has_effectful_member_destroy (variable template, std::allocator specialization false) instead of enable_if cases. Local spellings kept (THRUST_HOST_DEVICE, THRUST_EXEC_CHECK_DISABLE, _THRUST_STD::is_trivially_destructible_v); destroy_range.h keeps <thrust/detail/memory_wrapper.h> (see ab99d87e866) and the !_THRUST_HAS_DEVICE_SYSTEM_STD <type_traits> fallback. HIP: no change (generic headers). test/: no counterpart. testing/: no counterpart. Not compiled, tests not run (per human) Co-Authored-By: Claude <noreply@anthropic.com>
Beanavil
pushed a commit
to ROCm/rocm-libraries
that referenced
this pull request
Oct 30, 2026
…ge` and `device_[new|delete|free]` (NVIDIA/cccl#6134) Upstream: NVIDIA/cccl@700f2a8 Took upstream refactor: destroy_range.inl, device_delete.inl, device_free.inl, device_new.inl folded into their headers (git rm of the .inl files); destroy_range now uses if constexpr over has_effectful_member_destroy (variable template, std::allocator specialization false) instead of enable_if cases. Local spellings kept (THRUST_HOST_DEVICE, THRUST_EXEC_CHECK_DISABLE, _THRUST_STD::is_trivially_destructible_v); destroy_range.h keeps <thrust/detail/memory_wrapper.h> (see ab99d87e866) and the !_THRUST_HAS_DEVICE_SYSTEM_STD <type_traits> fallback. HIP: no change (generic headers). test/: no counterpart. testing/: no counterpart. Not compiled, tests not run (per human) Co-Authored-By: Claude <noreply@anthropic.com>
amd-jmahovsky
added a commit
to ROCm/rocm-libraries
that referenced
this pull request
Oct 30, 2026
…ocator <type_traits> fallbacks Related upstream commit: 700f2a867a7 Refactor Thrust `destroy_range` and `device_[new|delete|free]` (NVIDIA/cccl#6134) Related upstream commit: fbb9479172c Refactor Thrust allocator internals (NVIDIA/cccl#6136) Related local port commits: 63becda, 17ee233 libhipcxx is now mandatory, so remove the `#if !_THRUST_HAS_DEVICE_SYSTEM_STD` <type_traits> fallbacks from detail/allocator/{destroy_range,value_initialize_range,fill_construct_range, copy_construct_range}.h, detail/temporary_array.h and detail/execute_with_allocator.h, and add the upstream granular _THRUST_STD_INCLUDE headers (__iterator/advance.h, __iterator/distance.h, __type_traits/is_convertible.h, __type_traits/is_trivially_copy_constructible.h, __type_traits/type_identity.h, __utility/pair.h). thrust/detail/memory_wrapper.h stays: <cuda/std/__cccl/memory_wrapper.h> is not in libhipcxx. Not compiled, tests not run (per human) Co-Authored-By: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR basically moves the content of
.inlfiles into their headers, replaced some SFINAE byif constexprand some traits by variable templates.