AI 编译器学习笔记之十六 -- TVM
1、使用tvm::Dump调试打印,比如 tvm::Dump(sch->stages)
使用std::cout<<init_state.ToStr();将state友好的显示出来
2、每个 te.Stage
在转换为 TIR 时会生成一个对应的 tir.Block(一一对应)
te.Stage
是 TVM 的 Tensor Expression 层(高层次算子描述)中的调度单元,用于表示计算图中的某个操作及其优化策略(如循环展开、并行化)。
tir.Block
是 TVM 的 TensorIR 层(低层级中间表示)中的基本调度单元,直接对应硬件执行逻辑(如循环嵌套、内存访问)
3、 operetion对->运算符重载了,会返回opearionNode的指针
因此没有成员变量的opearion类的op可以直接访问op->name,因为重载后 op->name实际上指向了OperationNode.name,而OperationNode是具有name成员变量的, 详见 include/tvm/te/operation.h
4、tik算子也会经过ascend_tvm::LowerSchedule调度(driver_api.cc),在ansor调度之后