| feat: TTIR Graph Analysis Framework
Co-authored-by: Jin Jing<jinjing21@huawei.com>
# message auto-generated for no-merge-commit merge:
!1498 merge main into main
feat: TTIR Graph Analysis Framework
Created-by: jjin_750629
Commit-by: JinJing;Jin Jing
Merged-by: huchengbei
Description: feat: TTIR Graph Analysis Framework
在TA中增加了针对TTIR的图分析框架,主要是构建控制流图(Control Flow Graph)和数据流图(Data Flow Graph),并针对Tensor和Global Memory补充了Memory SSA的数据流,与TTIR中原有的SSA数据流合并为一套数据流引擎。
控制流图以基本块(BasicBlock)为节点、控制流转移为有向边,描述程序的执行顺序。在 MLIR 体系中,每个 FuncOp / tt.func 内部由若干 BasicBlock 构成,BasicBlock 内的操作顺序执行,BasicBlock 末尾为终结符操作(terminator op)决定后继跳转目标。在控制流图上提供深度优先遍历与广度优先遍历(DFS & BFS)。
过程间控制流图(ICFG)在单函数 CFG 基础上,引入跨 FuncOp 的调用边与返回边,构成全程序(全模块)的统一控制流视图。在 Triton 中,一个 module 往往包含多个 tt.func(device kernel + helper function)
别名图描述程序中每个指针/内存引用可能关联的抽象内存对象集合。在 Triton 中,这对应 tt.ptr 可能指向的设备内存块对应的Tensor对象
数据流图提供Value的definion和use关系的快速查询,综合了MemorySSA和SSA两种形式的数据流
See merge request: Ascend/triton-ascend!1498 | 1 个月前 |