diff --git a/cub/cub/agent/agent_find.cuh b/cub/cub/agent/agent_find.cuh index 89229ee21cd7..080e922d2047 100644 --- a/cub/cub/agent/agent_find.cuh +++ b/cub/cub/agent/agent_find.cuh @@ -10,13 +10,15 @@ #include #include +#include #include #include +#include + #if !_CCCL_HAS_NV_ATOMIC_BUILTINS() # include #endif // !_CCCL_HAS_NV_ATOMIC_BUILTINS() -#include CUB_NAMESPACE_BEGIN namespace detail::find @@ -40,7 +42,7 @@ struct agent_t // Can vectorize according to the policy if the input iterator is a native pointer to a primitive type static constexpr bool attempt_vectorization = - (VecSize > 1) && (ItemsPerThread % VecSize == 0) && (::cuda::std::contiguous_iterator) + (VecSize > 1) && (ItemsPerThread % VecSize == 0) && (THRUST_NS_QUALIFIER::is_contiguous_iterator_v) && ::cuda::is_trivially_copyable_v; static constexpr CacheLoadModifier load_modifier = LoadModifier; diff --git a/cub/cub/block/block_load.cuh b/cub/cub/block/block_load.cuh index 077abb17ebc6..59c154879b74 100644 --- a/cub/cub/block/block_load.cuh +++ b/cub/cub/block/block_load.cuh @@ -9,6 +9,8 @@ #include +#include + #if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC) # pragma GCC system_header #elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG) @@ -1009,8 +1011,7 @@ public: { InternalLoadDirectBlockedVectorized(linear_tid, block_src_it.ptr, dst_items); } - else if constexpr (::cuda::std::contiguous_iterator - && ::cuda::std::__can_to_address) + else if constexpr (THRUST_NS_QUALIFIER::is_contiguous_iterator_v) { InternalLoadDirectBlockedVectorized(linear_tid, ::cuda::std::to_address(block_src_it), dst_items); } diff --git a/cub/cub/block/block_store.cuh b/cub/cub/block/block_store.cuh index 59113bfc4ab6..b8366f38cfa2 100644 --- a/cub/cub/block/block_store.cuh +++ b/cub/cub/block/block_store.cuh @@ -21,6 +21,8 @@ #include #include +#include + #include #include #include @@ -838,7 +840,7 @@ public: } else if constexpr (Algorithm == BLOCK_STORE_VECTORIZE) { - if constexpr (::cuda::std::contiguous_iterator && ::cuda::std::__can_to_address) + if constexpr (THRUST_NS_QUALIFIER::is_contiguous_iterator_v) { StoreDirectBlockedVectorized(linear_tid, ::cuda::std::to_address(block_itr), items); } diff --git a/cub/cub/iterator/cache_modified_input_iterator.cuh b/cub/cub/iterator/cache_modified_input_iterator.cuh index e8055488c1a7..01e1f3ddec93 100644 --- a/cub/cub/iterator/cache_modified_input_iterator.cuh +++ b/cub/cub/iterator/cache_modified_input_iterator.cuh @@ -22,8 +22,9 @@ #include #include -#include #include +#include +#include #include #include @@ -226,10 +227,10 @@ inline constexpr bool is_CacheModifiedInputIterator _CCCL_HOST_DEVICE _CCCL_FORCEINLINE auto try_make_cache_modified_iterator(Iterator it) { - if constexpr (::cuda::std::contiguous_iterator) + if constexpr (THRUST_NS_QUALIFIER::is_contiguous_iterator_v) { return CacheModifiedInputIterator, it_difference_t>{ - THRUST_NS_QUALIFIER::raw_pointer_cast(&*it)}; + ::cuda::std::to_address(it)}; } else { diff --git a/cub/cub/thread/thread_load.cuh b/cub/cub/thread/thread_load.cuh index d98eb37e27a6..c98d1b311b53 100644 --- a/cub/cub/thread/thread_load.cuh +++ b/cub/cub/thread/thread_load.cuh @@ -22,6 +22,8 @@ #include #include +#include + #include #include #include @@ -348,7 +350,7 @@ template _CCCL_DEVICE _CCCL_FORCEINLINE detail::it_value_t ThreadLoad(RandomAccessIterator itr) { using T = detail::it_value_t; - if constexpr (!::cuda::std::__4::contiguous_iterator || MODIFIER == LOAD_DEFAULT) + if constexpr (!THRUST_NS_QUALIFIER::is_contiguous_iterator_v || MODIFIER == LOAD_DEFAULT) { return *itr; } diff --git a/cub/cub/thread/thread_store.cuh b/cub/cub/thread/thread_store.cuh index c4cb9307d182..2624d3e2361b 100644 --- a/cub/cub/thread/thread_store.cuh +++ b/cub/cub/thread/thread_store.cuh @@ -20,6 +20,8 @@ #include #include +#include + #include #include #include @@ -316,7 +318,7 @@ ThreadStore(T* ptr, T val, detail::constant_t /*modifier*/, ::cuda::st template _CCCL_DEVICE _CCCL_FORCEINLINE void ThreadStore(OutputIteratorT itr, T val) { - if constexpr (!::cuda::std::contiguous_iterator || MODIFIER == STORE_DEFAULT) + if constexpr (!THRUST_NS_QUALIFIER::is_contiguous_iterator_v || MODIFIER == STORE_DEFAULT) { *itr = val; }