Skip to content

Conversation

danhoeflinger
Copy link
Contributor

@danhoeflinger danhoeflinger commented Jul 2, 2025

Currently draft while some things are being polished.

Currently targets dev/dhoeflin/numerical_type_requirements until #2327 is merged, to make cleaner diff. This PR branches off that one to make use of the same utilities.

This PR removes copy assignment and copy constructible requirements from scalar init types used in [transform_](in/ex)clusive_scan APIs.

It also adds tests to confirm this for host policies, and adds tests to confirm no default construction requirements are imposed across all policies.

Notes:

  • openMP SIMD vectorization requires default constructible, copy assignment and copy construction, so vectorization is turned off where these are not satisfied. There may be a way to improve this in the future, but for now we just turn it off.
  • There is a scan tbb implementation specific to floating point types which does not support move only types. All types which satisfy std::is_floating_point_v<T> should be copyable, and default constructible, so we do not attempt to support move only or non default constructible types within that implementation.
  • omp backend does NOT try to parallelize scan... This is outside the scope of this PR but likely should be addressed.

Signed-off-by: Dan Hoeflinger <[email protected]>
Signed-off-by: Dan Hoeflinger <[email protected]>
Signed-off-by: Dan Hoeflinger <[email protected]>
Signed-off-by: Dan Hoeflinger <[email protected]>
Signed-off-by: Dan Hoeflinger <[email protected]>
Signed-off-by: Dan Hoeflinger <[email protected]>
Signed-off-by: Dan Hoeflinger <[email protected]>
Signed-off-by: Dan Hoeflinger <[email protected]>
Signed-off-by: Dan Hoeflinger <[email protected]>
Signed-off-by: Dan Hoeflinger <[email protected]>
Signed-off-by: Dan Hoeflinger <[email protected]>
Signed-off-by: Dan Hoeflinger <[email protected]>
@danhoeflinger danhoeflinger marked this pull request as draft July 2, 2025 13:50
Signed-off-by: Dan Hoeflinger <[email protected]>
@danhoeflinger danhoeflinger force-pushed the dev/dhoeflin/numerical_type_requirements branch from 97454e4 to 4ebca28 Compare July 25, 2025 12:38
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.

1 participant