Skip to content

Remove unused cusolver/curand deps from libcuopt - #1830

Draft
ramakrishnap-nv wants to merge 1 commit into
mainfrom
test/drop-unused-cusolver-link
Draft

Remove unused cusolver/curand deps from libcuopt#1830
ramakrishnap-nv wants to merge 1 commit into
mainfrom
test/drop-unused-cusolver-link

Conversation

@ramakrishnap-nv

@ramakrishnap-nv ramakrishnap-nv commented Aug 28, 2026

Copy link
Copy Markdown
Collaborator

Neither cusolver nor curand is referenced anywhere in cpp/src, and no RAFT header cuOpt includes 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.

libcusolver-dev/libcurand-dev removed from dependencies.yaml (conda environments regenerated). libcurand-dev and its ignore_run_exports entry removed from recipe.yamlcusolver was never explicitly declared there, only inherited via libraft-headers.

curand was added deliberately in the past (not just inherited), despite the same zero-usage finding — see git blame on the removed CUDA::curand line (9f241a19, around when the barrier method moved to cuDSS for sparse Cholesky/LDLT) for context worth a second look.

Out of scope: the cuda_wheels pip/wheel install path (separate distribution channel, untested here), and switching libraft-headerslibraft-headers-only (bigger change, needs its own conda-build validation).

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>
@copy-pr-bot

copy-pr-bot Bot commented Aug 28, 2026

Copy link
Copy Markdown

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.

@ramakrishnap-nv ramakrishnap-nv added improvement Improves an existing functionality non-breaking Introduces a non-breaking change labels Aug 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

improvement Improves an existing functionality non-breaking Introduces a non-breaking change

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant