Skip to content
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

[SYCL][ABI Break] Remove ext::oneapi::reduction #6634

Merged
merged 2 commits into from
Aug 24, 2022

Conversation

aelovikov-intel
Copy link
Contributor

This PR also move the implementation from the extension header to the
regular sycl/reduction.hpp.

There might be some simplifications in the implementation enabled by
that but they are left for a future PR.

This PR also move the implementation from the extension header to the
regular sycl/reduction.hpp.

There might be some simplifications in the implementation enabled by
that but they are left for a future PR.
v-klochkov
v-klochkov previously approved these changes Aug 23, 2022
@aelovikov-intel
Copy link
Contributor Author

One failure seems valid - addressing it in intel/llvm-test-suite#1176. Once that passes, PRs have to be merged together.

Also remove now useless using directives
Comment on lines +59 to +74
/// Class that is used to represent objects that are passed to user's lambda
/// functions and representing users' reduction variable.
/// The generic version of the class represents those reductions of those
/// types and operations for which the identity value is not known.
/// The View template describes whether the reducer owns its data or not: if
/// View is 'true', then the reducer does not own its data and instead provides
/// a view of data allocated elsewhere (i.e. via a reference or pointer member);
/// if View is 'false', then the reducer owns its data. With the current default
/// reduction algorithm, the top-level reducers that are passed to the user's
/// lambda contain a private copy of the reduction variable, whereas any reducer
/// created by a subscript operator contains a reference to a reduction variable
/// allocated elsewhere. The Subst parameter is an implementation detail and is
/// used to spell out restrictions using 'enable_if'.
template <typename T, class BinaryOperation, int Dims, size_t Extent,
bool View = false, typename Subst = void>
class reducer;
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was moved from sycl::ext::oneapi::detail to sycl because

  1. That's what standard seems to say
  2. To make it work with ESIMD processing. We need it disallowed and everything in sycl::detail is allowed, while only an explicit subset of sycl is allowed in there.

Copy link
Contributor

@steffenlarsen steffenlarsen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good! 👍

@steffenlarsen steffenlarsen merged commit 7fa607f into intel:sycl Aug 24, 2022
@aelovikov-intel aelovikov-intel deleted the remove-oneapi-red branch August 25, 2022 20:10
aelovikov-intel added a commit to aelovikov-intel/llvm that referenced this pull request Dec 12, 2022
* ext::oneapi::reduction removed in intel#6634
* sycl::item in kernel supported since intel#7478
* sycl::range + many reductions implemented in intel#7456

There might be other things that have been implemented already, but I
cannot immediately identify them, if any.
bader pushed a commit that referenced this pull request Dec 13, 2022
* ext::oneapi::reduction removed in
#6634
* sycl::item in kernel supported since
#7478
* sycl::range + many reductions implemented in
#7456
* CPU reduction performance implemented in
#6164
* span support implemented in #6019

There might be other things that have been implemented already, but I
cannot immediately identify them, if any.
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.

3 participants