Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
ff0624c
We should specialize all bricks only by decayed execution policy type
SergeyKopienko Mar 13, 2025
1d3d3a8
Fix specializations of __brick_copy
SergeyKopienko Mar 13, 2025
240ac3a
Fix specializations of __brick_move
SergeyKopienko Mar 13, 2025
7376320
Fix specializations of __brick_move_destroy
SergeyKopienko Mar 13, 2025
c6b83aa
Fix specializations of __brick_fill
SergeyKopienko Mar 13, 2025
bb29a94
Fix specializations of __brick_fill_n
SergeyKopienko Mar 13, 2025
6a36049
Fix specializations of __brick_set_op
SergeyKopienko Mar 13, 2025
745a794
Fix specializations of __brick_swap
SergeyKopienko Mar 13, 2025
bc7017c
Fix specializations of __brick_includes
SergeyKopienko Mar 13, 2025
a49ec86
Fix specializations of __brick_shift_left
SergeyKopienko Mar 13, 2025
7109a31
Apply GitHUB clang format
SergeyKopienko Mar 13, 2025
87f6f3f
Fix review comment: remove definitions of _DecayedExecutionPolicy
SergeyKopienko Mar 17, 2025
ee12647
Apply GitHUB clang format
SergeyKopienko Mar 17, 2025
bca6be8
Fix specializations of walk_n
SergeyKopienko Mar 17, 2025
321ae18
Fix specializations of walk1_vector_or_scalar
SergeyKopienko Mar 17, 2025
2d3973c
Fix specializations of walk2_vectors_or_scalars
SergeyKopienko Mar 17, 2025
f53f02e
Fix specializations of walk3_vectors_or_scalars
SergeyKopienko Mar 17, 2025
32fd39a
Fix specializations of walk_n
SergeyKopienko Mar 17, 2025
26fa7f9
Fix specializations of walk_adjacent_difference
SergeyKopienko Mar 17, 2025
c76c057
Fix specializations of walk_adjacent_difference
SergeyKopienko Mar 17, 2025
de2076b
Fix specializations of transform_reduce
SergeyKopienko Mar 17, 2025
5d5534e
Fix specializations of reduce_over_group
SergeyKopienko Mar 17, 2025
251b266
Fix specializations of single_match_pred_by_idx
SergeyKopienko Mar 17, 2025
6fa63d8
Fix specializations of single_match_pred
SergeyKopienko Mar 17, 2025
e47735c
Fix specializations of multiple_match_pred
SergeyKopienko Mar 17, 2025
7de1e61
Fix specializations of n_elem_match_pred
SergeyKopienko Mar 17, 2025
dfc6458
Fix specializations of first_match_pred
SergeyKopienko Mar 17, 2025
d50915d
Apply GitHUB clang format
SergeyKopienko Mar 17, 2025
c7fb84c
Fix specializations of __early_exit_find_or
SergeyKopienko Mar 17, 2025
3e57cbb
Rename tempate parameter _ExecutionPolicy to _DecayedExecutionPolicy …
SergeyKopienko Mar 17, 2025
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
12 changes: 5 additions & 7 deletions include/oneapi/dpl/internal/async_impl/async_impl_hetero.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ __pattern_walk1_async(__hetero_tag<_BackendTag>, _ExecutionPolicy&& __exec, _For

auto __future_obj = oneapi::dpl::__par_backend_hetero::__parallel_for(
_BackendTag{}, ::std::forward<_ExecutionPolicy>(__exec),
unseq_backend::walk1_vector_or_scalar<_ExecutionPolicy, _Function, decltype(__buf.all_view())>{
unseq_backend::walk1_vector_or_scalar<std::decay_t<_ExecutionPolicy>, _Function, decltype(__buf.all_view())>{
__f, static_cast<std::size_t>(__n)},
__n, __buf.all_view());
return __future_obj;
Expand All @@ -69,7 +69,7 @@ __pattern_walk2_async(__hetero_tag<_BackendTag>, _ExecutionPolicy&& __exec, _For

auto __future = oneapi::dpl::__par_backend_hetero::__parallel_for(
_BackendTag{}, ::std::forward<_ExecutionPolicy>(__exec),
unseq_backend::walk2_vectors_or_scalars<_ExecutionPolicy, _Function, decltype(__buf1.all_view()),
unseq_backend::walk2_vectors_or_scalars<std::decay_t<_ExecutionPolicy>, _Function, decltype(__buf1.all_view()),
decltype(__buf2.all_view())>{__f, static_cast<std::size_t>(__n)},
__n, __buf1.all_view(), __buf2.all_view());

Expand Down Expand Up @@ -97,7 +97,7 @@ __pattern_walk3_async(__hetero_tag<_BackendTag>, _ExecutionPolicy&& __exec, _For

auto __future = oneapi::dpl::__par_backend_hetero::__parallel_for(
_BackendTag{}, std::forward<_ExecutionPolicy>(__exec),
unseq_backend::walk3_vectors_or_scalars<_ExecutionPolicy, _Function, decltype(__buf1.all_view()),
unseq_backend::walk3_vectors_or_scalars<std::decay_t<_ExecutionPolicy>, _Function, decltype(__buf1.all_view()),
decltype(__buf2.all_view()), decltype(__buf3.all_view())>{
__f, static_cast<size_t>(__n)},
__n, __buf1.all_view(), __buf2.all_view(), __buf3.all_view());
Expand Down Expand Up @@ -130,8 +130,7 @@ __pattern_transform_reduce_async(__hetero_tag<_BackendTag>, _ExecutionPolicy&& _
{
assert(__first1 < __last1);

using _Policy = _ExecutionPolicy;
using _Functor = unseq_backend::walk_n<_Policy, _BinaryOperation2>;
using _Functor = unseq_backend::walk_n<std::decay_t<_ExecutionPolicy>, _BinaryOperation2>;
using _RepackedTp = __par_backend_hetero::__repacked_tuple_t<_Tp>;

auto __n = __last1 - __first1;
Expand Down Expand Up @@ -162,8 +161,7 @@ __pattern_transform_reduce_async(__hetero_tag<_BackendTag>, _ExecutionPolicy&& _
{
assert(__first < __last);

using _Policy = _ExecutionPolicy;
using _Functor = unseq_backend::walk_n<_Policy, _UnaryOperation>;
using _Functor = unseq_backend::walk_n<std::decay_t<_ExecutionPolicy>, _UnaryOperation>;
using _RepackedTp = __par_backend_hetero::__repacked_tuple_t<_Tp>;

auto __keep = oneapi::dpl::__ranges::__get_sycl_range<__par_backend_hetero::access_mode::read, _ForwardIterator>();
Expand Down
2 changes: 1 addition & 1 deletion include/oneapi/dpl/internal/async_impl/glue_async_impl.h
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ copy_async(_ExecutionPolicy&& __exec, _ForwardIterator1 __first, _ForwardIterato
wait_for_all(::std::forward<_Events>(__dependencies)...);
auto ret_val = oneapi::dpl::__internal::__pattern_walk2_brick_async(
__dispatch_tag, ::std::forward<_ExecutionPolicy>(__exec), __first, __last, __result,
oneapi::dpl::__internal::__brick_copy<decltype(__dispatch_tag), _ExecutionPolicy>{});
oneapi::dpl::__internal::__brick_copy<decltype(__dispatch_tag), std::decay_t<_ExecutionPolicy>>{});
return ret_val;
}

Expand Down
171 changes: 99 additions & 72 deletions include/oneapi/dpl/pstl/algorithm_impl.h

Large diffs are not rendered by default.

7 changes: 4 additions & 3 deletions include/oneapi/dpl/pstl/algorithm_ranges_impl.h
Original file line number Diff line number Diff line change
Expand Up @@ -395,9 +395,10 @@ __pattern_copy(_Tag __tag, _ExecutionPolicy&& __exec, _InRange&& __in_r, _OutRan

assert(std::ranges::size(__in_r) <= std::ranges::size(__out_r)); // for debug purposes only

oneapi::dpl::__internal::__pattern_walk2_brick(__tag, std::forward<_ExecutionPolicy>(__exec),
std::ranges::begin(__in_r), std::ranges::begin(__in_r) + std::ranges::size(__in_r), std::ranges::begin(__out_r),
oneapi::dpl::__internal::__brick_copy<decltype(__tag), _ExecutionPolicy>{});
oneapi::dpl::__internal::__pattern_walk2_brick(
__tag, std::forward<_ExecutionPolicy>(__exec), std::ranges::begin(__in_r),
std::ranges::begin(__in_r) + std::ranges::size(__in_r), std::ranges::begin(__out_r),
oneapi::dpl::__internal::__brick_copy<decltype(__tag), std::decay_t<_ExecutionPolicy>>{});
}

template<typename _ExecutionPolicy, typename _InRange, typename _OutRange>
Expand Down
10 changes: 3 additions & 7 deletions include/oneapi/dpl/pstl/glue_algorithm_impl.h
Original file line number Diff line number Diff line change
Expand Up @@ -272,20 +272,18 @@ copy(_ExecutionPolicy&& __exec, _ForwardIterator1 __first, _ForwardIterator1 __l

return oneapi::dpl::__internal::__pattern_walk2_brick(
__dispatch_tag, ::std::forward<_ExecutionPolicy>(__exec), __first, __last, __result,
oneapi::dpl::__internal::__brick_copy<decltype(__dispatch_tag), _ExecutionPolicy>{});
oneapi::dpl::__internal::__brick_copy<decltype(__dispatch_tag), std::decay_t<_ExecutionPolicy>>{});
}

template <class _ExecutionPolicy, class _ForwardIterator1, class _Size, class _ForwardIterator2>
oneapi::dpl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator2>
copy_n(_ExecutionPolicy&& __exec, _ForwardIterator1 __first, _Size __n, _ForwardIterator2 __result)
{
using _DecayedExecutionPolicy = ::std::decay_t<_ExecutionPolicy>;

auto __dispatch_tag = oneapi::dpl::__internal::__select_backend(__exec, __first, __result);

return oneapi::dpl::__internal::__pattern_walk2_brick_n(
__dispatch_tag, ::std::forward<_ExecutionPolicy>(__exec), __first, __n, __result,
oneapi::dpl::__internal::__brick_copy_n<decltype(__dispatch_tag), _DecayedExecutionPolicy>{});
oneapi::dpl::__internal::__brick_copy_n<decltype(__dispatch_tag), std::decay_t<_ExecutionPolicy>>{});
}

template <class _ExecutionPolicy, class _ForwardIterator1, class _ForwardIterator2, class _Predicate>
Expand Down Expand Up @@ -836,13 +834,11 @@ template <class _ExecutionPolicy, class _ForwardIterator1, class _ForwardIterato
oneapi::dpl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator2>
move(_ExecutionPolicy&& __exec, _ForwardIterator1 __first, _ForwardIterator1 __last, _ForwardIterator2 __d_first)
{
using _DecayedExecutionPolicy = ::std::decay_t<_ExecutionPolicy>;

auto __dispatch_tag = oneapi::dpl::__internal::__select_backend(__exec, __first, __d_first);

return oneapi::dpl::__internal::__pattern_walk2_brick(
__dispatch_tag, ::std::forward<_ExecutionPolicy>(__exec), __first, __last, __d_first,
oneapi::dpl::__internal::__brick_move<decltype(__dispatch_tag), _DecayedExecutionPolicy>{});
oneapi::dpl::__internal::__brick_move<decltype(__dispatch_tag), std::decay_t<_ExecutionPolicy>>{});
}

// [partial.sort]
Expand Down
6 changes: 2 additions & 4 deletions include/oneapi/dpl/pstl/glue_algorithm_ranges_impl.h
Original file line number Diff line number Diff line change
Expand Up @@ -798,7 +798,7 @@ copy(_ExecutionPolicy&& __exec, _Range1&& __rng, _Range2&& __result)

oneapi::dpl::__internal::__ranges::__pattern_walk_n(
__dispatch_tag, ::std::forward<_ExecutionPolicy>(__exec),
oneapi::dpl::__internal::__brick_copy<decltype(__dispatch_tag), _ExecutionPolicy>{},
oneapi::dpl::__internal::__brick_copy<decltype(__dispatch_tag), std::decay_t<_ExecutionPolicy>>{},
views::all_read(::std::forward<_Range1>(__rng)), views::all_write(::std::forward<_Range2>(__result)));
}

Expand Down Expand Up @@ -1156,11 +1156,9 @@ move(_ExecutionPolicy&& __exec, _Range1&& __rng1, _Range2&& __rng2)
{
auto __dispatch_tag = oneapi::dpl::__ranges::__select_backend(__exec, __rng1, __rng2);

using _DecayedExecutionPolicy = ::std::decay_t<_ExecutionPolicy>;

oneapi::dpl::__internal::__ranges::__pattern_walk_n(
__dispatch_tag, ::std::forward<_ExecutionPolicy>(__exec),
oneapi::dpl::__internal::__brick_move<decltype(__dispatch_tag), _DecayedExecutionPolicy>{},
oneapi::dpl::__internal::__brick_move<decltype(__dispatch_tag), std::decay_t<_ExecutionPolicy>>{},
views::all_read(::std::forward<_Range1>(__rng1)), views::all_write(::std::forward<_Range2>(__rng2)));
}

Expand Down
Loading
Loading