背景

在测试昇腾(Ascend)TorchAir的图结构dump功能的时候,通过其举例的demo,编写脚本,遇到ERR03001 GRAPH invalid parameter
昇腾社区文档参考如下:https://www.hiascend.com/document/detail/zh/Pytorch/710/modthirdparty/torchairuseguide/torchair_00012.html

完整代码:

# 导包(必须先导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()
config.debug.graph_dump.type = "pbtxt"
config.debug.graph_dump.path = "./test"
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)

报错的信息如下:

Traceback (most recent call last):
  File "/usr/local/lib64/python3.11/site-packages/torch_npu/dynamo/torchair/_utils/error_code.py", line 43, in wapper
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib64/python3.11/site-packages/torch_npu/dynamo/torchair/configs/_option_base.py", line 133, in __setattr__
    raise ValueError(self.__class__.__name__ + " has no option " + key + ", all options " +
ValueError: _Dump has no option path, all options ['type', '_path']

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/torchair/test.py", line 21, in <module>
    config.debug.graph_dump.path = "./test"
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib64/python3.11/site-packages/torch_npu/dynamo/torchair/_utils/error_code.py", line 46, in wapper
    raise type(e)("\n".join(msg))
ValueError: _Dump has no option path, all options ['type', '_path']
Traceback (most recent call last):
  File "/usr/local/lib64/python3.11/site-packages/torch_npu/dynamo/torchair/_utils/error_code.py", line 43, in wapper
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib64/python3.11/site-packages/torch_npu/dynamo/torchair/configs/_option_base.py", line 133, in __setattr__
    raise ValueError(self.__class__.__name__ + " has no option " + key + ", all options " +
ValueError: _Dump has no option path, all options ['type', '_path']


[ERROR] 2025-08-27-10:28:33 (PID:644285, Device:0, RankID:-1) ERR03001 GRAPH invalid parameter

分析

首先,疑惑的是,如果不配置graph_dump的功能,以下代码是能够跑通的,参考快速上手
完整代码:

# 导包(必须先导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,还支持reduce-overhead
# 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)

为什么配置graph_dump的功能就跑不通了呢,通过报错信息分析:

ValueError: _Dump has no option path, all options ['type', '_path']

应该是dump的配置,存在不能配置的key,而可以选择配置的key是['type', '_path'],这是有什么配置不对吗?
带着这个疑问,给昇腾社区提了工单。
通过与社区同学沟通,怀疑是TorchAir的版本安装不对。通过自查环境上的版本:

zjun2025/08/27 11:42:34
root@hostname-bnq0f:/home/torchair# pip list | grep torch
mindietorch                 2.0rc2+torch2.1.0.abi0
torch                       2.1.0
torch-npu                   2.1.0.post12
torchvision                 0.16.0

发现是torch和torch_npu安装的就是2.1.0的版本,没问题。
问题陷入了停滞。

在这里插入图片描述
通过卸载torch和torch_npu并且重新安装,问题解决了。
有种懵懵的感觉,到底前面安装环境的时候,是哪一步错了,毕竟基础用例能跑啊在这里插入图片描述

安装方式如下:
通过wheel格式的二进制软件包直接安装PyTorch框架和torch_npu插件

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐