Open yzh119 opened 4 years ago
I mentioned this feature in my RFC #1120 here. I feel at the moment it is too early to work on this unless you have some quick and efficient solutions in mind. I will re-label it as help wanted and we could revisit this once we have more concrete ideas.
BTW, it might worth integrating cugraph into DGL.
I agree. Traditional graph algorithms are also useful. Providing such interfaces could attract more users.
🚀 Feature
GPU traversal (dfs/bfs/topological/...)
Motivation
Currently we only implement single thread traversal on CPU, it's not efficient and the frontiers cannot be generated on-the-fly with message passing.
Pitch
This feature is important for users who are dealing with graphs with a large number of nodes(edges), e.g. @nforest is working on program analysis where dgl traversal becomes their bottleneck.
There has been many literatures working on Graph Traversal on GPU, to name a few:
we can borrow the ideas from these papers and make a traversal on GPU that could generate frontiers on-the-fly with the execution of message function and reduce function. As the design of our built-in function is based on (a minimized) gunrock, I suppose it would not be too hard to implement a gunrock-like traversal algorithm.