-
Notifications
You must be signed in to change notification settings - Fork 204
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
Make the stream module a part of the public API #1775
Conversation
Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually. Contributors can view more details about this message here. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for your work on this! I will need a bit of time to play with this and see what works well in the design (or not).
Do we need both cuda_stream.pyx
and stream.pyx
? Could/should we combine these files?
What's the rationale of making this a public API now that we have cuda.core...? Couldn't it stay private while we perfect cuda.core and make it production ready? I might have missed something. |
We want to start adding streams to pylibcudf APIs in RAPIDS 25.02. Exposing streams publicly is important for speed-of-light performance on several workloads. Eventually we will want to move to cuda.core but I don't think we want RAPIDS to be tied to cuda.core's timeline at this moment. I would like cuda.core to take whatever time is needed to have a stable design. Once it's stable, we will be able to deprecate this in RAPIDS and move to cuda.core within ~2-4 months (one release to deprecate the existing design, then make the change in the subsequent release). Having this in RMM/pylibcudf in the short term also gives us a way to test the cuda.core APIs with a full application by changing imports and doing minor refactoring. |
Thanks for explanation!
First of all, I should not have given the impression that Next, I understand pylibcudf's needs and I am very supportive of having all APIs taking the stream explicitly. But I don't think it needs to be tied to any concrete type (not even Finally, with regard to |
@leofang I spent some time reviewing the Stream class in
|
@Matt711 @leofang I think I want to go ahead and pursue making these public API changes in RMM, to keep RAPIDS moving forward with stream usage. I think we will want to use |
I think we should combine them. Both are small modules with similar related code.
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I pushed one small fix to the docs, and this is good to go. I'll trigger a merge.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Technically I think this might be a break in our Cython API if we're only exposing these as Python and not Cython objects now (.py
and not .pxd
). However, this API is already private (rmm._cuda
) and I did extensive searching of the rapidsai
codebase (and GitHub generally) to ensure that this should not have any negative effects downstream.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah I also searched rapids for uses of rmm._cuda
and I think they we're all in rmm
/merge |
Thanks for your work on this @Matt711! 🥳 |
This appears to have caused problems downstream: https://github.com/rapidsai/cugraph/actions/runs/12820092417/job/35756703577?pr=4804#step:9:407 I don't know why yet -- still trying to trace down what is triggering the deprecation warning, since I don't see any references to the deprecated code. |
Description
Closes #1770.
Checklist