[RFC] Organized Design and Architecture Docs

This is an RFC to improve the TVM’s developer facing docs. Right now, we have a collection of un-organized docs about various perspectives of the system. as in https://tvm.apache.org/docs/dev/

The current un-organized collection of docs can be improved in the following perspectives:

  • It is hard for a developer to get a global context about the overall system architecture
  • It would be useful to get the background(say how runtime relates to other modules) besides talking about the specific component X

This RFC proposes a more organized form of design and architecture docs as follows:

  • S0: Compilation Flow overview: provide a dynamic overview about how a model can be compiled and related modules
  • S1: Logical components: list logical components(e.g. relay, tir), discuss their relations
    • Put specific docs about the component under the corresponding component section
  • S2: How Tos: quick pointers about how to achieve certain development goal
    • e.g. how to add my operator to relay

The PR below takes a stab at the direction.

Besides the overall organization, we should also think about how can we add more context to each of the specific docs to tie them back to the global architecture. For example:

  • P0: it might be useful to have a more expanded guide in the topics of relay/tir and auto_scheduler, add them to the specific component section
  • P1: We could also add a background context section in the beginning of each specific guide, to let the reader understands how does the particular guide fits into the global architecture.

It would be great to get thoughts about the overall organization, specifically wrt to S0, S1, S2 and choices in P0 and P1