下载
中文
注册

快速上手

用户使能图模式之前,请先将模型迁移至昇腾NPU上,确保能够在单算子模式下正确执行,具体请参考《PyTorch 训练模型迁移调优指南》的“模型脚本迁移”章节

示例说明

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

表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)
表2 参数说明

参数名

参数说明

备注

model

入图部分的模型或者函数,必选参数。

-

fullgraph

bool类型,可选参数。是否捕获整图进行优化。

  • False(缺省值):非整图优化。
  • True:捕获整图优化。

参数含义与原生PyTorch compile接口一致,单击LINK获取官网介绍。

dynamic

bool类型或None,可选参数。是否使用动态图Trace。

  • None(缺省值):框架自动检测是否为动态图。
  • False:执行静态图。
  • True:执行动态图。

backend

后端选择,缺省值为"inductor",目前昇腾NPU暂不支持。

昇腾NPU成图只有一种后端,通过torchair.get_npu_backend接口获取,必选参数。

-

mode

开销模式,内存开销模式选择,昇腾NPU暂不支持。缺省值为None。

-

options

优化选项,昇腾NPU不支持。缺省值为None。

-

disable

bool类型,可选参数。是否关闭torch.compile能力。

  • False(缺省值):开启torch.compile能力。
  • True:关闭torch.compile能力,采用单算子模式。

参数含义与原生PyTorch compile接口一致,单击LINK获取官网介绍。