已关闭
[Requirement|需求建议]: 【FusedMatmul】BMM+add/mul支持融合性能优化&&芯片隔离 #3798
liweijian16创建于  7月3日关闭于  7月7日
liweijian16成员
7月3日 创建

Thanks for sending an requirement! Please fill in the following template to help quickly solve your problem.

Backgroud(背景信息)

BMM+add/mul通用融合泛化性能优化 【处理】 模板补充 1 支持mergebatch 2 支持sk模板 tiling适配
芯片需要隔离,保证编译通过

Origin(信息来源)

非量化

Benefit / Necessity (价值/作用)

Design(设计方案)

本次改动围绕 FusedMatMul 的 BatchMatMul + Add/Mul 融合能力补齐 host tiling 与 UT 覆盖:IterBatch 模板新增 add/mul 基础 API 路由校验,并覆盖 x3 batch 维广播场景;MergeBatch 模板补充 add/mul 路由能力,覆盖长 K、batch 合并到 M 方向后的融合场景;MatmulAct/ASWT 模板补齐 add/mul 常规 batch 路由覆盖;A FullLoad 与 B FullLoad 模板分别覆盖单侧 L1 全载复用场景下的 add/mul 融合路由。同时补充 aclnn 参数校验用例,覆盖 x3 [B,M,N]、[1,M,N]、[M,N] 支持范围,以及 [B,1,N]、[B,M,1]、非法 batch 等不支持形态。

整体方案分两层:

  1. FusedMatMul kernel 路由:在 arch35 / DAV_3510 的 batch tiling 中放开 Add/Mul 的能力检查,补齐对应 tiling key,并在 kernel dispatch 层接到 IterBatch、MergeBatch、MatmulAct 基础 API 模板。
  2. aclnn 小算子拼接路由:在 aclnnFusedMatmul 图构建阶段,对 DAV_3510 下的小 N / K=1 Add/Mul 场景,拆成 BatchMatMulV3Nd + Add/Mul + Cast + Reshape。其中 K=1 且满足 BMMV3 边界时,由 BatchMatMulV3Nd 命中 BatchMatMulToMul

FusedMatMul kernel 策略优先级沿用 fused_matmul_builtin_tiling_strategy.h 的既有顺序,不调整 BatchStreamK、MergeBatch、IterBatch、FullLoad、ASW 等策略之间的相对顺序。

likedislike
Lliweijian16成员
7月3日 添加了label:requirement
yuning_chenyuning_chen成员
7月3日 将 liweijian16 设为负责人
CANN-robotCANN-robot成员
7月7日 关闭了 issue
CANN-robotCANN-robot成员
7月7日 添加了label:resolved