Skip to content

Commit

Permalink
split up CUDA-suffixed dependencies in dependencies.yaml (#2388)
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)

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

URL: #2388
  • Loading branch information
jameslamb committed Jul 25, 2024
1 parent 759095a commit 09f97c3
Show file tree
Hide file tree
Showing 4 changed files with 45 additions and 22 deletions.
64 changes: 42 additions & 22 deletions dependencies.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -209,7 +209,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 @@ -232,13 +232,17 @@ dependencies:
- &cuda_python cuda-python
- output_types: [requirements, pyproject]
matrices:
- matrix: {cuda: "12.*"}
- matrix:
cuda: "12.*"
cuda_suffixed: "true"
packages:
- &rmm_cu12 rmm-cu12==24.8.*,>=0.0.0a0
- matrix: {cuda: "11.*"}
- matrix:
cuda: "11.*"
cuda_suffixed: "true"
packages:
- &rmm_cu11 rmm-cu11==24.8.*,>=0.0.0a0
- {matrix: null, packages: [*rmm_conda] }
- {matrix: null, packages: [*rmm_unsuffixed] }
checks:
common:
- output_types: [conda, requirements]
Expand All @@ -260,7 +264,7 @@ dependencies:
- h5py>=3.8.0
- benchmark>=1.8.2
- openblas
- *rmm_conda
- *rmm_unsuffixed
nn_bench_python:
common:
- output_types: [conda]
Expand Down Expand Up @@ -441,7 +445,7 @@ dependencies:
- &numpy numpy>=1.23,<2.0a0
- output_types: [conda]
packages:
- *rmm_conda
- *rmm_unsuffixed
- output_types: requirements
packages:
# pip recognizes the index as a global option for the requirements.txt file
Expand Down Expand Up @@ -470,7 +474,7 @@ dependencies:
- matrix: {cuda: "11.*"}
packages:
- *rmm_cu11
- {matrix: null, packages: [*rmm_conda]}
- {matrix: null, packages: [*rmm_unsuffixed]}
run_raft_dask:
common:
- output_types: [conda, pyproject]
Expand All @@ -482,8 +486,8 @@ dependencies:
- rapids-dask-dependency==24.8.*,>=0.0.0a0
- output_types: conda
packages:
- &pylibraft_conda pylibraft==24.8.*,>=0.0.0a0
- &ucx_py_conda ucx-py==0.39.*,>=0.0.0a0
- &pylibraft_unsuffixed pylibraft==24.8.*,>=0.0.0a0
- &ucx_py_unsuffixed ucx-py==0.39.*,>=0.0.0a0
- output_types: requirements
packages:
# pip recognizes the index as a global option for the requirements.txt file
Expand All @@ -493,15 +497,19 @@ dependencies:
specific:
- output_types: [requirements, pyproject]
matrices:
- matrix: {cuda: "12.*"}
- matrix:
cuda: "12.*"
cuda_suffixed: "true"
packages:
- &pylibraft_cu12 pylibraft-cu12==24.8.*,>=0.0.0a0
- &ucx_py_cu12 ucx-py-cu12==0.39.*,>=0.0.0a0
- matrix: {cuda: "11.*"}
- matrix:
cuda: "11.*"
cuda_suffixed: "true"
packages:
- &pylibraft_cu11 pylibraft-cu11==24.8.*,>=0.0.0a0
- &ucx_py_cu11 ucx-py-cu11==0.39.*,>=0.0.0a0
- {matrix: null, packages: [*pylibraft_conda, *ucx_py_conda]}
- {matrix: null, packages: [*pylibraft_unsuffixed, *ucx_py_unsuffixed]}
test_python_common:
common:
- output_types: [conda, requirements, pyproject]
Expand All @@ -520,7 +528,7 @@ dependencies:
packages:
# UCXX is not currently a hard-dependency thus only installed during tests,
# this will change in the future.
- &distributed_ucxx_conda distributed-ucxx==0.39.*,>=0.0.0a0
- &distributed_ucxx_unsuffixed distributed-ucxx==0.39.*,>=0.0.0a0
- output_types: requirements
packages:
# pip recognizes the index as a global option for the requirements.txt file
Expand All @@ -529,18 +537,22 @@ dependencies:
specific:
- output_types: [requirements, pyproject]
matrices:
- matrix: {cuda: "12.*"}
- matrix:
cuda: "12.*"
cuda_suffixed: "true"
packages:
- distributed-ucxx-cu12==0.39.*,>=0.0.0a0
- matrix: {cuda: "11.*"}
- matrix:
cuda: "11.*"
cuda_suffixed: "true"
packages:
- distributed-ucxx-cu11==0.39.*,>=0.0.0a0
- {matrix: null, packages: [*distributed_ucxx_conda]}
- {matrix: null, packages: [*distributed_ucxx_unsuffixed]}
depends_on_ucx_build:
common:
- output_types: conda
packages:
- &ucx_conda_build ucx==1.15.0
- ucx==1.15.0
- output_types: requirements
packages:
# pip recognizes the index as a global option for the requirements.txt file
Expand All @@ -549,10 +561,14 @@ dependencies:
specific:
- output_types: [requirements, pyproject]
matrices:
- matrix: {cuda: "12.*"}
- matrix:
cuda: "12.*"
cuda_suffixed: "true"
packages:
- libucx-cu12==1.15.0
- matrix: {cuda: "11.*"}
- matrix:
cuda: "11.*"
cuda_suffixed: "true"
packages:
- libucx-cu11==1.15.0
- matrix: null
Expand All @@ -562,7 +578,7 @@ dependencies:
common:
- output_types: conda
packages:
- &ucx_conda_run ucx>=1.15.0
- ucx>=1.15.0
- output_types: requirements
packages:
# pip recognizes the index as a global option for the requirements.txt file
Expand All @@ -571,10 +587,14 @@ dependencies:
specific:
- output_types: [requirements, pyproject]
matrices:
- matrix: {cuda: "12.*"}
- matrix:
cuda: "12.*"
cuda_suffixed: "true"
packages:
- libucx-cu12>=1.15.0
- matrix: {cuda: "11.*"}
- matrix:
cuda: "11.*"
cuda_suffixed: "true"
packages:
- libucx-cu11>=1.15.0
- matrix: null
Expand Down
1 change: 1 addition & 0 deletions python/pylibraft/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,7 @@ requires = [
"rmm==24.8.*,>=0.0.0a0",
] # This list was generated by `rapids-dependency-file-generator`. To make changes, edit ../../dependencies.yaml and run `rapids-dependency-file-generator`.
dependencies-file = "../../dependencies.yaml"
matrix-entry = "cuda_suffixed=true"

[tool.pytest.ini_options]
filterwarnings = [
Expand Down
1 change: 1 addition & 0 deletions python/raft-ann-bench/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -68,3 +68,4 @@ build-backend = "setuptools.build_meta"
requires = []
dependencies-file = "../../dependencies.yaml"
commit-files = ["src/raft_ann_bench/GIT_COMMIT"]
matrix-entry = "cuda_suffixed=true"
1 change: 1 addition & 0 deletions python/raft-dask/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -125,3 +125,4 @@ requires = [
"ninja",
] # This list was generated by `rapids-dependency-file-generator`. To make changes, edit ../../dependencies.yaml and run `rapids-dependency-file-generator`.
dependencies-file = "../../dependencies.yaml"
matrix-entry = "cuda_suffixed=true"

0 comments on commit 09f97c3

Please sign in to comment.