动静子图拆分场景性能优化

功能简介

动态图模式下,图中存在部分算子能够聚合成静态子图,如N个算子聚合成一个静态子图后只需要一次下发。静态子图中的算子数量对性能影响在如下特点:

综上特点,静态子图中算子数量并非越多越好,而是下发与执行的耗时相互掩盖才能达到最好的执行性能。因此针对不同的网络,TorchAir提供了动态图模式中允许设置静态子图算子个数的功能,帮助用户在动态图场景下进行算子性能调优。

使用方法。

设置config时使用下列开关进行配置,取值为整型,支持的取值范围为[-1, int64的最大值](不含0和1),若不设置则使用GE的默认值。

import torch_npu
import torchair as tng
config = tng.CompilerConfig()

# 动态图中设置静态子图算子个数的配置
config.experimental_config.static_model_ops_lower_limit= 4
npu_backend = tng.get_npu_backend(compiler_config=config)
...
model = Model()
model = torch.compile(model, backend=npu_backend, dynamic=True)

参数取值说明: