swiglu_mx_quant 算子在 arch35 平台的实现存在以下问题:
参数校验日志不规范:tiling 代码中 ParseAttrs() 对 swigluMode、clampLimit、axis 参数的校验使用了 OP_LOGE,未使用结构化的 OP_LOGE_FOR_INVALID_VALUE_WITH_REASON,无法准确标识出错的参数名和校验原因。
ParseAttrs()
swigluMode
clampLimit
axis
OP_LOGE
OP_LOGE_FOR_INVALID_VALUE_WITH_REASON
校验顺序不合理:swigluMode 2/3 的 axis 校验放在了通用 axis 校验(axis 必须为 -1 或 -2)之前,逻辑上应先做通用校验再做模式特定校验。
swigluMode 2/3
aclnn 文档缺失:aclnnSwigluMxQuant.md 文档中 swigluMode 的取值范围仅描述了 [0, 1],缺少 mode 2 和 mode 3 的计算公式、参数约束说明及错误码说明。
aclnnSwigluMxQuant.md
缺少标杆实现:tests/assets/ 目录下无 TTK 标杆 golden 文件,无法进行精度验证。
tests/assets/
quant/swiglu_mx_quant/op_host/arch35/swiglu_mx_quant_tiling_arch35.cpp
quant/swiglu_mx_quant/docs/aclnnSwigluMxQuant.md
quant/swiglu_mx_quant/tests/assets/
swiglu_mode
clamp_limit
tests/assets/golden.py
关联 PR 中有完整 diff:https://gitcode.com/cann/ops-nn/pull/9292
关联 PR:https://gitcode.com/cann/ops-nn/pull/9292
/assign @caorenlei
一、问题描述
swiglu_mx_quant 算子在 arch35 平台的实现存在以下问题:
参数校验日志不规范:tiling 代码中
ParseAttrs()对swigluMode、clampLimit、axis参数的校验使用了OP_LOGE,未使用结构化的OP_LOGE_FOR_INVALID_VALUE_WITH_REASON,无法准确标识出错的参数名和校验原因。校验顺序不合理:
swigluMode 2/3的 axis 校验放在了通用 axis 校验(axis 必须为 -1 或 -2)之前,逻辑上应先做通用校验再做模式特定校验。aclnn 文档缺失:
aclnnSwigluMxQuant.md文档中swigluMode的取值范围仅描述了 [0, 1],缺少 mode 2 和 mode 3 的计算公式、参数约束说明及错误码说明。缺少标杆实现:
tests/assets/目录下无 TTK 标杆 golden 文件,无法进行精度验证。二、环境信息
三、重现步骤
quant/swiglu_mx_quant/op_host/arch35/swiglu_mx_quant_tiling_arch35.cpp中ParseAttrs()的参数校验逻辑quant/swiglu_mx_quant/docs/aclnnSwigluMxQuant.md中swigluMode的描述quant/swiglu_mx_quant/tests/assets/目录四、预期结果
OP_LOGE_FOR_INVALID_VALUE_WITH_REASON结构化日志,明确标识参数名(如swiglu_mode、clamp_limit、axis)和校验原因swigluMode 2/3的 axis 校验位于通用 axis 校验之后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