[quote="merrymercy, post:37, topic:7872"] I mean the original TE is a declarative language so it can know all transformation before it starts to generate low-level AST. But the new schedule primitives are done imperatively. In the original TE, we can share some analysis results (e.g. dependency analysis), so it is expected to be faster. [/quote]
@merrymercy Good question! Here's an example of TIR's schedule. ```python s = tir.create_schedule(original_func) update = s.get_block("C") i, j, k = s.get_axes(update) i_o, i_i = s.split(i, bn) j_o, j_i = s.split(j, bn) k_o, k_i = s.split(k, 4) s.reorder(i_o, j_o, k_o, k_i, i_i, j_i) ``` TIR's schedule is not totally stateless. Scope info, dependency graph info is actively maintained during the scheduling process in class Schedule. We don't calculate them each time we apply a new primitive. After lowering to TIR without blocks, we don't maintain these info any more since it is not schedulable. All in all, it is good to run the benchmark to compare them in practice. I hope I understand your question correctly. :smile: --- [Visit Topic](https://discuss.tvm.apache.org/t/rfc-tensorir-a-schedulable-ir-for-tvm/7872/38) to respond. You are receiving this because you enabled mailing list mode. To unsubscribe from these emails, [click here](https://discuss.tvm.apache.org/email/unsubscribe/010365ba77175ff89f5b27d2ef08cfa25d6925e8d1de22308415b0f0a328715e).