Files
matmul-analysis/Matmul/README.md

36 lines
2.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Matmul 算子分析(昇腾 950PR
> 目标芯片:昇腾 950PR32 AIC / 64 AIV1.65GHzGM 128GB/1.6TB/sL2 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_源码对比/` | 任务 3mat_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