-
Notifications
You must be signed in to change notification settings - Fork 548
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Forward-merge branch-25.02 into branch-25.04 #6257
Conversation
Contributes to rapidsai/build-planning#138 Updates to using UCX 1.18 in pip devcontainers here. Authors: - James Lamb (https://github.com/jameslamb) Approvers: - Ray Douglass (https://github.com/raydouglass) - https://github.com/jakirkham URL: #6249
FAILURE - Unable to forward-merge due to an error, manual merge is necessary. Do not use the IMPORTANT: When merging this PR, do not use the auto-merger (i.e. the |
This PR updates cuML to use the new cuda-python `cuda.bindings` layout. See rapidsai/build-planning#117. Authors: - Bradley Dice (https://github.com/bdice) - https://github.com/jakirkham Approvers: - Dante Gama Dessavre (https://github.com/dantegd) - https://github.com/jakirkham URL: #6233
CUDA 12.8 introduces sm_120 that requires a reduced number of threads per sm Authors: - Robert Maynard (https://github.com/robertmaynard) Approvers: - Vyas Ramasubramani (https://github.com/vyasr) - Dante Gama Dessavre (https://github.com/dantegd) URL: #6250
Replaces #6006, contributes to rapidsai/build-planning#33. Proposes packaging `libcuml` as a wheel, which is then re-used by `cuml-cu{11,12}` wheels. ## Notes for Reviewers ### Benefits of these changes * smaller wheels (see "Size Changes" below) * faster compile times - *no more re-compiling RAFT, thanks to rapidsai/raft#2531 * less use of CI resources (only compiling once per CPU architecture / CUDA versions, instead of once per those + Python minor version) * other benefits mentioned in rapidsai/build-planning#33 ### Wheel contents `libcuml`: * `libcuml++.so` (shared library) and its headers * `libcumlprims_mg.so` (shared library) and its headers * other vendored dependencies (CCCL, `fmt`) `cuml`: * `cuml` Python / Cython code and compiled Cython extensions ### Dependency Flows In short.... `libcuml` contains `libcuml.so` and `libcumlprims_mg.so` dynamic libraries and the headers to link against them. * Anything that needs to link against cuML at build time pulls in `libcugraph` wheels as a build dependency. * Anything that needs cuML's symbols at runtime pulls it in as a runtime dependency, and calls `libcuml.load_library()`. For more details and some flowcharts, see rapidsai/build-planning#33 (comment) ### Size changes (CUDA 12, Python 3.12, x86_64) | wheel | num files (before) | num files (this PR) | size (before) | size (this PR) | |:---------------:|------------------:|-----------------:|--------------:|-------------:| | `libcuml` | --- | 1766 | --- | 289M | | `cuml` | 442 | 441 | 527M | 9M | |**TOTAL** | **442** | **2207** | **527M** | **298M** | *NOTES: size = compressed, "before" = 2025-01-22 nightlies* <details><summary>how I calculated those (click me)</summary> ```shell docker run \ --rm \ --network host \ --env RAPIDS_NIGHTLY_DATE=2025-01-22 \ --env CUML_NIGHTLY_SHA=01e19bba9821954b062a04fbf31d3522afa4b0b1 \ --env CUML_PR="pull-request/6199" \ --env CUML_PR_SHA="9d5100ec4589e20230a31817518427efa1e49c6d" \ --env RAPIDS_PY_CUDA_SUFFIX=cu12 \ --env WHEEL_DIR_BEFORE=/tmp/wheels-before \ --env WHEEL_DIR_AFTER=/tmp/wheels-after \ -it rapidsai/ci-wheel:cuda12.5.1-rockylinux8-py3.12 \ bash # --- nightly wheels --- # mkdir -p ./wheels-before export RAPIDS_BUILD_TYPE=branch export RAPIDS_REF_NAME="branch-25.02" # cuml RAPIDS_PY_WHEEL_NAME="cuml_${RAPIDS_PY_CUDA_SUFFIX}" \ RAPIDS_REPOSITORY=rapidsai/cuml \ RAPIDS_SHA=${CUML_NIGHTLY_SHA} \ rapids-download-wheels-from-s3 python ./wheels-before # --- wheels from CI --- # mkdir -p ./wheels-after export RAPIDS_BUILD_TYPE="pull-request" # libcuml RAPIDS_PY_WHEEL_NAME="libcuml_${RAPIDS_PY_CUDA_SUFFIX}" \ RAPIDS_REPOSITORY=rapidsai/cuml \ RAPIDS_REF_NAME="${CUML_PR}" \ RAPIDS_SHA="${CUML_PR_SHA}" \ rapids-download-wheels-from-s3 cpp ./wheels-after # cuml RAPIDS_PY_WHEEL_NAME="cuml_${RAPIDS_PY_CUDA_SUFFIX}" \ RAPIDS_REPOSITORY=rapidsai/cuml \ RAPIDS_REF_NAME="${CUML_PR}" \ RAPIDS_SHA="${CUML_PR_SHA}" \ rapids-download-wheels-from-s3 python ./wheels-after pip install pydistcheck pydistcheck \ --inspect \ --select 'distro-too-large-compressed' \ ./wheels-before/*.whl \ | grep -E '^checking|files: | compressed' \ > ./before.txt # get more exact sizes du -sh ./wheels-before/* pydistcheck \ --inspect \ --select 'distro-too-large-compressed' \ ./wheels-after/*.whl \ | grep -E '^checking|files: | compressed' \ > ./after.txt # get more exact sizes du -sh ./wheels-after/* ``` </details> ### How I tested this These other PRs: * rapidsai/devcontainers#442 Authors: - James Lamb (https://github.com/jameslamb) - Bradley Dice (https://github.com/bdice) Approvers: - Bradley Dice (https://github.com/bdice) - Divye Gala (https://github.com/divyegala) URL: #6199
Renames `test` directories to `tests` for alignment with the rest of RAPIDS. See also: rapidsai/build-planning#140 Authors: - Bradley Dice (https://github.com/bdice) Approvers: - Dante Gama Dessavre (https://github.com/dantegd) URL: #6237
…6227) Authors: - Dante Gama Dessavre (https://github.com/dantegd) - Vyas Ramasubramani (https://github.com/vyasr) Approvers: - Vyas Ramasubramani (https://github.com/vyasr) - Tim Head (https://github.com/betatim) URL: #6227
`sklearn` requires `fit`/`fit_transform`/... always take a `y` parameter, even if it's ignored. This adds a test to ensure our signatures match this rule, and fixes any cases where they didn't. This makes it easier to include `cuml` estimators within sklearn pipelines. Fixes #6255. Authors: - Jim Crist-Harif (https://github.com/jcrist) - Bradley Dice (https://github.com/bdice) - Tim Head (https://github.com/betatim) Approvers: - William Hicks (https://github.com/wphicks) - Tim Head (https://github.com/betatim) URL: #6260
CCCL is deprecating a lot of legacy thrust features, so replace them with the standard ones from libc++ or just drop them altogether Authors: - Michael Schellenberger Costa (https://github.com/miscco) Approvers: - Dante Gama Dessavre (https://github.com/dantegd) URL: #6248
Cuda 12.8+ doesn't allow CUDA kernels to be called cross TUs when building in whole compilation mode. So in the 25.02 short-term we ignore this warning Authors: - Robert Maynard (https://github.com/robertmaynard) Approvers: - Dante Gama Dessavre (https://github.com/dantegd) - Bradley Dice (https://github.com/bdice) - Paul Taylor (https://github.com/trxcllnt) URL: #6264
…#6259) Fixes #6216 by identifying whether the original input data is on host or device and conditionally builds the brute force index (required for a separate `transform()` call) for the correct matrix view. - [x] Identify and fix root cause - [x] Clean up implementation - [x] Implement unit test - [x] Document fix Closes #6216 Authors: - Simon Adorf (https://github.com/csadorf) - Dante Gama Dessavre (https://github.com/dantegd) Approvers: - William Hicks (https://github.com/wphicks) - Victor Lafargue (https://github.com/viclafargue) URL: #6259
Forward-merge triggered by push to branch-25.02 that creates a PR to keep branch-25.04 up-to-date. If this PR is unable to be immediately merged due to conflicts, it will remain open for the team to manually merge. See forward-merger docs for more info.