Closed
[Bug|缺陷]: Xlogy Tiling入口缺少rank上界校验与x1/x2 dtype一致性校验 #4549
zhaoxinmengAdd on  8 days agoClosed at  8 days ago
zhaoxinmengCollaborators
8 days ago Create

一、问题链接 (必填)

  • math/xlogy/op_host/arch35/xlogy_tiling_arch35.cpp

二、问题片段 (必填)

  1. Tiling入口缺少rank上界校验:DoTilingAndSet中delta = R - rank_在rank_ > R时为负,max_bro_shape[d + delta]等以负下标写入TilingData(覆盖per_buf_bytes等前序字段)、split.axis错位,存在静态越界隐患。
  2. Tiling入口缺少x1/x2 dtype一致性校验:DESIGN.md承诺Tiling侧校验dtype一致(不一致返回GRAPH_FAILED),实现中GetShapeInfo仅校验输入0的dtype支持性,未比对x1/x2一致性。

💡 修复内容

  • GetShapeInfo补输入dtype一致性校验:x1/x2数据类型不一致返回GRAPH_FAILED(OP_LOGE_FOR_INVALID_DTYPES_WITH_REASON,对齐add_v2同款写法与README约束)
  • 补rank上界校验:rank>8返回GRAPH_FAILED(kMaxRank常量,OP_LOGE_FOR_INVALID_SHAPEDIM_WITH_REASON),消除delta为负时负下标写TilingData的静态隐患
  • 新增8个Tiling UT(tests/ut/op_host/arch35/test_xlogy_tiling_arch35.cpp),覆盖两道新校验及正常用例,13/13全PASS

实测验证(Ascend 950PR,TTK GEIR通路):

  • TTK默认模式(const + JIT编译):rank>8在APT编译层被RANK_LIMIT=8拦截(E80012)
  • TTK -b release -d true(binary复用,ge.jit_compile=0):APT拦截被绕过,rank=9直达Tiling,由本次新增的Tiling rank校验拦截(EZ0012: input rank must be within [0, 8])——证明本校验为binary复用模式下的实际必需防线,非纯深度防御

关联PR:https://gitcode.com/cann/ops-math/pull/7110

likedislike
ZzhaoxinmengCollaborators
8 days ago Added label: bug
zhaoxinmengCollaborators
8 days ago Comments:

/assign @zhaoxinmeng

likedislike
CANN-robotCANN-robotCollaborators
8 days ago Assign zhaoxinmeng as responsible person
zhaoxinmengCollaborators
8 days ago Comments:

/assign @zhaoxinmeng

likedislike
CANN-robotCANN-robotCollaborators
8 days ago Close issue
CANN-robotCANN-robotCollaborators
8 days ago Added label: resolved