diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 9102051471..e240348956 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -34,7 +34,7 @@ concurrency: jobs: cpp-build: secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-build.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-build.yaml@cuda-13.1.0 with: build_type: ${{ inputs.build_type || 'branch' }} branch: ${{ inputs.branch }} @@ -46,7 +46,7 @@ jobs: python-build: needs: [cpp-build] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/conda-python-build.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/conda-python-build.yaml@cuda-13.1.0 with: build_type: ${{ inputs.build_type || 'branch' }} branch: ${{ inputs.branch }} @@ -57,7 +57,7 @@ jobs: upload-conda: needs: [cpp-build, python-build] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/conda-upload-packages.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/conda-upload-packages.yaml@cuda-13.1.0 with: build_type: ${{ inputs.build_type || 'branch' }} branch: ${{ inputs.branch }} @@ -67,7 +67,7 @@ jobs: if: github.ref_type == 'branch' needs: python-build secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@cuda-13.1.0 with: arch: "amd64" branch: ${{ inputs.branch }} @@ -79,7 +79,7 @@ jobs: sha: ${{ inputs.sha }} wheel-build-libcugraph: secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@cuda-13.1.0 with: # build for every combination of arch and CUDA version, but only for the latest Python version matrix_filter: group_by([.ARCH, (.CUDA_VER|split(".")|map(tonumber)|.[0])]) | map(max_by(.PY_VER|split(".")|map(tonumber))) @@ -95,7 +95,7 @@ jobs: wheel-publish-libcugraph: needs: wheel-build-libcugraph secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-publish.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/wheels-publish.yaml@cuda-13.1.0 with: build_type: ${{ inputs.build_type || 'branch' }} branch: ${{ inputs.branch }} @@ -106,7 +106,7 @@ jobs: wheel-build-pylibcugraph: needs: wheel-build-libcugraph secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@cuda-13.1.0 with: build_type: ${{ inputs.build_type || 'branch' }} branch: ${{ inputs.branch }} @@ -120,7 +120,7 @@ jobs: wheel-publish-pylibcugraph: needs: wheel-build-pylibcugraph secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-publish.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/wheels-publish.yaml@cuda-13.1.0 with: build_type: ${{ inputs.build_type || 'branch' }} branch: ${{ inputs.branch }} @@ -131,7 +131,7 @@ jobs: wheel-build-cugraph: needs: wheel-build-pylibcugraph secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@cuda-13.1.0 with: build_type: ${{ inputs.build_type || 'branch' }} branch: ${{ inputs.branch }} @@ -145,7 +145,7 @@ jobs: wheel-publish-cugraph: needs: wheel-build-cugraph secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-publish.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/wheels-publish.yaml@cuda-13.1.0 with: build_type: ${{ inputs.build_type || 'branch' }} branch: ${{ inputs.branch }} diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index bcebdd7a4a..7c5d067ccf 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -28,7 +28,7 @@ jobs: - telemetry-setup - devcontainer secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/pr-builder.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/pr-builder.yaml@cuda-13.1.0 if: always() with: needs: ${{ toJSON(needs) }} @@ -53,7 +53,7 @@ jobs: changed-files: secrets: inherit needs: telemetry-setup - uses: rapidsai/shared-workflows/.github/workflows/changed-files.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/changed-files.yaml@cuda-13.1.0 with: files_yaml: | test_cpp: @@ -87,14 +87,14 @@ jobs: checks: secrets: inherit needs: telemetry-setup - uses: rapidsai/shared-workflows/.github/workflows/checks.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/checks.yaml@cuda-13.1.0 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@main + uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-build.yaml@cuda-13.1.0 with: build_type: pull-request node_type: cpu16 @@ -103,7 +103,7 @@ jobs: conda-cpp-tests: needs: [conda-cpp-build, changed-files] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-tests.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-tests.yaml@cuda-13.1.0 if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_cpp with: build_type: pull-request @@ -112,14 +112,14 @@ jobs: conda-cpp-checks: needs: conda-cpp-build secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-post-build-checks.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-post-build-checks.yaml@cuda-13.1.0 with: build_type: pull-request symbol_exclusions: (cugraph::ops|hornet|void writeEdgeCountsKernel|void markUniqueOffsetsKernel) conda-python-build: needs: conda-cpp-build secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/conda-python-build.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/conda-python-build.yaml@cuda-13.1.0 with: build_type: pull-request script: ci/build_python.sh @@ -127,7 +127,7 @@ jobs: conda-python-tests: needs: [conda-python-build, changed-files] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/conda-python-tests.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/conda-python-tests.yaml@cuda-13.1.0 if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python with: build_type: pull-request @@ -136,7 +136,7 @@ jobs: conda-notebook-tests: needs: [conda-python-build, changed-files] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@cuda-13.1.0 if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_notebooks with: build_type: pull-request @@ -147,7 +147,7 @@ jobs: docs-build: needs: conda-python-build secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@cuda-13.1.0 with: build_type: pull-request node_type: "gpu-l4-latest-1" @@ -157,7 +157,7 @@ jobs: wheel-build-libcugraph: needs: checks secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@cuda-13.1.0 with: # build for every combination of arch and CUDA version, but only for the latest Python matrix_filter: group_by([.ARCH, (.CUDA_VER|split(".")|map(tonumber)|.[0])]) | map(max_by(.PY_VER|split(".")|map(tonumber))) @@ -170,7 +170,7 @@ jobs: wheel-build-pylibcugraph: needs: wheel-build-libcugraph secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@cuda-13.1.0 with: build_type: pull-request node_type: cpu8 @@ -181,7 +181,7 @@ jobs: wheel-tests-pylibcugraph: needs: [wheel-build-pylibcugraph, changed-files] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@cuda-13.1.0 if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python with: build_type: pull-request @@ -190,7 +190,7 @@ jobs: wheel-build-cugraph: needs: wheel-build-pylibcugraph secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@cuda-13.1.0 with: build_type: pull-request node_type: cpu8 @@ -201,7 +201,7 @@ jobs: wheel-tests-cugraph: needs: [wheel-build-cugraph, changed-files] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@cuda-13.1.0 if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python with: build_type: pull-request @@ -210,10 +210,10 @@ jobs: devcontainer: secrets: inherit needs: telemetry-setup - uses: rapidsai/shared-workflows/.github/workflows/build-in-devcontainer.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/build-in-devcontainer.yaml@cuda-13.1.0 with: arch: '["amd64", "arm64"]' - cuda: '["13.0"]' + cuda: '["13.1"]' node_type: "cpu8" rapids-aux-secret-1: GIST_REPO_READ_ORG_GITHUB_TOKEN env: | diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index a6694c66ec..747dcfafef 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -25,7 +25,7 @@ on: jobs: conda-cpp-checks: secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-post-build-checks.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-post-build-checks.yaml@cuda-13.1.0 with: build_type: ${{ inputs.build_type }} branch: ${{ inputs.branch }} @@ -34,7 +34,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@main + uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-tests.yaml@cuda-13.1.0 with: build_type: ${{ inputs.build_type }} branch: ${{ inputs.branch }} @@ -44,7 +44,7 @@ jobs: sccache-dist-token-secret-name: GIST_REPO_READ_ORG_GITHUB_TOKEN conda-python-tests: secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/conda-python-tests.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/conda-python-tests.yaml@cuda-13.1.0 with: build_type: ${{ inputs.build_type }} branch: ${{ inputs.branch }} @@ -54,7 +54,7 @@ jobs: sccache-dist-token-secret-name: GIST_REPO_READ_ORG_GITHUB_TOKEN wheel-tests-pylibcugraph: secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@cuda-13.1.0 with: build_type: ${{ inputs.build_type }} branch: ${{ inputs.branch }} @@ -64,7 +64,7 @@ jobs: sccache-dist-token-secret-name: GIST_REPO_READ_ORG_GITHUB_TOKEN wheel-tests-cugraph: secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@cuda-13.1.0 with: build_type: ${{ inputs.build_type }} branch: ${{ inputs.branch }} diff --git a/.github/workflows/trigger-breaking-change-alert.yaml b/.github/workflows/trigger-breaking-change-alert.yaml index c471e2a151..2f6b8109a2 100644 --- a/.github/workflows/trigger-breaking-change-alert.yaml +++ b/.github/workflows/trigger-breaking-change-alert.yaml @@ -12,7 +12,7 @@ jobs: trigger-notifier: if: contains(github.event.pull_request.labels.*.name, 'breaking') secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/breaking-change-alert.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/breaking-change-alert.yaml@cuda-13.1.0 with: sender_login: ${{ github.event.sender.login }} sender_avatar: ${{ github.event.sender.avatar_url }} diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt index ae00dd1d28..d5b16df455 100644 --- a/cpp/CMakeLists.txt +++ b/cpp/CMakeLists.txt @@ -1,6 +1,6 @@ #============================================================================= # cmake-format: off -# SPDX-FileCopyrightText: Copyright (c) 2018-2025, NVIDIA CORPORATION. +# SPDX-FileCopyrightText: Copyright (c) 2018-2026, NVIDIA CORPORATION. # SPDX-License-Identifier: Apache-2.0 # cmake-format: on #============================================================================= @@ -121,7 +121,7 @@ include(cmake/thirdparty/get_cccl.cmake) include(${rapids-cmake-dir}/cpm/rmm.cmake) rapids_cpm_rmm(BUILD_EXPORT_SET cugraph-exports) include(${rapids-cmake-dir}/cpm/cuco.cmake) -rapids_cpm_cuco(BUILD_EXPORT_SET cugraph-exports INSTALL_EXPORT_SET cugraph-exports) +rapids_cpm_cuco(BUILD_EXPORT_SET cugraph-exports) include(cmake/thirdparty/get_raft.cmake) # Always include cuVS for spectral clustering enhancements diff --git a/cpp/libcugraph_etl/CMakeLists.txt b/cpp/libcugraph_etl/CMakeLists.txt index 1433a67c75..43f972b9f2 100644 --- a/cpp/libcugraph_etl/CMakeLists.txt +++ b/cpp/libcugraph_etl/CMakeLists.txt @@ -1,6 +1,6 @@ #============================================================================= # cmake-format: off -# SPDX-FileCopyrightText: Copyright (c) 2021-2025, NVIDIA CORPORATION. +# SPDX-FileCopyrightText: Copyright (c) 2021-2026, NVIDIA CORPORATION. # SPDX-License-Identifier: Apache-2.0 # cmake-format: on #============================================================================= @@ -37,7 +37,7 @@ rapids_cmake_build_type(Release) option(BUILD_SHARED_LIBS "Build cuGraph shared libraries" ON) option(BUILD_CUGRAPH_ETL_MG_TESTS "Build cuGraph multigpu algorithm tests" OFF) -option(CMAKE_CUDA_LINEINFO "Enable the -lineinfo option for nvcc (useful for cuda-memcheck / profiler" OFF) +option(CMAKE_CUDA_LINEINFO "Enable the -lineinfo option for nvcc (useful for cuda-memcheck / profiler)" OFF) option(BUILD_TESTS "Configure CMake to build tests" ON) option(CUDA_STATIC_MATH_LIBRARIES "Statically link the CUDA math libraries" OFF) @@ -138,6 +138,7 @@ target_link_libraries(cugraph_etl CUDA::cusolver${_ctk_static_suffix} CUDA::cusparse${_ctk_static_suffix} PRIVATE + cuco::cuco cugraph::cugraph cudf::cudf ) diff --git a/cpp/src/traversal/od_shortest_distances_impl.cuh b/cpp/src/traversal/od_shortest_distances_impl.cuh index 549b6887bc..63c48d7a0e 100644 --- a/cpp/src/traversal/od_shortest_distances_impl.cuh +++ b/cpp/src/traversal/od_shortest_distances_impl.cuh @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION. + * SPDX-FileCopyrightText: Copyright (c) 2024-2026, NVIDIA CORPORATION. * SPDX-License-Identifier: Apache-2.0 */ #pragma once @@ -912,7 +912,8 @@ rmm::device_uvector od_shortest_distances( h_split_thresholds.size(), handle.get_stream()); - rmm::device_uvector tmp_buffer = std::move(far_buffers.back()); + rmm::device_uvector tmp_buffer = std::exchange( + far_buffers.back(), rmm::device_uvector(0, handle.get_stream())); std::vector h_buffer_ptrs(h_split_thresholds.size() + 1); auto old_size = new_near_q_keys.size(); for (size_t j = 0; j < h_buffer_ptrs.size(); ++j) { @@ -994,7 +995,8 @@ rmm::device_uvector od_shortest_distances( new_near_q_keys.resize(cuda::std::distance(new_near_q_keys.begin(), last), handle.get_stream()); } else { - far_buffers[i - num_near_q_insert_buffers] = std::move(far_buffers[i]); + far_buffers[i - num_near_q_insert_buffers] = + std::exchange(far_buffers[i], rmm::device_uvector{0, handle.get_stream()}); } } diff --git a/cpp/tests/CMakeLists.txt b/cpp/tests/CMakeLists.txt index 515a74c2f5..afe8ad6dca 100644 --- a/cpp/tests/CMakeLists.txt +++ b/cpp/tests/CMakeLists.txt @@ -1,6 +1,6 @@ #============================================================================= # cmake-format: off -# SPDX-FileCopyrightText: Copyright (c) 2019-2025, NVIDIA CORPORATION. +# SPDX-FileCopyrightText: Copyright (c) 2019-2026, NVIDIA CORPORATION. # SPDX-License-Identifier: Apache-2.0 # cmake-format: on # @@ -60,6 +60,7 @@ target_link_libraries(cugraphtestutil PUBLIC cugraph::cugraph PRIVATE + cuco::cuco GTest::gtest ) @@ -128,6 +129,7 @@ if(BUILD_CUGRAPH_MG_TESTS) target_link_libraries(cugraphmgtestutil PRIVATE + cuco::cuco cugraph::cugraph NCCL::NCCL MPI::MPI_CXX @@ -158,6 +160,7 @@ function(ConfigureTest CMAKE_TEST_NAME) target_link_libraries(${CMAKE_TEST_NAME} PRIVATE + cuco::cuco cugraphtestutil GTest::gtest GTest::gtest_main @@ -186,6 +189,7 @@ function(ConfigureTestMG CMAKE_TEST_NAME) target_include_directories(${CMAKE_TEST_NAME} PRIVATE "${CUGRAPH_SOURCE_DIR}/src") target_link_libraries(${CMAKE_TEST_NAME} PRIVATE + cuco::cuco cugraphmgtestutil cugraphtestutil GTest::gtest @@ -240,6 +244,7 @@ function(ConfigureCTest CMAKE_TEST_NAME) target_link_libraries(${CMAKE_TEST_NAME} PRIVATE + cuco::cuco cugraph::cugraph_c cugraph_c_testutil GTest::gtest @@ -270,6 +275,7 @@ function(ConfigureCTestMG CMAKE_TEST_NAME) target_link_libraries(${CMAKE_TEST_NAME} PRIVATE + cuco::cuco cugraph::cugraph_c cugraph_c_testutil cugraphmgtestutil @@ -933,6 +939,7 @@ if (BUILD_CUGRAPH_MTMG_TESTS) ConfigureTest(MTMG_TEST mtmg/threaded_test.cpp) target_link_libraries(MTMG_TEST PRIVATE + cuco::cuco cugraphmgtestutil ${COMPILED_RAFT_LIB} ucx::ucp @@ -943,6 +950,7 @@ if (BUILD_CUGRAPH_MTMG_TESTS) ConfigureTest(MTMG_LOUVAIN_TEST mtmg/threaded_test_louvain.cpp) target_link_libraries(MTMG_LOUVAIN_TEST PRIVATE + cuco::cuco cugraphmgtestutil ${COMPILED_RAFT_LIB} ucx::ucp @@ -953,6 +961,7 @@ if (BUILD_CUGRAPH_MTMG_TESTS) ConfigureTest(MTMG_JACCARD_TEST mtmg/threaded_test_jaccard.cpp) target_link_libraries(MTMG_JACCARD_TEST PRIVATE + cuco::cuco cugraphmgtestutil ${COMPILED_RAFT_LIB} ucx::ucp @@ -966,6 +975,7 @@ if (BUILD_CUGRAPH_MTMG_TESTS) ConfigureTest(MTMG_MULTINODE_TEST mtmg/multi_node_threaded_test.cpp utilities/mg_utilities.cpp) target_link_libraries(MTMG_MULTINODE_TEST PRIVATE + cuco::cuco cugraphmgtestutil ${COMPILED_RAFT_LIB} ucx::ucp