重捕获次数限制功能

功能简介

npugraph_ex后端(aclgraph)模式下,由于aclgraph本身不支持动态shape,因此执行过程中可能会因为输入shape的变化而多次重新捕获aclgraph。

重新捕获的过程会带来额外的性能开销和Device侧资源消耗,尤其是频繁的重捕获,可能导致资源不足。

本功能提供了一个配置项,用于控制单个FX图或子图中不同shape的重捕获次数阈值,针对每个FX图或子图单独生效。当某个FX图或子图重捕获超过设置的阈值时,该图或子图后续的所有执行将全部回退到Eager模式。

使用约束

本功能支持的产品型号参见使用说明

使用方法

import torch
import torch_npu

opt_model = torch.compile(model, backend="npugraph_ex", options={"capture_limit": 64}, fullgraph=True, dynamic=False)

该功能配置示例如下,仅供参考不支持直接拷贝运行。

表 1 参数说明

参数名 说明
capture_limit int类型,最小值1,最大值为9223372036854775807。
64(默认值):默认允许的重捕获次数为64。
注意:当重捕获时,NPU设备上stream、event、memory等资源超限时,会因为资源不足退出流程,可能无法触发到最大值。