Skip to content

Commit 4fb6470

Browse files
authored
split up CUDA-suffixed dependencies in dependencies.yaml (#4552)
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: - Bradley Dice (https://github.com/bdice) URL: #4552
1 parent f628718 commit 4fb6470

File tree

9 files changed

+94
-43
lines changed

9 files changed

+94
-43
lines changed

dependencies.yaml

Lines changed: 86 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -493,7 +493,7 @@ dependencies:
493493
- requests
494494
- nccl>=2.9.9
495495
- ucx-proc=*=gpu
496-
- &ucx_py ucx-py==0.39.*,>=0.0.0a0
496+
- &ucx_py_unsuffixed ucx-py==0.39.*,>=0.0.0a0
497497
- output_types: pyproject
498498
packages:
499499
# cudf uses fsspec but is protocol independent. cugraph
@@ -504,15 +504,17 @@ dependencies:
504504
matrices:
505505
- matrix:
506506
cuda: "11.*"
507+
cuda_suffixed: "true"
507508
packages:
508509
- &ucx_py_cu11 ucx-py-cu11==0.39.*,>=0.0.0a0
509510
- matrix:
510511
cuda: "12.*"
512+
cuda_suffixed: "true"
511513
packages:
512514
- &ucx_py_cu12 ucx-py-cu12==0.39.*,>=0.0.0a0
513515
- matrix:
514516
packages:
515-
- *ucx_py
517+
- *ucx_py_unsuffixed
516518
python_run_nx_cugraph:
517519
common:
518520
- output_types: [conda, pyproject]
@@ -530,15 +532,17 @@ dependencies:
530532
matrices:
531533
- matrix:
532534
cuda: "11.*"
535+
cuda_suffixed: "true"
533536
packages:
534537
- &cugraph_cu11 cugraph-cu11==24.8.*,>=0.0.0a0
535538
- matrix:
536539
cuda: "12.*"
540+
cuda_suffixed: "true"
537541
packages:
538542
- &cugraph_cu12 cugraph-cu12==24.8.*,>=0.0.0a0
539543
- matrix:
540544
packages:
541-
- &cugraph cugraph==24.8.*,>=0.0.0a0
545+
- &cugraph_unsuffixed cugraph==24.8.*,>=0.0.0a0
542546
python_run_cugraph_pyg:
543547
common:
544548
- output_types: [conda, pyproject]
@@ -550,15 +554,17 @@ dependencies:
550554
matrices:
551555
- matrix:
552556
cuda: "11.*"
557+
cuda_suffixed: "true"
553558
packages:
554559
- *cugraph_cu11
555560
- matrix:
556561
cuda: "12.*"
562+
cuda_suffixed: "true"
557563
packages:
558564
- *cugraph_cu12
559565
- matrix:
560566
packages:
561-
- *cugraph
567+
- *cugraph_unsuffixed
562568
python_run_cugraph_service_client:
563569
common:
564570
- output_types: [conda, pyproject]
@@ -575,27 +581,29 @@ dependencies:
575581
- *thrift
576582
- output_types: conda
577583
packages:
578-
- *ucx_py
584+
- *ucx_py_unsuffixed
579585
specific:
580586
- output_types: pyproject
581587
matrices:
582588
- matrix:
583589
cuda: "11.*"
590+
cuda_suffixed: "true"
584591
packages:
585592
- *cugraph_cu11
586593
- cugraph-service-client-cu11==24.8.*,>=0.0.0a0
587594
- *ucx_py_cu11
588595
- matrix:
589596
cuda: "12.*"
597+
cuda_suffixed: "true"
590598
packages:
591599
- *cugraph_cu12
592600
- cugraph-service-client-cu12==24.8.*,>=0.0.0a0
593601
- *ucx_py_cu12
594602
- matrix:
595603
packages:
596-
- *cugraph
604+
- *cugraph_unsuffixed
597605
- cugraph-service-client==24.8.*,>=0.0.0a0
598-
- *ucx_py
606+
- *ucx_py_unsuffixed
599607
test_cpp:
600608
common:
601609
- output_types: conda
@@ -630,7 +638,7 @@ dependencies:
630638
- scikit-learn>=0.23.1
631639
- output_types: [conda]
632640
packages:
633-
- &pylibwholegraph_conda pylibwholegraph==24.8.*,>=0.0.0a0
641+
- &pylibwholegraph_unsuffixed pylibwholegraph==24.8.*,>=0.0.0a0
634642
- *thrift
635643
test_python_pylibcugraph:
636644
common:
@@ -648,15 +656,15 @@ dependencies:
648656
common:
649657
- output_types: [conda]
650658
packages:
651-
- cugraph==24.8.*,>=0.0.0a0
659+
- *cugraph_unsuffixed
652660
- pytorch>=2.0
653661
- pytorch-cuda==11.8
654662
- dgl>=1.1.0.cu*
655663
cugraph_pyg_dev:
656664
common:
657665
- output_types: [conda]
658666
packages:
659-
- cugraph==24.8.*,>=0.0.0a0
667+
- *cugraph_unsuffixed
660668
- pytorch>=2.0
661669
- pytorch-cuda==11.8
662670
- &tensordict tensordict>=0.1.2
@@ -666,7 +674,7 @@ dependencies:
666674
common:
667675
- output_types: [conda]
668676
packages:
669-
- &pytorch_conda pytorch>=2.0,<2.2.0a0
677+
- &pytorch_unsuffixed pytorch>=2.0,<2.2.0a0
670678

671679
specific:
672680
- output_types: [requirements]
@@ -694,7 +702,7 @@ dependencies:
694702
common:
695703
- output_types: conda
696704
packages:
697-
- *pylibwholegraph_conda
705+
- *pylibwholegraph_unsuffixed
698706
- output_types: requirements
699707
packages:
700708
# pip recognizes the index as a global option for the requirements.txt file
@@ -703,19 +711,23 @@ dependencies:
703711
specific:
704712
- output_types: [requirements, pyproject]
705713
matrices:
706-
- matrix: {cuda: "12.*"}
714+
- matrix:
715+
cuda: "12.*"
716+
cuda_suffixed: "true"
707717
packages:
708718
- pylibwholegraph-cu12==24.8.*,>=0.0.0a0
709-
- matrix: {cuda: "11.*"}
719+
- matrix:
720+
cuda: "11.*"
721+
cuda_suffixed: "true"
710722
packages:
711723
- pylibwholegraph-cu11==24.8.*,>=0.0.0a0
712-
- {matrix: null, packages: [*pylibwholegraph_conda]}
724+
- {matrix: null, packages: [*pylibwholegraph_unsuffixed]}
713725

714726
depends_on_rmm:
715727
common:
716728
- output_types: conda
717729
packages:
718-
- &rmm_conda rmm==24.8.*,>=0.0.0a0
730+
- &rmm_unsuffixed rmm==24.8.*,>=0.0.0a0
719731
- output_types: requirements
720732
packages:
721733
# pip recognizes the index as a global option for the requirements.txt file
@@ -724,19 +736,23 @@ dependencies:
724736
specific:
725737
- output_types: [requirements, pyproject]
726738
matrices:
727-
- matrix: {cuda: "12.*"}
739+
- matrix:
740+
cuda: "12.*"
741+
cuda_suffixed: "true"
728742
packages:
729743
- rmm-cu12==24.8.*,>=0.0.0a0
730-
- matrix: {cuda: "11.*"}
744+
- matrix:
745+
cuda: "11.*"
746+
cuda_suffixed: "true"
731747
packages:
732748
- rmm-cu11==24.8.*,>=0.0.0a0
733-
- {matrix: null, packages: [*rmm_conda]}
749+
- {matrix: null, packages: [*rmm_unsuffixed]}
734750

735751
depends_on_cudf:
736752
common:
737753
- output_types: conda
738754
packages:
739-
- &cudf_conda cudf==24.8.*,>=0.0.0a0
755+
- &cudf_unsuffixed cudf==24.8.*,>=0.0.0a0
740756
- output_types: requirements
741757
packages:
742758
# pip recognizes the index as a global option for the requirements.txt file
@@ -745,19 +761,23 @@ dependencies:
745761
specific:
746762
- output_types: [requirements, pyproject]
747763
matrices:
748-
- matrix: {cuda: "12.*"}
764+
- matrix:
765+
cuda: "12.*"
766+
cuda_suffixed: "true"
749767
packages:
750768
- cudf-cu12==24.8.*,>=0.0.0a0
751-
- matrix: {cuda: "11.*"}
769+
- matrix:
770+
cuda: "11.*"
771+
cuda_suffixed: "true"
752772
packages:
753773
- cudf-cu11==24.8.*,>=0.0.0a0
754-
- {matrix: null, packages: [*cudf_conda]}
774+
- {matrix: null, packages: [*cudf_unsuffixed]}
755775

756776
depends_on_dask_cudf:
757777
common:
758778
- output_types: conda
759779
packages:
760-
- &dask_cudf_conda dask-cudf==24.8.*,>=0.0.0a0
780+
- &dask_cudf_unsuffixed dask-cudf==24.8.*,>=0.0.0a0
761781
- output_types: requirements
762782
packages:
763783
# pip recognizes the index as a global option for the requirements.txt file
@@ -766,19 +786,23 @@ dependencies:
766786
specific:
767787
- output_types: [requirements, pyproject]
768788
matrices:
769-
- matrix: {cuda: "12.*"}
789+
- matrix:
790+
cuda: "12.*"
791+
cuda_suffixed: "true"
770792
packages:
771793
- dask-cudf-cu12==24.8.*,>=0.0.0a0
772-
- matrix: {cuda: "11.*"}
794+
- matrix:
795+
cuda: "11.*"
796+
cuda_suffixed: "true"
773797
packages:
774798
- dask-cudf-cu11==24.8.*,>=0.0.0a0
775-
- {matrix: null, packages: [*dask_cudf_conda]}
799+
- {matrix: null, packages: [*dask_cudf_unsuffixed]}
776800

777801
depends_on_pylibraft:
778802
common:
779803
- output_types: conda
780804
packages:
781-
- &pylibraft_conda pylibraft==24.8.*,>=0.0.0a0
805+
- &pylibraft_unsuffixed pylibraft==24.8.*,>=0.0.0a0
782806
- output_types: requirements
783807
packages:
784808
# pip recognizes the index as a global option for the requirements.txt file
@@ -787,19 +811,23 @@ dependencies:
787811
specific:
788812
- output_types: [requirements, pyproject]
789813
matrices:
790-
- matrix: {cuda: "12.*"}
814+
- matrix:
815+
cuda: "12.*"
816+
cuda_suffixed: "true"
791817
packages:
792818
- pylibraft-cu12==24.8.*,>=0.0.0a0
793-
- matrix: {cuda: "11.*"}
819+
- matrix:
820+
cuda: "11.*"
821+
cuda_suffixed: "true"
794822
packages:
795823
- pylibraft-cu11==24.8.*,>=0.0.0a0
796-
- {matrix: null, packages: [*pylibraft_conda]}
824+
- {matrix: null, packages: [*pylibraft_unsuffixed]}
797825

798826
depends_on_raft_dask:
799827
common:
800828
- output_types: conda
801829
packages:
802-
- &raft_dask_conda raft-dask==24.8.*,>=0.0.0a0
830+
- &raft_dask_unsuffixed raft-dask==24.8.*,>=0.0.0a0
803831
- output_types: requirements
804832
packages:
805833
# pip recognizes the index as a global option for the requirements.txt file
@@ -808,19 +836,23 @@ dependencies:
808836
specific:
809837
- output_types: [requirements, pyproject]
810838
matrices:
811-
- matrix: {cuda: "12.*"}
839+
- matrix:
840+
cuda: "12.*"
841+
cuda_suffixed: "true"
812842
packages:
813843
- raft-dask-cu12==24.8.*,>=0.0.0a0
814-
- matrix: {cuda: "11.*"}
844+
- matrix:
845+
cuda: "11.*"
846+
cuda_suffixed: "true"
815847
packages:
816848
- raft-dask-cu11==24.8.*,>=0.0.0a0
817-
- {matrix: null, packages: [*raft_dask_conda]}
849+
- {matrix: null, packages: [*raft_dask_unsuffixed]}
818850

819851
depends_on_pylibcugraph:
820852
common:
821853
- output_types: conda
822854
packages:
823-
- &pylibcugraph_conda pylibcugraph==24.8.*,>=0.0.0a0
855+
- &pylibcugraph_unsuffixed pylibcugraph==24.8.*,>=0.0.0a0
824856
- output_types: requirements
825857
packages:
826858
# pip recognizes the index as a global option for the requirements.txt file
@@ -829,19 +861,23 @@ dependencies:
829861
specific:
830862
- output_types: [requirements, pyproject]
831863
matrices:
832-
- matrix: {cuda: "12.*"}
864+
- matrix:
865+
cuda: "12.*"
866+
cuda_suffixed: "true"
833867
packages:
834868
- pylibcugraph-cu12==24.8.*,>=0.0.0a0
835-
- matrix: {cuda: "11.*"}
869+
- matrix:
870+
cuda: "11.*"
871+
cuda_suffixed: "true"
836872
packages:
837873
- pylibcugraph-cu11==24.8.*,>=0.0.0a0
838-
- {matrix: null, packages: [*pylibcugraph_conda]}
874+
- {matrix: null, packages: [*pylibcugraph_unsuffixed]}
839875

840876
depends_on_pylibcugraphops:
841877
common:
842878
- output_types: conda
843879
packages:
844-
- &pylibcugraphops_conda pylibcugraphops==24.8.*,>=0.0.0a0
880+
- &pylibcugraphops_unsuffixed pylibcugraphops==24.8.*,>=0.0.0a0
845881
- output_types: requirements
846882
packages:
847883
# pip recognizes the index as a global option for the requirements.txt file
@@ -850,19 +886,26 @@ dependencies:
850886
specific:
851887
- output_types: [requirements, pyproject]
852888
matrices:
853-
- matrix: {cuda: "12.*"}
889+
- matrix:
890+
cuda: "12.*"
891+
cuda_suffixed: "true"
854892
packages:
855893
- pylibcugraphops-cu12==24.8.*,>=0.0.0a0
856-
- matrix: {cuda: "11.*"}
894+
- matrix:
895+
cuda: "11.*"
896+
cuda_suffixed: "true"
857897
packages:
858898
- pylibcugraphops-cu11==24.8.*,>=0.0.0a0
859-
- {matrix: null, packages: [*pylibcugraphops_conda]}
899+
- {matrix: null, packages: [*pylibcugraphops_unsuffixed]}
860900

861901
depends_on_cupy:
862902
common:
863903
- output_types: conda
864904
packages:
865905
- cupy>=12.0.0
906+
# NOTE: This is intentionally not broken into groups by a 'cuda_suffixed' selector like
907+
# other packages with -cu{nn}x suffixes in this file.
908+
# All RAPIDS wheel builds (including in devcontainers) expect cupy to be suffixed.
866909
specific:
867910
- output_types: [requirements, pyproject]
868911
matrices:

python/cugraph-dgl/pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,3 +61,4 @@ include = [
6161
[tool.rapids-build-backend]
6262
build-backend = "setuptools.build_meta"
6363
dependencies-file = "../../dependencies.yaml"
64+
matrix-entry = "cuda_suffixed=true"

python/cugraph-equivariant/pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,3 +69,4 @@ include = [
6969
[tool.rapids-build-backend]
7070
build-backend = "setuptools.build_meta"
7171
dependencies-file = "../../dependencies.yaml"
72+
matrix-entry = "cuda_suffixed=true"

python/cugraph-pyg/pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,3 +67,4 @@ include = [
6767
[tool.rapids-build-backend]
6868
build-backend = "setuptools.build_meta"
6969
dependencies-file = "../../dependencies.yaml"
70+
matrix-entry = "cuda_suffixed=true"

python/cugraph-service/client/pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,3 +49,4 @@ include = [
4949
build-backend = "setuptools.build_meta"
5050
dependencies-file = "../../../dependencies.yaml"
5151
disable-cuda = true
52+
matrix-entry = "cuda_suffixed=true"

python/cugraph-service/server/pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,3 +77,4 @@ include = [
7777
[tool.rapids-build-backend]
7878
build-backend = "setuptools.build_meta"
7979
dependencies-file = "../../../dependencies.yaml"
80+
matrix-entry = "cuda_suffixed=true"

python/cugraph/pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,3 +86,4 @@ requires = [
8686
"rmm==24.8.*,>=0.0.0a0",
8787
] # This list was generated by `rapids-dependency-file-generator`. To make changes, edit ../../dependencies.yaml and run `rapids-dependency-file-generator`.
8888
dependencies-file = "../../dependencies.yaml"
89+
matrix-entry = "cuda_suffixed=true"

0 commit comments

Comments
 (0)