ai-infra-interview-305

第 44 题:operator decomposingoperator fusion的边界在哪里?

题目

operator decomposingoperator fusion的边界在哪里?


完整讲解

一、Decomposing 与 fusion 在做什么?

算子分解(decomposing):把 大/复杂 op 拆成 多个小 op 或更基础的 op,以便:后端有实现、便于做更多 图级优化(如和相邻 op 再融合)、或 简化语义(如把自定义 op 用标准 op 表示)。算子融合(fusion):把 多个小 op 合并成 一个或少个 kernel,减少 launch、中间读写与调度开销。二者方向 相反:一个「拆」、一个「合」。

二、边界在哪里?

三、在 pipeline 中的顺序

常见顺序:前端图legalize(复杂/不支持的 op 做 decompose)→ 融合 pass(pattern 匹配,多 op 合一)→ lowering。有时 多轮:融合后再 legalize(新 op 可能需再拆),再融合。边界由 pass 顺序与每条规则的条件 共同决定。


面试要点


记忆要点

  1. 分解 = 拆(为后端或更好融合);融合 = 合(减 launch 与中间读写);方向相反。
  2. 先 decompose 当后端无实现或拆开能更好融合;不拆当有现成融合实现或拆了融不回来。
  3. Pipeline 常为 legalize(含 decompose)→ fusion;可多轮,边界由规则与顺序定。
返回模块 返回总览