AddMatMatElements 在 Ascend 950(arch35)非广播连续输入路径中,rank > 5 时会按外层维度循环发起多次 NDDMA DataCopy。当连续数据被拆成大量小块搬运时,会产生较高的调用开销,影响高 rank 场景性能。
DataCopy
同时,现有 Host/GEIR 验证未完整覆盖 rank-0 的 a、b 广播、输出 shape/rank 覆盖推导、输入输出格式转换及显式 Cast 边界,相关行为缺少回归保护和文档约束。
a
b
CopyInBrc
outerIters
DataCopyPad
💡 备注(选填)
关联 MR:https://gitcode.com/cann/ops-math/merge_requests/6805
/assign @babeiee
一、问题描述 (必填)
AddMatMatElements 在 Ascend 950(arch35)非广播连续输入路径中,rank > 5 时会按外层维度循环发起多次 NDDMA
DataCopy。当连续数据被拆成大量小块搬运时,会产生较高的调用开销,影响高 rank 场景性能。同时,现有 Host/GEIR 验证未完整覆盖 rank-0 的
a、b广播、输出 shape/rank 覆盖推导、输入输出格式转换及显式 Cast 边界,相关行为缺少回归保护和文档约束。二、环境信息 (可选)
三、重现步骤 (可选)
CopyInBrc实现,可见其对outerIters循环并逐次调用 NDDMADataCopy,连续 tile 被拆分为多次小搬运。a/b、错误输出 shape/rank、非 ND 输入输出格式和显式 Cast 的 GE 图场景,现有 Host UT 与 GEIR 示例缺少完整覆盖。四、预期结果 (可选)
DataCopyPad完成搬运,减少高 rank 场景的小粒度 NDDMA 调用。💡 备注(选填)
关联 MR:https://gitcode.com/cann/ops-math/merge_requests/6805