已关闭
[Bug-Report|缺陷反馈]: 【易用性】pypto.reshape 对带 valid_shape 的子视图 reshape 时静默丢失 valid_shape #3192
liuxiaoxiao11创建于  22 天前关闭于  16 天前
liuxiaoxiao11成员
22 天前 创建

Thanks for sending an issue! Please fill in the following template to help quickly solve your problem.

Describe the current behavior / 问题描述 (Mandatory / 必填)

pypto.reshape 对带 valid_shape 的子视图做 reshape 时,不传播输入的 valid_shape,静默生成全量 valid_shape,导致后续 pypto.assemble 越界写。该行为无任何报错,属静默返回错误结果。

原始 FP 报告(mhc_pre FP-01)详细记录:M2 精度验证时,3D 输出 h_res_out 在 B < B_TILE=128(部分尾块)时大规模发散(max_diff 54–983),而 2D 输出全部正常。debugger 定位根因为:pypto.reshape 将 h_res_raw(weight 的带列偏移子视图,行维 valid_shape 为 [actual_bs, 16])reshape 为 [B_TILE, 4, 4] 时,不传播行维 valid_shape,输出携带全量 [B_TILE,4,4],导致 pypto.assemble 越界写。修复需手动向 pypto.reshape 显式传 valid_shape=[actual_bs, N_val, N_val]。

pypto-reshape.md 文档仅说明"改变 valid_shape 部分的形状",未记载子视图 reshape 的 valid_shape 传播规则。

Environment / 环境信息 (Mandatory / 必填)

CANN 版本:9.2.0 (V100R001C25B114)(source /home/operation/Ascend/ascend-toolkit/set_env.sh)
pypto 版本/Commit:0.2.1 (pip) / 源码 HEAD 41b340b76
Python / torch / torch_npu:3.11.15 / 2.7.1+cpu / 2.7.1.post2
硬件:Ascend910,TILE_FWK_DEVICE_ID=0
环境快照:env_info.log

Steps to reproduce the issue / 重现步骤 (Mandatory / 必填)

source /home/operation/Ascend/ascend-toolkit/set_env.sh && export TILE_FWK_DEVICE_ID=0
cd issues/issue-04 && python repro_reshape_validshape.py
脚本构造带 valid_shape=[2,16] 的子视图,reshape 为 [8,4,4] 不传 valid_shape
检查输出中 rows beyond valid_shape 是否被写入(非零即 valid_shape 丢失)
完整证据见 issues/issue-04/README.md

Describe the expected behavior / 预期结果 (Mandatory / 必填)

reshape 应传播输入 valid_shape(子视图行维 valid_shape 按 reshape 映射延续),或对输入携带 valid_shape 而调用未显式传 valid_shape 的场景告警/报错,而非静默生成全量 valid_shape 导致越界写。

Root cause: valid_shape loss in 2D→3D reshape of partial-row sub-view.
The 2D→3D reshape does NOT propagate the row-dimension valid_shape.
The reshaped 3D tensor carries full valid_shape [B_TILE, 4, 4] instead of [actual_bs, 4, 4].
max_diff: 54–983 (大规模发散)
NPU 运行产物:issues/issue-04/output/(kernel 编译产物)

Special notes for this issue/备注 (Optional / 选填)

复现状态:✅ 复现。NPU 运行完成,kernel 编译产物存在。仓分类:pypto。完整证据目录:issues/issue-04/README.md。0d292af807794351862fc6a09a6cbd61.zip

likedislike
Lliuxiaoxiao11成员
22 天前 添加了label:bug-report
李俊谕成员
21 天前 将 seu_chang 设为负责人
袁野袁野成员
20 天前 添加了label:Frontend
袁野袁野成员
20 天前 issue类型由 任务 改变为 缺陷
宋乐成员
20 天前 评论:

请确认是否为前端问题

likedislike
宋乐成员
20 天前 关联了pull request:fix(agent): Close unclosed code fence in pass-error-locator
高前程成员
18 天前 评论:

reshape接口不会推导validshape,如果输入有validshape,需要用户自行计算好输出的validshape,作为reshape接口的参数

likedislike
高前程成员
18 天前 关联了pull request:feat(doc): Note reshape output validshape must be passed explicitly
宋乐成员
16 天前 将 xiaoyueyueyueyue 设为负责人
LiuChang
LiuChang成员
16 天前 评论:

相关代码已合入,此issue计划关闭,如有其他问题,欢迎继续讨论

likedislike
LiuChangLiuChang成员
16 天前 issue状态由 待办的 改变为 已完成
LiuChangLiuChang成员
16 天前 关闭了 issue
CANN-robotCANN-robot成员
16 天前 添加了label:resolved