Closed
[Documentation|文档反馈]: aclnnUnfoldGrad 头文件将输出参数 gradIn 错标为 @param [in] #3825
liuhanwen8Add on  21 days agoClosed at  16 days ago
liuhanwen8
liuhanwen8
21 days ago Create

问题描述

aclnnUnfoldGrad 头文件将输出参数 gradIn 标注为 @param [in],与同文件其他注释、以及配套文档的参数表均矛盾。

位置:conversion/unfold_grad/op_api/aclnn_unfold_grad.h:34(被检 commit 3e45432d)

 * @param [in] gradOut:
 * npu device侧的aclTensor,数据类型支持BF16、FLOAT16、FLOAT。
 * 支持[非连续的Tensor](#),数据格式支持ND。
 * @param [in] inputSizes:
 * npu host侧的aclIntArray,数据类型支持INT64。
 * 支持[非连续的Tensor](#),数据格式支持ND。
 * @param [in] dim: npu host侧的int。
 * @param [in] size: npu host侧的int。
 * @param [in] step: npu host侧的int。
 * @param [in] gradIn:                      // <- 此处错标为 [in]
 * npu device侧的aclTensor,数据类型支持BF16、FLOAT16、FLOAT。
 * 支持[非连续的Tensor](#),数据格式支持ND。
 *
 * @param [out] workspaceSize: 返回用户需要在npu device侧申请的workspace大小。
 * @param [out] executor: 返回op执行器,包含了算子计算流程。

同一个注释块中,紧随其后的 workspaceSize、executor 均正确标为 @param [out],仅 gradIn 标为 [in],属明显笔误。

三处口径对照

来源 gradIn 的标注
aclnn_unfold_grad.h:34 @param [in] ← 错
docs/aclnnUnfoldGrad.md:154-155 参数表 「输入/输出」列为「输出」
docs/aclnnUnfoldGrad.md:30 说明 「UnfoldGrad算子出参gradIn的shape为Unfold正向入参self的shape」

文档两处一致认定 gradIn 为输出,头文件单点写错。

影响

调用方直接读头文件接接口时,会把 gradIn 当成必填输入,可能漏传(触发空指针)或提前填充无意义数据(其结果会被算子覆盖)。头文件与文档打架时,使用者无法判断以哪个为准。

注:gradIn 在签名中类型为 const aclTensor*,属于「输出张量以 const 指针传入」的固定写法(内部由 l0op::ViewCopy 写入),const 修饰不改变其输出语义,不影响本项判定。

环境信息

  • 被检仓:cann/ops-math HEAD 3e45432d(2026-10-21)
  • 涉及算子:aclnnUnfoldGrad(conversion/unfold_grad)
  • 本项为纯注释/文档笔误,静态核对即可,不需要设备实测

重现步骤

# 1. 头文件把输出标成输入
sed -n '25,45p' conversion/unfold_grad/op_api/aclnn_unfold_grad.h

# 2. 文档参数表认定为输出
grep -n "gradIn" conversion/unfold_grad/docs/aclnnUnfoldGrad.md

预期结果

aclnn_unfold_grad.h:34 改为 @param [out] gradIn:,与 docs/aclnnUnfoldGrad.md:154-155 及同注释块的 workspaceSize / executor 对齐。

备注

与 #3797 的关系

本单拆自 #3797(4 项文档/契约问题汇总单)。按维护者分类口径,本项对应「输出标注」,单独跟踪以便文档 owner 直接改注释。

与 #3795 的边界

#3795 处理的是 gradIn 传 nullptr 时返回码错误(返回 561103 而非文档承诺的 161001),属运行期行为缺陷;本单只改注释标注,不涉及校验逻辑,两者不重叠。

涉及文件

  • conversion/unfold_grad/op_api/aclnn_unfold_grad.h(1 行)
likedislike
liuhanwen8liuhanwen8
21 days ago Added label: documentation
liuhanwen8
liuhanwen8
21 days ago Comments:

拆自 #3797(原 4 项汇总单已关闭)。本单为其拆分项之一,详见 #3797 的拆分说明。

likedislike
陈思
陈思Collaborators
20 days ago Comments:

您好,感谢反馈!

核对 cann/ops-math 固定提交 b19eaee4f58e5e1e3cb3b2ecbfed2d02c11c820a 后,确认 aclnn_unfold_grad.h 将 gradIn 写成了 @param [in],而接口文档 明确将其定义为输出。实现 也通过 DFX_OUT(gradIn) 标记输出,并用 l0op::ViewCopy(..., gradIn, ...) 写回结果,三者确有注释口径不一致。

一个可行的修订是将这处参数方向改为 @param [out] gradIn,与文档和实现对齐。const aclTensor* 的接口签名可以保留,调用方仍需创建并传入有效的输出张量;这里修订的是方向说明。空指针返回码问题继续由 #3795 单独跟踪。我们会继续跟踪这处头文件说明的修订。

likedislike
陈思陈思Collaborators
20 days ago Assign chensi79 as responsible person
陈思陈思Collaborators
20 days ago Added label: pending-confirmation
陈思陈思Collaborators
20 days ago Removed label: pending-confirmation
陈思陈思Collaborators
20 days ago Assign yue-ma as responsible person, remove original responsible person: chensi79
陈思陈思Collaborators
20 days ago Added label: pending-confirmation
陈思陈思Collaborators
17 days ago Removed label: pending-confirmation
Yyue-maCollaborators
17 days ago Removed responsible person yue-ma
Yyue-maCollaborators
17 days ago Assign L_Euler as responsible person
TtangkaidiCollaborators
16 days ago Assign tangkaidi as responsible person
tangkaidiCollaborators
16 days ago Comments:

你好,感谢你的关注和反馈。
当前issue内提及的问题已经确认,将会尽快合入代码。
修复PR:https://gitcode.com/cann/ops-math/pull/6715

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