[Feature][Request] Support HeteroGraph for RelGraphConv module
🚀 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.