diff --git a/BMM算子优化分析_Release/MergeBatch_vs_IterBatch分析_v1.0.md b/BMM算子优化分析_Release/MergeBatch_vs_IterBatch分析_v1.0.md index d12bb79..766c85a 100644 --- a/BMM算子优化分析_Release/MergeBatch_vs_IterBatch分析_v1.0.md +++ b/BMM算子优化分析_Release/MergeBatch_vs_IterBatch分析_v1.0.md @@ -1,6 +1,6 @@ # MergeBatch vs IterBatch:BMM 小 tile 场景的两种实现路径分析 -> 目标芯片:昇腾 950PR(DAV_3510)。理论分析基于《BMM 算子优化分析 v0.96》,源码参考 [cann-ops-nn](https://gitee.com/ascend/cann-ops-nn) 中 `matmul/batch_mat_mul_v3` 实现。 +> 目标芯片:昇腾 950PR(DAV_3510)。理论分析基于《BMM 算子优化分析 v0.96》,源码参考 [cann-ops-nn](https://gitcode.com/cann/ops-nn/tree/master/matmul/batch_mat_mul_v3) 实现。 --- @@ -165,7 +165,7 @@ $$ **IsCapable 条件**: ```cpp -// 源码:https://gitee.com/ascend/cann-ops-nn +// 源码:https://gitcode.com/cann/ops-nn/tree/master/matmul/batch_mat_mul_v3 if (batchC < MIN_BATCH_L0 * aicNum) return false; // B < 128,即 b_core < 4 if (alignK < 64 || M > N) return false; // K ≥ 64,M ≤ N if (L0 buffer check with b0=4) return false; // L0C 容量 @@ -190,7 +190,7 @@ if (L0 buffer check with b0=4) return false; // L0C 容量 **IsCapable 条件**: ```cpp -// 源码:https://gitee.com/ascend/cann-ops-nn +// 源码:https://gitcode.com/cann/ops-nn/tree/master/matmul/batch_mat_mul_v3 if (batchC <= aicNum) return false; // B ≤ 32 不进 IterBatch if ((alignM*alignK + alignK*alignN)*dtype*2 > L1) return false; // L1 双缓冲 if (!l0CanLoadBatch_ && balanceRate < 0.8) return false; // 负载均衡 @@ -224,4 +224,4 @@ if (!l0CanLoadBatch_ && balanceRate < 0.8) return false; // 负载均衡 1. [昇腾 950 NPU 架构白皮书](https://public-download.obs.cn-east-2.myhuaweicloud.com/ascend/%E6%98%87%E8%85%BE950%20NPU%E6%9E%B6%E6%9E%84%E7%99%BD%E7%9A%AE%E4%B9%A6.pdf),华为技术有限公司,2026 2. [CANN AscendC 算子开发——Matmul 高阶 API 使能 UnitFlag](https://www.hiascend.com/document/detail/zh/canncommercial/850/opdevg/Ascendcopdevg/atlas_ascendc_best_practices_10_10003.html),CANN 8.5.0 -3. [cann-ops-nn 源码仓](https://gitee.com/ascend/cann-ops-nn),`matmul/batch_mat_mul_v3` 目录 +3. [cann-ops-nn 源码仓](https://gitcode.com/cann/ops-nn/tree/master/matmul/batch_mat_mul_v3)