已关闭
[Bug-Report|缺陷反馈]: swiglu_mx_quant 算子资料与实现不一致 #5832
chenfeng创建于  9月12日关闭于  9月15日
chenfeng
chenfeng成员
9月12日 创建

Describe the current behavior / 问题描述

swiglu_mx_quant 算子的公开资料与实际实现存在多处不一致:

  1. 属性语义标注错误:README、aclnn 接口文档及 proto 注释中将 activate_left、swiglu_mode、clamp_limit、glu_alpha、glu_bias 等属性标注为"预留参数",但实现中这些参数实际生效且具有明确语义(swiglu_mode 支持 0-3 四种计算模式)
  2. 约束描述错误:
    • aclnn 文档写"activateDim 为非 last 轴时 swigluMode 必须为 0 或 1",实现仅支持 0
    • group_index 数据类型文档只写 INT64,实现支持 INT32、INT64
    • group_index 约束"shape 值小于等于 256"未明确下界,实现要求 shape[0] 大于 0
    • 缺少"swiglu_mode 为 2 或 3 时 axis 必须为 -1"的约束说明
  3. mxscale 输出描述不准确:未说明 scale 成对存放布局(axis 轴按 32 元素块数向上取整后偶数对齐、末维为 2),以及 axis=-2 且 group_index 存在时 axis 轴 shape = y 对应轴值整除 64 + group_num 的规则
  4. golden 参考实现与 kernel 输出布局不一致:golden.py 的 mxscale 布局(未成对打包)、E8M0 编码(全零块处理)、group_index 打包逻辑(axis=-2 未按组紧凑排布)与 kernel 实际输出不一致,影响精度比对基准的正确性
  5. binary.json 属性顺序与 proto.h 声明顺序不一致

Environment / 环境信息

  • 硬件平台:Ascend950(算子 binary 配置位于 op_host/config/ascend950/)

Steps to reproduce the issue / 重现步骤

  1. 阅读 quant/swiglu_mx_quant/README.md 与 docs/aclnnSwigluMxQuant.md 中的属性说明(标注为"预留参数")
  2. 对照 op_kernel 实现与 tests/assets/golden.py 参考实现,验证 swiglu_mode=1/2/3、activate_left、glu_alpha、glu_bias、clamp_limit 等属性的实际生效逻辑
  3. 使用 group_index + axis=-2 场景运行精度比对,观察 golden 的 mxscale 布局与 kernel 输出不一致

Describe the expected behavior / 预期结果

  • 资料描述与实现一致:属性语义、输入输出约束、mxscale shape 规则准确描述
  • golden 参考实现与 kernel 输出布局(成对打包、E8M0 编码、group_index 打包)一致
  • binary.json 属性顺序与 proto.h 声明顺序对齐

无需日志,为资料与实现一致性问题,可通过代码对照确认。

Special notes for this issue/备注

修复 PR:https://gitcode.com/cann/ops-nn/pull/10341

likedislike
chenfengchenfeng成员
9月12日 添加了label:bug-report
chenfeng
chenfeng成员
9月12日 评论:

/assign @chenfeng61

likedislike
CANN-robotCANN-robot成员
9月12日 将 chenfeng61 设为负责人
CANN-robotCANN-robot成员
9月15日 关闭了 issue
CANN-robotCANN-robot成员
9月15日 添加了label:resolved
chenfengchenfeng成员
9月15日 关联了pull request:fix(swiglu_mx_quant): 修正资料与实现不一致,对齐golden参考实现及binary.json属性顺序
KaranocaVeKaranocaVe
12 天前 关联了pull request:docs(quant): 修正 SwigluMxQuant mxscaleOut axis 维公式