IR level or Hierarchical relationship

Hi all,

I’m pretty confused about the relationship between the Halide IR, TIR, Relay IR and NNVM. What’s the difference between them? At present, which kind of IR is used in the computation Graph of the tvm? And which kind of IR is used when lowering? Maybe both of them are using Relay IR?


please see

Basically Relay => TE => TIR. NNVM is deprecated, and HalideIR is no longer used.

Thanks for your reply!

Thanks! It seems the TVM has two level IR, Relay IR(higher pass, replacing nnvm) and TIR(lower pass, replacing Hailde IR). Is that right? Thanks again!

Relay is used to do “graph” (or full program level optimization) and TIR is used to do imperative loop optimization for (mostly) dense linear algebra kernels.

Well-received with many thanks!