昇腾社区首页
中文
注册

Tiling调度优化功能

功能简介

Tiling过程描述了昇腾AI处理器上算子的输入/输出数据切分、分块计算、多核并行等策略,以满足片上存储限制和计算pipeline的需求,从而发挥硬件的极致性能。

由于Tiling计算一般完成标量计算,AI Core并不擅长,故一般在Host侧CPU执行,执行完成后数据再拷贝到Device侧。

但在静态图场景下,满足如下条件时,建议开启Tiling调度优化,即将Tiling计算下沉到Device侧执行,以减少Host-Device交互开销,提升图执行效率。
  • 模型为静态shape。
  • 模型中的算子支持Tiling下沉,比如FusedInferAttentionScore、IncreFlashAttention等融合算子。
  • 支持Tiling下沉的算子值有依赖,需要满足前一个算子的值有device的执行结果;如果依赖的值是Const,则不需要下沉执行Tiling,编译时会完成Tiling。

使用方法

该功能通过torchair.get_npu_backend中compiler_config配置,示例如下,仅供参考不支持直接拷贝运行,参数介绍参见表1

1
2
3
4
5
6
7
import torch_npu
import torchair 
config = torchair.CompilerConfig()
# Tiling调度优化配置
config.experimental_config.tiling_schedule_optimize = True
npu_backend = torchair.get_npu_backend(compiler_config=config)
opt_model = torch.compile(model, backend=npu_backend)
表1 参数说明

参数名

参数说明

tiling_schedule_optimize

是否开启Tiling计算调度优化。

  • False(缺省值):不开启。
  • True:开启。

使用示例

本文档仅提供Tiling下沉开关配置介绍,端到端的算子Tiling下沉过程请单击Gitee进入Ascend samples仓,获取图模式下自定义算子AddCustomTilingSink的下沉样例代码,请仔细阅读README.md。