ai-infra-interview-305

第 31 题:TVM的Ansor和MetaSchedule的区别?如何搜索最优schedule?

题目

TVM的Ansor和MetaSchedule的区别?如何搜索最优schedule?


完整讲解

一、Ansor 与 MetaSchedule 的定位

Ansor(TVM 的 auto-scheduler):通过 层次化搜索空间(从 compute 到 threadblock 到 warp 到 tensor core)、随机采样 + 进化/爬山 生成 schedule,用 cost model(ML 或基于特征)预测性能并选优,再 实测 得到最优或近优 schedule。MetaSchedule 是 TVM 后续的 统一自动调度框架:把「搜索空间、采样、cost model、实测」抽象成模块,支持 多后端可扩展的 schedule 规则更丰富的搜索策略(如遗传、贝叶斯、ML-based),并集成到 TVM 主分支,逐步替代 Ansor 的用法。

二、主要区别

三、如何搜索最优 schedule?

通用流程:定义计算(TE 或 TensorIR)→ 定义/选择搜索空间(哪些 loop 可 tile、split、vectorize、并行等)→ 采样(随机或基于策略)→ cost model 打分直接实测选最优。Ansor/MetaSchedule 都提供「自动建搜索空间 + 自动搜索」;若要手控,可写 schedule 模板、只对少量参数(如 tile 大小)做 auto-tune。


面试要点


记忆要点

  1. Ansor = 层次化搜索 + cost model + 实测;MetaSchedule = 可插拔的调度框架,替代/扩展 Ansor。
  2. MetaSchedule 更模块化、多后端,与 TensorIR 集成;搜索流程:空间 → 采样 → 评估 → 选优。
  3. 最优 schedule:自动建空间 + 搜索,或手写模板 + 对关键参数 auto-tune。
返回模块 返回总览