diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 96e491f4cb4..231f6ecf449 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -6,6 +6,7 @@ ARG PYTHON_PACKAGE_MANAGER=conda FROM ${BASE} as pip-base ENV DEFAULT_VIRTUAL_ENV=rapids +ENV RAPIDS_LIBUCX_PREFER_SYSTEM_LIBRARY=true RUN apt update -y \ && DEBIAN_FRONTEND=noninteractive apt install -y \ diff --git a/.devcontainer/cuda11.8-conda/devcontainer.json b/.devcontainer/cuda11.8-conda/devcontainer.json index f5886540252..fd559d7e96c 100644 --- a/.devcontainer/cuda11.8-conda/devcontainer.json +++ b/.devcontainer/cuda11.8-conda/devcontainer.json @@ -5,17 +5,17 @@ "args": { "CUDA": "11.8", "PYTHON_PACKAGE_MANAGER": "conda", - "BASE": "rapidsai/devcontainers:24.12-cpp-cuda11.8-mambaforge-ubuntu22.04" + "BASE": "rapidsai/devcontainers:25.02-cpp-cuda11.8-mambaforge-ubuntu22.04" } }, "runArgs": [ "--rm", "--name", - "${localEnv:USER:anon}-rapids-${localWorkspaceFolderBasename}-24.12-cuda11.8-conda" + "${localEnv:USER:anon}-rapids-${localWorkspaceFolderBasename}-25.02-cuda11.8-conda" ], "hostRequirements": {"gpu": "optional"}, "features": { - "ghcr.io/rapidsai/devcontainers/features/rapids-build-utils:24.12": {} + "ghcr.io/rapidsai/devcontainers/features/rapids-build-utils:25.2": {} }, "overrideFeatureInstallOrder": [ "ghcr.io/rapidsai/devcontainers/features/rapids-build-utils" diff --git a/.devcontainer/cuda11.8-pip/devcontainer.json b/.devcontainer/cuda11.8-pip/devcontainer.json index 270bfa239ad..f2abf493e12 100644 --- a/.devcontainer/cuda11.8-pip/devcontainer.json +++ b/.devcontainer/cuda11.8-pip/devcontainer.json @@ -5,24 +5,24 @@ "args": { "CUDA": "11.8", "PYTHON_PACKAGE_MANAGER": "pip", - "BASE": "rapidsai/devcontainers:24.12-cpp-cuda11.8-ucx1.15.0-openmpi-ubuntu22.04" + "BASE": "rapidsai/devcontainers:25.02-cpp-cuda11.8-ucx1.17.0-openmpi-ubuntu22.04" } }, "runArgs": [ "--rm", "--name", - "${localEnv:USER:anon}-rapids-${localWorkspaceFolderBasename}-24.12-cuda11.8-pip" + "${localEnv:USER:anon}-rapids-${localWorkspaceFolderBasename}-25.02-cuda11.8-pip" ], "hostRequirements": {"gpu": "optional"}, "features": { - "ghcr.io/rapidsai/devcontainers/features/cuda:24.12": { + "ghcr.io/rapidsai/devcontainers/features/cuda:25.2": { "version": "11.8", "installcuBLAS": true, "installcuSOLVER": true, "installcuRAND": true, "installcuSPARSE": true }, - "ghcr.io/rapidsai/devcontainers/features/rapids-build-utils:24.12": {} + "ghcr.io/rapidsai/devcontainers/features/rapids-build-utils:25.2": {} }, "overrideFeatureInstallOrder": [ "ghcr.io/rapidsai/devcontainers/features/cuda", diff --git a/.devcontainer/cuda12.5-conda/devcontainer.json b/.devcontainer/cuda12.5-conda/devcontainer.json index e31428e4b0c..3ed6fa9c37b 100644 --- a/.devcontainer/cuda12.5-conda/devcontainer.json +++ b/.devcontainer/cuda12.5-conda/devcontainer.json @@ -5,17 +5,17 @@ "args": { "CUDA": "12.5", "PYTHON_PACKAGE_MANAGER": "conda", - "BASE": "rapidsai/devcontainers:24.12-cpp-mambaforge-ubuntu22.04" + "BASE": "rapidsai/devcontainers:25.02-cpp-mambaforge-ubuntu22.04" } }, "runArgs": [ "--rm", "--name", - "${localEnv:USER:anon}-rapids-${localWorkspaceFolderBasename}-24.12-cuda12.5-conda" + "${localEnv:USER:anon}-rapids-${localWorkspaceFolderBasename}-25.02-cuda12.5-conda" ], "hostRequirements": {"gpu": "optional"}, "features": { - "ghcr.io/rapidsai/devcontainers/features/rapids-build-utils:24.12": {} + "ghcr.io/rapidsai/devcontainers/features/rapids-build-utils:25.2": {} }, "overrideFeatureInstallOrder": [ "ghcr.io/rapidsai/devcontainers/features/rapids-build-utils" diff --git a/.devcontainer/cuda12.5-pip/devcontainer.json b/.devcontainer/cuda12.5-pip/devcontainer.json index 835274999ba..7024c0f0a22 100644 --- a/.devcontainer/cuda12.5-pip/devcontainer.json +++ b/.devcontainer/cuda12.5-pip/devcontainer.json @@ -5,24 +5,24 @@ "args": { "CUDA": "12.5", "PYTHON_PACKAGE_MANAGER": "pip", - "BASE": "rapidsai/devcontainers:24.12-cpp-cuda12.5-ucx1.17.0-openmpi-ubuntu22.04" + "BASE": "rapidsai/devcontainers:25.02-cpp-cuda12.5-ucx1.17.0-openmpi-ubuntu22.04" } }, "runArgs": [ "--rm", "--name", - "${localEnv:USER:anon}-rapids-${localWorkspaceFolderBasename}-24.12-cuda12.5-pip" + "${localEnv:USER:anon}-rapids-${localWorkspaceFolderBasename}-25.02-cuda12.5-pip" ], "hostRequirements": {"gpu": "optional"}, "features": { - "ghcr.io/rapidsai/devcontainers/features/cuda:24.12": { + "ghcr.io/rapidsai/devcontainers/features/cuda:25.2": { "version": "12.5", "installcuBLAS": true, "installcuSOLVER": true, "installcuRAND": true, "installcuSPARSE": true }, - "ghcr.io/rapidsai/devcontainers/features/rapids-build-utils:24.12": {} + "ghcr.io/rapidsai/devcontainers/features/rapids-build-utils:25.2": {} }, "overrideFeatureInstallOrder": [ "ghcr.io/rapidsai/devcontainers/features/cuda", diff --git a/.github/copy-pr-bot.yaml b/.github/copy-pr-bot.yaml index 895ba83ee54..e0ea775aad5 100644 --- a/.github/copy-pr-bot.yaml +++ b/.github/copy-pr-bot.yaml @@ -2,3 +2,4 @@ # https://docs.gha-runners.nvidia.com/apps/copy-pr-bot/ enabled: true +auto_sync_draft: false diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 2962b4438fe..357d0d9bcae 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -28,7 +28,7 @@ concurrency: jobs: cpp-build: secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-build.yaml@branch-24.12 + uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-build.yaml@branch-25.02 with: build_type: ${{ inputs.build_type || 'branch' }} branch: ${{ inputs.branch }} @@ -38,7 +38,7 @@ jobs: python-build: needs: [cpp-build] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/conda-python-build.yaml@branch-24.12 + uses: rapidsai/shared-workflows/.github/workflows/conda-python-build.yaml@branch-25.02 with: build_type: ${{ inputs.build_type || 'branch' }} branch: ${{ inputs.branch }} @@ -47,7 +47,7 @@ jobs: upload-conda: needs: [cpp-build, python-build] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/conda-upload-packages.yaml@branch-24.12 + uses: rapidsai/shared-workflows/.github/workflows/conda-upload-packages.yaml@branch-25.02 with: build_type: ${{ inputs.build_type || 'branch' }} branch: ${{ inputs.branch }} @@ -57,7 +57,7 @@ jobs: if: github.ref_type == 'branch' needs: python-build secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@branch-24.12 + uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@branch-25.02 with: arch: "amd64" branch: ${{ inputs.branch }} @@ -69,21 +69,18 @@ jobs: sha: ${{ inputs.sha }} wheel-build-pylibcugraph: secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@branch-24.12 + uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@branch-25.02 with: build_type: ${{ inputs.build_type || 'branch' }} branch: ${{ inputs.branch }} sha: ${{ inputs.sha }} date: ${{ inputs.date }} script: ci/build_wheel_pylibcugraph.sh - extra-repo: rapidsai/cugraph-ops - extra-repo-sha: branch-24.12 - extra-repo-deploy-key: CUGRAPH_OPS_SSH_PRIVATE_DEPLOY_KEY node_type: cpu32 wheel-publish-pylibcugraph: needs: wheel-build-pylibcugraph secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-publish.yaml@branch-24.12 + uses: rapidsai/shared-workflows/.github/workflows/wheels-publish.yaml@branch-25.02 with: build_type: ${{ inputs.build_type || 'branch' }} branch: ${{ inputs.branch }} @@ -93,20 +90,17 @@ jobs: wheel-build-cugraph: needs: wheel-publish-pylibcugraph secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@branch-24.12 + uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@branch-25.02 with: build_type: ${{ inputs.build_type || 'branch' }} branch: ${{ inputs.branch }} sha: ${{ inputs.sha }} date: ${{ inputs.date }} script: ci/build_wheel_cugraph.sh - extra-repo: rapidsai/cugraph-ops - extra-repo-sha: branch-24.12 - extra-repo-deploy-key: CUGRAPH_OPS_SSH_PRIVATE_DEPLOY_KEY wheel-publish-cugraph: needs: wheel-build-cugraph secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-publish.yaml@branch-24.12 + uses: rapidsai/shared-workflows/.github/workflows/wheels-publish.yaml@branch-25.02 with: build_type: ${{ inputs.build_type || 'branch' }} branch: ${{ inputs.branch }} diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index c8bf94b0987..c9e41475a1e 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -29,7 +29,7 @@ jobs: - telemetry-setup - devcontainer secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/pr-builder.yaml@branch-24.12 + uses: rapidsai/shared-workflows/.github/workflows/pr-builder.yaml@branch-25.02 if: always() with: needs: ${{ toJSON(needs) }} @@ -44,12 +44,12 @@ jobs: changed-files: secrets: inherit needs: telemetry-setup - uses: rapidsai/shared-workflows/.github/workflows/changed-files.yaml@branch-24.12 + uses: rapidsai/shared-workflows/.github/workflows/changed-files.yaml@branch-25.02 with: files_yaml: | test_cpp: - '**' - - '!.devcontainers/**' + - '!.devcontainer/**' - '!CONTRIBUTING.md' - '!README.md' - '!docs/**' @@ -60,13 +60,13 @@ jobs: - '!readme_pages/**' test_notebooks: - '**' - - '!.devcontainers/**' + - '!.devcontainer/**' - '!CONTRIBUTING.md' - '!README.md' - '!docs/**' test_python: - '**' - - '!.devcontainers/**' + - '!.devcontainer/**' - '!CONTRIBUTING.md' - '!README.md' - '!docs/**' @@ -75,28 +75,28 @@ jobs: checks: secrets: inherit needs: telemetry-setup - uses: rapidsai/shared-workflows/.github/workflows/checks.yaml@branch-24.12 + uses: rapidsai/shared-workflows/.github/workflows/checks.yaml@branch-25.02 with: enable_check_generated_files: false ignored_pr_jobs: telemetry-summarize conda-cpp-build: needs: checks secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-build.yaml@branch-24.12 + uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-build.yaml@branch-25.02 with: build_type: pull-request node_type: cpu32 conda-cpp-tests: needs: [conda-cpp-build, changed-files] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-tests.yaml@branch-24.12 + uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-tests.yaml@branch-25.02 if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_cpp with: build_type: pull-request conda-cpp-checks: needs: conda-cpp-build secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-post-build-checks.yaml@branch-24.12 + uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-post-build-checks.yaml@branch-25.02 with: build_type: pull-request enable_check_symbols: true @@ -104,20 +104,20 @@ jobs: conda-python-build: needs: conda-cpp-build secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/conda-python-build.yaml@branch-24.12 + uses: rapidsai/shared-workflows/.github/workflows/conda-python-build.yaml@branch-25.02 with: build_type: pull-request conda-python-tests: needs: [conda-python-build, changed-files] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/conda-python-tests.yaml@branch-24.12 + uses: rapidsai/shared-workflows/.github/workflows/conda-python-tests.yaml@branch-25.02 if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python with: build_type: pull-request conda-notebook-tests: needs: [conda-python-build, changed-files] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@branch-24.12 + uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@branch-25.02 if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_notebooks with: build_type: pull-request @@ -128,7 +128,7 @@ jobs: docs-build: needs: conda-python-build secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@branch-24.12 + uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@branch-25.02 with: build_type: pull-request node_type: "gpu-v100-latest-1" @@ -138,36 +138,30 @@ jobs: wheel-build-pylibcugraph: needs: checks secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@branch-24.12 + uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@branch-25.02 with: build_type: pull-request script: ci/build_wheel_pylibcugraph.sh - extra-repo: rapidsai/cugraph-ops - extra-repo-sha: branch-24.12 - extra-repo-deploy-key: CUGRAPH_OPS_SSH_PRIVATE_DEPLOY_KEY node_type: cpu32 wheel-tests-pylibcugraph: needs: [wheel-build-pylibcugraph, changed-files] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@branch-24.12 + uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@branch-25.02 if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python with: build_type: pull-request script: ci/test_wheel_pylibcugraph.sh wheel-build-cugraph: - needs: wheel-tests-pylibcugraph + needs: wheel-build-pylibcugraph secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@branch-24.12 + uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@branch-25.02 with: build_type: pull-request script: ci/build_wheel_cugraph.sh - extra-repo: rapidsai/cugraph-ops - extra-repo-sha: branch-24.12 - extra-repo-deploy-key: CUGRAPH_OPS_SSH_PRIVATE_DEPLOY_KEY wheel-tests-cugraph: needs: [wheel-build-cugraph, changed-files] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@branch-24.12 + uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@branch-25.02 if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python with: build_type: pull-request @@ -175,12 +169,11 @@ jobs: devcontainer: secrets: inherit needs: telemetry-setup - uses: rapidsai/shared-workflows/.github/workflows/build-in-devcontainer.yaml@branch-24.12 + uses: rapidsai/shared-workflows/.github/workflows/build-in-devcontainer.yaml@branch-25.02 with: 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/.github/workflows/test.yaml b/.github/workflows/test.yaml index 72f76904f4b..4aa698c987f 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -16,7 +16,7 @@ on: jobs: conda-cpp-checks: secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-post-build-checks.yaml@branch-24.12 + uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-post-build-checks.yaml@branch-25.02 with: build_type: nightly branch: ${{ inputs.branch }} @@ -26,7 +26,7 @@ jobs: symbol_exclusions: (cugraph::ops|hornet|void writeEdgeCountsKernel|void markUniqueOffsetsKernel) conda-cpp-tests: secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-tests.yaml@branch-24.12 + uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-tests.yaml@branch-25.02 with: build_type: nightly branch: ${{ inputs.branch }} @@ -34,7 +34,7 @@ jobs: sha: ${{ inputs.sha }} conda-python-tests: secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/conda-python-tests.yaml@branch-24.12 + uses: rapidsai/shared-workflows/.github/workflows/conda-python-tests.yaml@branch-25.02 with: build_type: nightly branch: ${{ inputs.branch }} @@ -42,7 +42,7 @@ jobs: sha: ${{ inputs.sha }} wheel-tests-pylibcugraph: secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@branch-24.12 + uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@branch-25.02 with: build_type: nightly branch: ${{ inputs.branch }} @@ -51,7 +51,7 @@ jobs: script: ci/test_wheel_pylibcugraph.sh wheel-tests-cugraph: secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@branch-24.12 + uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@branch-25.02 with: build_type: nightly branch: ${{ inputs.branch }} diff --git a/.github/workflows/trigger-breaking-change-alert.yaml b/.github/workflows/trigger-breaking-change-alert.yaml new file mode 100644 index 00000000000..01dd2436beb --- /dev/null +++ b/.github/workflows/trigger-breaking-change-alert.yaml @@ -0,0 +1,26 @@ +name: Trigger Breaking Change Notifications + +on: + pull_request_target: + types: + - closed + - reopened + - labeled + - unlabeled + +jobs: + trigger-notifier: + if: contains(github.event.pull_request.labels.*.name, 'breaking') + secrets: inherit + uses: rapidsai/shared-workflows/.github/workflows/breaking-change-alert.yaml@branch-25.02 + with: + sender_login: ${{ github.event.sender.login }} + sender_avatar: ${{ github.event.sender.avatar_url }} + repo: ${{ github.repository }} + pr_number: ${{ github.event.pull_request.number }} + pr_title: "${{ github.event.pull_request.title }}" + pr_body: "${{ github.event.pull_request.body || '_Empty PR description_' }}" + pr_base_ref: ${{ github.event.pull_request.base.ref }} + pr_author: ${{ github.event.pull_request.user.login }} + event_action: ${{ github.event.action }} + pr_merged: ${{ github.event.pull_request.merged }} 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/VERSION b/VERSION index af28c42b528..72eefaf7c79 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -24.12.00 +25.02.00 diff --git a/build.sh b/build.sh index 756045461dd..0282948659e 100755 --- a/build.sh +++ b/build.sh @@ -331,17 +331,17 @@ if hasArg docs || hasArg all; then ${CMAKE_VERBOSE_OPTION} fi - for PROJECT in libcugraphops libwholegraph; do - XML_DIR="${REPODIR}/docs/cugraph/${PROJECT}" - rm -rf "${XML_DIR}" - mkdir -p "${XML_DIR}" - export XML_DIR_${PROJECT^^}="$XML_DIR" - - echo "downloading xml for ${PROJECT} into ${XML_DIR}. Environment variable XML_DIR_${PROJECT^^} is set to ${XML_DIR}" - curl -O "https://d1664dvumjb44w.cloudfront.net/${PROJECT}/xml_tar/${RAPIDS_VERSION}/xml.tar.gz" - tar -xzf xml.tar.gz -C "${XML_DIR}" - rm "./xml.tar.gz" - done + # for PROJECT in libwholegraph; do + # XML_DIR="${REPODIR}/docs/cugraph/${PROJECT}" + # rm -rf "${XML_DIR}" + # mkdir -p "${XML_DIR}" + # export XML_DIR_${PROJECT^^}="$XML_DIR" + + # echo "downloading xml for ${PROJECT} into ${XML_DIR}. Environment variable XML_DIR_${PROJECT^^} is set to ${XML_DIR}" + # curl -O "https://d1664dvumjb44w.cloudfront.net/${PROJECT}/xml_tar/${RAPIDS_VERSION}/xml.tar.gz" + # tar -xzf xml.tar.gz -C "${XML_DIR}" + # rm "./xml.tar.gz" + # done cd ${LIBCUGRAPH_BUILD_DIR} cmake --build "${LIBCUGRAPH_BUILD_DIR}" -j${PARALLEL_LEVEL} --target docs_cugraph ${VERBOSE_FLAG} diff --git a/ci/build_docs.sh b/ci/build_docs.sh index 2d7e90da8d0..ad77c9a0e60 100755 --- a/ci/build_docs.sh +++ b/ci/build_docs.sh @@ -46,19 +46,18 @@ rapids-mamba-retry install \ "cugraph-service-server=${RAPIDS_VERSION_MAJOR_MINOR}.*" \ "cugraph-service-client=${RAPIDS_VERSION_MAJOR_MINOR}.*" \ "libcugraph_etl=${RAPIDS_VERSION_MAJOR_MINOR}.*" \ - "pylibcugraphops=${RAPIDS_VERSION_MAJOR_MINOR}.*" \ "pylibwholegraph=${RAPIDS_VERSION_MAJOR_MINOR}.*" \ 'pytorch>=2.3' \ "cuda-version=${CONDA_CUDA_VERSION}" export RAPIDS_DOCS_DIR="$(mktemp -d)" -for PROJECT in libcugraphops libwholegraph; do - rapids-logger "Download ${PROJECT} xml_tar" - TMP_DIR=$(mktemp -d) - export XML_DIR_${PROJECT^^}="$TMP_DIR" - curl "https://d1664dvumjb44w.cloudfront.net/${PROJECT}/xml_tar/${RAPIDS_VERSION_NUMBER}/xml.tar.gz" | tar -xzf - -C "${TMP_DIR}" -done +# for PROJECT in libwholegraph; do +# rapids-logger "Download ${PROJECT} xml_tar" +# TMP_DIR=$(mktemp -d) +# export XML_DIR_${PROJECT^^}="$TMP_DIR" +# curl "https://d1664dvumjb44w.cloudfront.net/${PROJECT}/xml_tar/${RAPIDS_VERSION_NUMBER}/xml.tar.gz" | tar -xzf - -C "${TMP_DIR}" +# done rapids-logger "Build CPP docs" pushd cpp/doxygen 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 e7fa6d4ee42..e9f6842e8b8 100644 --- a/conda/environments/all_cuda-118_arch-x86_64.yaml +++ b/conda/environments/all_cuda-118_arch-x86_64.yaml @@ -14,22 +14,21 @@ dependencies: - cuda-nvtx - cuda-version=11.8 - cudatoolkit -- cudf==24.12.*,>=0.0.0a0 +- cudf==25.2.*,>=0.0.0a0 - cupy>=12.0.0 - cxx-compiler - cython>=3.0.0 -- dask-cuda==24.12.*,>=0.0.0a0 -- dask-cudf==24.12.*,>=0.0.0a0 +- dask-cuda==25.2.*,>=0.0.0a0 +- dask-cudf==25.2.*,>=0.0.0a0 - doxygen - fsspec>=0.6.0 - gcc_linux-64=11.* - graphviz - ipython -- libcudf==24.12.*,>=0.0.0a0 -- libcugraphops==24.12.*,>=0.0.0a0 -- libraft-headers==24.12.*,>=0.0.0a0 -- libraft==24.12.*,>=0.0.0a0 -- librmm==24.12.*,>=0.0.0a0 +- libcudf==25.2.*,>=0.0.0a0 +- libraft-headers==25.2.*,>=0.0.0a0 +- libraft==25.2.*,>=0.0.0a0 +- librmm==25.2.*,>=0.0.0a0 - nbsphinx - nccl>=2.19 - networkx>=2.5.1 @@ -45,21 +44,20 @@ dependencies: - pre-commit - pydantic - pydata-sphinx-theme -- pylibcugraphops==24.12.*,>=0.0.0a0 -- pylibraft==24.12.*,>=0.0.0a0 -- pylibwholegraph==24.12.*,>=0.0.0a0 +- pylibraft==25.2.*,>=0.0.0a0 +- pylibwholegraph==25.2.*,>=0.0.0a0 - pytest - pytest-benchmark - pytest-cov - pytest-xdist - python-louvain - pytorch>=2.3 -- raft-dask==24.12.*,>=0.0.0a0 +- raft-dask==25.2.*,>=0.0.0a0 - rapids-build-backend>=0.3.1,<0.4.0.dev0 -- rapids-dask-dependency==24.12.*,>=0.0.0a0 +- rapids-dask-dependency==25.2.*,>=0.0.0a0 - recommonmark - requests -- rmm==24.12.*,>=0.0.0a0 +- rmm==25.2.*,>=0.0.0a0 - scikit-build-core>=0.10.0 - scikit-learn>=0.23.1 - scipy @@ -72,7 +70,7 @@ dependencies: - torchdata - torchmetrics - ucx-proc=*=gpu -- ucx-py==0.41.*,>=0.0.0a0 +- ucx-py==0.42.*,>=0.0.0a0 - wget - wheel name: all_cuda-118_arch-x86_64 diff --git a/conda/environments/all_cuda-125_arch-x86_64.yaml b/conda/environments/all_cuda-125_arch-x86_64.yaml index 7b7ac92b59b..13e102862ab 100644 --- a/conda/environments/all_cuda-125_arch-x86_64.yaml +++ b/conda/environments/all_cuda-125_arch-x86_64.yaml @@ -16,26 +16,25 @@ dependencies: - cuda-nvtx-dev - cuda-profiler-api - cuda-version=12.5 -- cudf==24.12.*,>=0.0.0a0 +- cudf==25.2.*,>=0.0.0a0 - cupy>=12.0.0 - cxx-compiler - cython>=3.0.0 -- dask-cuda==24.12.*,>=0.0.0a0 -- dask-cudf==24.12.*,>=0.0.0a0 +- dask-cuda==25.2.*,>=0.0.0a0 +- dask-cudf==25.2.*,>=0.0.0a0 - doxygen - fsspec>=0.6.0 - gcc_linux-64=11.* - graphviz - ipython - libcublas-dev -- libcudf==24.12.*,>=0.0.0a0 -- libcugraphops==24.12.*,>=0.0.0a0 +- libcudf==25.2.*,>=0.0.0a0 - libcurand-dev - libcusolver-dev - libcusparse-dev -- libraft-headers==24.12.*,>=0.0.0a0 -- libraft==24.12.*,>=0.0.0a0 -- librmm==24.12.*,>=0.0.0a0 +- libraft-headers==25.2.*,>=0.0.0a0 +- libraft==25.2.*,>=0.0.0a0 +- librmm==25.2.*,>=0.0.0a0 - nbsphinx - nccl>=2.19 - networkx>=2.5.1 @@ -50,21 +49,20 @@ dependencies: - pre-commit - pydantic - pydata-sphinx-theme -- pylibcugraphops==24.12.*,>=0.0.0a0 -- pylibraft==24.12.*,>=0.0.0a0 -- pylibwholegraph==24.12.*,>=0.0.0a0 +- pylibraft==25.2.*,>=0.0.0a0 +- pylibwholegraph==25.2.*,>=0.0.0a0 - pytest - pytest-benchmark - pytest-cov - pytest-xdist - python-louvain - pytorch>=2.3 -- raft-dask==24.12.*,>=0.0.0a0 +- raft-dask==25.2.*,>=0.0.0a0 - rapids-build-backend>=0.3.1,<0.4.0.dev0 -- rapids-dask-dependency==24.12.*,>=0.0.0a0 +- rapids-dask-dependency==25.2.*,>=0.0.0a0 - recommonmark - requests -- rmm==24.12.*,>=0.0.0a0 +- rmm==25.2.*,>=0.0.0a0 - scikit-build-core>=0.10.0 - scikit-learn>=0.23.1 - scipy @@ -77,7 +75,7 @@ dependencies: - torchdata - torchmetrics - ucx-proc=*=gpu -- ucx-py==0.41.*,>=0.0.0a0 +- ucx-py==0.42.*,>=0.0.0a0 - wget - wheel name: all_cuda-125_arch-x86_64 diff --git a/conda/recipes/cugraph-service/conda_build_config.yaml b/conda/recipes/cugraph-service/conda_build_config.yaml index 67ed3e26b0e..7e541432be8 100644 --- a/conda/recipes/cugraph-service/conda_build_config.yaml +++ b/conda/recipes/cugraph-service/conda_build_config.yaml @@ -1,2 +1,2 @@ ucx_py_version: - - "0.41.*" + - "0.42.*" diff --git a/conda/recipes/cugraph/conda_build_config.yaml b/conda/recipes/cugraph/conda_build_config.yaml index 10f2e15c550..6f1201c83a4 100644 --- a/conda/recipes/cugraph/conda_build_config.yaml +++ b/conda/recipes/cugraph/conda_build_config.yaml @@ -20,4 +20,4 @@ c_stdlib_version: - "2.17" ucx_py_version: - - "0.41.*" + - "0.42.*" diff --git a/conda/recipes/cugraph/meta.yaml b/conda/recipes/cugraph/meta.yaml index 5a13ba30fd0..094b30c5fce 100644 --- a/conda/recipes/cugraph/meta.yaml +++ b/conda/recipes/cugraph/meta.yaml @@ -75,10 +75,10 @@ requirements: - {{ pin_compatible('cuda-version', max_pin='x', min_pin='x') }} {% if cuda_major == "11" %} - cudatoolkit - - cuda-python >=11.7.1,<12.0a0,<=11.8.3 + - cuda-python >=11.8.5,<12.0a0 {% else %} - cuda-cudart - - cuda-python >=12.0,<13.0a0,<=12.6.0 + - cuda-python >=12.6.2,<13.0a0 {% endif %} - cudf ={{ minor_version }} - cupy >=12.0.0 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/conda/recipes/pylibcugraph/conda_build_config.yaml b/conda/recipes/pylibcugraph/conda_build_config.yaml index 10f2e15c550..6f1201c83a4 100644 --- a/conda/recipes/pylibcugraph/conda_build_config.yaml +++ b/conda/recipes/pylibcugraph/conda_build_config.yaml @@ -20,4 +20,4 @@ c_stdlib_version: - "2.17" ucx_py_version: - - "0.41.*" + - "0.42.*" 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 + rmm::rmm_logger_impl ) ################################################################################ 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 7b25ac05d62..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: @@ -294,12 +290,10 @@ dependencies: packages: - c-compiler - cxx-compiler - - libcudf==24.12.*,>=0.0.0a0 - # Deprecate libcugraphops - - libcugraphops==24.12.*,>=0.0.0a0 - - libraft-headers==24.12.*,>=0.0.0a0 - - libraft==24.12.*,>=0.0.0a0 - - librmm==24.12.*,>=0.0.0a0 + - libcudf==25.2.*,>=0.0.0a0 + - libraft-headers==25.2.*,>=0.0.0a0 + - libraft==25.2.*,>=0.0.0a0 + - librmm==25.2.*,>=0.0.0a0 - openmpi # Required for building cpp-mgtests (multi-GPU tests) specific: - output_types: [conda] @@ -389,8 +383,8 @@ dependencies: common: - output_types: [conda, pyproject] packages: - - &dask rapids-dask-dependency==24.12.*,>=0.0.0a0 - - &dask_cuda dask-cuda==24.12.*,>=0.0.0a0 + - &dask rapids-dask-dependency==25.2.*,>=0.0.0a0 + - &dask_cuda dask-cuda==25.2.*,>=0.0.0a0 - &numba numba>=0.57 - &numpy numpy>=1.23,<3.0a0 - output_types: conda @@ -400,7 +394,7 @@ dependencies: - requests - nccl>=2.19 - ucx-proc=*=gpu - - &ucx_py_unsuffixed ucx-py==0.41.*,>=0.0.0a0 + - &ucx_py_unsuffixed ucx-py==0.42.*,>=0.0.0a0 - output_types: pyproject packages: # cudf uses fsspec but is protocol independent. cugraph @@ -413,12 +407,12 @@ dependencies: cuda: "11.*" cuda_suffixed: "true" packages: - - &ucx_py_cu11 ucx-py-cu11==0.41.*,>=0.0.0a0 + - &ucx_py_cu11 ucx-py-cu11==0.42.*,>=0.0.0a0 - matrix: cuda: "12.*" cuda_suffixed: "true" packages: - - &ucx_py_cu12 ucx-py-cu12==0.41.*,>=0.0.0a0 + - &ucx_py_cu12 ucx-py-cu12==0.42.*,>=0.0.0a0 - matrix: packages: - *ucx_py_unsuffixed @@ -446,20 +440,20 @@ dependencies: cuda: "11.*" cuda_suffixed: "true" packages: - - &cugraph_cu11 cugraph-cu11==24.12.*,>=0.0.0a0 - - cugraph-service-client-cu11==24.12.*,>=0.0.0a0 + - &cugraph_cu11 cugraph-cu11==25.2.*,>=0.0.0a0 + - cugraph-service-client-cu11==25.2.*,>=0.0.0a0 - *ucx_py_cu11 - matrix: cuda: "12.*" cuda_suffixed: "true" packages: - - &cugraph_cu12 cugraph-cu12==24.12.*,>=0.0.0a0 - - cugraph-service-client-cu12==24.12.*,>=0.0.0a0 + - &cugraph_cu12 cugraph-cu12==25.2.*,>=0.0.0a0 + - cugraph-service-client-cu12==25.2.*,>=0.0.0a0 - *ucx_py_cu12 - matrix: packages: - - &cugraph_unsuffixed cugraph==24.12.*,>=0.0.0a0 - - cugraph-service-client==24.12.*,>=0.0.0a0 + - &cugraph_unsuffixed cugraph==25.2.*,>=0.0.0a0 + - cugraph-service-client==25.2.*,>=0.0.0a0 - *ucx_py_unsuffixed test_cpp: common: @@ -495,7 +489,7 @@ dependencies: - scikit-learn>=0.23.1 - output_types: [conda] packages: - - &pylibwholegraph_unsuffixed pylibwholegraph==24.12.*,>=0.0.0a0 + - &pylibwholegraph_unsuffixed pylibwholegraph==25.2.*,>=0.0.0a0 - *thrift test_python_pylibcugraph: common: @@ -552,19 +546,19 @@ dependencies: cuda: "12.*" cuda_suffixed: "true" packages: - - pylibwholegraph-cu12==24.12.*,>=0.0.0a0 + - pylibwholegraph-cu12==25.2.*,>=0.0.0a0 - matrix: cuda: "11.*" cuda_suffixed: "true" packages: - - pylibwholegraph-cu11==24.12.*,>=0.0.0a0 + - pylibwholegraph-cu11==25.2.*,>=0.0.0a0 - {matrix: null, packages: [*pylibwholegraph_unsuffixed]} depends_on_rmm: common: - output_types: conda packages: - - &rmm_unsuffixed rmm==24.12.*,>=0.0.0a0 + - &rmm_unsuffixed rmm==25.2.*,>=0.0.0a0 - output_types: requirements packages: # pip recognizes the index as a global option for the requirements.txt file @@ -577,19 +571,19 @@ dependencies: cuda: "12.*" cuda_suffixed: "true" packages: - - rmm-cu12==24.12.*,>=0.0.0a0 + - rmm-cu12==25.2.*,>=0.0.0a0 - matrix: cuda: "11.*" cuda_suffixed: "true" packages: - - rmm-cu11==24.12.*,>=0.0.0a0 + - rmm-cu11==25.2.*,>=0.0.0a0 - {matrix: null, packages: [*rmm_unsuffixed]} depends_on_cudf: common: - output_types: conda packages: - - &cudf_unsuffixed cudf==24.12.*,>=0.0.0a0 + - &cudf_unsuffixed cudf==25.2.*,>=0.0.0a0 - output_types: requirements packages: # pip recognizes the index as a global option for the requirements.txt file @@ -602,19 +596,19 @@ dependencies: cuda: "12.*" cuda_suffixed: "true" packages: - - cudf-cu12==24.12.*,>=0.0.0a0 + - cudf-cu12==25.2.*,>=0.0.0a0 - matrix: cuda: "11.*" cuda_suffixed: "true" packages: - - cudf-cu11==24.12.*,>=0.0.0a0 + - cudf-cu11==25.2.*,>=0.0.0a0 - {matrix: null, packages: [*cudf_unsuffixed]} depends_on_dask_cudf: common: - output_types: conda packages: - - &dask_cudf_unsuffixed dask-cudf==24.12.*,>=0.0.0a0 + - &dask_cudf_unsuffixed dask-cudf==25.2.*,>=0.0.0a0 - output_types: requirements packages: # pip recognizes the index as a global option for the requirements.txt file @@ -627,19 +621,19 @@ dependencies: cuda: "12.*" cuda_suffixed: "true" packages: - - dask-cudf-cu12==24.12.*,>=0.0.0a0 + - dask-cudf-cu12==25.2.*,>=0.0.0a0 - matrix: cuda: "11.*" cuda_suffixed: "true" packages: - - dask-cudf-cu11==24.12.*,>=0.0.0a0 + - dask-cudf-cu11==25.2.*,>=0.0.0a0 - {matrix: null, packages: [*dask_cudf_unsuffixed]} depends_on_pylibraft: common: - output_types: conda packages: - - &pylibraft_unsuffixed pylibraft==24.12.*,>=0.0.0a0 + - &pylibraft_unsuffixed pylibraft==25.2.*,>=0.0.0a0 - output_types: requirements packages: # pip recognizes the index as a global option for the requirements.txt file @@ -652,19 +646,19 @@ dependencies: cuda: "12.*" cuda_suffixed: "true" packages: - - pylibraft-cu12==24.12.*,>=0.0.0a0 + - pylibraft-cu12==25.2.*,>=0.0.0a0 - matrix: cuda: "11.*" cuda_suffixed: "true" packages: - - pylibraft-cu11==24.12.*,>=0.0.0a0 + - pylibraft-cu11==25.2.*,>=0.0.0a0 - {matrix: null, packages: [*pylibraft_unsuffixed]} depends_on_raft_dask: common: - output_types: conda packages: - - &raft_dask_unsuffixed raft-dask==24.12.*,>=0.0.0a0 + - &raft_dask_unsuffixed raft-dask==25.2.*,>=0.0.0a0 - output_types: requirements packages: # pip recognizes the index as a global option for the requirements.txt file @@ -677,19 +671,19 @@ dependencies: cuda: "12.*" cuda_suffixed: "true" packages: - - raft-dask-cu12==24.12.*,>=0.0.0a0 + - raft-dask-cu12==25.2.*,>=0.0.0a0 - matrix: cuda: "11.*" cuda_suffixed: "true" packages: - - raft-dask-cu11==24.12.*,>=0.0.0a0 + - raft-dask-cu11==25.2.*,>=0.0.0a0 - {matrix: null, packages: [*raft_dask_unsuffixed]} depends_on_pylibcugraph: common: - output_types: conda packages: - - &pylibcugraph_unsuffixed pylibcugraph==24.12.*,>=0.0.0a0 + - &pylibcugraph_unsuffixed pylibcugraph==25.2.*,>=0.0.0a0 - output_types: requirements packages: # pip recognizes the index as a global option for the requirements.txt file @@ -702,40 +696,14 @@ dependencies: cuda: "12.*" cuda_suffixed: "true" packages: - - pylibcugraph-cu12==24.12.*,>=0.0.0a0 + - pylibcugraph-cu12==25.2.*,>=0.0.0a0 - matrix: cuda: "11.*" cuda_suffixed: "true" packages: - - pylibcugraph-cu11==24.12.*,>=0.0.0a0 + - 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==24.12.*,>=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==24.12.*,>=0.0.0a0 - - matrix: - cuda: "11.*" - cuda_suffixed: "true" - packages: - - pylibcugraphops-cu11==24.12.*,>=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/api_docs/index.rst b/docs/cugraph/source/api_docs/index.rst index c4b90b5794d..ccb7aacfeb5 100644 --- a/docs/cugraph/source/api_docs/index.rst +++ b/docs/cugraph/source/api_docs/index.rst @@ -24,8 +24,7 @@ Graph Neural Networks API Documentation cugraph-dgl/cugraph_dgl.rst cugraph-pyg/cugraph_pyg.rst - cugraph-ops/index.rst - wholegraph/index.rst + .. wholegraph/index.rst Additional Graph Packages API Documentation ---------------------------------- diff --git a/docs/cugraph/source/conf.py b/docs/cugraph/source/conf.py index 66bc3137fba..6573349aaec 100644 --- a/docs/cugraph/source/conf.py +++ b/docs/cugraph/source/conf.py @@ -222,8 +222,7 @@ def setup(app): breathe_projects = { 'libcugraph': os.environ['XML_DIR_LIBCUGRAPH'], - 'libcugraphops': os.environ['XML_DIR_LIBCUGRAPHOPS'], - 'libwholegraph': os.environ['XML_DIR_LIBWHOLEGRAPH'] + # 'libwholegraph': os.environ['XML_DIR_LIBWHOLEGRAPH'] } breathe_default_project = "libcugraph" 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/nx_cugraph/supported-algorithms.rst b/docs/cugraph/source/nx_cugraph/supported-algorithms.rst index ed31ec73ae9..8dc3c5ba2a7 100644 --- a/docs/cugraph/source/nx_cugraph/supported-algorithms.rst +++ b/docs/cugraph/source/nx_cugraph/supported-algorithms.rst @@ -52,6 +52,7 @@ Algorithms +--------------------------+ | **Bipartite** | +==========================+ +| betweenness_centrality | | complete_bipartite_graph | +--------------------------+ 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/notebooks/README.md b/notebooks/README.md index f0d0a25b9dd..96f8ed5ce10 100644 --- a/notebooks/README.md +++ b/notebooks/README.md @@ -66,13 +66,13 @@ The easiest way to run the notebooks is to get the latest [rapidsai/notebooks](h For example, get the latest (as of writing the document) nightly image (`a` after the version number indicates that an image is nightly) with cuda 12.0 using ```sh -docker pull rapidsai/notebooks:24.12a-cuda12.0-py3.10 +docker pull rapidsai/notebooks:25.02a-cuda12.0-py3.10 ``` And, then run a container based on the image using ```sh -docker run --rm -it --pull always --gpus all --shm-size=1g --ulimit memlock=-1 --ulimit stack=67108864 -p 8888:8888 rapidsai/notebooks:24.12a-cuda12.0-py3.10 +docker run --rm -it --pull always --gpus all --shm-size=1g --ulimit memlock=-1 --ulimit stack=67108864 -p 8888:8888 rapidsai/notebooks:25.02a-cuda12.0-py3.10 ``` You are all set. Run and edit cugraph notebooks from a browser at url http://127.0.0.1:8888/lab/tree/cugraph/cugraph_benchmarks @@ -88,8 +88,8 @@ ssh -L 127.0.0.1:8888:127.0.0.1:8888 [USER_NAME@][REMOTE_HOST_NAME or REMOTE_HO and then run the container in your remote machine. ```sh -docker pull rapidsai/notebooks:24.12a-cuda12.0-py3.10 -docker run --rm -it --pull always --gpus all --shm-size=1g --ulimit memlock=-1 --ulimit stack=67108864 -p 8888:8888 rapidsai/notebooks:24.12a-cuda12.0-py3.10 +docker pull rapidsai/notebooks:25.02a-cuda12.0-py3.10 +docker run --rm -it --pull always --gpus all --shm-size=1g --ulimit memlock=-1 --ulimit stack=67108864 -p 8888:8888 rapidsai/notebooks:25.02a-cuda12.0-py3.10 ``` You can run and edit cugraph notebooks at url http://127.0.0.1:8888/lab/tree/cugraph/cugraph_benchmarks as if they are running locally. diff --git a/python/cugraph-service/server/pyproject.toml b/python/cugraph-service/server/pyproject.toml index f388fd4c126..b9a20430d12 100644 --- a/python/cugraph-service/server/pyproject.toml +++ b/python/cugraph-service/server/pyproject.toml @@ -20,18 +20,18 @@ authors = [ license = { text = "Apache 2.0" } requires-python = ">=3.10" dependencies = [ - "cudf==24.12.*,>=0.0.0a0", - "cugraph-service-client==24.12.*,>=0.0.0a0", - "cugraph==24.12.*,>=0.0.0a0", + "cudf==25.2.*,>=0.0.0a0", + "cugraph-service-client==25.2.*,>=0.0.0a0", + "cugraph==25.2.*,>=0.0.0a0", "cupy-cuda11x>=12.0.0", - "dask-cuda==24.12.*,>=0.0.0a0", - "dask-cudf==24.12.*,>=0.0.0a0", + "dask-cuda==25.2.*,>=0.0.0a0", + "dask-cudf==25.2.*,>=0.0.0a0", "numba>=0.57", "numpy>=1.23,<3.0a0", - "rapids-dask-dependency==24.12.*,>=0.0.0a0", - "rmm==24.12.*,>=0.0.0a0", + "rapids-dask-dependency==25.2.*,>=0.0.0a0", + "rmm==25.2.*,>=0.0.0a0", "thriftpy2!=0.5.0,!=0.5.1", - "ucx-py==0.41.*,>=0.0.0a0", + "ucx-py==0.42.*,>=0.0.0a0", ] # This list was generated by `rapids-dependency-file-generator`. To make changes, edit ../../../dependencies.yaml and run `rapids-dependency-file-generator`. classifiers = [ "Intended Audience :: Developers", 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/cugraph/pyproject.toml b/python/cugraph/pyproject.toml index d3960ab5d32..9a465d789e2 100644 --- a/python/cugraph/pyproject.toml +++ b/python/cugraph/pyproject.toml @@ -23,18 +23,18 @@ authors = [ license = { text = "Apache 2.0" } requires-python = ">=3.10" dependencies = [ - "cudf==24.12.*,>=0.0.0a0", + "cudf==25.2.*,>=0.0.0a0", "cupy-cuda11x>=12.0.0", - "dask-cuda==24.12.*,>=0.0.0a0", - "dask-cudf==24.12.*,>=0.0.0a0", + "dask-cuda==25.2.*,>=0.0.0a0", + "dask-cudf==25.2.*,>=0.0.0a0", "fsspec[http]>=0.6.0", "numba>=0.57", "numpy>=1.23,<3.0a0", - "pylibcugraph==24.12.*,>=0.0.0a0", - "raft-dask==24.12.*,>=0.0.0a0", - "rapids-dask-dependency==24.12.*,>=0.0.0a0", - "rmm==24.12.*,>=0.0.0a0", - "ucx-py==0.41.*,>=0.0.0a0", + "pylibcugraph==25.2.*,>=0.0.0a0", + "raft-dask==25.2.*,>=0.0.0a0", + "rapids-dask-dependency==25.2.*,>=0.0.0a0", + "rmm==25.2.*,>=0.0.0a0", + "ucx-py==0.42.*,>=0.0.0a0", ] # This list was generated by `rapids-dependency-file-generator`. To make changes, edit ../../dependencies.yaml and run `rapids-dependency-file-generator`. classifiers = [ "Intended Audience :: Developers", @@ -49,7 +49,7 @@ test = [ "networkx>=2.5.1", "numpy>=1.23,<3.0a0", "pandas", - "pylibwholegraph==24.12.*,>=0.0.0a0", + "pylibwholegraph==25.2.*,>=0.0.0a0", "pytest", "pytest-benchmark", "pytest-cov", @@ -82,9 +82,9 @@ build-backend = "scikit_build_core.build" requires = [ "cmake>=3.26.4,!=3.30.0", "ninja", - "pylibcugraph==24.12.*,>=0.0.0a0", - "pylibraft==24.12.*,>=0.0.0a0", - "rmm==24.12.*,>=0.0.0a0", + "pylibcugraph==25.2.*,>=0.0.0a0", + "pylibraft==25.2.*,>=0.0.0a0", + "rmm==25.2.*,>=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" diff --git a/python/cugraph/pytest.ini b/python/cugraph/pytest.ini index bf6e6bdd802..7bdef2d9771 100644 --- a/python/cugraph/pytest.ini +++ b/python/cugraph/pytest.ini @@ -62,6 +62,7 @@ filterwarnings = error::FutureWarning error::DeprecationWarning # TODO + ignore:.*cuda..* module is deprecated.*:DeprecationWarning ignore:Multi is deprecated and the removal of multi edges will no longer be supported:FutureWarning ignore:The legacy column names:FutureWarning ignore:The include_hop_column flag is deprecated and will be removed:FutureWarning 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/pyproject.toml b/python/pylibcugraph/pyproject.toml index 8d22f50cc93..72a5e19c702 100644 --- a/python/pylibcugraph/pyproject.toml +++ b/python/pylibcugraph/pyproject.toml @@ -27,8 +27,8 @@ dependencies = [ "nvidia-curand", "nvidia-cusolver", "nvidia-cusparse", - "pylibraft==24.12.*,>=0.0.0a0", - "rmm==24.12.*,>=0.0.0a0", + "pylibraft==25.2.*,>=0.0.0a0", + "rmm==25.2.*,>=0.0.0a0", ] # This list was generated by `rapids-dependency-file-generator`. To make changes, edit ../../dependencies.yaml and run `rapids-dependency-file-generator`. classifiers = [ "Intended Audience :: Developers", @@ -40,7 +40,7 @@ classifiers = [ [project.optional-dependencies] test = [ - "cudf==24.12.*,>=0.0.0a0", + "cudf==25.2.*,>=0.0.0a0", "numpy>=1.23,<3.0a0", "pandas", "pytest", @@ -74,8 +74,8 @@ dependencies-file = "../../dependencies.yaml" requires = [ "cmake>=3.26.4,!=3.30.0", "ninja", - "pylibraft==24.12.*,>=0.0.0a0", - "rmm==24.12.*,>=0.0.0a0", + "pylibraft==25.2.*,>=0.0.0a0", + "rmm==25.2.*,>=0.0.0a0", ] # This list was generated by `rapids-dependency-file-generator`. To make changes, edit ../../dependencies.yaml and run `rapids-dependency-file-generator`. matrix-entry = "cuda_suffixed=true;use_cuda_wheels=true" 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 -