Closed
[Bug|算子缺陷]: aclnnApplyRotaryPosEmbV2 layout参数(int64)注入超int32值被拦截, 错误码561002/561103非161xxx参数码 #386
Alice_zhouAdd on 4 days agoClosed at 3 days ago
3 days ago Modify description of issue
3 days ago Close issue
wangxun21
2 days ago Comments:
2 days ago Comments:
【结论】问题成立,属文档描述错误;算子行为正确,只需修改文档。
【复现】Atlas 950(CANN 9.1.0)实测:layout=1 返回 0;layout=5 返回 561002,tiling 报 Parameter layout of ApplyRotaryPosEmb has incorrect value 5. It should be 1, 2, 3 or 4。layout=2147484000 在 int64 读取后走同一范围校验分支,返回 561002,与 issue 一致。
【修改方案(确定)】
- 修改
docs/aclnnApplyRotaryPosEmbV2.md返回值表:将layout、rotaryMode两行的返回码由 161002(ACLNN_ERR_PARAM_INVALID) 改为 561002(ACLNN_ERR_INNER_TILING_ERROR),描述注明“tiling 阶段校验失败”;表头“第一段接口完成入参校验”改为“第一段接口(含 tiling 校验)”。 - 代码不改:
layout已按 int64 读取(apply_rotary_pos_emb_tiling.cpp:215、apply_rotary_pos_emb_tiling_base_arch35.cpp:423),值未截断;rotary_mode为 String,char*读取正确。 - 结论:2147484000 超出 1~4,拒绝行为符合预期,无功能问题。


AlfengYuan
2 days ago Comments:
2 days ago Comments:
已在 CANN 9.3.0 + Ascend950PR 上实测复核(aclnn 直调探针):
- layout=1(合法):返回 0,正常执行;
- layout=2147484000:返回 561002;
- layout=4294967297(2^32+1,截断探针):返回 561002,正确拒绝。
结论:本接口 layout 在 tiling 层按 int64 完整读取(apply_rotary_pos_emb_tiling_base_arch35.cpp),无截断问题;非法值拒绝语义与资料一致(资料记载 561002),维持关闭无误。
补充:同族排查中发现 RotaryPositionEmbedding/Grad 的 mode attr 存在截断静默接受缺陷(mode=2^32 被当 mode=0 返回成功),已另行修复,见 cann/ops-transformer#7470 及关联 MR(本接口不受影响)。


一、问题描述(必填)
二、分析结论
注入值2147484000后全部用例被拒绝, 但返回码为561002/561103(内部错误)而非161001/161002(参数校验码)。资料描述: 取值范围:1-BSND、2-SBND、3-BNSD、4-TND。 Atlas推理系列产品 、 Atlas A2系列产品 、 Atlas A3系列产品 :支持1-BSND的4维Tensor、4-TND的3维Tensor。 Ascend 950PR&950DT系列产品 :支持1-BSND、2-SBND、3-BNSD的4维Tensor, 4-TND的3维Tensor。。分析结论: 拒绝语义符合资料取值范围, 但错误码不符合aclnn分层校验规范(参数非法应报161xxx), 影响问题定位与自动化判定, 属维测错误码问题。
三、问题复现步骤(必填)
rm -rf aclnnAPI_fuzz/src/op/*;将附件aclnnApplyRotaryPosEmbV2_attr64.cpp放入aclnnAPI_fuzz/src/op/cd aclnnAPI_fuzz/ ; make op_fuzzcd out ; export ASCEND_OPP_PATH=<cann>/opp ; export LD_LIBRARY_PATH=<cann_toolkit>/lib64:$LD_LIBRARY_PATH ; ./aclnnAPI_fuzz aclnnApplyRotaryPosEmbV2_attr64_fuzz 1000(基线对照: 命令前加
ATTR64_OFF=1)四、附件与证据(必填)
💡 存在的问题(选填)
自动化压测平台attr64专项:int64常量attr超int32边界值(2147484000)处理行为测试。预期合理行为: 无资料上界则接受执行, 有资料上界则GWS层161001/161002干净拒绝。
发散核对复核(2026-11-09:关闭,资料与实际一致)
白盒(ops-*源码)+ 黑盒(注入实测)双向核对结论:资料描述与代码实际校验/实际支持范围完全一致,接口行为符合资料,非缺陷。
按维护方决定关闭本单。(备注:拒绝时返回码为561xxx而非161xxx参数码,错误码层级规范问题如需跟踪可另行汇总处理。)