已关闭
[Bug-Report|缺陷反馈]: SeluGrad未校验输入dtype一致性 #4791
zhongheng创建于  8月13日关闭于  8月18日
zhongheng
8月13日 创建

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

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

SeluGrad要求gradOutput(dy)、result(y)和gradInput使用相同dtype。当前Ascend950 Tiling仅依据gradOutput的dtype选择计算路径,未校验result.dtype是否与gradOutput.dtype一致。

当两个输入分别使用框架支持的不同dtype(例如gradOutput为FLOAT、result为FLOAT16)时,旧实现未在Tiling阶段拒绝该非法组合,存在Kernel按错误dtype解释输入数据的风险。

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

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

  • Hardware:Ascend950DT_9592
  • SoC:Ascend950
  • CANN:9.2.0
  • OS:Linux x86_64

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

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

  1. 构造shape相同的gradOutput和result。
  2. 设置gradOutput dtype为FLOAT。
  3. 设置result dtype为FLOAT16;FLOAT与FLOAT16均为SeluGrad支持的dtype。
  4. 调用aclnnSeluBackwardGetWorkspaceSize,或直接执行Ascend950 SeluGrad Tiling。
  5. 观察旧实现未基于两个输入间的dtype联动约束进行拒绝。

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

Thanks for sending an issue! Please fill in the following template to help quickly solve your problem.
SeluGrad应校验gradOutput、result和gradInput的dtype一致性。

当gradOutput与result的dtype不一致时:

  • ACLNN参数校验返回ACLNN_ERR_PARAM_INVALID;
  • Ascend950 Tiling返回GRAPH_FAILED;
  • 不允许进入Kernel执行。

修复后定向测试结果:

SeluGradTilingTest.AcceptsMatchingSupportedDtypes:PASSED
SeluGradTilingTest.RejectsMismatchedSupportedInputDtypes:PASSED
Tiling UT:2/2 PASSED

selu_backward_test.test_selubackward_inconsistent_dtype:PASSED
ACLNN op_api UT:13/13 PASSED

pre-commit:全部检查通过。

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

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

likedislike
zhongheng
8月14日 评论:

/assign

likedislike
CANN-robotCANN-robot成员
8月14日 将 zhongheng 设为负责人
Zzhongheng
8月14日 修改标题为 “[Bug-Report|缺陷反馈]: SeluGrad未校验输入dtype一致性”,原标题为“[Bug-Report|缺陷反馈]: SeluGrad未校验输入dtype一致性且int32 Cast存在精度损失”
Zzhongheng
8月14日 修改了issue 的描述
Zzhongheng
8月14日 修改了issue 的描述
CANN-robotCANN-robot成员
8月18日 关闭了 issue
CANN-robotCANN-robot成员
8月18日 添加了label:resolved