Skip to content

Commit 5ca50fe

Browse files
committed
Merge remote-tracking branch 'upstream/branch-25.08' into bc_scaling_to_match_nx
2 parents 22e9248 + cfe2a7f commit 5ca50fe

37 files changed

+1169
-555
lines changed

CHANGELOG.md

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,68 @@
1+
# cugraph 25.06.00 (5 Jun 2025)
2+
3+
## 🚨 Breaking Changes
4+
5+
- Convert non-type template parameter store_transposed in edge_src|dst_property_t to a runtime parameter ([#5074](https://github.com/rapidsai/cugraph/pull/5074)) [@seunghwak](https://github.com/seunghwak)
6+
- Remove Remaining cuGraph-DGL Code ([#5061](https://github.com/rapidsai/cugraph/pull/5061)) [@alexbarghi-nv](https://github.com/alexbarghi-nv)
7+
- Simplify edge_property_t ([#5053](https://github.com/rapidsai/cugraph/pull/5053)) [@ChuckHastings](https://github.com/ChuckHastings)
8+
- Add support for random state to FA2 ([#5052](https://github.com/rapidsai/cugraph/pull/5052)) [@jnke2016](https://github.com/jnke2016)
9+
10+
## 🐛 Bug Fixes
11+
12+
- Adds `test_node2vec` to temporary non-xdist test list ([#5084](https://github.com/rapidsai/cugraph/pull/5084)) [@rlratzel](https://github.com/rlratzel)
13+
- Update method retrieving the edgelist ([#5082](https://github.com/rapidsai/cugraph/pull/5082)) [@jnke2016](https://github.com/jnke2016)
14+
- Pin cython to avoid version 3.1.0 because of bug (cython issue 6841) ([#5068](https://github.com/rapidsai/cugraph/pull/5068)) [@rlratzel](https://github.com/rlratzel)
15+
- Fix MSBFS Test Failure ([#5051](https://github.com/rapidsai/cugraph/pull/5051)) [@jnke2016](https://github.com/jnke2016)
16+
- Temporarily disable test so we can upgrade to CCCL 2.8.x ([#5047](https://github.com/rapidsai/cugraph/pull/5047)) [@ChuckHastings](https://github.com/ChuckHastings)
17+
- Added #include <cuda/std/cmath> for correct cuda::std::log reference ([#5039](https://github.com/rapidsai/cugraph/pull/5039)) [@SagaciousFish](https://github.com/SagaciousFish)
18+
- Fix ForceAtlas2 incorrect loop conditions ([#5030](https://github.com/rapidsai/cugraph/pull/5030)) [@MathisHammel](https://github.com/MathisHammel)
19+
- Fix sampling primitive build error. ([#5004](https://github.com/rapidsai/cugraph/pull/5004)) [@seunghwak](https://github.com/seunghwak)
20+
21+
## 🛠️ Improvements
22+
23+
- Test WCC with edge masking ([#5093](https://github.com/rapidsai/cugraph/pull/5093)) [@seunghwak](https://github.com/seunghwak)
24+
- use 'rapids-init-pip' in wheel CI, other CI changes ([#5089](https://github.com/rapidsai/cugraph/pull/5089)) [@jameslamb](https://github.com/jameslamb)
25+
- Removes unnecessary dependencies from cugraph-service ([#5087](https://github.com/rapidsai/cugraph/pull/5087)) [@rlratzel](https://github.com/rlratzel)
26+
- Utility functions to create an edge_src|dst_property view objects. ([#5078](https://github.com/rapidsai/cugraph/pull/5078)) [@seunghwak](https://github.com/seunghwak)
27+
- Test code for Graph 500 BFS ([#5077](https://github.com/rapidsai/cugraph/pull/5077)) [@seunghwak](https://github.com/seunghwak)
28+
- Remove pure=False from client.compute calls ([#5076](https://github.com/rapidsai/cugraph/pull/5076)) [@TomAugspurger](https://github.com/TomAugspurger)
29+
- Finish CUDA 12.9 migration and use branch-25.06 workflows ([#5075](https://github.com/rapidsai/cugraph/pull/5075)) [@bdice](https://github.com/bdice)
30+
- Convert non-type template parameter store_transposed in edge_src|dst_property_t to a runtime parameter ([#5074](https://github.com/rapidsai/cugraph/pull/5074)) [@seunghwak](https://github.com/seunghwak)
31+
- Update to clang 20 ([#5073](https://github.com/rapidsai/cugraph/pull/5073)) [@bdice](https://github.com/bdice)
32+
- Remove get_test_data before tests run. ([#5072](https://github.com/rapidsai/cugraph/pull/5072)) [@bdice](https://github.com/bdice)
33+
- Make thrust_tuple_cat device callable. ([#5070](https://github.com/rapidsai/cugraph/pull/5070)) [@seunghwak](https://github.com/seunghwak)
34+
- Quote head_rev in conda recipes ([#5069](https://github.com/rapidsai/cugraph/pull/5069)) [@bdice](https://github.com/bdice)
35+
- fix(rattler): add librmm to host to fix overlinking errors ([#5065](https://github.com/rapidsai/cugraph/pull/5065)) [@gforsyth](https://github.com/gforsyth)
36+
- CUDA 12.9 use updated compression flags ([#5064](https://github.com/rapidsai/cugraph/pull/5064)) [@robertmaynard](https://github.com/robertmaynard)
37+
- Remove Remaining cuGraph-DGL Code ([#5061](https://github.com/rapidsai/cugraph/pull/5061)) [@alexbarghi-nv](https://github.com/alexbarghi-nv)
38+
- Exclude librmm.so from auditwheel ([#5058](https://github.com/rapidsai/cugraph/pull/5058)) [@bdice](https://github.com/bdice)
39+
- Add support for Python 3.13 ([#5057](https://github.com/rapidsai/cugraph/pull/5057)) [@gforsyth](https://github.com/gforsyth)
40+
- Simplify edge_property_t ([#5053](https://github.com/rapidsai/cugraph/pull/5053)) [@ChuckHastings](https://github.com/ChuckHastings)
41+
- Add support for random state to FA2 ([#5052](https://github.com/rapidsai/cugraph/pull/5052)) [@jnke2016](https://github.com/jnke2016)
42+
- [BUGFIX] Fixed quoting in wheel paths in cugraph and pylibcugraph tests ([#5049](https://github.com/rapidsai/cugraph/pull/5049)) [@VenkateshJaya](https://github.com/VenkateshJaya)
43+
- Fix failing test with new cccl ([#5046](https://github.com/rapidsai/cugraph/pull/5046)) [@ChuckHastings](https://github.com/ChuckHastings)
44+
- add C implementation of MST ([#5044](https://github.com/rapidsai/cugraph/pull/5044)) [@jnke2016](https://github.com/jnke2016)
45+
- Download build artifacts from GitHub for CI ([#5043](https://github.com/rapidsai/cugraph/pull/5043)) [@VenkateshJaya](https://github.com/VenkateshJaya)
46+
- Avoid unnecessary libcugraph wheel builds ([#5037](https://github.com/rapidsai/cugraph/pull/5037)) [@VenkateshJaya](https://github.com/VenkateshJaya)
47+
- Use public pylibcudf APIs in graph_primtypes ([#5036](https://github.com/rapidsai/cugraph/pull/5036)) [@mroeschke](https://github.com/mroeschke)
48+
- refactor(rattler): enable strict channel priority for builds ([#5035](https://github.com/rapidsai/cugraph/pull/5035)) [@gforsyth](https://github.com/gforsyth)
49+
- Reduce peak memory usage ([#5031](https://github.com/rapidsai/cugraph/pull/5031)) [@seunghwak](https://github.com/seunghwak)
50+
- Avoid private cuDF Python APIs ([#5028](https://github.com/rapidsai/cugraph/pull/5028)) [@mroeschke](https://github.com/mroeschke)
51+
- Use pytest-xdist for parallel testing ([#5027](https://github.com/rapidsai/cugraph/pull/5027)) [@bdice](https://github.com/bdice)
52+
- Vendor RAPIDS.cmake ([#5024](https://github.com/rapidsai/cugraph/pull/5024)) [@bdice](https://github.com/bdice)
53+
- Add missing thrust headers & Pass dtype objects to cuDF as_column ([#5023](https://github.com/rapidsai/cugraph/pull/5023)) [@alliepiper](https://github.com/alliepiper)
54+
- Add ARM conda environments ([#5021](https://github.com/rapidsai/cugraph/pull/5021)) [@bdice](https://github.com/bdice)
55+
- Add missing shuffle function declarations in shuffle_funcstions.hpp ([#5018](https://github.com/rapidsai/cugraph/pull/5018)) [@seunghwak](https://github.com/seunghwak)
56+
- Do not pretend to default initialize a device lambda ([#5015](https://github.com/rapidsai/cugraph/pull/5015)) [@miscco](https://github.com/miscco)
57+
- Update C++ test binary file output directory from build/tests to build/gtests ([#5014](https://github.com/rapidsai/cugraph/pull/5014)) [@seunghwak](https://github.com/seunghwak)
58+
- Replace `Thrust` iterator facilities with `libcu++` ones ([#5013](https://github.com/rapidsai/cugraph/pull/5013)) [@miscco](https://github.com/miscco)
59+
- Branch 25.06 merge 25.04 ([#5007](https://github.com/rapidsai/cugraph/pull/5007)) [@rlratzel](https://github.com/rlratzel)
60+
- Fixes Failing Cugraph Uniform Neighbor Sample Benchmark ([#5001](https://github.com/rapidsai/cugraph/pull/5001)) [@nv-rliu](https://github.com/nv-rliu)
61+
- Port all conda recipes to `rattler-build` ([#4999](https://github.com/rapidsai/cugraph/pull/4999)) [@gforsyth](https://github.com/gforsyth)
62+
- Moving wheel builds to specified location and uploading build artifacts to Github ([#4993](https://github.com/rapidsai/cugraph/pull/4993)) [@VenkateshJaya](https://github.com/VenkateshJaya)
63+
- Refactor Python Neighborhood Sample ([#4988](https://github.com/rapidsai/cugraph/pull/4988)) [@jnke2016](https://github.com/jnke2016)
64+
- Add shellcheck to pre-commit and fix warnings ([#4954](https://github.com/rapidsai/cugraph/pull/4954)) [@gforsyth](https://github.com/gforsyth)
65+
166
# cugraph 25.04.00 (9 Apr 2025)
267

368
## 🚨 Breaking Changes

ci/run_cugraph_pytests.sh

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,5 @@ DASK_DISTRIBUTED__SCHEDULER__WORKER_TTL="${DASK_DISTRIBUTED__SCHEDULER__WORKER_T
1111
DASK_DISTRIBUTED__COMM__TIMEOUTS__CONNECT="${DASK_DISTRIBUTED__COMM__TIMEOUTS__CONNECT:-1000s}" \
1212
DASK_CUDA_WAIT_WORKERS_MIN_TIMEOUT="${DASK_CUDA_WAIT_WORKERS_MIN_TIMEOUT:-1000s}" \
1313
pytest --cache-clear --import-mode=append --benchmark-disable \
14-
-k "not test_property_graph_mg" \
1514
"$@" \
1615
tests

ci/test_python.sh

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -82,31 +82,43 @@ rapids-logger "pytest cugraph (not mg, with xdist)"
8282
--cov-report=xml:"${RAPIDS_COVERAGE_DIR}/cugraph-coverage.xml" \
8383
--cov-report=term
8484

85-
# Some tests fail with pytest-xdist enabled.
86-
# See https://github.com/rapidsai/cugraph/issues/5048
87-
rapids-logger "pytest cugraph (not mg, without xdist)"
85+
# The datasets tests may modify global states and interfere with tests running on other workers
86+
# these tests are typically only limited by network speed and run fairly quickly, so they can be
87+
# run separately
88+
rapids-logger "pytest cugraph (datasets APIs)"
8889
./ci/run_cugraph_pytests.sh \
8990
--verbose \
9091
--junitxml="${RAPIDS_TESTS_DIR}/junit-cugraph.xml" \
91-
--numprocesses=1 \
92-
--dist=worksteal \
93-
-m "not mg" \
94-
-k "not test_dataset and (test_bulk_sampler or test_create_undirected_graph_from_asymmetric_adj_list or test_uniform_neighbor_sample or test_node2vec)" \
92+
-k "test_dataset" \
9593
--cov-config=../../.coveragerc \
9694
--cov=cugraph \
9795
--cov-report=xml:"${RAPIDS_COVERAGE_DIR}/cugraph-coverage.xml" \
9896
--cov-report=term
9997

100-
rapids-logger "pytest cugraph (mg)"
98+
# excludes known failures that will always fail when run in combination
99+
rapids-logger "pytest cugraph (mg, with xdist)"
101100
./ci/run_cugraph_pytests.sh \
102101
--verbose \
103102
--junitxml="${RAPIDS_TESTS_DIR}/junit-cugraph.xml" \
103+
--numprocesses=8 \
104+
--dist=worksteal \
104105
-m "mg" \
106+
-k "not test_dataset and not test_property_graph_mg and not test_dist_sampler_mg and not test_uniform_neighbor_sample_mg" \
105107
--cov-config=../../.coveragerc \
106108
--cov=cugraph \
107109
--cov-report=xml:"${RAPIDS_COVERAGE_DIR}/cugraph-coverage.xml" \
108110
--cov-report=term
109111

112+
rapids-logger "pytest cugraph (mg dist_sampler and uns)"
113+
./ci/run_cugraph_pytests.sh \
114+
--verbose \
115+
--junitxml="${RAPIDS_TESTS_DIR}/junit-cugraph.xml" \
116+
-m "mg" \
117+
-k "test_dist_sampler_mg or test_uniform_neighbor_sample_mg" \
118+
--cov-config=../../.coveragerc \
119+
--cov=cugraph \
120+
--cov-report=xml:"${RAPIDS_COVERAGE_DIR}/cugraph-coverage.xml" \
121+
--cov-report=term
110122

111123
rapids-logger "pytest cugraph benchmarks (run as tests)"
112124
./ci/run_cugraph_benchmark_pytests.sh --verbose

cpp/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -555,6 +555,7 @@ add_library(cugraph_c
555555
src/c_api/renumber_arbitrary_edgelist.cu
556556
src/c_api/legacy_fa2.cpp
557557
src/c_api/legacy_mst.cpp
558+
src/c_api/extract_vertex_list.cpp
558559
)
559560
add_library(cugraph::cugraph_c ALIAS cugraph_c)
560561

cpp/include/cugraph/algorithms.hpp

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -436,7 +436,6 @@ enum class cugraph_cc_t {
436436
* @ingroup components_cpp
437437
* @brief Compute connected components.
438438
*
439-
* The weak version (for undirected graphs, only) was imported from cuML.
440439
* This implementation comes from [1] and solves component labeling problem in
441440
* parallel on CSR-indexes based upon the vertex degree and adjacency graph.
442441
*
@@ -1782,8 +1781,8 @@ enum class k_core_degree_type_t { IN = 0, OUT = 1, INOUT = 2 };
17821781
.* @ingroup core_cpp
17831782
* @brief Compute core numbers of individual vertices from K-Core decomposition.
17841783
*
1785-
* The input graph should not have self-loops nor multi-edges. Currently, only undirected graphs are
1786-
* supported.
1784+
* This algorithms does not support multi-graphs. Self-loops are excluded in computing core
1785+
nuumbers.
17871786
*
17881787
* @tparam vertex_t Type of vertex identifiers. Needs to be an integral type.
17891788
* @tparam edge_t Type of edge identifiers. Needs to be an integral type.
@@ -1814,7 +1813,9 @@ void core_number(raft::handle_t const& handle,
18141813
.* @ingroup core_cpp
18151814
* @brief Extract K-Core of a graph
18161815
*
1817-
* @throws cugraph::logic_error when an error occurs.
1816+
* This function internally calls core_number (if @p core_numbers.has_value() is false). core_number
1817+
does not support multi-graphs. Self-loops are excluded in computing core nuumbers. Note that the
1818+
extracted K-Core can still include self-loops.
18181819
*
18191820
* @tparam vertex_t Type of vertex identifiers. Needs to be an integral type.
18201821
* @tparam edge_t Type of edge identifiers. Needs to be an integral type.
@@ -1851,6 +1852,9 @@ k_core(raft::handle_t const& handle,
18511852
* Compute triangle counts for the entire set of vertices (if @p vertices is std::nullopt) or the
18521853
* given vertices (@p vertices.has_value() is true).
18531854
*
1855+
* This algorithms does not support multi-graphs. Self-loops are excluded in computing triangle
1856+
* counts.
1857+
*
18541858
* @tparam vertex_t Type of vertex identifiers. Needs to be an integral type.
18551859
* @tparam edge_t Type of edge identifiers. Needs to be an integral type.
18561860
* @tparam multi_gpu Flag indicating whether template instantiation should target single-GPU (false)
@@ -1876,6 +1880,9 @@ void triangle_count(raft::handle_t const& handle,
18761880
* @brief Compute edge triangle counts.
18771881
*
18781882
* Compute edge triangle counts for the entire set of edges.
1883+
*
1884+
* This algorithms does not support multi-graphs. Self-loops are excluded in computing edge triangle
1885+
counts (they will have a triangle count of 0).
18791886
*
18801887
* @tparam vertex_t Type of vertex identifiers. Needs to be an integral type.
18811888
* @tparam edge_t Type of edge identifiers. Needs to be an integral type.
@@ -1900,6 +1907,8 @@ edge_property_t<edge_t, edge_t> edge_triangle_count(
19001907
*
19011908
* Extract the K-Truss subgraph of a graph
19021909
*
1910+
* This algorithms does not support multi-graphs. Self-loops are excluded in computing K-Truss.
1911+
*
19031912
* @tparam vertex_t Type of vertex identifiers. Needs to be an integral type.
19041913
* @tparam edge_t Type of edge identifiers. Needs to be an integral type.
19051914
* @tparam multi_gpu Flag indicating whether template instantiation should target single-GPU (false)

0 commit comments

Comments
 (0)