Fix launch_kernel handling of restricted and partially specified kernel arguments - #3117
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. |
|
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 (4)
📝 WalkthroughSummary by CodeRabbit
WalkthroughChangesKernel launch and symmetrization updates
Estimated code review effort: 3 (Moderate) | ~20 minutes Mergeability Score: ⚪ Minimal · up to The PR fixes kernel argument handling for restricted and partially specified arguments and adds regression coverage; no actionable merge-blocking risk remains. Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
/merge |
|
Thanks Dante for handling this! |
Fix downstream compilation failures introduced by the
raft::launch_kernelmigration.Some sparse symmetrization launches combine:
T*toconst T*, and__restrict__-qualified pointer parameters.The dispatcher preserved
__restrict__in its explicit parameter packs and later attempted to convert addresses of those parameter copies tovoid const*, which NVCC rejects. In addition, the conversion overload cannot resolve a partially specified kernel template.This change:
dispatchdeduce its by-value parameter types so outermost extended qualifiers such as__restrict__are dropped before arguments are staged forcudaLaunchKernelExC;from_knn_symmetrize_matrix.This fixes the UMAP and t-SNE compilation failures observed when building cuML against current RAFT.