Files
matmul-analysis/Matmul

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 项目总规划:任务拆解、小步快跑路线图、目录约定、风险
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/

状态

  • Phase 0情报准备 + 规划(本目录初始化)
  • Phase 1性能理论建模任务 1
  • Phase 2最优软件实现方案任务 2
  • Phase 3源码对比与改进建议任务 3