动静子图拆分场景性能优化
功能简介
动态图模式下,图中存在部分算子能够聚合成静态子图,如N个算子聚合成一个静态子图后只需要一次下发。静态子图中的算子数量对性能影响在如下特点:
- 静态子图中算子数量越多,单次图下发、图执行耗时越长。
- 静态子图中算子数量越多,相较于静态子图中单个算子分别下发,节省的执行时间越多。
- 静态子图中算子数量越多,算子间融合的可能性越大,获得更高执行性能的可能性越大。
综上特点,静态子图中算子数量并非越多越好,而是下发与执行的耗时相互掩盖才能达到最好的执行性能。因此针对不同的网络,TorchAir提供了动态图模式中允许设置静态子图算子个数的功能,帮助用户在动态图场景下进行算子性能调优。
使用方法。
该功能通过torchair.get_npu_backend中compiler_config参数配置,配置示例如下,参数说明参见表1。
1 2 3 4 5 6 |
import torch_npu import torchair config = torchair.CompilerConfig() # 在动态图中设置静态子图算子个数 config.experimental_config.static_model_ops_lower_limit= 4 npu_backend = torchair.get_npu_backend(compiler_config=config) |
父主题: 更多功能