Skip to content

Commit

Permalink
split up CUDA-suffixed dependencies in dependencies.yaml (#1414)
Browse files Browse the repository at this point in the history
Contributes to rapidsai/build-planning#31

In short, RAPIDS DLFW builds want to produce wheels with unsuffixed dependencies, e.g. `cudf` depending on `rmm`, not `rmm-cu12`.

This PR is part of a series across all of RAPIDS to try to support that type of build by setting up CUDA-suffixed and CUDA-unsuffixed dependency lists in `dependencies.yaml`.

For more details, see:
* rapidsai/build-planning#31 (comment)
* rapidsai/cudf#16183

## Notes for Reviewers

### Why target 24.08?

This is targeting 24.08 because:

1. it should be very low-risk
2. getting these changes into 24.08 prevents the need to carry around patches for every library in DLFW builds using RAPIDS 24.08

Authors:
  - James Lamb (https://github.com/jameslamb)
  - Vyas Ramasubramani (https://github.com/vyasr)

Approvers:
  - Vyas Ramasubramani (https://github.com/vyasr)

URL: #1414
  • Loading branch information
jameslamb authored Jul 25, 2024
1 parent 7f76560 commit 58d4212
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 16 deletions.
50 changes: 34 additions & 16 deletions dependencies.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -398,7 +398,7 @@ dependencies:
common:
- output_types: conda
packages:
- &rmm_conda rmm==24.8.*,>=0.0.0a0
- &rmm_unsuffixed rmm==24.8.*,>=0.0.0a0
- output_types: requirements
packages:
# pip recognizes the index as a global option for the requirements.txt file
Expand All @@ -407,19 +407,23 @@ dependencies:
specific:
- output_types: [requirements, pyproject]
matrices:
- matrix: {cuda: "12.*"}
- matrix:
cuda: "12.*"
cuda_suffixed: "true"
packages:
- rmm-cu12==24.8.*,>=0.0.0a0
- matrix: {cuda: "11.*"}
- matrix:
cuda: "11.*"
cuda_suffixed: "true"
packages:
- rmm-cu11==24.8.*,>=0.0.0a0
- {matrix: null, packages: [*rmm_conda]}
- {matrix: null, packages: [*rmm_unsuffixed]}

depends_on_cudf:
common:
- output_types: conda
packages:
- &cudf_conda cudf==24.8.*,>=0.0.0a0
- &cudf_unsuffixed cudf==24.8.*,>=0.0.0a0
- output_types: requirements
packages:
# pip recognizes the index as a global option for the requirements.txt file
Expand All @@ -428,19 +432,23 @@ dependencies:
specific:
- output_types: [requirements, pyproject]
matrices:
- matrix: {cuda: "12.*"}
- matrix:
cuda: "12.*"
cuda_suffixed: "true"
packages:
- cudf-cu12==24.8.*,>=0.0.0a0
- matrix: {cuda: "11.*"}
- matrix:
cuda: "11.*"
cuda_suffixed: "true"
packages:
- cudf-cu11==24.8.*,>=0.0.0a0
- {matrix: null, packages: [*cudf_conda]}
- {matrix: null, packages: [*cudf_unsuffixed]}

depends_on_cuml:
common:
- output_types: conda
packages:
- &cuml_conda cuml==24.8.*,>=0.0.0a0
- &cuml_unsuffixed cuml==24.8.*,>=0.0.0a0
- output_types: requirements
packages:
# pip recognizes the index as a global option for the requirements.txt file
Expand All @@ -449,19 +457,23 @@ dependencies:
specific:
- output_types: [requirements, pyproject]
matrices:
- matrix: {cuda: "12.*"}
- matrix:
cuda: "12.*"
cuda_suffixed: "true"
packages:
- cuml-cu12==24.8.*,>=0.0.0a0
- matrix: {cuda: "11.*"}
- matrix:
cuda: "11.*"
cuda_suffixed: "true"
packages:
- cuml-cu11==24.8.*,>=0.0.0a0
- {matrix: null, packages: [*cuml_conda]}
- {matrix: null, packages: [*cuml_unsuffixed]}

depends_on_cuspatial:
common:
- output_types: conda
packages:
- &cuspatial_conda cuspatial==24.8.*,>=0.0.0a0
- &cuspatial_unsuffixed cuspatial==24.8.*,>=0.0.0a0
- output_types: requirements
packages:
# pip recognizes the index as a global option for the requirements.txt file
Expand All @@ -470,19 +482,25 @@ dependencies:
specific:
- output_types: [requirements, pyproject]
matrices:
- matrix: {cuda: "12.*"}
- matrix:
cuda: "12.*"
cuda_suffixed: "true"
packages:
- cuspatial-cu12==24.8.*,>=0.0.0a0
- matrix: {cuda: "11.*"}
- matrix:
cuda: "11.*"
cuda_suffixed: "true"
packages:
- cuspatial-cu11==24.8.*,>=0.0.0a0
- {matrix: null, packages: [*cuspatial_conda]}
- {matrix: null, packages: [*cuspatial_unsuffixed]}

depends_on_cupy:
common:
- output_types: conda
packages:
- cupy>=12.0.0
# NOTE: cupy dependency is not broken into groups by a 'cuda_suffixed' selector like
# other packages in this file because DLFW builds expect it to have a -cuda{nn}x suffix
specific:
- output_types: [requirements, pyproject]
matrices:
Expand Down
1 change: 1 addition & 0 deletions python/cuproj/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,7 @@ filterwarnings = [
[tool.rapids-build-backend]
build-backend = "scikit_build_core.build"
dependencies-file = "../../dependencies.yaml"
matrix-entry = "cuda_suffixed=true"
requires = [
"cmake>=3.26.4,!=3.30.0",
"cython>=3.0.0",
Expand Down
1 change: 1 addition & 0 deletions python/cuspatial/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,7 @@ filterwarnings = [
[tool.rapids-build-backend]
build-backend = "scikit_build_core.build"
dependencies-file = "../../dependencies.yaml"
matrix-entry = "cuda_suffixed=true"
requires = [
"cmake>=3.26.4,!=3.30.0",
"cudf==24.8.*,>=0.0.0a0",
Expand Down

0 comments on commit 58d4212

Please sign in to comment.