rapidsai / rmm

RAPIDS Memory Manager
https://docs.rapids.ai/api/rmm/stable/
Apache License 2.0
446 stars 188 forks source link

Remove THRUST_WRAPPED_NAMESPACE and tests #1578

Closed harrism closed 3 weeks ago

harrism commented 4 weeks ago

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

bdice commented 4 weeks ago

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 commented 4 weeks ago

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 commented 4 weeks ago

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 commented 3 weeks ago

/merge