Skip to content

Commit

Permalink
Merge pull request #1 from rapidsai/branch-0.15
Browse files Browse the repository at this point in the history
Update forked branch-0.15 from release
  • Loading branch information
aschaffer authored Jul 22, 2020
2 parents 32db9fc + bbbf470 commit 6addadc
Show file tree
Hide file tree
Showing 53 changed files with 8,359 additions and 185 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ log
.ipynb_checkpoints
.DS_Store
dask-worker-space/
*.egg-info/
## eclipse
.project
.cproject
Expand Down
4 changes: 1 addition & 3 deletions BUILD.md
Original file line number Diff line number Diff line change
Expand Up @@ -140,9 +140,7 @@ Using as an example developer working on cuML and RAFT, we recommend the followi

This will facilitate development, and the `RAFT_PATH` variable will make it so that the downstream repository, in this case cuML, builds using the locally cloned RAFT (as descrbed in the first step).

### Submitting PRs

If you are submitting changes to RAFT itself, without changing downstream repos, you can use the config file located in `ci/prtest.config` to trigger RAFT's CI to run tests of downstream repositories.
### Submitting PRs Guidelines

If you have changes to both RAFT and at least one downstream repo, then:

Expand Down
14 changes: 13 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,23 @@
# RAFT 0.15.0 (Date TBD)

## New Features
- PR #12: Spectral clustering.
- PR #7: Migrating cuml comms -> raft comms_t
- PR #15: add exception based error handling macros
- PR #29: Add ceildiv functionality

## Improvements
- PR #13: Add RMM_INCLUDE and RMM_LIBRARY options to allow linking to non-conda RMM
- PR #22: Preserve order in comms workers for rank initialization
- PR #38: Remove #include <cudart_utils.h> from `raft/mr/`
- PR #39: Adding a virtual destructor to `raft::handle_t` and `raft::comms::comms_t`

## Bug Fixes

- PR #17: Make destructor inline to avoid redeclaration error
- PR #25: Fix bug in handle_t::get_internal_streams
- PR #26: Fix bug in RAFT_EXPECTS (add parentheses surrounding cond)
- PR #34: Fix issue with incorrect docker image being used in local build script
- PR #35: Remove #include <nccl.h> from `raft/error.hpp`

# RAFT 0.14.0 (Date TBD)

Expand Down
5 changes: 4 additions & 1 deletion ci/local/build.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
#!/bin/bash

DOCKER_IMAGE="gpuci/rapidsai-base:cuda10.0-ubuntu16.04-gcc5-py3.6"
GIT_DESCRIBE_TAG=`git describe --tags`
MINOR_VERSION=`echo $GIT_DESCRIBE_TAG | grep -o -E '([0-9]+\.[0-9]+)'`

DOCKER_IMAGE="gpuci/rapidsai:${MINOR_VERSION}-cuda10.1-devel-ubuntu16.04-py3.7"
REPO_PATH=${PWD}
RAPIDS_DIR_IN_CONTAINER="/rapids"
CPP_BUILD_DIR="cuML/build"
Expand Down
32 changes: 28 additions & 4 deletions cpp/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,24 @@ set(CMAKE_CUDA_FLAGS
# - dependencies -------------------------------------------------------------

include(cmake/Dependencies.cmake)
include(cmake/comms.cmake)

###################################################################################################
# - RMM -------------------------------------------------------------------------------------------

find_path(RMM_INCLUDE "rmm"
HINTS "$ENV{RMM_ROOT}/include")

find_library(RMM_LIBRARY "rmm"
HINTS "$ENV{RMM_ROOT}/lib" "$ENV{RMM_ROOT}/build")

message(STATUS "RMM: RMM_LIBRARY set to ${RMM_LIBRARY}")
message(STATUS "RMM: RMM_INCLUDE set to ${RMM_INCLUDE}")

add_library(rmm SHARED IMPORTED ${RMM_LIBRARY})
if(RMM_INCLUDE AND RMM_LIBRARY)
set_target_properties(rmm PROPERTIES IMPORTED_LOCATION ${RMM_LIBRARY})
endif(RMM_INCLUDE AND RMM_LIBRARY)

##############################################################################
# - include paths ------------------------------------------------------------
Expand All @@ -170,10 +188,11 @@ set(RAFT_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/include CACHE STRING

set(RAFT_INCLUDE_DIRECTORIES
${RAFT_INCLUDE_DIR}
${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES})
${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES}
"${RMM_INCLUDE}")

if(DEFINED ENV{CONDA_PREFIX})
message(STATUS "Using RMM installation froM $ENV{CONDA_PREFIX}")
message(STATUS "Using RMM installation from $ENV{CONDA_PREFIX}")
list(APPEND RAFT_INCLUDE_DIRECTORIES $ENV{CONDA_PREFIX}/include)
endif(DEFINED ENV{CONDA_PREFIX})

Expand All @@ -185,9 +204,10 @@ set(RAFT_LINK_LIBRARIES
${CUDA_cusolver_LIBRARY}
${CUDA_CUDART_LIBRARY}
${CUDA_cusparse_LIBRARY}
${CUDA_curand_LIBRARY}
rmm)

set(RAFT_LINK_DIRECTORIES "")
set(RAFT_LINK_DIRECTORIES "${RMM_LIBRARY}")

if(DEFINED ENV{CONDA_PREFIX})
list(APPEND RAFT_LINK_DIRECTORIES $ENV{CONDA_PREFIX}/lib)
Expand All @@ -203,9 +223,13 @@ if(BUILD_RAFT_TESTS)
add_executable(test_raft
test/cudart_utils.cpp
test/handle.cpp
test/integer_utils.cpp
test/mr/device/buffer.cpp
test/mr/host/buffer.cpp
test/test.cpp)
test/test.cpp
test/spectral_matrix.cu
test/eigen_solvers.cu
test/cluster_solvers.cu)

target_include_directories(test_raft
PRIVATE
Expand Down
35 changes: 35 additions & 0 deletions cpp/cmake/comms.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
#
# Copyright (c) 2019-2020, 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.
#

cmake_minimum_required(VERSION 3.14 FATAL_ERROR)
project(comms LANGUAGES CXX CUDA)

if(NOT NCCL_PATH)
find_package(NCCL REQUIRED)
else()
message("-- Manually set NCCL PATH to ${NCCL_PATH}")
set(NCCL_INCLUDE_DIRS ${NCCL_PATH}/include)
set(NCCL_LIBRARIES ${NCCL_PATH}/lib/libnccl.so)
endif(NOT NCCL_PATH)

set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

find_package(UCX)
include_directories(${UCX_INCLUDE_DIRS})

include_directories( ${NCCL_INCLUDE_DIRS} )
list(APPEND RAFT_LINK_LIBRARIES ${NCCL_LIBRARIES})
Loading

0 comments on commit 6addadc

Please sign in to comment.