已关闭
[Bug-Report|缺陷反馈]: swiglu_mx_quant 算子修复检视意见并补充标杆与aclnn文档 #5268
caorenlei创建于  14 天前关闭于  14 天前
caorenlei成员
14 天前 创建

一、问题描述

swiglu_mx_quant 算子在 arch35 平台的实现存在以下问题:

  1. 参数校验日志不规范:tiling 代码中 ParseAttrs()swigluModeclampLimitaxis 参数的校验使用了 OP_LOGE,未使用结构化的 OP_LOGE_FOR_INVALID_VALUE_WITH_REASON,无法准确标识出错的参数名和校验原因。

  2. 校验顺序不合理swigluMode 2/3 的 axis 校验放在了通用 axis 校验(axis 必须为 -1 或 -2)之前,逻辑上应先做通用校验再做模式特定校验。

  3. aclnn 文档缺失aclnnSwigluMxQuant.md 文档中 swigluMode 的取值范围仅描述了 [0, 1],缺少 mode 2 和 mode 3 的计算公式、参数约束说明及错误码说明。

  4. 缺少标杆实现tests/assets/ 目录下无 TTK 标杆 golden 文件,无法进行精度验证。

二、环境信息

  • 硬件:Ascend 950 (arch35)
  • 软件:CANN

三、重现步骤

  1. 查看 quant/swiglu_mx_quant/op_host/arch35/swiglu_mx_quant_tiling_arch35.cppParseAttrs() 的参数校验逻辑
  2. 查看 quant/swiglu_mx_quant/docs/aclnnSwigluMxQuant.mdswigluMode 的描述
  3. 查看 quant/swiglu_mx_quant/tests/assets/ 目录

四、预期结果

  1. 参数校验错误使用 OP_LOGE_FOR_INVALID_VALUE_WITH_REASON 结构化日志,明确标识参数名(如 swiglu_modeclamp_limitaxis)和校验原因
  2. swigluMode 2/3 的 axis 校验位于通用 axis 校验之后
  3. aclnn 文档包含 swigluMode 2(前后分半 + clamp + sigmoid(alpha) 激活 + bias)和 3(前后分半 + sigmoid(alpha=1) + clamp,无 bias)的完整计算公式
  4. 文档中 swigluMode 取值范围更新为 [0, 3],并注明 mode 2/3 要求 axis=-1
  5. tests/assets/golden.py 包含覆盖所有 swiglu_mode(0/1/2/3)的 TTK 标杆实现

五、日志 / 截图

关联 PR 中有完整 diff:https://gitcode.com/cann/ops-nn/pull/9292

六、备注

关联 PR:https://gitcode.com/cann/ops-nn/pull/9292

likedislike
Ccaorenlei成员
14 天前 添加了label:bug-report
caorenlei成员
14 天前 评论:

/assign @caorenlei

likedislike
CANN-robotCANN-robot成员
14 天前 将 caorenlei 设为负责人
CANN-robotCANN-robot成员
14 天前 关闭了 issue
CANN-robotCANN-robot成员
14 天前 添加了label:resolved