已关闭
[Bug-Report|缺陷反馈]:【AscendC CAPI社区任务】Mmad bit-mode / MmadMx 声明与实现签名不一致(const 限定、无法推导的模板参数 R) #1717
Ethan-ki创建于  9月17日关闭于  9月24日
Ethan-ki
9月17日 创建

问题现象

Mmad(bit-mode 带 bias)与 MmadMx(bit-mode)的头文件声明与实现签名不一致:

位置 现状
include/basic_api/kernel_operator_mm_intf.h:303 void 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:421 同形参在实现中定义为 const MmadBitModeParams& mmadParams
impl/basic_api/kernel_operator_mm_intf_impl.h:441、449 MmadMx 实现模板多出 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'。

影响

  1. bit-mode Mmad(带 bias)的声明与定义 const 限定不一致,声明与实现不是同一实体,按头文件书写、且需要取函数地址或做显式实例化的调用会不匹配;
  2. MmadMx 实现中多出的 typename R 无处推导,头文件声明的 bit-mode 形态实际不可用;
  3. CUBE 侧 Basic API 指针化扩展若要复用这两个入口,会把这个不一致带入新重载。

复现(目标 Ascend 950 / DAV_3510)

  • 环境:Ascend950PR_9579、CANN 9.2.0-beta.1、bisheng --npu-arch=dav-3510
  • 方式:对 Mmad/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 中一并检视。

likedislike
EEthan-ki
9月17日 关联了pull request:【社区任务】AscendC Basic API CUBE 指针化扩展(Ethan-ki)
Yyhkz9211成员
9月18日 将 yhkz9211 设为负责人
yhkz9211成员
9月18日 评论:

你好,相关问题我们已收到,Mmad接口声明参数里MmadBitModeParams未带const与多余的模板参数R这两个问题确实存在,我们将会在近期进行修复,感谢反馈。

likedislike
yhkz9211成员
9月20日 评论:

你好,Mmad接口声明参数里MmadBitModeParams未带const与多余的模板参数R的两个问题已修复,可以查看主线确认

likedislike
CANN-robotCANN-robot成员
9月20日 关闭了 issue
Lliuliu876成员
9月22日 修改标题为 “[Bug-Report|缺陷反馈]:【AscendC CAPI社区任务】Mmad bit-mode / MmadMx 声明与实现签名不一致(const 限定、无法推导的模板参数 R)”,原标题为“【AscendC CAPI社区任务】Mmad bit-mode / MmadMx 声明与实现签名不一致(const 限定、无法推导的模板参数 R)”
Lliuliu876成员
9月22日 issue类型由 任务 改变为 缺陷
Lliuliu876成员
9月22日 重新打开了 issue
yhkz9211成员
9月24日 评论:

您好,相关问题已修复。
我们先关闭此issue,如有其他问题,欢迎再提issue交流

likedislike
Yyhkz9211成员
9月24日 issue状态由 待办的 改变为 已完成
Yyhkz9211成员
9月24日 关闭了 issue