Skip to content

Add proper bounded output support to set-algorithms from oneapi::dpl::ranges namespace with hetero policies#2681

Closed
SergeyKopienko wants to merge 1245 commits into
mainfrom
dev/skopienko/support_bounded_output_in_transform_reduce_and_scan_hetero_copy_if
Closed

Add proper bounded output support to set-algorithms from oneapi::dpl::ranges namespace with hetero policies#2681
SergeyKopienko wants to merge 1245 commits into
mainfrom
dev/skopienko/support_bounded_output_in_transform_reduce_and_scan_hetero_copy_if

Conversation

@SergeyKopienko

@SergeyKopienko SergeyKopienko commented May 8, 2026

Copy link
Copy Markdown
Contributor

ATTENTION for now the changes from this PR includes all changes from #2569 !!!

Merge plan:

    • merge main into this PR and resolve conflicts
    • than merge this PR

What has been done in this PR

  • implemented set-operations from oneapi::dpl::ranges namespace for bounded output (for hetero-policies);
  • implemented the proper evaluation of stop positions in input ranges for set-operations from oneapi::dpl::ranges namespace (for hetero-policies);
  • fixed two known issue and limitation about onedpl range-based algorithms which are based on __parallel_reduce_then_scan_copy pattern in bounded output case: ranges::copy_if, ranges::unique_copy

…n_scan.h - redesign class __scan_stop_pos_initial_value::create()
…n_scan.h - fix logic error in __write_if_in_bounds()
…n_scan.h - introduce struct __parallel_reduce_then_scan_scan_submitter::__create_scoped_destroyer() and renames
…n_scan.h - fix error in struct __write_to_id_if_else::operator()
…n_scan.h - extract struct __parallel_reduce_then_scan_scan_submitter::__process_oob_and_final_pos()
…n_scan.h - renames in struct __parallel_reduce_then_scan_scan_submitter : __oob_detection_enabled -> __oob_replay_enabled
…n_scan.h - extract struct __parallel_reduce_then_scan_scan_submitter::__init_stop_pos_storage()
…n_scan.h - fix error in replay logic for OOB source pos evaluation and work with corresponding SLM-based container
…n_scan.h - remove static_assert(false) for investigation of call chains
…n_scan.h - fix compile error : unused variables
…t extra changes: required to fix in the separate PR
…ign returns type of __parallel_set_op + oneapi::dpl::__internal::__device_backend_tag to avoid extra changes in calling code
…turns type of __parallel_set_op + oneapi::dpl::__internal::__device_backend_tag to avoid extra changes in calling code
…arallel_set_union_op + __parallel_tag which looks incorrect
… change from __pattern_partition_copy + __hetero_tag
…n_scan.h - let's create container for source data indexes only for one WI in which OOB has been reached
…n_scan.h - using oneapi::dpl::__internal::__tuple_max_sentinel in the code
…n_scan.h - re-design SLM-based buffer for source range indexes to use only in one WI which reached OOB position
…'s second implementation _SetOpDiscardIterator
…r std::ranges::in_in_out_result<...>() and remove __get_reached_in1_in2_out() + __get_reached_out() methods.
…unused type _RandomAccessIteratorOut in __pattern_set_difference + __parallel_tag
… remove extra local variables (__remaining_capacity1, __remaining_capacity2 -> __remaining_capacity)
…j from test/support/utils.h to test/general/implementation_details/test_set_op_details.pass.cpp
…x review comment: simplify struct SetDataItemProj::operator()
…ko/support_bounded_output_in_transform_reduce_and_scan_hetero

# Conflicts:
#	include/oneapi/dpl/pstl/hetero/algorithm_ranges_impl_hetero.h
#	test/parallel_api/ranges/std_ranges_set_difference.pass.cpp
#	test/parallel_api/ranges/std_ranges_set_intersection.pass.cpp
#	test/parallel_api/ranges/std_ranges_set_symmetric_difference.pass.cpp
#	test/support/test_config.h
…e_and_scan_hetero' into dev/skopienko/support_bounded_output_in_transform_reduce_and_scan_hetero_copy_if
…ko/support_bounded_output_in_transform_reduce_and_scan_hetero
…e_and_scan_hetero' into dev/skopienko/support_bounded_output_in_transform_reduce_and_scan_hetero_copy_if
@SergeyKopienko SergeyKopienko modified the milestones: 2022.13.0, 2022.14.0 May 28, 2026
@SergeyKopienko SergeyKopienko marked this pull request as draft May 28, 2026 17:06
@SergeyKopienko

Copy link
Copy Markdown
Contributor Author

The future development will continue in the PR #2721

@akukanov akukanov removed this from the 2022.14.0 milestone Jun 10, 2026
@SergeyKopienko SergeyKopienko deleted the dev/skopienko/support_bounded_output_in_transform_reduce_and_scan_hetero_copy_if branch June 26, 2026 09:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants