diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 739996a264c..357d0d9bcae 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -76,9 +76,6 @@ jobs: sha: ${{ inputs.sha }} date: ${{ inputs.date }} script: ci/build_wheel_pylibcugraph.sh - extra-repo: rapidsai/cugraph-ops - extra-repo-sha: branch-25.02 - extra-repo-deploy-key: CUGRAPH_OPS_SSH_PRIVATE_DEPLOY_KEY node_type: cpu32 wheel-publish-pylibcugraph: needs: wheel-build-pylibcugraph @@ -100,9 +97,6 @@ jobs: sha: ${{ inputs.sha }} date: ${{ inputs.date }} script: ci/build_wheel_cugraph.sh - extra-repo: rapidsai/cugraph-ops - extra-repo-sha: branch-25.02 - extra-repo-deploy-key: CUGRAPH_OPS_SSH_PRIVATE_DEPLOY_KEY wheel-publish-cugraph: needs: wheel-build-cugraph secrets: inherit diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index 43200a5360b..633d964a3bf 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -142,9 +142,6 @@ jobs: with: build_type: pull-request script: ci/build_wheel_pylibcugraph.sh - extra-repo: rapidsai/cugraph-ops - extra-repo-sha: branch-25.02 - extra-repo-deploy-key: CUGRAPH_OPS_SSH_PRIVATE_DEPLOY_KEY node_type: cpu32 wheel-tests-pylibcugraph: needs: [wheel-build-pylibcugraph, changed-files] @@ -161,9 +158,6 @@ jobs: with: build_type: pull-request script: ci/build_wheel_cugraph.sh - extra-repo: rapidsai/cugraph-ops - extra-repo-sha: branch-25.02 - extra-repo-deploy-key: CUGRAPH_OPS_SSH_PRIVATE_DEPLOY_KEY wheel-tests-cugraph: needs: [wheel-build-cugraph, changed-files] secrets: inherit @@ -180,7 +174,6 @@ jobs: arch: '["amd64"]' cuda: '["12.5"]' node_type: cpu32 - extra-repo-deploy-key: CUGRAPH_OPS_SSH_PRIVATE_DEPLOY_KEY build_command: | sccache -z; build-all --verbose -j$(nproc --ignore=1) -DBUILD_CUGRAPH_MG_TESTS=ON; diff --git a/README.md b/README.md index f77b5702f71..820e6737590 100644 --- a/README.md +++ b/README.md @@ -54,7 +54,6 @@ - [libcugraph (C/C++/CUDA)](./readme_pages/libcugraph.md) - [nx-cugraph](https://rapids.ai/nx-cugraph/) - [cugraph-service](./readme_pages/cugraph_service.md) - - [cugraph-ops](./readme_pages/cugraph_ops.md) - API Docs - Python - [Python Nightly](https://docs.rapids.ai/api/cugraph/nightly/) diff --git a/ci/build_wheel_cugraph.sh b/ci/build_wheel_cugraph.sh index b937fd7f6d8..11ab9acc58c 100755 --- a/ci/build_wheel_cugraph.sh +++ b/ci/build_wheel_cugraph.sh @@ -30,7 +30,7 @@ case "${RAPIDS_CUDA_VERSION}" in ;; esac -export SKBUILD_CMAKE_ARGS="-DDETECT_CONDA_ENV=OFF;-DFIND_CUGRAPH_CPP=OFF;-DCPM_cugraph-ops_SOURCE=${GITHUB_WORKSPACE}/cugraph-ops/${EXTRA_CMAKE_ARGS}" +export SKBUILD_CMAKE_ARGS="-DDETECT_CONDA_ENV=OFF;-DFIND_CUGRAPH_CPP=OFF${EXTRA_CMAKE_ARGS}" export SKBUILD_BUILD_TOOL_ARGS="-j${PARALLEL_LEVEL};-l${PARALLEL_LEVEL}" ./ci/build_wheel.sh cugraph ${package_dir} diff --git a/ci/build_wheel_pylibcugraph.sh b/ci/build_wheel_pylibcugraph.sh index 928e12d2350..8bdfa20ee77 100755 --- a/ci/build_wheel_pylibcugraph.sh +++ b/ci/build_wheel_pylibcugraph.sh @@ -17,7 +17,7 @@ case "${RAPIDS_CUDA_VERSION}" in ;; esac -export SKBUILD_CMAKE_ARGS="-DDETECT_CONDA_ENV=OFF;-DFIND_CUGRAPH_CPP=OFF;-DCPM_cugraph-ops_SOURCE=${GITHUB_WORKSPACE}/cugraph-ops/${EXTRA_CMAKE_ARGS}" +export SKBUILD_CMAKE_ARGS="-DDETECT_CONDA_ENV=OFF;-DFIND_CUGRAPH_CPP=OFF${EXTRA_CMAKE_ARGS}" export SKBUILD_BUILD_TOOL_ARGS="-j${PARALLEL_LEVEL};-l${PARALLEL_LEVEL}" ./ci/build_wheel.sh pylibcugraph ${package_dir} diff --git a/ci/release/update-version.sh b/ci/release/update-version.sh index 961f7816caa..a73745f2c0e 100755 --- a/ci/release/update-version.sh +++ b/ci/release/update-version.sh @@ -57,12 +57,10 @@ DEPENDENCIES=( dask-cuda dask-cudf libcudf - libcugraphops libraft libraft-headers librmm pylibcugraph - pylibcugraphops pylibwholegraph pylibraft pyraft @@ -98,8 +96,6 @@ done # CI files for FILE in .github/workflows/*.yaml; do sed_runner "/shared-workflows/ s/@.*/@branch-${NEXT_SHORT_TAG}/g" "${FILE}" - # Wheel builds clone cugraph-ops, update its branch - sed_runner "s/extra-repo-sha: branch-.*/extra-repo-sha: branch-${NEXT_SHORT_TAG}/g" "${FILE}" # Wheel builds install dask-cuda from source, update its branch sed_runner "s/dask-cuda.git@branch-[0-9][0-9].[0-9][0-9]/dask-cuda.git@branch-${NEXT_SHORT_TAG}/g" "${FILE}" done diff --git a/conda/environments/all_cuda-118_arch-x86_64.yaml b/conda/environments/all_cuda-118_arch-x86_64.yaml index 5275d608440..e9f6842e8b8 100644 --- a/conda/environments/all_cuda-118_arch-x86_64.yaml +++ b/conda/environments/all_cuda-118_arch-x86_64.yaml @@ -26,7 +26,6 @@ dependencies: - graphviz - ipython - libcudf==25.2.*,>=0.0.0a0 -- libcugraphops==25.2.*,>=0.0.0a0 - libraft-headers==25.2.*,>=0.0.0a0 - libraft==25.2.*,>=0.0.0a0 - librmm==25.2.*,>=0.0.0a0 @@ -45,7 +44,6 @@ dependencies: - pre-commit - pydantic - pydata-sphinx-theme -- pylibcugraphops==25.2.*,>=0.0.0a0 - pylibraft==25.2.*,>=0.0.0a0 - pylibwholegraph==25.2.*,>=0.0.0a0 - pytest diff --git a/conda/environments/all_cuda-125_arch-x86_64.yaml b/conda/environments/all_cuda-125_arch-x86_64.yaml index 33c9be9cdda..13e102862ab 100644 --- a/conda/environments/all_cuda-125_arch-x86_64.yaml +++ b/conda/environments/all_cuda-125_arch-x86_64.yaml @@ -29,7 +29,6 @@ dependencies: - ipython - libcublas-dev - libcudf==25.2.*,>=0.0.0a0 -- libcugraphops==25.2.*,>=0.0.0a0 - libcurand-dev - libcusolver-dev - libcusparse-dev @@ -50,7 +49,6 @@ dependencies: - pre-commit - pydantic - pydata-sphinx-theme -- pylibcugraphops==25.2.*,>=0.0.0a0 - pylibraft==25.2.*,>=0.0.0a0 - pylibwholegraph==25.2.*,>=0.0.0a0 - pytest diff --git a/conda/recipes/libcugraph/meta.yaml b/conda/recipes/libcugraph/meta.yaml index 8b1fadbba25..922d5e577b2 100644 --- a/conda/recipes/libcugraph/meta.yaml +++ b/conda/recipes/libcugraph/meta.yaml @@ -69,7 +69,6 @@ requirements: - cuda-version ={{ cuda_version }} - doxygen {{ doxygen_version }} - libcudf ={{ minor_version }} - - libcugraphops ={{ minor_version }} - libraft ={{ minor_version }} - libraft-headers ={{ minor_version }} - librmm ={{ minor_version }} @@ -114,7 +113,6 @@ outputs: - libcusolver - libcusparse {% endif %} - - libcugraphops ={{ minor_version }} - libraft ={{ minor_version }} - libraft-headers ={{ minor_version }} - librmm ={{ minor_version }} diff --git a/cpp/.clang-format b/cpp/.clang-format index 3095c6d514a..16abf7475fa 100644 --- a/cpp/.clang-format +++ b/cpp/.clang-format @@ -77,7 +77,7 @@ IncludeCategories: Priority: 1 - Regex: '^ - $ PRIVATE ${COMPILED_RAFT_LIB} cuco::cuco diff --git a/cpp/src/utilities/cugraph_ops_utils.hpp b/cpp/src/utilities/cugraph_ops_utils.hpp deleted file mode 100644 index bb014b9d7d6..00000000000 --- a/cpp/src/utilities/cugraph_ops_utils.hpp +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (c) 2021-2024, NVIDIA CORPORATION. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#pragma once - -#include -#include - -namespace cugraph { -namespace detail { - -template -ops::graph::csc get_graph( - graph_view_t const& gview) -{ - ops::graph::csc graph; - graph.n_src_nodes = gview.number_of_vertices(); - graph.n_dst_nodes = gview.number_of_vertices(); - graph.n_indices = gview.local_edge_partition_view().number_of_edges(); - // FIXME this is sufficient for now, but if there is a fast (cached) way - // of getting max degree, use that instead - graph.dst_max_in_degree = std::numeric_limits::max(); - // FIXME: this is evil and is just temporary until we have a matching type in cugraph-ops - // or we change the type accepted by the functions calling into cugraph-ops - graph.offsets = const_cast(gview.local_edge_partition_view().offsets().data()); - graph.indices = const_cast(gview.local_edge_partition_view().indices().data()); - return graph; -} - -} // namespace detail -} // namespace cugraph diff --git a/dependencies.yaml b/dependencies.yaml index 3b53aecec01..93983a1a29b 100644 --- a/dependencies.yaml +++ b/dependencies.yaml @@ -20,8 +20,6 @@ files: - depends_on_dask_cudf - depends_on_pylibraft - depends_on_raft_dask - # Deprecate pylibcugraphops - - depends_on_pylibcugraphops - depends_on_pylibwholegraph - depends_on_cupy - depends_on_pytorch @@ -41,8 +39,6 @@ files: - cuda_version - docs - py_version - # Deprecate pylibcugraphops - - depends_on_pylibcugraphops test_cpp: output: none includes: @@ -295,8 +291,6 @@ dependencies: - c-compiler - cxx-compiler - libcudf==25.2.*,>=0.0.0a0 - # Deprecate libcugraphops - - libcugraphops==25.2.*,>=0.0.0a0 - libraft-headers==25.2.*,>=0.0.0a0 - libraft==25.2.*,>=0.0.0a0 - librmm==25.2.*,>=0.0.0a0 @@ -710,32 +704,6 @@ dependencies: - pylibcugraph-cu11==25.2.*,>=0.0.0a0 - {matrix: null, packages: [*pylibcugraph_unsuffixed]} - # deprecate pylibcugraphops - depends_on_pylibcugraphops: - common: - - output_types: conda - packages: - - &pylibcugraphops_unsuffixed pylibcugraphops==25.2.*,>=0.0.0a0 - - output_types: requirements - packages: - # pip recognizes the index as a global option for the requirements.txt file - - --extra-index-url=https://pypi.nvidia.com - - --extra-index-url=https://pypi.anaconda.org/rapidsai-wheels-nightly/simple - specific: - - output_types: [requirements, pyproject] - matrices: - - matrix: - cuda: "12.*" - cuda_suffixed: "true" - packages: - - pylibcugraphops-cu12==25.2.*,>=0.0.0a0 - - matrix: - cuda: "11.*" - cuda_suffixed: "true" - packages: - - pylibcugraphops-cu11==25.2.*,>=0.0.0a0 - - {matrix: null, packages: [*pylibcugraphops_unsuffixed]} - depends_on_cupy: common: - output_types: conda diff --git a/docs/cugraph/source/api_docs/cugraph-ops/c_cpp/index.rst b/docs/cugraph/source/api_docs/cugraph-ops/c_cpp/index.rst deleted file mode 100644 index 39dae955ef3..00000000000 --- a/docs/cugraph/source/api_docs/cugraph-ops/c_cpp/index.rst +++ /dev/null @@ -1,2 +0,0 @@ -cugraph-ops C++ API Reference -============================= diff --git a/docs/cugraph/source/api_docs/cugraph-ops/index.rst b/docs/cugraph/source/api_docs/cugraph-ops/index.rst deleted file mode 100644 index 41ae9416520..00000000000 --- a/docs/cugraph/source/api_docs/cugraph-ops/index.rst +++ /dev/null @@ -1,11 +0,0 @@ -cugraph-ops API reference -========================= - -This page provides a list of all publicly accessible modules, methods and classes through ``pylibcugraphops.*`` namespace. - -.. toctree:: - :maxdepth: 2 - :caption: API Documentation - - python/index - c_cpp/index diff --git a/docs/cugraph/source/api_docs/cugraph-ops/python/dimenet.rst b/docs/cugraph/source/api_docs/cugraph-ops/python/dimenet.rst deleted file mode 100644 index 6fadcc57b22..00000000000 --- a/docs/cugraph/source/api_docs/cugraph-ops/python/dimenet.rst +++ /dev/null @@ -1,24 +0,0 @@ -================= -Dimenet operators -================= - -.. currentmodule:: pylibcugraphops - -Radial Basis Functions ----------------------- -.. autosummary:: - :toctree: ../../api/ops - - dimenet.radial_basis_fwd - dimenet.radial_basis_bwd - dimenet.radial_basis_bwd_bwd - -Edge-to-Edge Aggregation -------------------------- -.. autosummary:: - :toctree: ../../api/ops - - dimenet.agg_edge_to_edge_fwd - dimenet.agg_edge_to_edge_bwd - dimenet.agg_edge_to_edge_bwd2_grad - dimenet.agg_edge_to_edge_bwd2_main diff --git a/docs/cugraph/source/api_docs/cugraph-ops/python/graph_types.rst b/docs/cugraph/source/api_docs/cugraph-ops/python/graph_types.rst deleted file mode 100644 index 141d40393a5..00000000000 --- a/docs/cugraph/source/api_docs/cugraph-ops/python/graph_types.rst +++ /dev/null @@ -1,34 +0,0 @@ -=========== -Graph types -=========== - -.. currentmodule:: pylibcugraphops - - -CSC Graph ------------------ -.. autosummary:: - :toctree: ../../api/ops - - make_csc - -Heterogenous CSC Graph ----------------------- -.. autosummary:: - :toctree: ../../api/ops - - make_csc_hg - -Bipartite Graph ------------------ -.. autosummary:: - :toctree: ../../api/ops - - make_bipartite_csc - -Heterogenous Bipartite Graph ----------------------------- -.. autosummary:: - :toctree: ../../api/ops - - make_bipartite_csc_hg diff --git a/docs/cugraph/source/api_docs/cugraph-ops/python/index.rst b/docs/cugraph/source/api_docs/cugraph-ops/python/index.rst deleted file mode 100644 index f1f332cb01f..00000000000 --- a/docs/cugraph/source/api_docs/cugraph-ops/python/index.rst +++ /dev/null @@ -1,13 +0,0 @@ -cugraph-ops Python API reference -================================ - -This page provides a list of all publicly accessible modules, methods and classes through ``pylibcugraphops.*`` namespace. - -.. toctree:: - :maxdepth: 2 - :caption: API Documentation - - graph_types - operators - dimenet - pytorch diff --git a/docs/cugraph/source/api_docs/cugraph-ops/python/operators.rst b/docs/cugraph/source/api_docs/cugraph-ops/python/operators.rst deleted file mode 100644 index 8b5efd7aa36..00000000000 --- a/docs/cugraph/source/api_docs/cugraph-ops/python/operators.rst +++ /dev/null @@ -1,109 +0,0 @@ -============================= -Operators for Message-Passing -============================= - -.. currentmodule:: pylibcugraphops - -Simple Neighborhood Aggregator (SAGEConv) ------------------------------------------ -.. autosummary:: - :toctree: ../../api/ops - - operators.agg_simple_n2n_fwd - operators.agg_simple_n2n_bwd - operators.agg_simple_e2n_fwd - operators.agg_simple_e2n_bwd - operators.agg_simple_n2n_e2n_fwd - operators.agg_simple_n2n_e2n_bwd - - operators.agg_concat_n2n_fwd - operators.agg_concat_n2n_bwd - operators.agg_concat_e2n_fwd - operators.agg_concat_e2n_bwd - operators.agg_concat_n2n_e2n_fwd - operators.agg_concat_n2n_e2n_bwd - - -Weighted Neighborhood Aggregation ---------------------------------- -.. autosummary:: - :toctree: ../../api/ops - - operators.agg_weighted_n2n_fwd - operators.agg_weighted_n2n_bwd - operators.agg_concat_weighted_n2n_fwd - operators.agg_concat_weighted_n2n_bwd - -Heterogenous Aggregator using Basis Decomposition (RGCNConv) ------------------------------------------------------------- -.. autosummary:: - :toctree: ../../api/ops - - operators.agg_hg_basis_n2n_post_fwd - operators.agg_hg_basis_n2n_post_bwd - -Graph Attention (GATConv/GATv2Conv) ------------------------------------ -.. autosummary:: - :toctree: ../../api/ops - - operators.mha_gat_n2n_fwd_bf16_fp32 - operators.mha_gat_n2n_fwd_fp16_fp32 - operators.mha_gat_n2n_fwd_fp32_fp32 - operators.mha_gat_n2n_bwd_bf16_bf16_bf16_fp32 - operators.mha_gat_n2n_bwd_bf16_bf16_fp32_fp32 - operators.mha_gat_n2n_bwd_bf16_fp32_fp32_fp32 - operators.mha_gat_n2n_bwd_fp16_fp16_fp16_fp32 - operators.mha_gat_n2n_bwd_fp16_fp16_fp32_fp32 - operators.mha_gat_n2n_bwd_fp16_fp32_fp32_fp32 - operators.mha_gat_n2n_bwd_fp32_fp32_fp32_fp32 - operators.mha_gat_n2n_efeat_fwd_bf16_fp32 - operators.mha_gat_n2n_efeat_fwd_fp16_fp32 - operators.mha_gat_n2n_efeat_fwd_fp32_fp32 - operators.mha_gat_n2n_efeat_bwd_bf16_bf16_bf16_fp32 - operators.mha_gat_n2n_efeat_bwd_bf16_bf16_fp32_fp32 - operators.mha_gat_n2n_efeat_bwd_bf16_fp32_fp32_fp32 - operators.mha_gat_n2n_efeat_bwd_fp16_fp16_fp16_fp32 - operators.mha_gat_n2n_efeat_bwd_fp16_fp16_fp32_fp32 - operators.mha_gat_n2n_efeat_bwd_fp16_fp32_fp32_fp32 - operators.mha_gat_n2n_efeat_bwd_fp32_fp32_fp32_fp32 - - operators.mha_gat_v2_n2n_fwd - operators.mha_gat_v2_n2n_bwd - operators.mha_gat_v2_n2n_efeat_fwd - operators.mha_gat_v2_n2n_efeat_bwd - -Transformer-like Graph Attention (TransformerConv) --------------------------------------------------- -.. autosummary:: - :toctree: ../../api/ops - - operators.mha_gat_v2_n2n_fwd - operators.mha_gat_v2_n2n_bwd - operators.mha_gat_v2_n2n_efeat_fwd - operators.mha_gat_v2_n2n_efeat_bwd - -Directional Message-Passing (DMPNN) ------------------------------------ -.. autosummary:: - :toctree: ../../api/ops - - operators.agg_dmpnn_e2e_fwd - operators.agg_dmpnn_e2e_bwd - -Update Edges: Concatenation or Sum of Edge and Node Features ------------------------------------------------------------- -.. autosummary:: - :toctree: ../../api/ops - - operators.update_efeat_e2e_concat_fwd - operators.update_efeat_e2e_concat_bwd - - operators.update_efeat_e2e_sum_fwd - operators.update_efeat_e2e_sum_bwd - - operators.update_efeat_e2e_concat_fwd - operators.update_efeat_e2e_concat_bwd - - operators.update_efeat_e2e_sum_fwd - operators.update_efeat_e2e_sum_bwd diff --git a/docs/cugraph/source/api_docs/cugraph-ops/python/pytorch.rst b/docs/cugraph/source/api_docs/cugraph-ops/python/pytorch.rst deleted file mode 100644 index d2074df15b0..00000000000 --- a/docs/cugraph/source/api_docs/cugraph-ops/python/pytorch.rst +++ /dev/null @@ -1,36 +0,0 @@ -========================== -PyTorch Autograd Wrappers -========================== - -.. currentmodule:: pylibcugraphops.pytorch - -Simple Neighborhood Aggregator (SAGEConv) ------------------------------------------ -.. autosummary:: - :toctree: ../../api/ops - - operators.agg_concat_n2n - -Graph Attention (GATConv/GATv2Conv) ------------------------------------ -.. autosummary:: - :toctree: ../../api/ops - - operators.mha_gat_n2n - operators.mha_gat_v2_n2n - -Heterogenous Aggregator using Basis Decomposition (RGCNConv) ------------------------------------------------------------- -.. autosummary:: - :toctree: ../../api/ops - - operators.agg_hg_basis_n2n_post - - -Update Edges: Concatenation or Sum of Edge and Node Features ------------------------------------------------------------- -.. autosummary:: - :toctree: ../../api/ops - - operators.update_efeat_e2e - operators.update_efeat_e2e diff --git a/docs/cugraph/source/graph_support/cugraphops_support.rst b/docs/cugraph/source/graph_support/cugraphops_support.rst deleted file mode 100644 index 96b13f62a9c..00000000000 --- a/docs/cugraph/source/graph_support/cugraphops_support.rst +++ /dev/null @@ -1,10 +0,0 @@ -================== -cugraphops Support -================== - -cugraph-ops aims to be a low-level, framework agnostic library providing commonly used computational primitives for GNNs and other graph operations. - -.. toctree:: - :maxdepth: 3 - - https://github.com/rapidsai/cugraph/blob/branch-24.06/readme_pages/cugraph_ops.md diff --git a/docs/cugraph/source/graph_support/gnn_support.rst b/docs/cugraph/source/graph_support/gnn_support.rst index 639b657c64d..71586621608 100644 --- a/docs/cugraph/source/graph_support/gnn_support.rst +++ b/docs/cugraph/source/graph_support/gnn_support.rst @@ -8,5 +8,4 @@ Graph Neural Network Support PyG_support.md DGL_support.md - cugraphops_support.rst wholegraph_support.md diff --git a/docs/cugraph/source/wholegraph/installation/container.md b/docs/cugraph/source/wholegraph/installation/container.md index 6aac53cf88f..4068ead27b2 100644 --- a/docs/cugraph/source/wholegraph/installation/container.md +++ b/docs/cugraph/source/wholegraph/installation/container.md @@ -21,7 +21,7 @@ RUN pip3 install -U py RUN pip3 install Cython setuputils3 scikit-build nanobind pytest-forked pytest ``` -To run GNN applications, you may also need cuGraphOps, DGL and/or PyG libraries to run the GNN layers. +To run GNN applications, you may also need DGL and/or PyG libraries to run the GNN layers. You may refer to [DGL](https://www.dgl.ai/pages/start.html) or [PyG](https://pytorch-geometric.readthedocs.io/en/latest/notes/installation.html) For example, to install DGL, you may need to add: diff --git a/img/cugraphops_context.png b/img/cugraphops_context.png deleted file mode 100644 index 8db157d2f09..00000000000 Binary files a/img/cugraphops_context.png and /dev/null differ diff --git a/python/cugraph/cugraph/tests/sampling/test_random_walks.py b/python/cugraph/cugraph/tests/sampling/test_random_walks.py index 9c94e036683..76ceb478518 100644 --- a/python/cugraph/cugraph/tests/sampling/test_random_walks.py +++ b/python/cugraph/cugraph/tests/sampling/test_random_walks.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2023, NVIDIA CORPORATION.: +# Copyright (c) 2020-2024, NVIDIA CORPORATION.: # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at @@ -222,7 +222,6 @@ def test_random_walks_invalid_max_dept(graph_file, directed, max_depth): @pytest.mark.sg -@pytest.mark.cugraph_ops @pytest.mark.parametrize("graph_file", SMALL_DATASETS) @pytest.mark.parametrize("directed", DIRECTED_GRAPH_OPTIONS) def test_random_walks_coalesced(graph_file, directed): @@ -246,7 +245,6 @@ def test_random_walks_coalesced(graph_file, directed): @pytest.mark.sg -@pytest.mark.cugraph_ops @pytest.mark.parametrize("graph_file", SMALL_DATASETS) @pytest.mark.parametrize("directed", DIRECTED_GRAPH_OPTIONS) def test_random_walks_padded_0(graph_file, directed): @@ -271,7 +269,6 @@ def test_random_walks_padded_0(graph_file, directed): @pytest.mark.sg -@pytest.mark.cugraph_ops def test_random_walks_padded_1(): max_depth = random.randint(2, 10) @@ -294,7 +291,6 @@ def test_random_walks_padded_1(): @pytest.mark.sg -@pytest.mark.cugraph_ops @pytest.mark.parametrize("graph_file", SMALL_DATASETS) def test_random_walks_nx(graph_file): G = graph_file.get_graph(create_using=cugraph.Graph(directed=True)) diff --git a/python/cugraph/cugraph/tests/sampling/test_random_walks_mg.py b/python/cugraph/cugraph/tests/sampling/test_random_walks_mg.py index 34eeb2902f8..96b34c638b5 100644 --- a/python/cugraph/cugraph/tests/sampling/test_random_walks_mg.py +++ b/python/cugraph/cugraph/tests/sampling/test_random_walks_mg.py @@ -203,7 +203,6 @@ def input_graph(request): @pytest.mark.mg -@pytest.mark.cugraph_ops def test_dask_mg_random_walks(dask_client, input_graph): path_data, seeds, max_depth = calc_random_walks(input_graph) df_G = input_graph.input_df.compute().reset_index(drop=True) diff --git a/python/cugraph/cugraph/tests/sampling/test_uniform_neighbor_sample.py b/python/cugraph/cugraph/tests/sampling/test_uniform_neighbor_sample.py index ad0dbe77f7d..65687a1a227 100644 --- a/python/cugraph/cugraph/tests/sampling/test_uniform_neighbor_sample.py +++ b/python/cugraph/cugraph/tests/sampling/test_uniform_neighbor_sample.py @@ -130,7 +130,6 @@ def simple_unweighted_input_expected_output(request): # Tests # ============================================================================= @pytest.mark.sg -@pytest.mark.cugraph_ops def test_uniform_neighbor_sample_simple(input_combo): G = input_combo["Graph"] @@ -229,7 +228,6 @@ def test_uniform_neighbor_sample_simple(input_combo): @pytest.mark.sg -@pytest.mark.cugraph_ops @pytest.mark.parametrize("directed", IS_DIRECTED) def test_uniform_neighbor_sample_tree(directed): @@ -301,7 +299,6 @@ def test_uniform_neighbor_sample_tree(directed): @pytest.mark.sg -@pytest.mark.cugraph_ops def test_uniform_neighbor_sample_unweighted(simple_unweighted_input_expected_output): test_data = simple_unweighted_input_expected_output @@ -322,7 +319,6 @@ def test_uniform_neighbor_sample_unweighted(simple_unweighted_input_expected_out @pytest.mark.sg -@pytest.mark.cugraph_ops @pytest.mark.parametrize("return_offsets", [True, False]) @pytest.mark.parametrize("include_hop_column", [True, False]) def test_uniform_neighbor_sample_edge_properties(return_offsets, include_hop_column): diff --git a/python/cugraph/cugraph/tests/sampling/test_uniform_neighbor_sample_mg.py b/python/cugraph/cugraph/tests/sampling/test_uniform_neighbor_sample_mg.py index 4a85b49a66e..6343b0ff9f3 100644 --- a/python/cugraph/cugraph/tests/sampling/test_uniform_neighbor_sample_mg.py +++ b/python/cugraph/cugraph/tests/sampling/test_uniform_neighbor_sample_mg.py @@ -131,7 +131,6 @@ def input_combo(request): # Tests # ============================================================================= @pytest.mark.mg -@pytest.mark.cugraph_ops def test_mg_uniform_neighbor_sample_simple(dask_client, input_combo): dg = input_combo["MGGraph"] @@ -220,7 +219,6 @@ def test_mg_uniform_neighbor_sample_simple(dask_client, input_combo): @pytest.mark.mg -@pytest.mark.cugraph_ops @pytest.mark.parametrize("directed", IS_DIRECTED) def test_mg_uniform_neighbor_sample_tree(dask_client, directed): @@ -286,7 +284,6 @@ def test_mg_uniform_neighbor_sample_tree(dask_client, directed): @pytest.mark.mg @pytest.mark.skipif(is_single_gpu(), reason="FIXME: MG test fails on single-GPU") -@pytest.mark.cugraph_ops def test_mg_uniform_neighbor_sample_unweighted(dask_client): df = cudf.DataFrame( { @@ -321,7 +318,6 @@ def test_mg_uniform_neighbor_sample_unweighted(dask_client): @pytest.mark.mg @pytest.mark.skipif(is_single_gpu(), reason="FIXME: MG test fails on single-GPU") -@pytest.mark.cugraph_ops def test_mg_uniform_neighbor_sample_ensure_no_duplicates(dask_client): # See issue #2760 # This ensures that the starts are properly distributed @@ -347,7 +343,6 @@ def test_mg_uniform_neighbor_sample_ensure_no_duplicates(dask_client): @pytest.mark.mg -@pytest.mark.cugraph_ops @pytest.mark.parametrize("return_offsets", [True, False]) def test_uniform_neighbor_sample_edge_properties(dask_client, return_offsets): n_workers = len(dask_client.scheduler_info()["workers"]) diff --git a/python/pylibcugraph/CMakeLists.txt b/python/pylibcugraph/CMakeLists.txt index 045628e9c0d..22d788ff253 100644 --- a/python/pylibcugraph/CMakeLists.txt +++ b/python/pylibcugraph/CMakeLists.txt @@ -32,14 +32,8 @@ project( option(FIND_CUGRAPH_CPP "Search for existing CUGRAPH C++ installations before defaulting to local files" OFF ) -option(USE_CUGRAPH_OPS "Enable all functions that call cugraph-ops" ON) option(USE_CUDA_MATH_WHEELS "Use the CUDA math wheels instead of the system libraries" OFF) -if(NOT USE_CUGRAPH_OPS) - message(STATUS "Disabling libcugraph functions that reference cugraph-ops") - add_compile_definitions(NO_CUGRAPH_OPS) -endif() - # If the user requested it we attempt to find CUGRAPH. if(FIND_CUGRAPH_CPP) find_package(cugraph "${RAPIDS_VERSION}" REQUIRED) @@ -54,14 +48,10 @@ if (NOT cugraph_FOUND) set(BUILD_TESTS OFF) set(BUILD_CUGRAPH_MG_TESTS OFF) - set(BUILD_CUGRAPH_OPS_CPP_TESTS OFF) set(CUDA_STATIC_RUNTIME ON) set(CUDA_STATIC_MATH_LIBRARIES ON) set(USE_RAFT_STATIC ON) set(CUGRAPH_COMPILE_RAFT_LIB ON) - set(CUGRAPH_USE_CUGRAPH_OPS_STATIC ON) - set(CUGRAPH_EXCLUDE_CUGRAPH_OPS_FROM_ALL ON) - set(ALLOW_CLONE_CUGRAPH_OPS ON) if(CUDAToolkit_VERSION VERSION_GREATER_EQUAL 12.0) set(CUDA_STATIC_MATH_LIBRARIES OFF) diff --git a/python/pylibcugraph/pylibcugraph/tests/test_uniform_neighbor_sample.py b/python/pylibcugraph/pylibcugraph/tests/test_uniform_neighbor_sample.py index ffa90731483..4dafeb19032 100644 --- a/python/pylibcugraph/pylibcugraph/tests/test_uniform_neighbor_sample.py +++ b/python/pylibcugraph/pylibcugraph/tests/test_uniform_neighbor_sample.py @@ -1,4 +1,4 @@ -# Copyright (c) 2022-2023, NVIDIA CORPORATION. +# Copyright (c) 2022-2024, NVIDIA CORPORATION. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at @@ -183,7 +183,6 @@ def test_neighborhood_sampling_cudf( ) -@pytest.mark.cugraph_ops def test_neighborhood_sampling_large_sg_graph(gpubenchmark): """ Use a large SG graph and set input args accordingly to test/benchmark diff --git a/python/pylibcugraph/pytest.ini b/python/pylibcugraph/pytest.ini index d5ade9f4836..8ca4e198441 100644 --- a/python/pylibcugraph/pytest.ini +++ b/python/pylibcugraph/pytest.ini @@ -12,7 +12,4 @@ # limitations under the License. [pytest] -markers = - cugraph_ops: Tests requiring cugraph-ops - addopts = --tb=native diff --git a/readme_pages/CONTRIBUTING.md b/readme_pages/CONTRIBUTING.md index ffe1ef1831b..01d5f263624 100644 --- a/readme_pages/CONTRIBUTING.md +++ b/readme_pages/CONTRIBUTING.md @@ -1,5 +1,5 @@ # Contributing to cuGraph -cuGraph, for the most part, is an open-source project where we encourage community involvement. The cugraph-ops package is the expection being a closed-source package. +cuGraph, for the most part, is an open-source project where we encourage community involvement. There are multiple ways to be involved and contribute to the cuGraph community, the top paths are listed below: diff --git a/readme_pages/cugraph_ops.md b/readme_pages/cugraph_ops.md deleted file mode 100644 index 7bd4ac55185..00000000000 --- a/readme_pages/cugraph_ops.md +++ /dev/null @@ -1,17 +0,0 @@ -

-
- cuGraph -

-

-CuGraphOps -

-Cugraph-ops is a closed-source library that is composed of highly optimized and -performant primitives associated with GNNs and related graph -operations, such as training, sampling and inference. - - -This is how cuGraphOps fits into the cuGraph ecosystem -

-
- cuGraph -