Closed
[Bug-Report|缺陷反馈]: 优化 AddMatMatElements 高 rank 连续输入搬运并补齐图场景 #4218
babeieeAdd on  10 days agoClosed at  9 days ago
babeiee
10 days ago Create

一、问题描述 (必填)

AddMatMatElements 在 Ascend 950(arch35)非广播连续输入路径中,rank > 5 时会按外层维度循环发起多次 NDDMA DataCopy。当连续数据被拆成大量小块搬运时,会产生较高的调用开销,影响高 rank 场景性能。

同时,现有 Host/GEIR 验证未完整覆盖 rank-0 的 a、b 广播、输出 shape/rank 覆盖推导、输入输出格式转换及显式 Cast 边界,相关行为缺少回归保护和文档约束。

二、环境信息 (可选)

  • 昇腾硬件型号:Ascend 950(arch35,DAV_3510)
  • 算子:AddMatMatElements
  • 数据类型:FLOAT16、FLOAT

三、重现步骤 (可选)

  1. 在 Ascend 950 的 AddMatMatElements 非广播路径执行 rank > 5 的连续输入场景。
  2. 检查原 CopyInBrc 实现,可见其对 outerIters 循环并逐次调用 NDDMA DataCopy,连续 tile 被拆分为多次小搬运。
  3. 构造 rank-0 a/b、错误输出 shape/rank、非 ND 输入输出格式和显式 Cast 的 GE 图场景,现有 Host UT 与 GEIR 示例缺少完整覆盖。

四、预期结果 (可选)

  1. 非广播连续 tile 使用单次 DataCopyPad 完成搬运,减少高 rank 场景的小粒度 NDDMA 调用。
  2. Host UT 覆盖 rank-0 输入支持和非法 rank-0 参数拒绝,InferShape 覆盖广播及输出 shape/rank 覆盖推导。
  3. GEIR 示例覆盖格式转换、输出描述符推导、显式 Cast 契约和可选 device,并在 README 中明确相关约束。

💡 备注(选填)

关联 MR:https://gitcode.com/cann/ops-math/merge_requests/6805

likedislike
Bbabeiee
10 days ago Added label: bug-report
babeiee
10 days ago Comments:

/assign @babeiee

likedislike
CANN-robotCANN-robotCollaborators
10 days ago Assign babeiee as responsible person
CANN-robotCANN-robotCollaborators
9 days ago Close issue
CANN-robotCANN-robotCollaborators
8 days ago Added label: resolved