快速上手
本章提供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。
参数名 |
参数说明 |
备注 |
|---|---|---|
model |
必选参数。入图部分的模型或者函数。 |
- |
fullgraph |
可选参数,bool类型。是否捕获整图进行优化。
|
|
dynamic |
可选参数,bool类型或None。是否使用动态图Trace。
|
|
backend |
必选参数,后端选择,缺省值为"inductor",目前昇腾NPU成图暂不支持。 昇腾NPU成图仅支持一种后端,必须通过torchair.get_npu_backend接口获取显式传入。 |
通过compiler_config参数配置图模式功能,支持的功能参见表2,定义在CompilerConfig类中。 |
mode |
开销模式,内存开销模式选择,缺省值为None。昇腾NPU暂不支持。 |
- |
options |
优化选项,缺省值为None。昇腾NPU暂不支持。 |
- |
disable |
可选参数,bool类型。是否关闭torch.compile能力。
|
成员 |
功能说明 |
|---|---|
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。 |