-
Notifications
You must be signed in to change notification settings - Fork 201
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
[FEA] Use rapids-core-dependencies to manage CCCL #1307
Comments
I'm planning to work on this after the CCCL 2.1.0 transition: rapidsai/rapids-cmake#399 |
We were just bitten by this. Interesting. We have the same header twice in our dependency tree:
The first is as of The first one contains a patch made in NVIDIA/libcudacxx#410 almost a year ago (thank you @wmaxey), specifically made for supporting newer clang versions. The second one (vendored in Hence, the second one does not compile with clang newer than 14 (well, it works with 14, but breaks with 16 and newer -- didn't test 15). We found this because
I leave this here for others to have more luck with web search, this took forever for us to find the cause of! If I understand correctly, the next RMM release including a4dd4f5 will resolve this for everyone, is that right? |
@jgehrcke apologies for the slow response. The commit that you linked to will solve your particular problem by upgrading the version of CCCL embedded in rmm to include the clang patch that you need. It will not solve the broader issue of duplicating CCCL installations, but I don't think that's immediately relevant to what you're asking (please correct me if I'm wrong). |
I'm moving this to the backlog -- I probably don't have time to work on this for 24.06. However, it's needed as a part of fixing up #1508 and preventing path conflicts for other RAPIDS repositories. |
FWIW by the time you do get around to this we may want something similar in place for wheels. The issue will be less pressing there though, it'll just be one of duplication and not really one of clobbering. |
Is your feature request related to a problem? Please describe.
Currently librmm packages contain vendored CCCL code because the packages are fetched via CPM. This vendoring behavior is potentially problematic since the vendored dependencies could clash with or even clobber those dependencies if installed upstream. The problem is compounded by the fact that the rest of RAPIDS also depends on these libraries and therefore pulls them transitively from librmm. In some cases (like thrust) RAPIDS requires patched versions of the libraries, making it impossible to use the original versions provided by e.g. the cuda-cccl conda packages.
Describe the solution you'd like
Now that rapids-cmake publishes packages, we should introduce a dependency on that package in librmm instead. That change would allow all of RAPIDS to single-source the (patched) CCCL dependencies without risk of clobbering.
The text was updated successfully, but these errors were encountered: