-
Notifications
You must be signed in to change notification settings - Fork 309
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
libcugraph conda package requires RMM, which is not used by the vast majority of users #1682
Comments
Do we think this needs to be fixed in libcugraph, or just in libcugraph_c? |
To follow up (as we discussed separately), there is an API dependency on rmm. Functions that allocate memory in C++ and return it to python return The new API that Andrei has designed should completely hide this dependency. If we want to eliminate the dependency before that we will need to look at each API call that relies on RMM and identify how to eliminate that dependency. I will assess the amount of work required and identify when we can get to this change. |
The most noticeable impact of this issue is the user installing our conda packages. Today, The C API can hide the RMM types, and therefore wouldn't need to depend on RMM for developer or runtime use cases. However, the C API is currently/will be installed by the same If we want to go back to the idea of just removing RMM from the C++ API, @ChuckHastings mentions:
so this issue will require more research. |
Another option: instead of having Note that this only solves the problem for users of the |
C++ users installing thelibcugraph
package requirelibrmm
headers since the cugraph headers expose the RMM includes. Thelibrmm
headers are technically a build-time dependency, and C++ users should not need those when developing withlibcugraph
.libcugraph
is a package containing both a runtime library (needed by all users), and a development package that installs headers (needed only by devs integrating libcugraph functionality into their application/library, which makes up a very small set of users). Because of the latter, RMM is installed as a dependency since RMM is part of the libcugraph API, yet RMM (being a header-only library) is not needed at runtime.As with any dependency, this results in the vast majority of users having to install an extra package. This increases the risk of incompatibilities and makes the conda solver spend more time resolving dependencies. It also means there is a potential for users needing a different version of RMM for other reasons to end up with broken installs.
If RMM could be removed as a dependency (either change the libcugraph API to not use RMM types, create separate dev and runtime packages, or something else), many users would benefit.
This became a problem recently when packaging
libcugraph
for conda-forge, and the workaround was to create a separatelibrmm
header-only package and have users install it as a runtime dependency. conda-forge/libcugraph-feedstock#10The text was updated successfully, but these errors were encountered: