-
Notifications
You must be signed in to change notification settings - Fork 154
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
Distribute libcuspatial wheels #1450
Distribute libcuspatial wheels #1450
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Re-approving.
My review is requested but I have no expertise on wheels/pip. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Approving cmake changes.
python/libcuspatial/CMakeLists.txt
Outdated
set(CUSPATIAL_USE_CUDF_STATIC OFF) | ||
set(CUSPATIAL_EXCLUDE_CUDF_FROM_ALL ON) | ||
|
||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you remind me why we're setting this? Is it strictly necessary? Why aren't the install rules that come from add_subdirectory
sufficient? If we do have to set this variable, why do we have to set it but also do a separate install
below? It seems like either one or the other should be sufficient. I know this code is in the libcudf wheel now as well, but I don't understand why.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I copied this in here from libcudf
because I think I misunderstood the purpose there.
There, this is used to ensure all the nvcomp libraries and libcudf.so
all get put together into the same place: https://github.com/rapidsai/cudf/blob/26091a44b3dbf0f56fc0dfc5f081077f2d00681f/python/libcudf/CMakeLists.txt#L50-L53
That isn't necessary here, and you're right that the install rules from the add_subdirectory()
are sufficient. Removed this stuff in fb307ba
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I suspect that the libcudf install rules are also a little overspecified now. Simultaneously setting both the CMake var and doing the install of cudf in particular seems redundant. The nvcomp installation might be fine as is. We can revisit those later, though.
Mostly confused by the CMake installation, otherwise everything else looks OK to me. |
I've merged rapidsai/devcontainers#387 and restarted the pip devcontainer CI job here. Will merge this if it passes. build link: https://github.com/rapidsai/cuspatial/actions/runs/10705830747/job/29698846144?pr=1450 |
/merge |
Fixes #1455 devcontainer conda CI jobs are failing in this project because of the following mix of characteristics for thoes jobs: * all build and runtime dependencies for `libcuspatial`, `cuspatial`, `cuproj` are installed via conda * `libcuspatial`, `cuspatial`, and `cuproj` wheels are then built with `pip install -e --no-deps --no-build-isolation` * `import libcuspatial` results in unconditionally running `import libcudf` * `libcudf` is provided by the `libcudf` **conda** package, which does not have any Python modules, so that import fails This fixes that, and restores the ability to mix a `pip install`'d `cuspatial` / `cuproj` with a `conda`-installed `libcudf`. ## Notes for Reviewers ### How did CI not catch this before? When rapidsai/devcontainers#387 was merged, I only re-ran the **pip** devcontainers CI job on #1450. # Authors: - James Lamb (https://github.com/jameslamb) Approvers: - Bradley Dice (https://github.com/bdice) URL: #1456
Follow-up to #1448. This proposes some `dependencies.yaml` changes that I noticed while working on adding `libcuspatial` wheels in #1450. I've left inline comments with more details, but in short: * not including any cuspatial projects in the conda environment files checked into this repo (which are intended to be used to set up a development environment) * removing an unnecessary conda-only list of dependencies from pyproject.toml-specific config for `cuproj` * introduction of `depends_on_libcuspatial` and `depends_on_cuproj` lists in `dependencies.yaml`, to reduce duplication Authors: - James Lamb (https://github.com/jameslamb) Approvers: - Bradley Dice (https://github.com/bdice) URL: #1451
Description
Contributes to rapidsai/build-planning#33
Adds
libcuspatial
wheels, and switchescuspatial
wheels to using them.Notes for Reviewers
Benefits of these changes
Faster CI runs and smaller total footprint on package repositories (because now
libcuspatial
no longer needs to be compiled once per Python version).Smaller
cuspatial
wheels.libcuspatial
cuspatial
.cuproj
NOTES: size = compressed, "before" = 2024-09-02 nightlies (1544e7b), CUDA = 12, Python = 3.11
how I calculated those (click me)
devcontainers job?
Once this PR is close to ready, let's merge the devcontainers PR and then re-run the devcontainers CI here.
devcontainers PR: rapidsai/devcontainers#387
rapids-metadata
changes?Not necessary,
libcuspatial
is already there: https://github.com/rapidsai/rapids-metadata/blob/9b6307e708511cd9a1990d8bb36606df53bc9e1b/src/rapids_metadata/__init__.py#L89Checklist