Skip to content

Commit

Permalink
Merge branch 'branch-24.02' into drop_support_for_pascal
Browse files Browse the repository at this point in the history
  • Loading branch information
ChuckHastings committed Dec 6, 2023
2 parents a4f69f7 + a5718c6 commit 3153eed
Show file tree
Hide file tree
Showing 12 changed files with 714 additions and 55 deletions.
11 changes: 0 additions & 11 deletions .github/labeler.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,17 +9,6 @@ python:
benchmarks:
- 'benchmarks/**'

doc:
- 'docs/**'
- '**/*.md'
- 'datasets/**'
- 'notebooks/**'
- '**/*.txt'
- '**/*.rst'
- '**/*.ipynb'
- '**/*.pdf'
- '**/*.png'

datasets:
- 'datasets/**'

Expand Down
81 changes: 81 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,84 @@
# cuGraph 23.12.00 (6 Dec 2023)

## 🚨 Breaking Changes

- [BUG] Restore the original default order of CSR, which does not reverse edges in cuGraph-PyG ([#3980](https://github.com/rapidsai/cugraph/pull/3980)) [@alexbarghi-nv](https://github.com/alexbarghi-nv)
- `Resultset` and `Dataset` Refactors ([#3957](https://github.com/rapidsai/cugraph/pull/3957)) [@nv-rliu](https://github.com/nv-rliu)
- Moves more MG graph ETL to libcugraph and re-enables MG tests in CI ([#3941](https://github.com/rapidsai/cugraph/pull/3941)) [@jnke2016](https://github.com/jnke2016)

## 🐛 Bug Fixes

- Pin actions/labeler to v4 ([#4038](https://github.com/rapidsai/cugraph/pull/4038)) [@raydouglass](https://github.com/raydouglass)
- Find rmm before cuco ([#4011](https://github.com/rapidsai/cugraph/pull/4011)) [@vyasr](https://github.com/vyasr)
- Pin to minor versions of packages outside the cuGraph repository. ([#4004](https://github.com/rapidsai/cugraph/pull/4004)) [@bdice](https://github.com/bdice)
- Move MTMG_TEST to MG tests block ([#3993](https://github.com/rapidsai/cugraph/pull/3993)) [@naimnv](https://github.com/naimnv)
- Fix Leiden refinement phase ([#3990](https://github.com/rapidsai/cugraph/pull/3990)) [@naimnv](https://github.com/naimnv)
- [BUG] Fix Graph Construction From Pandas in cuGraph-PyG ([#3985](https://github.com/rapidsai/cugraph/pull/3985)) [@alexbarghi-nv](https://github.com/alexbarghi-nv)
- [BUG] Restore the original default order of CSR, which does not reverse edges in cuGraph-PyG ([#3980](https://github.com/rapidsai/cugraph/pull/3980)) [@alexbarghi-nv](https://github.com/alexbarghi-nv)
- Fix eigenvector testing and HITS testing discrepancies ([#3979](https://github.com/rapidsai/cugraph/pull/3979)) [@ChuckHastings](https://github.com/ChuckHastings)
- [BUG] Fix Incorrect Edge Index, Directory Selection in cuGraph-PyG Loader ([#3978](https://github.com/rapidsai/cugraph/pull/3978)) [@alexbarghi-nv](https://github.com/alexbarghi-nv)
- [BUG] Check if Dask has quit to avoid throwing an exception and triggering a segfault on ddp exit ([#3961](https://github.com/rapidsai/cugraph/pull/3961)) [@alexbarghi-nv](https://github.com/alexbarghi-nv)
- nx-cugraph: xfail test_louvain.py:test_threshold in Python 3.9 ([#3944](https://github.com/rapidsai/cugraph/pull/3944)) [@eriknw](https://github.com/eriknw)

## 📖 Documentation

- [DOC]: Fix invalid links and add materials to notebooks ([#4002](https://github.com/rapidsai/cugraph/pull/4002)) [@huiyuxie](https://github.com/huiyuxie)
- Update Broken Links in README.md ([#3924](https://github.com/rapidsai/cugraph/pull/3924)) [@nv-rliu](https://github.com/nv-rliu)

## 🚀 New Features

- Implement the transform_e primitive (to update property values for all edges) ([#3917](https://github.com/rapidsai/cugraph/pull/3917)) [@seunghwak](https://github.com/seunghwak)
- Update the neighbor intersection primitive to support edge masking. ([#3550](https://github.com/rapidsai/cugraph/pull/3550)) [@seunghwak](https://github.com/seunghwak)

## 🛠️ Improvements

- Correct defect found in DLFW testing ([#4021](https://github.com/rapidsai/cugraph/pull/4021)) [@ChuckHastings](https://github.com/ChuckHastings)
- `nx-cugraph` README update: adds missing `connected_components` algo to table ([#4019](https://github.com/rapidsai/cugraph/pull/4019)) [@rlratzel](https://github.com/rlratzel)
- Build concurrency for nightly and merge triggers ([#4009](https://github.com/rapidsai/cugraph/pull/4009)) [@bdice](https://github.com/bdice)
- Support `drop_last` Argument in cuGraph-PyG Loader ([#3995](https://github.com/rapidsai/cugraph/pull/3995)) [@alexbarghi-nv](https://github.com/alexbarghi-nv)
- Adds `update-version.sh` support for recently added files containing RAPIDS versions ([#3994](https://github.com/rapidsai/cugraph/pull/3994)) [@rlratzel](https://github.com/rlratzel)
- Use new `rapids-dask-dependency` metapackage for managing `dask` versions ([#3991](https://github.com/rapidsai/cugraph/pull/3991)) [@galipremsagar](https://github.com/galipremsagar)
- Fixes to nx-cugraph README: fixes typos, updates link to NX backend docs ([#3989](https://github.com/rapidsai/cugraph/pull/3989)) [@rlratzel](https://github.com/rlratzel)
- Address FIXMEs ([#3988](https://github.com/rapidsai/cugraph/pull/3988)) [@seunghwak](https://github.com/seunghwak)
- Updates README file to include nx-cugraph user documentation, adds nx-cugraph to main README ([#3984](https://github.com/rapidsai/cugraph/pull/3984)) [@rlratzel](https://github.com/rlratzel)
- Update C API graph creation function signatures ([#3982](https://github.com/rapidsai/cugraph/pull/3982)) [@ChuckHastings](https://github.com/ChuckHastings)
- [REVIEW]Optimize cugraph-DGL csc codepath ([#3977](https://github.com/rapidsai/cugraph/pull/3977)) [@VibhuJawa](https://github.com/VibhuJawa)
- nx-cugraph: add SSSP (unweighted) ([#3976](https://github.com/rapidsai/cugraph/pull/3976)) [@eriknw](https://github.com/eriknw)
- CuGraph compatibility fixes ([#3973](https://github.com/rapidsai/cugraph/pull/3973)) [@brandon-b-miller](https://github.com/brandon-b-miller)
- Skip certain `cugraph-pyg` tests when torch-sparse is not available ([#3970](https://github.com/rapidsai/cugraph/pull/3970)) [@tingyu66](https://github.com/tingyu66)
- nx-cugraph: add `eigenvector_centrality`, `katz_centrality`, `hits`, `pagerank` ([#3968](https://github.com/rapidsai/cugraph/pull/3968)) [@eriknw](https://github.com/eriknw)
- Cut peak memory footprint in graph creation ([#3966](https://github.com/rapidsai/cugraph/pull/3966)) [@seunghwak](https://github.com/seunghwak)
- nx-cugraph: add CC for undirected graphs to fix k-truss ([#3965](https://github.com/rapidsai/cugraph/pull/3965)) [@eriknw](https://github.com/eriknw)
- Skip certain `cugraph-pyg` tests when `torch_sparse` is not available ([#3962](https://github.com/rapidsai/cugraph/pull/3962)) [@tingyu66](https://github.com/tingyu66)
- `Resultset` and `Dataset` Refactors ([#3957](https://github.com/rapidsai/cugraph/pull/3957)) [@nv-rliu](https://github.com/nv-rliu)
- Download `xml` docs artifact through CloudFront endpoint ([#3955](https://github.com/rapidsai/cugraph/pull/3955)) [@AyodeAwe](https://github.com/AyodeAwe)
- Add many graph generators to nx-cugraph ([#3954](https://github.com/rapidsai/cugraph/pull/3954)) [@eriknw](https://github.com/eriknw)
- Unpin `dask` and `distributed` for `23.12` development ([#3953](https://github.com/rapidsai/cugraph/pull/3953)) [@galipremsagar](https://github.com/galipremsagar)
- Errors compiling for DLFW on CUDA 12.3 ([#3952](https://github.com/rapidsai/cugraph/pull/3952)) [@ChuckHastings](https://github.com/ChuckHastings)
- nx-cugraph: add k_truss and degree centralities ([#3945](https://github.com/rapidsai/cugraph/pull/3945)) [@eriknw](https://github.com/eriknw)
- nx-cugraph: handle seed argument in edge_betweenness_centrality ([#3943](https://github.com/rapidsai/cugraph/pull/3943)) [@eriknw](https://github.com/eriknw)
- Moves more MG graph ETL to libcugraph and re-enables MG tests in CI ([#3941](https://github.com/rapidsai/cugraph/pull/3941)) [@jnke2016](https://github.com/jnke2016)
- Temporarily disable mg testing ([#3940](https://github.com/rapidsai/cugraph/pull/3940)) [@jnke2016](https://github.com/jnke2016)
- adding C/C++ API docs ([#3938](https://github.com/rapidsai/cugraph/pull/3938)) [@BradReesWork](https://github.com/BradReesWork)
- Add multigraph support to nx-cugraph ([#3934](https://github.com/rapidsai/cugraph/pull/3934)) [@eriknw](https://github.com/eriknw)
- Setup Consistent Nightly Versions for Pip and Conda ([#3933](https://github.com/rapidsai/cugraph/pull/3933)) [@divyegala](https://github.com/divyegala)
- MTMG multi node ([#3932](https://github.com/rapidsai/cugraph/pull/3932)) [@ChuckHastings](https://github.com/ChuckHastings)
- Use branch-23.12 workflows. ([#3928](https://github.com/rapidsai/cugraph/pull/3928)) [@bdice](https://github.com/bdice)
- Fix an issue occurring in the cuGraph-DGL example for "mixed" mode. ([#3927](https://github.com/rapidsai/cugraph/pull/3927)) [@drivanov](https://github.com/drivanov)
- Updating Docs ([#3923](https://github.com/rapidsai/cugraph/pull/3923)) [@BradReesWork](https://github.com/BradReesWork)
- Forward-merge branch-23.10 to branch-23.12 ([#3919](https://github.com/rapidsai/cugraph/pull/3919)) [@nv-rliu](https://github.com/nv-rliu)
- new build all option ([#3916](https://github.com/rapidsai/cugraph/pull/3916)) [@BradReesWork](https://github.com/BradReesWork)
- Silence spurious compiler warnings ([#3913](https://github.com/rapidsai/cugraph/pull/3913)) [@seunghwak](https://github.com/seunghwak)
- Link wholegrah and cugraphops XML docs ([#3906](https://github.com/rapidsai/cugraph/pull/3906)) [@AyodeAwe](https://github.com/AyodeAwe)
- Updates to 23.12 ([#3905](https://github.com/rapidsai/cugraph/pull/3905)) [@raydouglass](https://github.com/raydouglass)
- Forward-merge branch-23.10 to branch-23.12 ([#3904](https://github.com/rapidsai/cugraph/pull/3904)) [@GPUtester](https://github.com/GPUtester)
- Build CUDA 12.0 ARM conda packages. ([#3903](https://github.com/rapidsai/cugraph/pull/3903)) [@bdice](https://github.com/bdice)
- Merge branch-23.10 into branch-23.12 ([#3898](https://github.com/rapidsai/cugraph/pull/3898)) [@rlratzel](https://github.com/rlratzel)
- Some MTMG code cleanup and small optimizations ([#3894](https://github.com/rapidsai/cugraph/pull/3894)) [@ChuckHastings](https://github.com/ChuckHastings)
- Enable parallel mode ([#3875](https://github.com/rapidsai/cugraph/pull/3875)) [@jnke2016](https://github.com/jnke2016)
- Adds benchmarks for `nx-cugraph` ([#3854](https://github.com/rapidsai/cugraph/pull/3854)) [@rlratzel](https://github.com/rlratzel)
- Add nx-cugraph notebook for showing accelerated networkX APIs ([#3830](https://github.com/rapidsai/cugraph/pull/3830)) [@betochimas](https://github.com/betochimas)

# cuGraph 23.10.00 (11 Oct 2023)

## 🚨 Breaking Changes
Expand Down
1 change: 0 additions & 1 deletion cpp/include/cugraph/mtmg/detail/device_shared_wrapper.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,6 @@ class device_shared_wrapper_t {
objects_.insert(std::make_pair(local_rank, std::move(obj)));
}

public:
/**
* @brief Get reference to an object for a particular thread
*
Expand Down
23 changes: 21 additions & 2 deletions cpp/include/cugraph/mtmg/graph_view.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,27 @@ namespace mtmg {
* @brief Graph view for each GPU
*/
template <typename vertex_t, typename edge_t, bool store_transposed, bool multi_gpu>
using graph_view_t = detail::device_shared_wrapper_t<
cugraph::graph_view_t<vertex_t, edge_t, store_transposed, multi_gpu>>;
class graph_view_t : public detail::device_shared_wrapper_t<
cugraph::graph_view_t<vertex_t, edge_t, store_transposed, multi_gpu>> {
public:
/**
* @brief Get the vertex_partition_view for this graph
*/
vertex_partition_view_t<vertex_t, multi_gpu> get_vertex_partition_view(
cugraph::mtmg::handle_t const& handle) const
{
return this->get(handle).local_vertex_partition_view();
}

/**
* @brief Get the vertex_partition_view for this graph
*/
std::vector<vertex_t> get_vertex_partition_range_lasts(
cugraph::mtmg::handle_t const& handle) const
{
return this->get(handle).vertex_partition_range_lasts();
}
};

} // namespace mtmg
} // namespace cugraph
5 changes: 3 additions & 2 deletions cpp/include/cugraph/mtmg/vertex_result_view.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -39,11 +39,12 @@ class vertex_result_view_t : public detail::device_shared_device_span_t<result_t
/**
* @brief Gather results from specified vertices into a device vector
*/
template <typename vertex_t, typename edge_t, bool store_transposed, bool multi_gpu>
template <typename vertex_t, bool multi_gpu>
rmm::device_uvector<result_t> gather(
handle_t const& handle,
raft::device_span<vertex_t const> vertices,
cugraph::mtmg::graph_view_t<vertex_t, edge_t, store_transposed, multi_gpu> const& graph_view,
std::vector<vertex_t> const& vertex_partition_range_lasts,
cugraph::vertex_partition_view_t<vertex_t, multi_gpu> vertex_partition_view,
std::optional<cugraph::mtmg::renumber_map_view_t<vertex_t>>& renumber_map_view);
};

Expand Down
89 changes: 68 additions & 21 deletions cpp/src/mtmg/vertex_result.cu
Original file line number Diff line number Diff line change
Expand Up @@ -27,15 +27,14 @@ namespace cugraph {
namespace mtmg {

template <typename result_t>
template <typename vertex_t, typename edge_t, bool store_transposed, bool multi_gpu>
template <typename vertex_t, bool multi_gpu>
rmm::device_uvector<result_t> vertex_result_view_t<result_t>::gather(
handle_t const& handle,
raft::device_span<vertex_t const> vertices,
cugraph::mtmg::graph_view_t<vertex_t, edge_t, store_transposed, multi_gpu> const& graph_view,
std::vector<vertex_t> const& vertex_partition_range_lasts,
vertex_partition_view_t<vertex_t, multi_gpu> vertex_partition_view,
std::optional<cugraph::mtmg::renumber_map_view_t<vertex_t>>& renumber_map_view)
{
auto this_gpu_graph_view = graph_view.get(handle);

rmm::device_uvector<vertex_t> local_vertices(vertices.size(), handle.get_stream());
rmm::device_uvector<int> vertex_gpu_ids(vertices.size(), handle.get_stream());
rmm::device_uvector<size_t> vertex_pos(vertices.size(), handle.get_stream());
Expand All @@ -47,11 +46,11 @@ rmm::device_uvector<result_t> vertex_result_view_t<result_t>::gather(
cugraph::detail::sequence_fill(
handle.get_stream(), vertex_pos.data(), vertex_pos.size(), size_t{0});

rmm::device_uvector<vertex_t> d_vertex_partition_range_lasts(
this_gpu_graph_view.vertex_partition_range_lasts().size(), handle.get_stream());
rmm::device_uvector<vertex_t> d_vertex_partition_range_lasts(vertex_partition_range_lasts.size(),
handle.get_stream());
raft::update_device(d_vertex_partition_range_lasts.data(),
this_gpu_graph_view.vertex_partition_range_lasts().data(),
this_gpu_graph_view.vertex_partition_range_lasts().size(),
vertex_partition_range_lasts.data(),
vertex_partition_range_lasts.size(),
handle.get_stream());

if (renumber_map_view) {
Expand All @@ -60,8 +59,8 @@ rmm::device_uvector<result_t> vertex_result_view_t<result_t>::gather(
local_vertices.data(),
local_vertices.size(),
renumber_map_view->get(handle).data(),
this_gpu_graph_view.local_vertex_partition_range_first(),
this_gpu_graph_view.local_vertex_partition_range_last());
vertex_partition_view.local_vertex_partition_range_first(),
vertex_partition_view.local_vertex_partition_range_last());
}

auto const major_comm_size =
Expand Down Expand Up @@ -89,8 +88,8 @@ rmm::device_uvector<result_t> vertex_result_view_t<result_t>::gather(

auto& wrapped = this->get(handle);

auto vertex_partition = vertex_partition_device_view_t<vertex_t, multi_gpu>(
this_gpu_graph_view.local_vertex_partition_view());
auto vertex_partition =
vertex_partition_device_view_t<vertex_t, multi_gpu>(vertex_partition_view);

auto iter =
thrust::make_transform_iterator(local_vertices.begin(), [vertex_partition] __device__(auto v) {
Expand Down Expand Up @@ -130,37 +129,85 @@ rmm::device_uvector<result_t> vertex_result_view_t<result_t>::gather(
template rmm::device_uvector<float> vertex_result_view_t<float>::gather(
handle_t const& handle,
raft::device_span<int32_t const> vertices,
cugraph::mtmg::graph_view_t<int32_t, int32_t, true, false> const& graph_view,
std::vector<int32_t> const& vertex_partition_range_lasts,
vertex_partition_view_t<int32_t, false> vertex_partition_view,
std::optional<cugraph::mtmg::renumber_map_view_t<int32_t>>& renumber_map_view);

template rmm::device_uvector<float> vertex_result_view_t<float>::gather(
handle_t const& handle,
raft::device_span<int64_t const> vertices,
std::vector<int64_t> const& vertex_partition_range_lasts,
vertex_partition_view_t<int64_t, false> vertex_partition_view,
std::optional<cugraph::mtmg::renumber_map_view_t<int64_t>>& renumber_map_view);

template rmm::device_uvector<float> vertex_result_view_t<float>::gather(
handle_t const& handle,
raft::device_span<int32_t const> vertices,
cugraph::mtmg::graph_view_t<int32_t, int64_t, true, false> const& graph_view,
std::vector<int32_t> const& vertex_partition_range_lasts,
vertex_partition_view_t<int32_t, true> vertex_partition_view,
std::optional<cugraph::mtmg::renumber_map_view_t<int32_t>>& renumber_map_view);

template rmm::device_uvector<float> vertex_result_view_t<float>::gather(
handle_t const& handle,
raft::device_span<int64_t const> vertices,
cugraph::mtmg::graph_view_t<int64_t, int64_t, true, false> const& graph_view,
std::vector<int64_t> const& vertex_partition_range_lasts,
vertex_partition_view_t<int64_t, true> vertex_partition_view,
std::optional<cugraph::mtmg::renumber_map_view_t<int64_t>>& renumber_map_view);

template rmm::device_uvector<float> vertex_result_view_t<float>::gather(
template rmm::device_uvector<double> vertex_result_view_t<double>::gather(
handle_t const& handle,
raft::device_span<int32_t const> vertices,
cugraph::mtmg::graph_view_t<int32_t, int32_t, true, true> const& graph_view,
std::vector<int32_t> const& vertex_partition_range_lasts,
vertex_partition_view_t<int32_t, false> vertex_partition_view,
std::optional<cugraph::mtmg::renumber_map_view_t<int32_t>>& renumber_map_view);

template rmm::device_uvector<float> vertex_result_view_t<float>::gather(
template rmm::device_uvector<double> vertex_result_view_t<double>::gather(
handle_t const& handle,
raft::device_span<int64_t const> vertices,
std::vector<int64_t> const& vertex_partition_range_lasts,
vertex_partition_view_t<int64_t, false> vertex_partition_view,
std::optional<cugraph::mtmg::renumber_map_view_t<int64_t>>& renumber_map_view);

template rmm::device_uvector<double> vertex_result_view_t<double>::gather(
handle_t const& handle,
raft::device_span<int32_t const> vertices,
cugraph::mtmg::graph_view_t<int32_t, int64_t, true, true> const& graph_view,
std::vector<int32_t> const& vertex_partition_range_lasts,
vertex_partition_view_t<int32_t, true> vertex_partition_view,
std::optional<cugraph::mtmg::renumber_map_view_t<int32_t>>& renumber_map_view);

template rmm::device_uvector<float> vertex_result_view_t<float>::gather(
template rmm::device_uvector<double> vertex_result_view_t<double>::gather(
handle_t const& handle,
raft::device_span<int64_t const> vertices,
std::vector<int64_t> const& vertex_partition_range_lasts,
vertex_partition_view_t<int64_t, true> vertex_partition_view,
std::optional<cugraph::mtmg::renumber_map_view_t<int64_t>>& renumber_map_view);

template rmm::device_uvector<int32_t> vertex_result_view_t<int32_t>::gather(
handle_t const& handle,
raft::device_span<int32_t const> vertices,
std::vector<int32_t> const& vertex_partition_range_lasts,
vertex_partition_view_t<int32_t, false> vertex_partition_view,
std::optional<cugraph::mtmg::renumber_map_view_t<int32_t>>& renumber_map_view);

template rmm::device_uvector<int32_t> vertex_result_view_t<int32_t>::gather(
handle_t const& handle,
raft::device_span<int32_t const> vertices,
std::vector<int32_t> const& vertex_partition_range_lasts,
vertex_partition_view_t<int32_t, true> vertex_partition_view,
std::optional<cugraph::mtmg::renumber_map_view_t<int32_t>>& renumber_map_view);

template rmm::device_uvector<int64_t> vertex_result_view_t<int64_t>::gather(
handle_t const& handle,
raft::device_span<int64_t const> vertices,
std::vector<int64_t> const& vertex_partition_range_lasts,
vertex_partition_view_t<int64_t, false> vertex_partition_view,
std::optional<cugraph::mtmg::renumber_map_view_t<int64_t>>& renumber_map_view);

template rmm::device_uvector<int64_t> vertex_result_view_t<int64_t>::gather(
handle_t const& handle,
raft::device_span<int64_t const> vertices,
cugraph::mtmg::graph_view_t<int64_t, int64_t, true, true> const& graph_view,
std::vector<int64_t> const& vertex_partition_range_lasts,
vertex_partition_view_t<int64_t, true> vertex_partition_view,
std::optional<cugraph::mtmg::renumber_map_view_t<int64_t>>& renumber_map_view);

} // namespace mtmg
Expand Down
Loading

0 comments on commit 3153eed

Please sign in to comment.