dgl icon indicating copy to clipboard operation
dgl copied to clipboard

[Feature][Request] Support HeteroGraph for RelGraphConv module

Open chang-l opened this issue 3 years ago • 0 comments

🚀 Feature

When it comes to using RelGraphConv module, it seems we always converted to a homogeneous graph for all current examples; while for hetero-graph RGCN, we used another more general module (HeteroGraphConv).

For small problems, converting to homo. graph wouldn't add too much overhead of using RelGraphConv; however, for building larger Hetero-RGCN modules with many relation types, can we also support RelGraphConv-like implementation, meaning, issuing all relations in a batched fashion or a single segment_MM operation, instead of iterating over every relation type (HeteroGraphConv)?

Motivation

With the sacrifice of generality of HeteroGraphConv, this, however, can reduce user's effort of implementing RGCN with hetero-graph, and improve GPU utilization when every single relation is not so intensive.

Alternatives

For hetero-RGCN, current alternatives are: (1) to_homogeneous + RelGraphConv, which performs well but only for homogeneous graph; and (2) HeteroGraphConv, which is very flexible and customizable, but may be less convenient and efficient.

Pitch

A RelGraphConv module that can support hetero-graph with single conv but many relation types, for better performance.

chang-l avatar Sep 26 '22 23:09 chang-l