已关闭
[Bug-Report|缺陷反馈]: SpaceToBatch Host 侧接受违反约束的负 padding #2818
KaranocaVe创建于 8月24日关闭于 27 天前
8月24日 添加了label:bug-report
8月24日 关联了pull request:[Fix] 拒绝 SpaceToBatch 的负 padding
陈思
8月24日 评论:
8月24日 评论:
/assign @KaranocaVe


8月24日 将 KaranocaVe 设为负责人
陈思
8月24日 评论:
8月24日 评论:
/assign @KaranocaVe


CANN-robot
8月24日 评论:
8月24日 评论:
陈思
8月24日 评论:
8月24日 评论:
/assign @KaranocaVe


CANN-robot
8月24日 评论:
8月24日 评论:
9月21日 修改了issue 的描述
27 天前 关闭了 issue
27 天前 添加了label:resolved
liuchenghao
18 天前 评论:
18 天前 评论:
【Multica 同步】状态:done;说明:社区侧已由 PR !4991(KaranocaVe:「[Fix] 拒绝 SpaceToBatch 的负 padding」,2026-09-28 合入)解决本需求,Multica 跟踪单同步关闭,感谢社区贡献者 KaranocaVe;详情:Multica issue AI4ME-149


一、问题描述
SpaceToBatch文档规定paddings的每个元素必须大于等于 0,但当前 HostInferShape 和 Arch35 Tiling 都接受负 padding。非法值会被用于输出 shape 和
tiling 数据,导致不符合算子约束的图继续通过 Host 阶段。
相关代码:
conversion/space_to_batch/README.md:100-104conversion/space_to_batch/op_host/space_to_batch_infershape.cpp:94-120conversion/space_to_batch/op_host/arch35/space_to_batch_tiling.cpp:110-123二、环境信息
cann/ops-math0a2ce5b57caec6068d9e5658b740c2d41482aa15三、重现步骤
x为float、shape[1,4,4,1],设置block_size=2。int32paddings,shape[2,2],内容为[-2,0,0,0]。SpaceToBatch的 Host InferShape 和 Arch35 Tiling。四、预期结果
负 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