昇腾社区首页
中文
注册
开发者
下载

快速上手

本章提供PyTorch图模式配置的快速上手样例,仅供参考。请根据需要配置图优化和定位调试等功能,详细介绍可参考后续章节。

需要注意的是:

  • 使能图模式前,请将模型迁移至昇腾NPU上,确保模型已在单算子模式(Eager)下正确执行,具体请参考《PyTorch 训练模型迁移调优指南》的“模型迁移”章节
  • 脚本中必须先import torch_npu,再import torchair才能正常使用。

示例说明

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
# 导包(必须先导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().npu()

# 配置图模式config
config = torchair.CompilerConfig()
# 配置图执行模式,默认max-autotune
# config.mode = "reduce-overhead"
npu_backend = torchair.get_npu_backend(compiler_config=config)
# 基于NPU backend进行compile
opt_model = torch.compile(model, backend=npu_backend)

# 执行编译后的Model
x = torch.randn(2, 2).npu()
y = torch.randn(2, 2).npu()
opt_model(x, y)

torch.compile

torch.compile为PyTorch原生接口,官网介绍参见LINK,接口原型如下:

1
torch.compile(model=None, *, fullgraph=False, dynamic=None, backend='inductor', mode=None, options=None, disable=False)

TorchAir图模式通过torchair.get_npu_backend接口获取NPU编译后端npu_backend,并将其作为backend入参实现昇腾NPU图模式计算。此时TorchAir图模式场景下torch.compile参数的配置说明参见表1

表1 图模式编译接口说明

参数名

参数说明

备注

model

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

-

fullgraph

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

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

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

dynamic

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

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

backend

必选参数,后端选择,缺省值为"inductor",目前昇腾NPU成图暂不支持

昇腾NPU成图仅支持一种后端,必须通过torchair.get_npu_backend接口获取显式传入。

通过compiler_config参数配置图模式功能,支持的功能参见表2,定义在CompilerConfig类中。

mode

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

-

options

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

-

disable

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

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

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

表2 CompilerConfig功能项

成员

功能说明

debug

配置debug调试类功能,配置形式为config.debug.xxx。

export

配置离线导图相关功能,配置形式为config.export.xxx。

dump_config

配置图模式下数据dump功能,配置形式为config.dump_config.xxx。

fusion_config

配置图融合相关功能,配置形式为config.fusion_config.xxx。

experimental_config

配置各种试验功能,配置形式为config.experimental_config.xxx。

inference_config

配置推理场景相关功能,配置形式为config.inference_config.xxx。

ge_config

配置Ascend IR图相关功能,配置形式为config.ge_config.xxx。

aclgraph_config

配置aclgraph相关功能,配置形式为config.aclgraph_config.xxx。

mode

配置图模式的调度方式,配置形式为config.mode.xxx。