仓库:cann/ops-nn。固定源码提交:ae873b119fb5499c41a6893f920171551fb0a197。核对 SwigluMxQuant 的 ACLNN 输出说明、Proto shape 合同、Host InferShape 与 Ascend 950 tiling 输出校验。
cann/ops-nn
ae873b119fb5499c41a6893f920171551fb0a197
SwigluMxQuant
quant/swiglu_mx_quant/docs/aclnnSwigluMxQuant.md 将未分组或尾轴量化时的 mxscaleOut axis 维写成 ceil(yAxis / 32) 后偶数补齐,但 mxscaleOut 在末尾还有大小为 2 的维度,用于存放两个相邻 32 元素块的 scale。Proto 与 Host 都将 axis 维推导为 ceil(ceil(yAxis / 32) / 2),随后追加维度 2;文档把块数量当成了轴长度,导致输出 shape 多出一倍。 以 x=[8,128]、activate_dim=-1、axis=-1 为例,SwiGLU 后 yOut=[8,64]。文档公式给出的 axis 块数为 2;Proto 和 Host 的 mxscaleOut shape 为 [8,1,2],axis 维为 1,末尾维 2 保存这两个块的 scale。 调用方若按文档为 mxscaleOut 分配 shape,会与接口合同不符。Ascend 950 tiling 会校验 scale 的 axis 维、其他维度以及末尾维 2,因而此类 shape 会在首段参数处理阶段失败。
quant/swiglu_mx_quant/docs/aclnnSwigluMxQuant.md
mxscaleOut
ceil(yAxis / 32)
ceil(ceil(yAxis / 32) / 2)
x=[8,128]
activate_dim=-1
axis=-1
yOut=[8,64]
[8,1,2]
修正文档公式,明确 axis 维是每两个 32 元素块对应一个位置,末尾新增大小为 2 的 scale 维;保留 groupIndexOptional 存在且 axis 为非尾轴时的独立公式。
groupIndexOptional
Issue #5832 和已合入 PR !10341 已处理该算子的其他资料与实现差异,并在 Proto 说明中加入成对 scale 的 shape 公式;但 aclnnSwigluMxQuant.md 输出参数表仍只写“32 元素块数向上取整后偶数补齐”,没有说明 axis 维应为成对后的数量。PR !10931 对应的后续文档检视也未修改这项参数表公式。本次仅修正该表中遗留的 axis 维公式,不重复提交已合入的属性、golden 或其他文档修改。
aclnnSwigluMxQuant.md
关联 PR: https://gitcode.com/cann/ops-nn/merge_requests/12285
SwigluMxQuant ACLNN 文档仍把 mxscaleOut 轴长度写成分块数
调查范围
仓库:
cann/ops-nn。固定源码提交:ae873b119fb5499c41a6893f920171551fb0a197。核对SwigluMxQuant的 ACLNN 输出说明、Proto shape 合同、Host InferShape 与 Ascend 950 tiling 输出校验。问题
quant/swiglu_mx_quant/docs/aclnnSwigluMxQuant.md将未分组或尾轴量化时的mxscaleOutaxis 维写成ceil(yAxis / 32)后偶数补齐,但mxscaleOut在末尾还有大小为 2 的维度,用于存放两个相邻 32 元素块的 scale。Proto 与 Host 都将 axis 维推导为ceil(ceil(yAxis / 32) / 2),随后追加维度 2;文档把块数量当成了轴长度,导致输出 shape 多出一倍。以
x=[8,128]、activate_dim=-1、axis=-1为例,SwiGLU 后yOut=[8,64]。文档公式给出的 axis 块数为 2;Proto 和 Host 的mxscaleOutshape 为[8,1,2],axis 维为 1,末尾维 2 保存这两个块的 scale。调用方若按文档为
mxscaleOut分配 shape,会与接口合同不符。Ascend 950 tiling 会校验 scale 的 axis 维、其他维度以及末尾维 2,因而此类 shape 会在首段参数处理阶段失败。修复
修正文档公式,明确 axis 维是每两个 32 元素块对应一个位置,末尾新增大小为 2 的 scale 维;保留
groupIndexOptional存在且 axis 为非尾轴时的独立公式。与既有反馈的关系
Issue #5832 和已合入 PR !10341 已处理该算子的其他资料与实现差异,并在 Proto 说明中加入成对 scale 的 shape 公式;但
aclnnSwigluMxQuant.md输出参数表仍只写“32 元素块数向上取整后偶数补齐”,没有说明 axis 维应为成对后的数量。PR !10931 对应的后续文档检视也未修改这项参数表公式。本次仅修正该表中遗留的 axis 维公式,不重复提交已合入的属性、golden 或其他文档修改。关联 PR: https://gitcode.com/cann/ops-nn/merge_requests/12285