Migrate stream APIs from rmm::cuda_stream_view to cuda::stream_ref - #23929
Migrate stream APIs from rmm::cuda_stream_view to cuda::stream_ref#23929bdice wants to merge 3 commits into
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. |
84de667 to
bb334ee
Compare
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Enterprise Run ID: 📒 Files selected for processing (1)
Included review availability: Your plan provides up to 12 included reviews per hour; 11 remain after this review. 📝 SummarySummary by CodeRabbit
WalkthroughChangesThe pull request updates CUDA stream integration across C++, Java native code, and Python Cython bindings. It replaces deprecated headers and CUDA stream migration
Estimated code review effort: 3 (Moderate) | ~25 minutes Merge Risk: ⚪ Minimal · up to This updates CUDA stream-handle access for Unicode normalization while preserving behavior and public interfaces. No current merge-blocking risk is identified. Possibly related PRs
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 33.33% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 3 functions across 15 files. (1 skipped: 1 unsupported.) ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
a61eee2 to
56b7d90
Compare
Use the `get()` compatibility alias added in [RMM #2537](rapidsai/rmm#2537). This spelling is shared by `rmm::cuda_stream_view` and `cuda::stream_ref`. This preserves existing stream types and public APIs while extracting mechanical accessor updates from the broader [stream migration](rapidsai/build-planning#318). It is independently buildable without [RMM #2372](rapidsai/rmm#2372) and leaves the migration PR focused on actual type and signature changes. This updates raw stream extraction at Cython boundaries and uses the CUDA stream umbrella header where stream definitions are required, without changing libcudf stream types or public APIs. The remaining type, construction, and forwarding changes stay in [cuDF #23929](#23929). Authors: - Bradley Dice (https://github.com/bdice) Approvers: - Vukasin Milovanovic (https://github.com/vuule) - Shruti Shivakumar (https://github.com/shrshi) - Yunsong Wang (https://github.com/PointKernel) - Nghia Truong (https://github.com/ttnghia) - Vyas Ramasubramani (https://github.com/vyasr) URL: #23995
56b7d90 to
1e03a9c
Compare
Summary
Track the coordinated migration of stream APIs and call sites from
rmm::cuda_stream_viewto CCCL'scuda::stream_ref. This propagatescuda::stream_refthrough RMM containers and memory resources, RAFT resource and handle APIs, downstream C++ interfaces, Python/Cython bindings, benchmarks, tests, and documentation.This updates cuDF C++ and Cython stream accessors, building on the default-stream work merged in #23770. It continues work from #23636.
Depends on rapidsai/rmm#2372.
Tracked in rapidsai/build-planning#318.
Migrations
cuda::stream_refthrough stream pools, resource accessors, conditionals, and downstream APIs without converting tormm::cuda_stream_viewcuda::stream_refconstructions for default/legacy/per-thread streamsrmm::cuda_stream_default➡️cuda::stream_ref{cudaStream_t{cudaStreamDefault}}rmm::cuda_stream_legacy➡️cuda::stream_ref{cudaStreamLegacy}rmm::cuda_stream_per_thread➡️cuda::stream_ref{cudaStreamPerThread}.get()when calling an API that requires a rawcudaStream_t, including CUDA runtime, library, CUB, and legacy API boundaries (previouslyrmm::cuda_stream_viewusedvalue()).sync()when synchronizing acuda::stream_ref(previouslyrmm::cuda_stream_viewusedsynchronize())Checklist