Skip to content

05. 成本模型与 Profiling

页面目标

本页回答两个问题:如何从 shape、dtype 和资源约束生成候选配置,以及如何用 profiling 判断瓶颈是否真的被改善。Autotune 是搜索过程,profiling 是证据过程,二者不能互相替代。

Autotune 与 Profiling:从候选配置到条件化结论

成本模型的输入

输入影响的决策需要保留的记录
shape / dtypetile、向量化和 Tensor Core 路径输入分布、对齐方式
数据复用shared memory、register 和 fusion读写次数、工作集
GPU 资源block、occupancy 和并发GPU 型号、编译目标
workload候选配置和最终结论batch、序列长度、重复次数

动态 Shape 需要单独记录。一个配置在固定 shape 上最优,不代表它适合其他 batch、序列长度或隐藏维度;autotune 还可能把编译时间、缓存命中和运行时间混在一起。

动态因素需要比较建议记录
Shape固定配置、shape bucket、按 shape 搜索shape 分布、bucket 规则
配置缓存首次编译与缓存命中后运行compile time、cache key
dtype不同输入 / 累加路径输入 dtype、累加 dtype
workload小 batch、长序列、混合请求各组独立结果,不只报平均值

Profiling 证据链

先提出瓶颈假设,再用相同 workload 采集 kernel 时间、访存、occupancy、编译成本和端到端指标。一次 trace 只能描述当前配置;要形成结论,需要 baseline、候选、重复运行和失败条件。

现象可能原因下一步检查
kernel 快,端到端不快launch、同步或其他阶段占主导trace 与调用占比
memory throughput 低布局、复用或 tile 不合适load/store、cache、stride
occupancy 下降register / shared memory 压力spill、block 资源
不同 shape 波动大配置泛化不足shape 分桶、配置缓存和 autotune

本页出口

你应能把一个 profiling 现象映射到可验证的优化动作,并说明为什么“某个 shape 上最快”不等于“所有 workload 上最优”。

Released under the MIT License.