This repository has been archived by the owner on Mar 21, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 757
Implement consistent scan accumulation per P0571 #1170
Comments
Per cppreference, we'll also need to add the |
alliepiper
added a commit
to alliepiper/thrust
that referenced
this issue
May 29, 2020
TBB's scan was implemented differently than the other backends, leading to some failing unit tests. This patch fixes these inconsistencies by making the following changes: - Follow P0571's guidance regarding accumulator variable type. - https://wg21.link/P0571 - The accumulator's type is now: - The type of the user-supplied initial value (if provided), or - The input iterator's value type if no initial value. - Follow C++ standard guidance for default binary operator type. - https://eel.is/c++draft/exclusive.scan#1 - Thrust binary/unary functors now specialize a default void template parameter. Types are deduced and forwarded transparently. - Updated the scan's default binary operator to the new `thrust::plus<>` specialization. - The `intermediate_type_from_function_and_iterators` helper is no longer needed and has been removed. Closes NVIDIA#1170.
alliepiper
added a commit
to alliepiper/thrust
that referenced
this issue
Jun 8, 2020
TBB's scan was implemented differently than the other backends, leading to some failing unit tests. This patch fixes these inconsistencies by making the following changes: - Follow P0571's guidance regarding accumulator variable type. - https://wg21.link/P0571 - The accumulator's type is now: - The type of the user-supplied initial value (if provided), or - The input iterator's value type if no initial value. - Follow C++ standard guidance for default binary operator type. - https://eel.is/c++draft/exclusive.scan#1 - Thrust binary/unary functors now specialize a default void template parameter. Types are deduced and forwarded transparently. - Updated the scan's default binary operator to the new `thrust::plus<>` specialization. - The `intermediate_type_from_function_and_iterators` helper is no longer needed and has been removed. Closes NVIDIA#1170.
alliepiper
added a commit
that referenced
this issue
Jun 8, 2020
TBB's scan was implemented differently than the other backends, leading to some failing unit tests. This patch fixes these inconsistencies by making the following changes: - Follow P0571's guidance regarding accumulator variable type. - https://wg21.link/P0571 - The accumulator's type is now: - The type of the user-supplied initial value (if provided), or - The input iterator's value type if no initial value. - Follow C++ standard guidance for default binary operator type. - https://eel.is/c++draft/exclusive.scan#1 - Thrust binary/unary functors now specialize a default void template parameter. Types are deduced and forwarded transparently. - Updated the scan's default binary operator to the new `thrust::plus<>` specialization. - The `intermediate_type_from_function_and_iterators` helper is no longer needed and has been removed. Closes #1170.
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Not all backends use the same accumulator type when performing scans, and as a result, TBB scan tests are currently failing in master.
All backends and tests should be updated to determine the intermediate type as defined in proposal P0571.
This will likely be addressed as part of #1158.
The text was updated successfully, but these errors were encountered: