Compound Topi Ops / Relay Subgraphs

Is there a preferred way to implement complex operators, e.g. a matrix decomposition operator?

These ops don’t seem suited to implementation through te like topi operators, mainly because they could benefit from reusing predefined compute declarations & schedules for sub-ops e.g. matmuls, etc.

One alternative would be to break a matrix decomp op down into component ops, expose them to relay, and write the decomp in the higher level IR. Is there a way to then encapsulate the decomp into a subgraph that can be easily reused in relay? The component operators are most likely quite useless to users outside of the context of the larger algorithm.