已关闭
[Bug-Report|缺陷反馈]: SpaceToBatch Host 侧接受违反约束的负 padding #2818
KaranocaVe创建于  8月24日关闭于  27 天前
KaranocaVe
KaranocaVe
8月24日 创建

一、问题描述

SpaceToBatch 文档规定 paddings 的每个元素必须大于等于 0,但当前 Host
InferShape 和 Arch35 Tiling 都接受负 padding。非法值会被用于输出 shape 和
tiling 数据,导致不符合算子约束的图继续通过 Host 阶段。

相关代码:

  • conversion/space_to_batch/README.md:100-104
  • conversion/space_to_batch/op_host/space_to_batch_infershape.cpp:94-120
  • conversion/space_to_batch/op_host/arch35/space_to_batch_tiling.cpp:110-123

二、环境信息

  • 仓库:cann/ops-math
  • 源码 commit:0a2ce5b57caec6068d9e5658b740c2d41482aa15
  • OS/架构:Linux 5.10,aarch64
  • 硬件:Ascend 910B3;执行 Host UT
  • 编译器/Python/CMake:G++ 11.4.0 / Python 3.12.13 / CMake 3.22.1

三、重现步骤

  1. 构造 x 为 float、shape [1,4,4,1],设置 block_size=2。
  2. 构造常量 int32 paddings,shape [2,2],内容为 [-2,0,0,0]。
  3. 调用 SpaceToBatch 的 Host InferShape 和 Arch35 Tiling。
  4. 使用全量 Host UT 和专项 InferShape 重复测试确认结果。

四、预期结果

负 padding 违反算子约束,InferShape/Tiling 应返回 GRAPH_FAILED,并拒绝生成
输出 shape 或 tiling 数据。

五、实际结果

两条 Host 路径均返回 GRAPH_SUCCESS。InferShape 生成 [4,1,2,1];Tiling
成功并把 -2 写入 tiling 数据。合法 paddings=[0,0,0,0] 对照返回成功并
生成 [4,2,2,1]。

六、验证信息

固定 commit 的 Host UT 构建退出码为 0,完整测试 18/18 通过;InferShape 专项
相关合法和非法输入重复运行 5 次,结果稳定通过观察断言。

七、影响与规避方式

非法图可能通过 Host shape/tiling 阶段并把负 padding 传入后续编译流程,造成
公开约束与实际接受范围不一致。在修复前,调用方应确保四个 padding 值均为非负。

八、建议的回归测试

增加 paddings=[-1,0,0,0]、[0,-1,0,0]、[0,0,-1,0]、[0,0,0,-1]
以及合法全零 padding 的 InferShape/Tiling 对照测试,确认所有负值都返回
GRAPH_FAILED,并保留合法用例的成功断言。

关联 PR

likedislike
KaranocaVeKaranocaVe
8月24日 添加了label:bug-report
KaranocaVeKaranocaVe
8月24日 关联了pull request:[Fix] 拒绝 SpaceToBatch 的负 padding
陈思
陈思成员
8月24日 评论:

/assign @KaranocaVe

likedislike
CANN-robotCANN-robot成员
8月24日 将 KaranocaVe 设为负责人
陈思
陈思成员
8月24日 评论:

/assign @KaranocaVe

likedislike
CANN-robot
CANN-robot成员
8月24日 评论:

Notice

This issue is already assigned to KaranocaVe. Please do not assign repeatedly.

likedislike
陈思
陈思成员
8月24日 评论:

/assign @KaranocaVe

likedislike
CANN-robot
CANN-robot成员
8月24日 评论:

Notice

This issue is already assigned to KaranocaVe. Please do not assign repeatedly.

likedislike
KaranocaVeKaranocaVe
9月21日 修改了issue 的描述
CANN-robotCANN-robot成员
27 天前 关闭了 issue
CANN-robotCANN-robot成员
27 天前 添加了label:resolved
liuchenghao
liuchenghao
18 天前 评论:

【Multica 同步】状态:done;说明:社区侧已由 PR !4991(KaranocaVe:「[Fix] 拒绝 SpaceToBatch 的负 padding」,2026-09-28 合入)解决本需求,Multica 跟踪单同步关闭,感谢社区贡献者 KaranocaVe;详情:Multica issue AI4ME-149

likedislike