快速上手
示例说明
TorchAir图模式相关的功能配置示例如下,此处代码仅供参考,请根据实际情况开启对应功能项。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | # 必须先导torch_npu再导torchair import torch import torch_npu import torchair # (可选)若涉及集合通信算子入图,可调用patch方法 from torchair import patch_for_hcom patch_for_hcom() # 定义模型Model class Model(torch.nn.Module): def __init__(self): super().__init__() def forward(self, x, y): return torch.add(x, y) # 实例化模型model model = Model() # 从TorchAir框架获取NPU提供的默认backend config = torchair.CompilerConfig() npu_backend = torchair.get_npu_backend(compiler_config=config) # 使用TorchAir的backend去调用compile接口编译模型 model = torch.compile(model, backend=npu_backend) # 使用编译后的model去执行 x = torch.randn(2, 2) y = torch.randn(2, 2) model(x, y) |
功能说明
通过TorchAir提供的get_npu_backend接口获取能够在昇腾NPU上运行的图编译后端npu_backend,并将其作为backend参数传入原生的torch.compile接口中,进行模型的图模式编译和运行。在提供的后端npu_backend中,通过compiler_config参数可以配置许多图模式相关的功能,具体参见表1。
成员名 |
功能说明 |
---|---|
debug |
配置debug调试类功能,配置形式为config.debug.xxx,包括如下功能: |
dump_config |
配置图模式下数据dump功能,配置形式为config.dump_config.xxx,具体参见图模式下数据dump功能。 |
export |
配置离线导图相关功能,配置形式为config.export.xxx,具体介绍参见dynamo导图功能。 |
inference_config |
配置推理场景相关功能,配置形式为config.inference_config.xxx,如动态shape图分档执行功能。 |
ge_config |
配置GE图相关功能,配置形式为config.ge_config.xxx,包括如下功能: |
fusion_config |
配置图融合相关功能,配置形式为config.fusion_config.xxx,具体参见算子融合规则配置功能。 |
experimental_config |
配置各种实验性质的功能,配置形式为experimental_config.xxx,包括如下功能: |
torch.compile接口
接口原型定义如下,参数说明参见表2。
1 | torch.compile(model=None, *, fullgraph=False, dynamic=None, backend='inductor', mode=None, options=None, disable=False) |
参数名 |
参数说明 |
备注 |
---|---|---|
model |
入图部分的模型或者函数,必选参数。 |
- |
fullgraph |
bool类型,可选参数。是否捕获整图进行优化。
|
|
dynamic |
bool类型或None,可选参数。是否使用动态图Trace。
|
|
backend |
后端选择,缺省值为"inductor",目前昇腾NPU暂不支持。 昇腾NPU成图只有一种后端,通过torchair.get_npu_backend接口获取,必选参数。 |
- |
mode |
开销模式,内存开销模式选择,昇腾NPU暂不支持。缺省值为None。 |
- |
options |
优化选项,昇腾NPU不支持。缺省值为None。 |
- |
disable |
bool类型,可选参数。是否关闭torch.compile能力。
|