-
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
RFC for zip_view implementation, for oneDPL C++20 #1931
base: main
Are you sure you want to change the base?
Conversation
### Key Requirements | ||
`oneapi::dpl::ranges::zip_view` should have: | ||
- API compliance with `std::ranges::zip_view` | ||
- `oneapi::dpl::__internal::tuple` underhood, due to `std::tuple` has issues with swapability and device copyability. |
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.
Should this be just "oneDPL zip_view should be device copyable"?
Regarding swap: does the standard zip_view work with std::sort? If yes, how does it deal with swapping temporaries?
which the same API and functionality as `std::ranges::zip_view`. | ||
|
||
|
||
### Key Requirements |
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 think there is more requirements / open questions to think about:
- The necessity to support C++20.
- What about using it with the non-range algorithms via zip_view::iterator?
- How would it correlate with zip_iterator?
- Should/will it work with any "underlying" views/ranges, or there might be restrictions?
- Anything special that distributed ranges would need?
### Performance | ||
Combining `std::ranges::zip_view` with data pipelines and kernel fusion enables developers to write expressive, | ||
efficient code for processing multiple related datasets. This approach not only simplifies the logic but also | ||
optimizes performance, making it an essential technique in modern C++ development. Whether you're working with | ||
simple transformations or complex data processing workflows, zip_view can be a valuable utility. |
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.
This part seems rather motivational.
Are there any performance-related design considerations and/or requirements?
The proposal to implement
zip_view
in oneDPL. A part of the general RFC discussion #1944 about implementing useful C++23 views.