Update vertex_frontier_t to take unsorted (tagged-)vertex list with possible duplicates#2584
Merged
rapids-bot[bot] merged 7 commits intorapidsai:branch-22.10from Aug 24, 2022
Merged
Conversation
Contributor
Author
|
rerun tests |
jnke2016
approved these changes
Aug 22, 2022
ChuckHastings
approved these changes
Aug 23, 2022
Collaborator
|
rerun tests |
Codecov Report
@@ Coverage Diff @@
## branch-22.10 #2584 +/- ##
===============================================
Coverage ? 61.11%
===============================================
Files ? 106
Lines ? 5634
Branches ? 0
===============================================
Hits ? 3443
Misses ? 2191
Partials ? 0 Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. |
naimnv
approved these changes
Aug 24, 2022
Contributor
naimnv
left a comment
There was a problem hiding this comment.
Looks good to me. Had to look into the return type of thrust::unique, otherwise changes are easy to follow.
merged_vertices.resize(
thrust::distance(merged_pair_first,
thrust::unique(handle_ptr_->get_thrust_policy(),
merged_pair_first,
merged_pair_first + merged_vertices.size())),
Contributor
Author
You'll soon get very familiar with thrust (as you now already know, cuGraph is basically thrust + primitives). |
Collaborator
|
@gpucibot merge |
rapids-bot bot
pushed a commit
that referenced
this pull request
Aug 25, 2022
Partially address #2580. This PR is dependent on #2584. This PR defines API for two selection primitives, one for the biased sampling/random walk and another for uniform random sampling/random walk. @ChuckHastings For Node2Vec style random walk, We can compute intersections for each (previous vertex, current vertex pairs). We need to first create a non-detail space primitive calling detail::nbr_intersection (https://github.com/rapidsai/cugraph/blob/branch-22.10/cpp/src/prims/detail/nbr_intersection.cuh#L492) for given vertex pairs (this can be used for Jaccard and Overlap coefficients as well). In MG, each GPU should store neighbor intersection outputs for the relevant source/destination ranges (not sure whether should we create additional utility functions to handle this, or this may not be a recurring pattern, so just leave this task much more as a dark magic for advanced users who understand how the 2D partitioning actually works). May go for the latter till we see this pattern occurring in other places. Once we have neighbor intersection outputs and previous vertex IDs for the relevant (previous vertex ID, current vertex ID) pairs, we can create `frontier` having tagged-current vertex ID values (tag is an index to access previous vertex ID and neighbor intersection outputs for the perv vertex, current vertex pair). Then, `e_bias_op` can check whether the outgoing neighbor belongs to the intersection or coincides with the previous vertex to properly set bias values. Authors: - Seunghwa Kang (https://github.com/seunghwak) Approvers: - Chuck Hastings (https://github.com/ChuckHastings) - Joseph Nke (https://github.com/jnke2016) URL: #2586
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.
Partially address #2580
Update vertex_frontier_t to take unsorted input (tagged-)vertex list with possible duplicates.
This will be used to define a selection primitive. The primitive needs to take a (tagged-)vertex list to support Node2Vec style algorithms (tagged with the predecessor vertex ID or some derived property from the current vertex predecessor vertex pairs).
Breaking as primitives API has been changed (
vertex_frontier_tandtransform_reduce_v_frontier_outgoing_e_by_dst).