Remove unused cusolver/curand deps from libcuopt - #1830
Conversation
Neither is referenced anywhere in cpp/src, and no RAFT header cuOpt includes (raft/core, raft/linalg's cublas-based ops, raft/random's custom PCG generator, raft/sparse) touches either library. Verified with a full local build: nm -D --undefined-only on the resulting libcuopt.so shows zero cusolver/curand symbols among its 762 undefined dynamic symbols, confirming the compiled binary has no runtime dependency on either. cusolver-dev/libcurand-dev removed from dependencies.yaml (conda environments regenerated via rapids-dependency-file-generator). libcurand-dev and its ignore_run_exports entry removed from conda/recipes/libcuopt/recipe.yaml; cusolver was never explicitly declared there, only inherited transitively via libraft-headers. Out of scope: the cuda_wheels pip/wheel install path (untested by this conda-based validation), and switching libraft-headers to libraft-headers-only (bigger change, needs its own conda-build validation). Signed-off-by: Ramakrishna Prabhu <ramakrishnap@nvidia.com>
|
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. |
|
/ok to test aaae5a6 |
CI Test Summary✅ All 31 test job(s) passed. |
|
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 (7)
💤 Files with no reviewable changes (7)
Included review availability: Your plan provides up to 12 included reviews per hour; 11 remain after this review. 📝 WalkthroughWalkthroughThe change removes ChangesCUDA dependency cleanup
Estimated code review effort: 2 (Simple) | ~10 minutes Merge Risk: ⚪ Minimal · up to This change removes unused cuSolver and cuRAND dependencies from the build and package environments without changing library behavior; no actionable merge-blocking risk remains after normal checks and review. Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Full details: Docstring CoverageExplanation No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. ✨ Finishing Touches 💡 1🛠️ Fix failing CI checks 💡
🧪 Generate unit tests (beta)
Comment |
|
/merge |
Neither
cusolvernorcurandis referenced anywhere incpp/src, and no RAFT header cuOpt includes touches either library. Verified with a full local build:nm -D --undefined-onlyon the resultinglibcuopt.soshows zerocusolver/curandsymbols among its 762 undefined dynamic symbols.libcusolver-dev/libcurand-devremoved fromdependencies.yaml(conda environments regenerated).libcurand-devand itsignore_run_exportsentry removed fromrecipe.yaml—cusolverwas never explicitly declared there, only inherited vialibraft-headers.curandwas added deliberately in the past (not just inherited), despite the same zero-usage finding — see git blame on the removedCUDA::curandline (9f241a19, around when the barrier method moved to cuDSS for sparse Cholesky/LDLT) for context worth a second look.Out of scope: the
cuda_wheelspip/wheel install path (separate distribution channel, untested here), and switchinglibraft-headers→libraft-headers-only(bigger change, needs its own conda-build validation).