已关闭
[Bug-Report|缺陷反馈]: aclnnGeluQuant 非法 dtype 返回 361001 而非 161002 #5528
majinglan创建于 9月3日关闭于 20 天前
9月3日 将 east_yang 设为负责人
yuning_chen
9月3日 评论:
9月3日 评论:
您好,感谢反馈,问题已收到,当前 @east_yang 正在跟踪处理。


guijianwei
20 天前 评论:
20 天前 评论:
/assign


20 天前 将 guijianwei 设为负责人
20 天前 关联了pull request:fix errorCode for invalid self dtype (INT32) on 910B
guijianwei
20 天前 评论:
20 天前 评论:
经核实,CheckDtypeValid 实际已存在(activation/gelu_quant/op_host/op_api/aclnn_gelu_quant.cpp:180,
并在 CheckParams 中被调用,见 :267),自算子初始版本即有,并非缺失。
真正根因是 CheckParams 中 CheckPlatform() 先于 dtype 检查执行(aclnn_gelu_quant.cpp:252)。
GeluQuant 仅支持 arch3510,在 910B3 等非 3510 平台上平台检查先失败,
CHECK_RET(CheckPlatform(), ACLNN_ERR_RUNTIME_ERROR) 直接返回 361001,
CheckDtypeValid 尚未执行到——探针因此将平台检查的错误码误归因为 dtype 缺检。
已修复CheckParam错误码为ACLNN_ERR_PARAM_INVALID


20 天前 关联了pull request:fix errorCode for invalid self dtype (INT32) on 910B
20 天前 关闭了 issue
20 天前 添加了label:resolved
Thanks for sending an issue! Please fill in the following template to help quickly solve your problem.
Describe the current behavior / 问题描述 (Mandatory / 必填)
测试环境
activation/gelu_quant/op_host/op_api//opt/mjl/exp0829/ops-nn/build/tests/ut/op_api/nn_op_api_utbash build.sh -u --noexec --ops=gelu_quant --soc=ascend910b -j8缺陷描述
aclnnGeluQuantGetWorkspaceSize无CheckDtypeValid函数(全仓 dtype_checks=0)。self参数传非法 dtype(INT32,应 FLOAT/FLOAT16/BF16)时返回 361001(RUNTIME_ERROR),应返回 161002(PARAM_INVALID)。同时CheckPlatform()返回ACLNN_ERR_RUNTIME_ERROR也不规范(RC3)。复现命令
source /usr/local/Ascend/ascend-toolkit/latest/set_env.sh BIN=/opt/mjl/exp0829/ops-nn/build/tests/ut/op_api/nn_op_api_ut $BIN --gtest_filter="l2GeluQuantProbeTest.x_invalid_dtype_int32" # 期望 rc=1,日志 "Which is: 361001"(应 161002)期望行为 vs 实测行为
Which is 日志
缺陷点
activation/gelu_quant/op_host/op_api/aclnn_gelu_quant.cppCheckDtypeValid函数缺失(dtype_checks=0)CheckPlatform()返回ACLNN_ERR_RUNTIME_ERROR(:251),非规范返回码修复建议
CheckDtypeValid函数,校验 self/inputScale/inputOffset/y/outScale 的 dtypeCheckPlatform()返回码改为ACLNN_ERR_PARAM_INVALID(161002)探针用例路径
一键复现
bash /opt/mjl/exp0829/ops-nn/nullptr_audit/repro.sh --case=17交付件与完整复现步骤
交付件
附件
nullptr_audit_deliverables.tar.gz,解压后结构:完整复现步骤
# Step 0: 准备环境(每次新 shell 需执行) source /usr/local/Ascend/ascend-toolkit/latest/set_env.sh REPO=/path/to/ops-nn # 替换为你的仓库路径 cd $REPO # Step 1: 解压交付件 tar xzf nullptr_audit_deliverables.tar.gz -C /tmp/nullptr_audit # Step 2: 部署探针用例到仓内 mkdir -p activation/gelu_quant/tests/ut/op_host/op_api cp /tmp/nullptr_audit/archive/gelu_quant/test_aclnn_gelu_quant_probe.cpp activation/gelu_quant/tests/ut/op_host/op_api/ # Step 3: 编译 bash build.sh -u --noexec --ops=gelu_quant --soc=ascend910b -j8 # Step 4: 执行探针 BIN=build/tests/ut/op_api/nn_op_api_ut $BIN --gtest_filter="l2GeluQuantProbeTest.x_invalid_dtype_int32" # 判读:rc=1(断言FAIL)= 缺陷存在;rc=0(PASS)= 已修复 # Step 5(可选):gdb 调试(仅 P0 崩溃缺陷) # Step 6: 一键复现(替代 Step 2-5) bash /tmp/nullptr_audit/repro.sh --case=17 # Step 7: 修复后回归验证 $BIN --gtest_filter="l2GeluQuantProbeTest.x_invalid_dtype_int32" # 期望输出:[ PASSED ] 1 test.(rc=0)修复回归判据
Environment / 环境信息 (Mandatory / 必填)
c502dca3221e4ec3bc76c070c69dfad3.gz
Steps to reproduce the issue / 重现步骤 (Mandatory / 必填)
附件有测试脚本
Describe the expected behavior / 预期结果 (Mandatory / 必填)
附件有测试脚本
Related log / screenshot / 日志 / 截图 (Mandatory / 必填)
附件有测试脚本
Special notes for this issue/备注 (Optional / 选填)