动态图模式下,图中存在部分算子能够聚合成静态子图,如N个算子聚合成一个静态子图后只需要一次下发。静态子图中的算子数量对性能影响在如下特点:
综上特点,静态子图中算子数量并非越多越好,而是下发与执行的耗时相互抵消才能达到最好的执行性能。因此针对不同的网络,TorchAir提供了动态图模式中允许设置静态子图算子个数的功能,帮助用户在动态图场景下进行算子性能调优。
该功能通过torchair.get_npu_backend中compiler_config配置,示例如下,参数介绍参见表1。
1 2 3 4 5 6 7 | 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) opt_model = torch.compile(model, backend=npu_backend) |