已关闭
[Bug-Report|缺陷反馈]: lerp算子aclnn接口空Tensor短路判断未覆盖end/weight输入,空广播场景运行时报内部错误 #3169
hahaha22创建于  9月14日关闭于  9月14日
hahaha22成员
9月14日 创建

一、问题描述 (必填)

lerp 算子 aclnn 接口(aclnnLerp/aclnnInplaceLerp/aclnnLerps/aclnnInplaceLerps)的空 Tensor 短路判断仅检查了 self:

if (self->IsEmpty()) {
    return ACLNN_SUCCESS;
}

广播规则允许 size=1 的维与 size=0 的维广播(结果为 0 维)。当 self 非空而 end/weight 为空时(如 self={2,1}、end={2,0}、out={2,0}):

  1. CheckShape 通过(broadcast 结果与 out 一致)
  2. 空短路不生效,继续下发 kernel
  3. 公共 BroadcastTiling 遇 0 维输出直接返回 GRAPH_FAILED(dimLength is zero),导致运行时报内部错误,而非按空输出语义返回成功

仓内广播类算子(aclnn_add、aclnn_s_where、aclnn_addcmul 等)均对所有广播输入做空检查。

二、环境信息 (可选)

• 涉及文件:math/lerp/op_api/aclnn_lerp_tensor.cpp、math/lerp/op_api/aclnn_lerp_scalar.cpp
• 影响接口:aclnnLerp、aclnnInplaceLerp、aclnnLerps、aclnnInplaceLerps

三、重现步骤 (可选)

以 aclnnLerp 为例,构造广播空输入:self={2,1}(非空)、end={2,0}(空)、weight={2,0}(空)、out={2,0}。CheckShape 通过后 kernel 正常下发,BroadcastTiling 遇 0 维输出返回 GRAPH_FAILED,接口报内部错误。

四、预期结果 (可选)

按空输出语义,self/end/weight 任一输入为空(广播结果为空)时接口应直接返回 ACL_SUCCESS,不报错。

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

likedislike
Hhahaha22成员
9月14日 添加了label:bug-report
hahaha22成员
9月14日 评论:

/assign @hahaha22

likedislike
CANN-robotCANN-robot成员
9月14日 将 hahaha22 设为负责人
CANN-robotCANN-robot成员
9月14日 关闭了 issue
CANN-robotCANN-robot成员
9月14日 添加了label:resolved