From 5f552757b5c7d0957e0f7dcf6bbf20b5c9eee273 Mon Sep 17 00:00:00 2001 From: admin Date: Thu, 27 Aug 2026 11:58:50 +0000 Subject: [PATCH] =?UTF-8?q?init=20Matmul=20=E7=9B=AE=E5=BD=95=EF=BC=9A?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E6=80=BB=E8=A7=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Matmul/README.md | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 Matmul/README.md diff --git a/Matmul/README.md b/Matmul/README.md new file mode 100644 index 0000000..a1e1f68 --- /dev/null +++ b/Matmul/README.md @@ -0,0 +1,35 @@ +# Matmul 算子分析(昇腾 950PR) + +> 目标芯片:昇腾 950PR(32 AIC / 64 AIV,1.65GHz,GM 128GB/1.6TB/s,L2 128MB/5.2TB/s,架构版本 351x / DAV_3510) +> 项目性质:中长期,多轮迭代、严谨逻辑推导、理论建模与验证 + +本目录同步 **Matmul 算子分析** 的全部产出。与同仓 `BMM/`(Batch Matmul 分析)互补:BMM 侧重 batch 维切分与分支决策,本目录聚焦单矩阵乘 `[M,K]×[K,N]→[M,N]` 的 tiling & swizzle 深度优化、性能理论建模与源码/硬件改进建议。 + +## 三大任务 + +1. **性能理论建模**:对 Matmul 在 NPU 上的执行做理论建模,真实反映硬件执行情况、力求准确评估算子性能。给定具体 case 与 tiling & swizzle 方案和参数后,能给出该芯片的 profile 性能分析评估。 +2. **最优软件实现方案**:结合 NPU 架构规格与算子数据流,通过公式推导给出任意 case 的 matmul 输入后的最优实现方案(核心是 tiling & swizzle)。 +3. **源码对比与改进建议**:对比 Matmul 算子当前源码实现给出软件改进点;结合 top case,针对 NPU 架构给出下一代硬件改进建议。 + +## 目录索引 + +| 文档 | 说明 | +|---|---| +| [00_项目规划_小步快跑.md](./00_项目规划_小步快跑.md) | 项目总规划:任务拆解、小步快跑路线图、目录约定、风险 | +| [01_情报清单.md](./01_情报清单.md) | 情报信息清单(硬件规格/性能建模文档/源码/待补充实测数据) | +| `1_性能模型/` | 任务 1:硬件参数与 Roofline、单核流水线建模、多核+swizzle 建模、profile 评估器 | +| `2_最优方案/` | 任务 2:模板体系、tiling 参数最优推导、swizzle 编排最优推导、任意 case 决策 | +| `3_源码对比/` | 任务 3:mat_mul_v3 源码解析、软件改进点、下一代硬件改进建议 | + +## 关键参考(情报来源) + +- 硬件:`昇腾NPU知识库/00_硬件/昇腾950_NPU架构白皮书`(PDF + 全文 txt)、同仓 `昇腾950PR/昇腾950PR架构解读.md` +- 性能建模:`昇腾NPU知识库/代码仓/cann-samples/Samples/2_Performance/matmul_story/docs/matmul_performance.md`(官方 T_cube/T_mte2/T_mte1/T_fixp 公式) +- 源码:`昇腾NPU知识库/代码仓/ops-nn/matmul/mat_mul_v3/`(182 文件,含 arch35 kernel 与 tiling)、`昇腾NPU知识库/代码仓/ops-blas/blasLt/matmul/`(fp32/mxfp4/mxfp8)、`昇腾NPU知识库/代码仓/catlass/` + +## 状态 + +- [x] Phase 0:情报准备 + 规划(本目录初始化) +- [ ] Phase 1:性能理论建模(任务 1) +- [ ] Phase 2:最优软件实现方案(任务 2) +- [ ] Phase 3:源码对比与改进建议(任务 3)