Repository navigation
Store vertex properties in vertex_property_t in preparation for vertex insertion/deletion support - #5707
Open
seunghwak wants to merge 64 commits into
Open
Store vertex properties in vertex_property_t in preparation for vertex insertion/deletion support#5707seunghwak wants to merge 64 commits into
seunghwak wants to merge 64 commits into
Conversation
…ertex_property_t::mutable_view()
…y taking a discard iterator
…ertex_property
seunghwak
marked this pull request as ready for review
October 22, 2026 19:44
Contributor
Author
|
/ok to test 5c93a22 |
Contributor
Author
|
/ok to test 7e06c04 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add
vertex_property_tand migrate C++ APIs to itWe currently store vertex properties in an
rmm::device_uvectorobject, assuming that active vertex IDs are consecutive integers starting from 0. Once we support vertex insertions and deletions, vertex IDs may no longer satisfy this assumption. This PR adds avertex_property_tabstraction, similar toedge_property_tandedge_src_property_t/edge_dst_property_t. It hides that complexity and lets us change internal data structures later without repeatedly breaking the public API. At first, including the initial dynamic graph implementation,vertex_property_tis just a wrapper aroundrmm::device_uvector. This is step 2 of the plan incpp/docs/DYNAMIC_GRAPH_DESIGN.md.This PR also fixes several inconsistencies in the cuGraph C++ algorithms API, since the API is changing anyway. For example, some algorithms return their results while others take a pointer to write output into. Likewise, some iterative algorithms report the iteration count and whether they converged, while others don't.
Changes
vertex_property_t,vertex_property_view_t, andvertex_property_device_view_t(for device lambdas).transform_v,transform_if_v,fill_v,copy_v,sequence_v,scatter_v,scatter_if_v,gather_vandextract_transform_if_v; these new primitives are largely thrust wrappers but takes the inputs/outputs invertex_property_view_t.reduce_v,count_if_v,transform_reduce_v,update_edge_src_property/update_edge_dst_property,update_v_frontierand theper_v_transform_reduce_*family. Their iterator overloads were replaced, not deprecated.algorithms.hpp,graph_functions.hpp,sampling_functions.hpp):vertex_property_t/vertex_property_view_t, and the old overload is marked@deprecated.negative_sampling.ssspis renamed toshortest_paths.dendrogram_tnow stores its levels asvertex_property_t;Dendrogramremains as a deprecated alias.do_expensive_check(defaultfalse) is added to every non-deprecated, non-legacy function inalgorithms.hppandgraph_functions.hppthat lacked it.rng_statenow always comes right afterhandle.Compatibility notes
pagerank,eigenvector_centrality,symmetrize_graph,transpose_graphandtranspose_graph_storage, a call with explicit template arguments and a barestd::nulloptis now ambiguous. Passing a typed optional selects the deprecated overload.Dendrogram: its old raw-pointer member functions were replaced.strongly_connected_components(left alone for the pending SCC PR) and MTMG.