-
Notifications
You must be signed in to change notification settings - Fork 113
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[PROTOTYPE] partition, unique families and ranges API #1708
[PROTOTYPE] partition, unique families and ranges API #1708
Conversation
b737f56
to
6c03803
Compare
6c03803
to
964a9d2
Compare
189ff05
to
23f7886
Compare
d55c1d2
to
6c9c8a4
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've had a pass over this PR and have a few comments.
91923bc
to
a008e90
Compare
5337317
to
0a58980
Compare
Signed-off-by: Dan Hoeflinger <dan.hoeflinger@intel.com>
Unique Optimization and specializing n==1 --------- Signed-off-by: Dan Hoeflinger <dan.hoeflinger@intel.com>
Signed-off-by: Dan Hoeflinger <dan.hoeflinger@intel.com> fixes for previous commit (squash) Signed-off-by: Dan Hoeflinger <dan.hoeflinger@intel.com>
…changes) Signed-off-by: Dan Hoeflinger <dan.hoeflinger@intel.com>
33a46c1
to
838d2af
Compare
Signed-off-by: Dan Hoeflinger <dan.hoeflinger@intel.com>
Signed-off-by: Dan Hoeflinger <dan.hoeflinger@intel.com>
Signed-off-by: Dan Hoeflinger <dan.hoeflinger@intel.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
First pass over the recent changes. I marked a few of the places where we touched the code and left ::std
. There are a few more but I didn't want to pollute the review comments with them.
include/oneapi/dpl/pstl/hetero/dpcpp/parallel_backend_sycl_reduce_then_scan.h
Show resolved
Hide resolved
Signed-off-by: Dan Hoeflinger <dan.hoeflinger@intel.com>
include/oneapi/dpl/pstl/hetero/dpcpp/parallel_backend_sycl_reduce_then_scan.h
Outdated
Show resolved
Hide resolved
Signed-off-by: Dan Hoeflinger <dan.hoeflinger@intel.com>
Signed-off-by: Dan Hoeflinger <dan.hoeflinger@intel.com>
Signed-off-by: Dan Hoeflinger <dan.hoeflinger@intel.com>
… cleanup Signed-off-by: Dan Hoeflinger <dan.hoeflinger@intel.com>
Signed-off-by: Dan Hoeflinger <dan.hoeflinger@intel.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Signed-off-by: Dan Hoeflinger <dan.hoeflinger@intel.com>
Enabling partition and unique family of scan-like algorithms includes ranges API Making legacy scan user `__result_and_scratch_storage` to match future type for return to compile Refactoring of `__pattern` / `__parallel` structure for scan-like algorithms for consistency --------- Signed-off-by: Dan Hoeflinger <dan.hoeflinger@intel.com>
Enabling partition and unique family of scan-like algorithms includes ranges API Making legacy scan user `__result_and_scratch_storage` to match future type for return to compile Refactoring of `__pattern` / `__parallel` structure for scan-like algorithms for consistency --------- Signed-off-by: Dan Hoeflinger <dan.hoeflinger@intel.com>
Enabling partition and unique family of scan-like algorithms includes ranges API Making legacy scan user `__result_and_scratch_storage` to match future type for return to compile Refactoring of `__pattern` / `__parallel` structure for scan-like algorithms for consistency --------- Signed-off-by: Dan Hoeflinger <dan.hoeflinger@intel.com>
Enabling partition and unique family of scan-like algorithms includes ranges API Making legacy scan user `__result_and_scratch_storage` to match future type for return to compile Refactoring of `__pattern` / `__parallel` structure for scan-like algorithms for consistency --------- Signed-off-by: Dan Hoeflinger <dan.hoeflinger@intel.com>
Enabling partition and unique family of scan-like algorithms includes ranges API Making legacy scan user `__result_and_scratch_storage` to match future type for return to compile Refactoring of `__pattern` / `__parallel` structure for scan-like algorithms for consistency --------- Signed-off-by: Dan Hoeflinger <dan.hoeflinger@intel.com>
Enabling partition and unique family of scan-like algorithms includes ranges API Making legacy scan user `__result_and_scratch_storage` to match future type for return to compile Refactoring of `__pattern` / `__parallel` structure for scan-like algorithms for consistency --------- Signed-off-by: Dan Hoeflinger <dan.hoeflinger@intel.com>
Enabling partition and unique family of scan-like algorithms includes ranges API Making legacy scan user `__result_and_scratch_storage` to match future type for return to compile Refactoring of `__pattern` / `__parallel` structure for scan-like algorithms for consistency --------- Signed-off-by: Dan Hoeflinger <dan.hoeflinger@intel.com>
Enabling partition and unique family of scan-like algorithms includes ranges API Making legacy scan user `__result_and_scratch_storage` to match future type for return to compile Refactoring of `__pattern` / `__parallel` structure for scan-like algorithms for consistency --------- Signed-off-by: Dan Hoeflinger <dan.hoeflinger@intel.com>
Enabling partition and unique family of scan-like algorithms includes ranges API Making legacy scan user `__result_and_scratch_storage` to match future type for return to compile Refactoring of `__pattern` / `__parallel` structure for scan-like algorithms for consistency --------- Signed-off-by: Dan Hoeflinger <dan.hoeflinger@intel.com>
Adds partition, unique families as well as the ranges API to use two pass scan.
There is some refactoring to the generalized helpers, to simplify sharing between families of scan-like algorithms using this.
Otherwise, this just adds other entry points to use two pass scan.
This also standardizes / adds some zero element short circuits in the ranges API
Note: for the ranges API, I try to hook in to the path to re-use what we have in the main APIs. Specifically, this enables ranges API copy_if to be able to use single workgroup copy_if as well, where it was not previously exposed to that.
Tentative performance results for these families of algorithms are similar to what we have seen with copy_if.