已关闭
【26.2.0众测】NPUGraphs/NPUGraph_EX 输入非 batch 维 shape 变化时报底层 fake-tensor 错误,未提示“图捕获需静态形状” #5105
程康博创建于 9月25日关闭于 19 天前
9月25日 添加了label:help-wantedbot-triaged
TorchNPU-Bot
9月25日 评论:
9月25日 评论:
检测到社区任务相关 issue,自动添加标签:help-wanted


程康博
9月25日 评论:
9月25日 评论:
复现脚本与 NPUGraphs/NPUGraph_EX 实测见众测 PR(跨仓完整链接):
https://gitcode.com/Ascend/pytorch-ecosystem/merge_requests/39


19 天前 关闭了 issue
19 天前 issue状态由 TODO 改变为 DONE
19 天前 添加了label:resolved
环境
Atlas 800T A2 / 910B3 / CANN 9.1.0 / Python 3.12 aarch64;torch 2.7.1+torch_npu 2.7.1.post8(tf32 项在 2.7.1/2.9.0 均复现)
问题描述
NPU Graph 捕获要求输入形状静态。
backend="npugraphs"(npugraph_ex同样)下,仅 batch 维变化可以运行,但特征维 / 维度数变化时直接抛出底层 FakeTensor 的内部错误,信息对用户不友好:用户无法从该堆栈判断根因是“NPU Graph 不支持特征维变化”,也得不到“请固定形状/改用非图后端/重新捕获”的指引。
最小复现
import torch, torch_npu, torch.nn as nn torch.npu.set_device(0) m = nn.Sequential(nn.Linear(128,64), nn.ReLU(), nn.Linear(64,10)).npu().eval() cf = torch.compile(m, backend="npugraphs") with torch.no_grad(): x = torch.randn(4,128,device="npu"); cf(x) # 首次捕获 cf(torch.randn(8,128,device="npu")) # batch 维变化:OK cf(torch.randn(4,64, device="npu")) # 特征维 128->64:抛底层错误期望