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 深度优化、性能理论建模与源码/硬件改进建议。
三大任务
- 性能理论建模:对 Matmul 在 NPU 上的执行做理论建模,真实反映硬件执行情况、力求准确评估算子性能。给定具体 case 与 tiling & swizzle 方案和参数后,能给出该芯片的 profile 性能分析评估。
- 最优软件实现方案:结合 NPU 架构规格与算子数据流,通过公式推导给出任意 case 的 matmul 输入后的最优实现方案(核心是 tiling & swizzle)。
- 源码对比与改进建议:对比 Matmul 算子当前源码实现给出软件改进点;结合 top case,针对 NPU 架构给出下一代硬件改进建议。
目录索引
| 文档 | 说明 |
|---|---|
| 00_项目规划_小步快跑.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/
状态
- Phase 0:情报准备 + 规划(本目录初始化)
- Phase 1:性能理论建模(任务 1)
- Phase 2:最优软件实现方案(任务 2)
- Phase 3:源码对比与改进建议(任务 3)