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) |
父主题: max-autotune模式功能