Skip to content

编译与图优化正文

这页只做图优化问题的判断框架:不重复 intro 的路线入口,也不写 walkthrough 的连续故事。

使用顺序

先判断图结构和 fusion 候选,再检查 lowering、schedule、layout 与 backend 约束,最后用 benchmark 验证成本模型。不要把“图能编译”或“节点变少”直接当成性能结论。

判断表

先分清问题在图结构、fusion、lowering、schedule、layout 还是 backend 成本模型,再判断 benchmark 差异是不是来自执行级约束。

现象优先判断先看哪条线常见动作
图没问题,但性能明显不对graph vs execution mismatch01先分清图级问题和执行级问题
看起来能 fusion,但收益不稳定fusion boundary mismatch02看依赖、layout、读写代价
lowering 以后结果变差lowering / schedule mismatch03看 legalize、schedule、kernel 组织
不同 backend 结果差很多backend cost mismatch04, 05看 layout、执行模型、成本模型
benchmark 结论站不住validation gap06回到 workload 和 backend 约束一起验证
检查项主要回答什么常见误判
图结构依赖和 fusion 候选是否成立图对就一定快
lowering图到 kernel 的转换是不是合理lowering 只是翻译
schedule执行顺序和 tile 组织是不是合适只要 legal 就够了
backend 成本模型不同后端为什么会给出不同最优解backend 只是实现细节
benchmark差异是不是在同一 workload 下成立只看单次结果,不看约束一致性

本节要点

这页的职责不是再讲一遍编译术语,而是把图优化里最常见的判断点压成一张表。路线入口留给 intro,连续故事留给 walkthrough

最小执行审计模板

记录 图结构 -> fusion 候选 -> lowering/schedule -> backend 约束 -> workload 指标 -> 决策。至少同时保留端到端延迟、吞吐、显存、编译成本和运行环境。

Released under the MIT License.