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

Remove THRUST_WRAPPED_NAMESPACE and tests #1578

Merged

Conversation

harrism
Copy link
Member

@harrism harrism commented Jun 11, 2024

Description

Fixes #1577. Removes the no-longer-necessary duplications of tests for THRUST_WRAPPED_NAMESPACE

Wrapping the Thrust namespace is no longer required as of CCCL 2.3 (but is still available if needed). RMM is adopting CCCL 2.5 in release 24.08.

Eliminating these tests improves build time and reduces testing time by 50%.

Checklist

  • I am familiar with the Contributing Guidelines.
  • New or existing tests cover these changes.
  • The documentation is up to date with these changes.

@harrism harrism requested review from a team as code owners June 11, 2024 03:32
@harrism harrism requested review from vyasr and jrhemstad June 11, 2024 03:32
@github-actions github-actions bot added CMake cpp Pertains to C++ code labels Jun 11, 2024
@harrism harrism added non-breaking Non-breaking change improvement Improvement / enhancement to an existing function labels Jun 11, 2024
Copy link
Contributor

@wence- wence- left a comment

Choose a reason for hiding this comment

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

🎉

Thanks Mark!

One question: does this now make RMM (going forward) incompatible with CCCL < 2.3? If so, should this be marked as a breaking change?

@bdice
Copy link
Contributor

bdice commented Jun 11, 2024

In any given release, RAPIDS has a set of dependency pinnings managed by rapids-cmake’s versions.json file. The breaking change, if you would call it that, is in rapids-cmake. I don’t consider this breaking for consumers of RMM because they already have to accept the contract of using RMM’s pinned build-time dependencies.

@robertmaynard
Copy link
Contributor

robertmaynard commented Jun 11, 2024

I agree it is a breaking change, since external users of rmm that use THRUST_WRAPPED_NAMESPACE will now not work with rmm, even though CCCL 2.5 still supports THRUST_WRAPPED_NAMESPACE.

If we didn't want it to be breaking we would just drop the testing part and leave support for THRUST_WRAPPED_NAMESPACE alone.

Removes the no-longer-necessary THRUST_WRAPPED_NAMESPACE

Technically THRUST_WRAPPED_NAMESPACE still has a usage, and that is when a consumer leaks Thrust types in the public API. In those cases you would want to still use THRUST_WRAPPED_NAMESPACE so that you are safe to be composed with other libraries that use a different version of Thrust.

@harrism
Copy link
Member Author

harrism commented Jun 12, 2024

Technically THRUST_WRAPPED_NAMESPACE still has a usage, and that is when a consumer leaks Thrust types in the public API. In those cases you would want to still use THRUST_WRAPPED_NAMESPACE so that you are safe to be composed with other libraries that use a different version of Thrust.

Apologies, I misunderstood. I thought THRUST_WRAPPED_NAMESPACE was a necessary evil that is no longer necessary. I will revert all but the test changes. I don't like that we have to keep remembering to include thrust_namespace.h [sic] in all files that call thrust. Hopefully we can completely eliminate it in the future.

@harrism
Copy link
Member Author

harrism commented Jun 13, 2024

/merge

@rapids-bot rapids-bot bot merged commit f2d0797 into rapidsai:branch-24.08 Jun 13, 2024
57 checks passed
copy-pr-bot bot pushed a commit that referenced this pull request Jun 17, 2024
Fixes #1577. Removes the no-longer-necessary duplications of tests for `THRUST_WRAPPED_NAMESPACE` 

Wrapping the Thrust namespace is no longer required as of CCCL 2.3 (but is still available if needed). RMM is adopting CCCL 2.5 in release 24.08. 

Eliminating these tests improves build time and reduces testing time by 50%.

Authors:
  - Mark Harris (https://github.com/harrism)

Approvers:
  - Lawrence Mitchell (https://github.com/wence-)
  - Bradley Dice (https://github.com/bdice)
  - Michael Schellenberger Costa (https://github.com/miscco)

URL: #1578
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CMake cpp Pertains to C++ code improvement Improvement / enhancement to an existing function non-breaking Non-breaking change
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

[FEA] Remove THRUST_WRAPPED_NAMESPACE
5 participants