已关闭
[Bug-Report|缺陷反馈]:【AscendC CAPI社区任务】Mmad bit-mode / MmadMx 声明与实现签名不一致(const 限定、无法推导的模板参数 R) #1717
Ethan-ki创建于 9月17日关闭于 9月24日
yhkz9211
9月18日 评论:
9月18日 评论:
你好,相关问题我们已收到,Mmad接口声明参数里MmadBitModeParams未带const与多余的模板参数R这两个问题确实存在,我们将会在近期进行修复,感谢反馈。


9月20日 关闭了 issue
9月22日 修改标题为 “[Bug-Report|缺陷反馈]:【AscendC CAPI社区任务】Mmad bit-mode / MmadMx 声明与实现签名不一致(const 限定、无法推导的模板参数 R)”,原标题为“【AscendC CAPI社区任务】Mmad bit-mode / MmadMx 声明与实现签名不一致(const 限定、无法推导的模板参数 R)”
问题现象
Mmad(bit-mode 带 bias)与MmadMx(bit-mode)的头文件声明与实现签名不一致:include/basic_api/kernel_operator_mm_intf.h:303void Mmad(const LocalTensor<T>& dst, const LocalTensor<U>& fm, const LocalTensor<S>& filter, const LocalTensor<V>& bias, MmadBitModeParams& mmadParams);(非 const)impl/basic_api/kernel_operator_mm_intf_impl.h:421const MmadBitModeParams& mmadParamsimpl/basic_api/kernel_operator_mm_intf_impl.h:441、449MmadMx实现模板多出typename R(template <typename T, typename U, typename S, typename R>),该参数无法从实参推导;头文件对应声明的模板参数里没有R参考(
master):git show upstream/master:impl/basic_api/kernel_operator_mm_intf_impl.h | sed -n '441,452p'。影响
Mmad(带 bias)的声明与定义 const 限定不一致,声明与实现不是同一实体,按头文件书写、且需要取函数地址或做显式实例化的调用会不匹配;MmadMx实现中多出的typename R无处推导,头文件声明的 bit-mode 形态实际不可用;复现(目标 Ascend 950 / DAV_3510)
--npu-arch=dav-3510Mmad/MmadMx的 bit-mode 形态(含 bias 与不含 bias)同时做 Tensor 与指针编译探测,编译期即暴露签名不匹配。tests/api/basic_api/cube_pointer/ACCEPTANCE.md、tests/api/basic_api/cube_pointer/matrix_compile.asc建议修复
把
include/basic_api/kernel_operator_mm_intf.h:303的形参改为const MmadBitModeParams&,并删除impl/basic_api/kernel_operator_mm_intf_impl.h中MmadMx两个实现模板里无法推导的typename R,使声明与实现一致。对应的社区任务 PR 已按此修复,可在该 PR 中一并检视。