build(wheel): drop the CUDA suffix and dimension from libcuopt-client - #1967
ramakrishnap-nv wants to merge 5 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. |
Since #1890 libcuopt_client.so has no rmm and no CUDA library in its DT_NEEDED -- only rapids-logger, gRPC, protobuf and abseil -- so the wheel is the same artifact whichever CUDA the build used, and installing it needs no CUDA stack. disable-cuda on the client wheel, so rapids-build-backend stops probing for a toolkit, drops the cuda dimension from dependency resolution, and leaves the name unsuffixed: one libcuopt-client rather than -cu12 and -cu13 py_run_libcuopt_client loses depends_on_librmm, leaving rapids-logger depends_on_libcuopt_client is unsuffixed everywhere, so mathopt and routing reference the single package a libcuopt_client_filter grouping by arch alone, halving the client's build jobs from four to two the conda output drops its cuda-version pin and librmm from run; both stay in host, where the headers are still needed to compile it The build still needs a CUDA toolkit, since the client is compiled as part of the whole tree, and librmm stays in the wheel's build requires for the same reason. This changes what the wheel depends on and how it is named, not how it is built. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The wheel no longer carries a CUDA suffix, so the artifact that holds it should
not either, and with one build per arch a CUDA version in the name is a value
no consumer can predict.
append-cuda-suffix: false on the build job, matching cuopt_sh_client, which
already sets it for the same reason. rapids-artifact-name drops --cuda, leaving
cuopt_wheel_cpp_libcuopt_client_{arch}; the publish job matches on the
publish-wheel-search-key prefix, so it is unaffected.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The package declares it contains no CUDA kernels and now depends on no CUDA runtime, so advertising Environment :: GPU :: NVIDIA CUDA misdescribes it. cuopt-self-hosted, the other CUDA-free package here, already omits it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
bb3237e to
6293c21
Compare
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository: NVIDIA/cuopt/.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. 📝 WalkthroughWalkthroughThe client package metadata and runtime requirements now use an unsuffixed package without CUDA wheel selection. CI selects one client build per architecture and produces wheel artifacts without CUDA-version suffixes. Changeslibcuopt client packaging
Priority: ➖ Normal Estimated code review effort: 2 (Simple) | ~10 minutes Change: Other Suggested reviewers: Merge Risk: ⚪ Minimal · up to The packaging changes retain the logger runtime dependency and support the intended architecture-specific, CUDA-independent wheels. No material merge risk remains. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
librapids_logger.so is in libcuopt_client.so's DT_NEEDED, but the run requirements never named it -- librmm pulled it in transitively. Dropping librmm took it with it, and the isolation test caught the result: OSError: librapids_logger.so: cannot open shared object file Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
CI Test Summary✅ All 32 test job(s) passed. |
libcuopt_client.solinks no rmm and no CUDA since #1890, so the wheel is the same artifact whichever CUDA built it.Removes the CUDA-related requirements from the client: the CUDA suffix on its name, the CUDA dimension in its builds and artifact name, and rmm and the
cuda-versionpin from its runtime dependencies.🤖 Generated with Claude Code