- It provides a unified style to express graph and kernel for user.
- It provides a unified IR to represent graph and kernel for developer.
- It breaks the boundary between graph and kernel.
- It provides more opportunities to do compile optimization.
new subtree with 9 nodes and after that a Renormalize pass is needed to simplified it back to a tensor. The new algorithm will
create the tensor while visiting in the pass, therefore only a single node is created and no Renormalize will be needed for this pass
(if other passes requires then Renormalize will still be called but no further infer is needed for the created tensor)
Signed-off-by: Hoai Linh Tran h00472437 <hoai.linh.tran@huawei.com>
Code review
Signed-off-by: Hoai Linh Tran h00472437 <hoai.linh.tran@huawei.com>
Add optimizer checking: For a group of passes in "optimizer", if flagged then it will check and collect the newly generated nodes without types (i.e. abstract() == nullptr).
Before calling Renormalize(), the optimizer will check if there is any node needed retyping. If not the Renormalize pass will not be called.
Add checking for non-null abstract but still needs renorm;
Add flags to Substitution to help watching Renormalize
Simpler pass result checker, change Bool to Enum type