Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 0 additions & 12 deletions .github/workflows/pr.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -248,9 +248,6 @@ jobs:
with:
build_type: pull-request
script: ci/test_cpp.sh
# TODO(#5498): Drop this filter once libcugraph no longer requires a CUDA >= 12.8
# cudart at runtime (ideally by statically linking libcudart again).
matrix_filter: map(select(.CUDA_VER | split(".") | map(tonumber) >= [12, 9]))
permissions:
actions: read
contents: read
Expand Down Expand Up @@ -292,9 +289,6 @@ jobs:
with:
build_type: pull-request
script: ci/test_python.sh
# TODO(#5498): Drop this filter once libcugraph no longer requires a CUDA >= 12.8
# cudart at runtime (ideally by statically linking libcudart again).
matrix_filter: map(select(.CUDA_VER | split(".") | map(tonumber) >= [12, 9]))
permissions:
actions: read
contents: read
Expand Down Expand Up @@ -379,9 +373,6 @@ jobs:
with:
build_type: pull-request
script: ci/test_wheel_pylibcugraph.sh
# TODO(#5498): Drop this filter once libcugraph no longer requires a CUDA >= 12.8
# cudart at runtime (ideally by statically linking libcudart again).
matrix_filter: map(select(.CUDA_VER | split(".") | map(tonumber) >= [12, 9]))
permissions:
actions: read
contents: read
Expand Down Expand Up @@ -414,9 +405,6 @@ jobs:
with:
build_type: pull-request
script: ci/test_wheel_cugraph.sh
# TODO(#5498): Drop this filter once libcugraph no longer requires a CUDA >= 12.8
# cudart at runtime (ideally by statically linking libcudart again).
matrix_filter: map(select(.CUDA_VER | split(".") | map(tonumber) >= [12, 9]))
permissions:
actions: read
contents: read
Expand Down
12 changes: 0 additions & 12 deletions .github/workflows/test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,6 @@ jobs:
date: ${{ inputs.date }}
script: ci/test_cpp.sh
sha: ${{ inputs.sha }}
# TODO(#5498): Drop this filter once libcugraph no longer requires a CUDA >= 12.8
# cudart at runtime (ideally by statically linking libcudart again).
matrix_filter: map(select(.CUDA_VER | split(".") | map(tonumber) >= [12, 9]))
permissions:
actions: read
contents: read
Expand All @@ -63,9 +60,6 @@ jobs:
date: ${{ inputs.date }}
script: ci/test_python.sh
sha: ${{ inputs.sha }}
# TODO(#5498): Drop this filter once libcugraph no longer requires a CUDA >= 12.8
# cudart at runtime (ideally by statically linking libcudart again).
matrix_filter: map(select(.CUDA_VER | split(".") | map(tonumber) >= [12, 9]))
permissions:
actions: read
contents: read
Expand All @@ -81,9 +75,6 @@ jobs:
date: ${{ inputs.date }}
sha: ${{ inputs.sha }}
script: ci/test_wheel_pylibcugraph.sh
# TODO(#5498): Drop this filter once libcugraph no longer requires a CUDA >= 12.8
# cudart at runtime (ideally by statically linking libcudart again).
matrix_filter: map(select(.CUDA_VER | split(".") | map(tonumber) >= [12, 9]))
permissions:
actions: read
contents: read
Expand All @@ -99,9 +90,6 @@ jobs:
date: ${{ inputs.date }}
sha: ${{ inputs.sha }}
script: ci/test_wheel_cugraph.sh
# TODO(#5498): Drop this filter once libcugraph no longer requires a CUDA >= 12.8
# cudart at runtime (ideally by statically linking libcudart again).
matrix_filter: map(select(.CUDA_VER | split(".") | map(tonumber) >= [12, 9]))
permissions:
actions: read
contents: read
Expand Down
1 change: 1 addition & 0 deletions ci/build_wheel.sh
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ sccache --show-adv-stats
sccache --stop-server >/dev/null 2>&1 || true

EXCLUDE_ARGS=(
--exclude "libcuvs.so"
--exclude "libraft.so"
)

Expand Down
4 changes: 3 additions & 1 deletion conda/recipes/libcugraph/recipe.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,6 @@ cache:
CMAKE_CUDA_COMPILER_LAUNCHER: ${{ env.get("CMAKE_CUDA_COMPILER_LAUNCHER") }}
CMAKE_CXX_COMPILER_LAUNCHER: ${{ env.get("CMAKE_CXX_COMPILER_LAUNCHER") }}
CMAKE_GENERATOR: ${{ env.get("CMAKE_GENERATOR") }}
EXTRA_CMAKE_ARGS: "-DCUGRAPH_COMPILE_CUVS=ON"
NVCC_APPEND_FLAGS: ${{ env.get("NVCC_APPEND_FLAGS", default="") }}
PARALLEL_LEVEL: ${{ env.get("PARALLEL_LEVEL", default="8") }}
RAPIDS_ARTIFACTS_DIR: ${{ env.get("RAPIDS_ARTIFACTS_DIR", default="") }}
Expand Down Expand Up @@ -73,6 +72,7 @@ cache:
host:
- cuda-version =${{ cuda_version }}
- libcudf =${{ minor_version }}
- libcuvs =${{ minor_version }}
- libraft =${{ minor_version }}
- librmm =${{ minor_version }}
- libucxx ${{ libucxx_version }}
Expand Down Expand Up @@ -115,6 +115,7 @@ outputs:
host:
- cuda-version =${{ cuda_version }}
- librmm =${{ minor_version }}
- libcuvs =${{ minor_version }}
- rapids-logger =0.2
- cuda-cudart-dev
- cuda-nvrtc-dev
Expand All @@ -126,6 +127,7 @@ outputs:
- ${{ pin_compatible("cuda-version", upper_bound="x", lower_bound="x") }}
- libraft =${{ minor_version }}
- librmm =${{ minor_version }}
- libcuvs =${{ minor_version }}
- nccl ${{ nccl_version }}
- cuda-cudart
- cuda-nvrtc
Expand Down
9 changes: 1 addition & 8 deletions cpp/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -43,13 +43,6 @@ option(CMAKE_CUDA_LINEINFO "Enable the -lineinfo option for nvcc (useful for cud
option(BUILD_TESTS "Configure CMake to build tests" ON)
option(USE_RAFT_STATIC "Build raft as a static library" OFF)
option(CUGRAPH_COMPILE_RAFT_LIB "Compile the raft library instead of using it header-only" ON)
option(CUGRAPH_COMPILE_CUVS "Always compile cuVS from source" OFF)
cmake_dependent_option(CUGRAPH_USE_CUVS_STATIC
"Build and statically link the cuVS library" ON
"CUGRAPH_COMPILE_CUVS" OFF)

message(VERBOSE "CUGRAPH: CUGRAPH_COMPILE_CUVS=${CUGRAPH_COMPILE_CUVS}")
message(VERBOSE "CUGRAPH: CUGRAPH_USE_CUVS_STATIC=${CUGRAPH_USE_CUVS_STATIC}")

################################################################################
# - compiler options -----------------------------------------------------------
Expand Down Expand Up @@ -623,7 +616,7 @@ foreach(suffix IN LISTS cugraph_suffixes)
$<BUILD_LOCAL_INTERFACE:CUDA::toolkit>
PRIVATE
${COMPILED_RAFT_LIB}
$<IF:$<BOOL:${CUGRAPH_USE_CUVS_STATIC}>,cuvs::cuvs_static,cuvs::cuvs> #
cuvs::cuvs
cuco::cuco
rmm::rmm
INTERFACE $<COMPILE_ONLY:rmm::rmm>
Expand Down
8 changes: 2 additions & 6 deletions cpp/cmake/thirdparty/get_cuvs.cmake
Original file line number Diff line number Diff line change
@@ -1,23 +1,20 @@
#=============================================================================
# cmake-format: off
# SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION.
# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION.
# SPDX-License-Identifier: Apache-2.0
# cmake-format: on
#=============================================================================

set(CUGRAPH_MIN_VERSION_cuvs "${CUGRAPH_VERSION_MAJOR}.${CUGRAPH_VERSION_MINOR}.00")

function(find_and_configure_cuvs)
set(oneValueArgs VERSION FORK PINNED_TAG EXCLUDE_FROM_ALL USE_CUVS_STATIC CLONE_ON_PIN)
set(oneValueArgs VERSION FORK PINNED_TAG EXCLUDE_FROM_ALL CLONE_ON_PIN)
cmake_parse_arguments(PKG "${options}" "${oneValueArgs}"
"${multiValueArgs}" ${ARGN} )

if(PKG_CLONE_ON_PIN AND NOT PKG_PINNED_TAG STREQUAL "${rapids-cmake-checkout-tag}")
message(STATUS "CUGRAPH: Pinned tag found: ${PKG_PINNED_TAG}. Cloning cuVS locally.")
set(CPM_DOWNLOAD_cuvs ON)
elseif(PKG_USE_CUVS_STATIC AND (NOT CPM_cuvs_SOURCE))
message(STATUS "CUGRAPH: Cloning cuVS locally to build static libraries.")
set(CPM_DOWNLOAD_cuvs ON)
endif()

# Disable multi-GPU algorithms to avoid NCCL dependency
Expand Down Expand Up @@ -56,6 +53,5 @@ find_and_configure_cuvs(VERSION ${CUGRAPH_MIN_VERSION_cuvs}
# force local cuVS clone in build directory
# even if it's already installed.
CLONE_ON_PIN ON
USE_CUVS_STATIC ${CUGRAPH_USE_CUVS_STATIC}
EXCLUDE_FROM_ALL ON
)
21 changes: 20 additions & 1 deletion dependencies.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,7 @@ files:
table: project
includes:
- cuda_wheels
- depends_on_libcuvs
- depends_on_libraft
- depends_on_librmm
py_build_pylibcugraph:
Expand Down Expand Up @@ -658,7 +659,25 @@ dependencies:
common:
- output_types: conda
packages:
- libcuvs==26.6.*,>=0.0.0a0
- &libcuvs_unsuffixed libcuvs==26.6.*,>=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.anaconda.org/rapidsai-wheels-nightly/simple
specific:
- output_types: [requirements, pyproject]
matrices:
- matrix:
cuda: "12.*"
cuda_suffixed: "true"
packages:
- libcuvs-cu12==26.6.*,>=0.0.0a0
- matrix:
cuda: "13.*"
cuda_suffixed: "true"
packages:
- libcuvs-cu13==26.6.*,>=0.0.0a0
- {matrix: null, packages: [*libcuvs_unsuffixed]}
depends_on_librmm:
common:
- output_types: conda
Expand Down
4 changes: 0 additions & 4 deletions python/libcugraph/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -37,10 +37,6 @@ set(CMAKE_CUDA_LINEINFO OFF)
set(USE_RAFT_STATIC OFF)
set(CUGRAPH_COMPILE_RAFT_LIB ON)

# --- cuvs --- #
set(CUGRAPH_COMPILE_CUVS ON)
set(CUGRAPH_USE_CUVS_STATIC ON)

add_subdirectory(../../cpp cugraph-cpp)

# assumes libcugraph.so is installed 2 levels deep, e.g. site-packages/libcugraph/lib64/libcugraph.so
Expand Down
2 changes: 2 additions & 0 deletions python/libcugraph/libcugraph/load.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,11 @@ def load_library():
# their symbols
import librmm
import libraft
import libcuvs

librmm.load_library()
libraft.load_library()
libcuvs.load_library()
except ModuleNotFoundError:
Comment on lines 38 to 46

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is the Python change for context

# These runtime dependencies might be satisfied by conda packages (which do not
# have any Python modules) instead of wheels. In that situation, assume that
Expand Down
1 change: 1 addition & 0 deletions python/libcugraph/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ classifiers = [
]
dependencies = [
"cuda-toolkit[cublas,curand,cusolver,cusparse,nvrtc]==13.*",
"libcuvs==26.6.*,>=0.0.0a0",
"libraft==26.6.*,>=0.0.0a0",
"librmm==26.6.*,>=0.0.0a0",
"nvidia-nvjitlink>=13.0,<14",
Expand Down
Loading