Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[RELEASE] cugraph v24.02 #4142

Merged
merged 73 commits into from
Feb 13, 2024
Merged
Changes from 1 commit
Commits
Show all changes
73 commits
Select commit Hold shift + click to select a range
2f44a9c
v24.02 Updates [skip ci]
raydouglass Nov 14, 2023
264fc79
Merge pull request #3997 from rapidsai/branch-23.12
GPUtester Nov 14, 2023
ce6a801
Merge branch 'branch-23.12' into branch-24.02-merge-branch-23.12
vyasr Nov 18, 2023
8e213ec
Merge pull request #4012 from vyasr/branch-24.02-merge-branch-23.12
AyodeAwe Nov 20, 2023
0dbdc9b
Merge pull request #3999 from rapidsai/branch-23.12
AyodeAwe Nov 20, 2023
64fd4c7
Merge pull request #4016 from rapidsai/branch-23.12
GPUtester Nov 20, 2023
942d5ee
Merge pull request #4017 from rapidsai/branch-23.12
GPUtester Nov 21, 2023
b2731e2
Merge branch-23.12 into branch-24.02
rlratzel Nov 26, 2023
0a29752
Updates version for 24.02
rlratzel Nov 27, 2023
5047ffd
Merge remote-tracking branch 'upstream/branch-23.12' into branch-24.0…
rlratzel Nov 27, 2023
5d4bcce
Merge pull request #4020 from rlratzel/branch-24.02-merge-23.12
AyodeAwe Nov 27, 2023
96c39cc
Merge pull request #4023 from rapidsai/branch-23.12
GPUtester Nov 28, 2023
6041ab9
Removes unsupported `setup.py` calls, cleans up text (#4024)
rlratzel Nov 29, 2023
5eaae7d
Update count_if_e, transform_reduce_e, and transform_e to support edg…
seunghwak Nov 30, 2023
c6aa981
Mtmg updates for rmm (#4031)
ChuckHastings Dec 1, 2023
90fec71
Fix % 0 bug in MG_SELECT_RANDOM_VERTICES test (#4034)
seunghwak Dec 2, 2023
20145b4
Merge pull request #4039 from rapidsai/branch-23.12
GPUtester Dec 4, 2023
32eaa5e
Clean up self-loop and multi-edge removal logic (#4032)
ChuckHastings Dec 5, 2023
84999be
Merge pull request #4049 from rapidsai/branch-23.12
GPUtester Dec 6, 2023
783e4dc
Prevent automatic labeler from adding `Label Checker` labels (#4048)
ajschmidt8 Dec 6, 2023
f80480d
Add support for Louvain to MTMG (#4033)
ChuckHastings Dec 6, 2023
a5718c6
Add a barrier before cugraph Graph creation (#4046)
VibhuJawa Dec 6, 2023
65df1a2
Fix HITS convergence error. (#4043)
seunghwak Dec 6, 2023
c709fc9
Remove CUGRAPH_BUILD_WHEELS and standardize Python builds (#4041)
vyasr Dec 6, 2023
1df6217
Update dependencies.yaml to new pip index (#4045)
vyasr Dec 7, 2023
18ab76b
Update for CCCL 2.x (#3862)
seunghwak Dec 8, 2023
1655003
Add `HeteroGATConv` to `cugraph-pyg` (#3914)
tingyu66 Dec 11, 2023
c637b33
nx-cugraph: update usage of `nodes_or_number` for nx compat (#4028)
eriknw Dec 12, 2023
7fe7bea
Replace graph_view.hpp::number_of_edges with compute_number_of_edges …
seunghwak Dec 12, 2023
23e70a6
Test select_random_vertices for all possible values of flags (#4042)
naimnv Dec 12, 2023
05c78bb
MG C-API test failure fixes (#4047)
seunghwak Dec 12, 2023
5890d80
Remove checks for Pascal, no longer supported (#4044)
ChuckHastings Dec 13, 2023
d7c88d1
Switch to scikit-build-core (#4053)
vyasr Dec 14, 2023
34054b1
Update to CCCL 2.2.0. (#4052)
bdice Dec 20, 2023
8d5bba3
nx-cugraph: add `ancestors` and `descendants` (#4029)
eriknw Dec 21, 2023
9d893ec
[BUG]Fix non-type template parameter to cugraph::relabel (#4064)
naimnv Jan 4, 2024
a59bd76
Remove Experimental Wrappers from GNN Code (#4070)
alexbarghi-nv Jan 5, 2024
c7b720d
[FEA]: Add DASK edgelist and graph support to the Dataset API (#4035)
huiyuxie Jan 9, 2024
cd5fc6f
build wheels for `cugraph-dgl` and `cugraph-pyg` (#4075)
tingyu66 Jan 9, 2024
5e8e9b5
Fix MG weighted similarity test failure (#4054)
seunghwak Jan 10, 2024
ae25ea1
Adds `nx-cugraph` benchmarks for 23.12 algos (SSSP, pagerank, hits, k…
rlratzel Jan 10, 2024
35ae8ef
Correct `cugraph-pyg` package name used in wheels and fix test script…
tingyu66 Jan 10, 2024
b22dd99
refactor CUDA versions in dependencies.yaml (#4084)
jameslamb Jan 11, 2024
88c3884
nx-cugraph: indicate which plc algorithms are used and version_added …
eriknw Jan 11, 2024
c09db10
Sampling Performance Testing (#3584)
alexbarghi-nv Jan 12, 2024
24d02a5
Fix OOB error, BFS C API should validate that the source vertex is a …
ChuckHastings Jan 12, 2024
5d4ba38
MNMG ECG (#4030)
naimnv Jan 12, 2024
aa66a32
Remove usages of rapids-env-update (#4090)
KyleFromNVIDIA Jan 12, 2024
4748ca1
nx-cugraph: PLC now handles isolated nodes; clean up our workarounds …
eriknw Jan 16, 2024
8672534
nx-cugraph: add weakly connected components (#4071)
eriknw Jan 17, 2024
eacdf58
Provide explicit pool sizes and avoid RMM detail APIs (#4086)
harrism Jan 17, 2024
c5d2a9a
`nx-cugraph`: add `to_undirected` method; add reciprocity algorithms …
eriknw Jan 18, 2024
52ab54f
nx-cugraph: add triangles and clustering algorithms (#4093)
eriknw Jan 19, 2024
ec65907
nx-cugraph: add `core_number` (undirected graphs only) (#4100)
eriknw Jan 19, 2024
77d833a
Fix Jaccard hang (#4080)
jnke2016 Jan 20, 2024
f20219e
nx-cugraph: add `is_tree`, etc. (#4097)
eriknw Jan 22, 2024
6774abc
Match weight-sharing option of GATConv in DGL (#4074)
tingyu66 Jan 23, 2024
82552ab
nx-cugraph: rename `plc=` to `_plc=` (#4106)
eriknw Jan 24, 2024
3526af4
Implement has_edge() & compute_multiplicity() (#4096)
seunghwak Jan 25, 2024
9a261ff
nx-cugraph: add `complement` and `reverse` (#4103)
eriknw Jan 25, 2024
ff76a38
Update per_v_transform_reduce_incoming|outgoing_e to support edge mas…
seunghwak Jan 25, 2024
3ff2abd
Create `cugraph-equivariant` package (#4036)
tingyu66 Jan 29, 2024
b1495ed
Adds option to rapids_cpm_find for raft to disable hnswlib feature, a…
rlratzel Feb 1, 2024
ba73b02
Adds benchmarks for additional nx-cugraph 24.02 algos (#4112)
rlratzel Feb 1, 2024
20f7dca
nx-cugraph: use coverage to ensure all algorithms were run (#4108)
eriknw Feb 1, 2024
3d52f17
Optimize the drop-duplicate functionality (#4095)
jnke2016 Feb 2, 2024
acb3add
Removes the `networkx_algorithm` decorator to all SCC functions to di…
rlratzel Feb 2, 2024
581d356
corrected links in C API and added groups for support functions (#4131)
acostadon Feb 2, 2024
f64df60
Updates nx-cugraph README.md with latest algos (#4135)
rlratzel Feb 2, 2024
51a72fb
Constraint pytorch-dependent wheel test to only run on amd64 (#4133)
tingyu66 Feb 2, 2024
5c6c4d3
Exclude tests from builds (#4147)
vyasr Feb 7, 2024
bb5bee2
Revert "Exclude tests from builds (#4147)" (#4157)
raydouglass Feb 8, 2024
eb096ac
Update Changelog [skip ci]
raydouglass Feb 12, 2024
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
Prev Previous commit
Next Next commit
nx-cugraph: add complement and reverse (#4103)
We apparently already had `G.reverse()`, which made that function extra easy :)

Authors:
  - Erik Welch (https://github.com/eriknw)

Approvers:
  - Rick Ratzel (https://github.com/rlratzel)

URL: #4103
eriknw authored Jan 25, 2024

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
commit 9a261ffd1f5e055e9c8b751c6009f99e9c39d0c1
2 changes: 2 additions & 0 deletions python/nx-cugraph/_nx_cugraph/__init__.py
Original file line number Diff line number Diff line change
@@ -43,6 +43,7 @@
"chvatal_graph",
"circular_ladder_graph",
"clustering",
"complement",
"complete_bipartite_graph",
"complete_graph",
"complete_multipartite_graph",
@@ -105,6 +106,7 @@
"path_graph",
"petersen_graph",
"reciprocity",
"reverse",
"sedgewick_maze_graph",
"single_source_shortest_path_length",
"single_target_shortest_path_length",
2 changes: 2 additions & 0 deletions python/nx-cugraph/nx_cugraph/algorithms/__init__.py
Original file line number Diff line number Diff line change
@@ -17,6 +17,7 @@
community,
components,
link_analysis,
operators,
shortest_paths,
traversal,
tree,
@@ -29,6 +30,7 @@
from .dag import *
from .isolate import *
from .link_analysis import *
from .operators import *
from .reciprocity import *
from .shortest_paths import *
from .traversal import *
13 changes: 13 additions & 0 deletions python/nx-cugraph/nx_cugraph/algorithms/operators/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Copyright (c) 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.
from .unary import *
55 changes: 55 additions & 0 deletions python/nx-cugraph/nx_cugraph/algorithms/operators/unary.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# Copyright (c) 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.
import cupy as cp
import networkx as nx
import numpy as np

import nx_cugraph as nxcg
from nx_cugraph.convert import _to_graph
from nx_cugraph.utils import index_dtype, networkx_algorithm

__all__ = ["complement", "reverse"]


@networkx_algorithm(version_added="24.02")
def complement(G):
G = _to_graph(G)
N = G._N
# Upcast to int64 so indices don't overflow.
edges_a_b = N * G.src_indices.astype(np.int64) + G.dst_indices
# Now compute flattened indices for all edges except self-loops
# Alt (slower):
# edges_full = np.arange(N * N)
# edges_full = edges_full[(edges_full % (N + 1)).astype(bool)]
edges_full = cp.arange(1, N * (N - 1) + 1) + cp.repeat(cp.arange(N - 1), N)
edges_comp = cp.setdiff1d(
edges_full,
edges_a_b,
assume_unique=not G.is_multigraph(),
)
src_indices, dst_indices = cp.divmod(edges_comp, N)
return G.__class__.from_coo(
N,
src_indices.astype(index_dtype),
dst_indices.astype(index_dtype),
key_to_id=G.key_to_id,
)


@networkx_algorithm(version_added="24.02")
def reverse(G, copy=True):
if not G.is_directed():
raise nx.NetworkXError("Cannot reverse an undirected graph.")
if isinstance(G, nx.Graph):
G = nxcg.from_networkx(G, preserve_all_attrs=True)
return G.reverse(copy=copy)