Files
matmul-analysis/Matmul/01_情报清单.md
2026-08-27 11:58:51 +00:00

6.8 KiB
Raw Blame History

Matmul 算子分析 —— 情报信息清单

状态说明: 已就绪(本地可读) | 🔶 待补充 | 📍 位置标注 根路径简写:KB = /storage/Users/currentUser/WorkBuddy/昇腾NPU/昇腾NPU知识库/


1. 硬件架构规格

情报 位置 状态 备注
昇腾950 NPU 架构白皮书PDF 原版) KB/00_硬件/昇腾950_NPU架构白皮书.pdf 40 页6.3MB
白皮书全文文本(可 grep KB/00_硬件/昇腾950_NPU架构白皮书.txt 本轮新增 27976 字符,由 pdf-parse 提取
Ascend 950PR 产品页 KB/00_硬件/Ascend_950PR_产品页.txt 1784 TFLOPS / 128GB / 1.6TB/s / 灵衢2.0 2TB/s
Ascend 950DT 产品页 KB/00_硬件/Ascend_950DT_产品页.txt 144GB / 4TB/s
产品形态说明 KB/00_硬件/昇腾产品形态说明.md 950PR=Atlas 350 加速卡
950PR 微架构解读(含数据通路 SVG gitea 昇腾950PR/昇腾950PR架构解读.md 已提炼出 351x 架构关键数值表与数据通路变化

关键硬件参数(已确认,供建模引用)

参数 数值
AIC / AIV 32 / 64满配28 / 56衍生
主频 1.65GHz
Cube BF16 / TF32 / FP8 / MXFP4 432 / 216 / 865 / 1730 TFLOPS
GM 容量 / 带宽 128GB / 1.6TB/s读写共享总带宽
L2 容量 / 带宽 128MB / 5.2TB/s
L1 / L0A / L0B / L0C / UB 512KB / 64KB / 64KB / 256KB每 AIC512KB每 AIV
MTE1 / MTE3 256 BPC ≈ 422.4GB/s单 AIC

2. 官方性能建模文档(任务 1 的核心公式来源)

文档 位置 状态 关键内容
非量化 matmul 性能优化指南 KB/代码仓/cann-samples/Samples/2_Performance/matmul_story/docs/matmul_performance.md T_cube/T_mte2/T_mte1/T_fixp 完整公式、MTE2 vs MMAD / MTE1 vs MMAD / FIXPIPE vs MMAD 的 Bound 判定、SWAT/StreamK/UnitFlag/Double Buffer/尾轮均衡
量化 matmulMX性能 .../matmul_story/docs/quant_matmul_mx_performance.md MXFP8/MXFP4 数据通路、scale 复用
权重量化 matmul 性能 .../matmul_story/docs/weight_quant_matmul_mxfp8fp4_performance.md weightNz、MXFP8FP4
mxfp4 tutorials .../matmul_story/docs/quant_matmul_mxfp4_tutorials.md
官方调优样例源码 .../matmul_story/matmul_recipes/examples/matmul_a16w16 / a32w32 / quant_matmul_int8 / mxfp4 / mxfp8 / hifp8 / weight mxfp8fp4 .asc 模板 kernelswat/streamk 等)

3. Matmul 算子源码

3.1 mat_mul_v3ops-nn最常用 matmulaclnnMatmul 后端)📍 完整

模块 位置 关键文件
Host Tiling KB/代码仓/ops-nn/matmul/mat_mul_v3/op_host/op_tiling/arch35/ matmul_v3_tiling_advanced.cppmatmul_v3_basic_aswt_tiling.cppmatmul_v3_basic_streamk_tiling.cppmatmul_v3_asw_tiling.cppmatmul_v3_tiling_helper.cppmatmul_v3_tiling_key.cpp
Kernel核内 KB/代码仓/ops-nn/matmul/mat_mul_v3/op_kernel/arch35/ mat_mul_v3.cppmat_mul_asw_kernel.hmat_mul_bl1_full_load.hmat_mul_al1_full_load.hmat_mul_full_load.hmat_mul_fixpipe*.hmat_mul_stream_k_kernel.hmat_mul_streamk_split_k.hmat_mul_basic_split_k.hmat_mul_pingpong_basic*.hblock_scheduler_{aswt,mul,multi_mul,streamk}.h
API 入口 .../op_host/op_api/aclnn_matmul.cpp aclnnMatmul/aclnnAddmm/aclnnMm
分型配置 .../op_host/config/ 各芯片 runtime_kb.jsontiling 调参表)

3.2 ops-blas blasLt matmulaclnn 底层 GEMM含量化📍 完整

模块 位置 关键文件
Engine KB/代码仓/ops-blas/blasLt/matmul/engine/ matmul_engine.cpp/.h
fp32 .../fp32/arch35/ matmul_fp32_host.cppmatmul_fp32_kernel.cpp
mxfp4 .../mxfp4/arch35/ matmul_mxfp4_host.cppmatmul_mxfp4_kernel.cpp
mxfp8 .../mxfp8/arch35/ matmul_mxfp8_host.cppmatmul_mxfp8_kernel.cpp
epilogue .../epilogue/arch35/ epilogue_alpha_beta_*
tiling 公共 .../common/ quant_matmul_mx_tiling_swat_host.hquant_matmul_tiling_data.h
gemmblas/gemm KB/代码仓/ops-blas/blas/gemm/arch35/ gemm_kernel.cpp/.hgemm_tiling_data.h

3.3 catlass华为开源矩阵乘模板库类 CUTLASS📍

内容 位置
头文件 KB/代码仓/catlass/include/catlass/
示例 KB/代码仓/catlass/examples/00_basic_matmul06_optimized_matmul43_ascend950_basic_matmul950 专属示例)

3.4 其他相关算子(对照参考)

  • ops-nn/matmul/ 下 32 个 matmul 变体quant_matmul*、batch_mat_mul_v3、gemm_v3 等)——索引见 KB/CODE_INDEX.md
  • BMM 源码锚点:KB/代码仓/ops-nn/matmul/batch_mat_mul_v3/(与 BMM 分析对应)

4. CANN 文档(开发/API/性能优化)

类别 位置(社区版 9.2.0-beta.1 为主) 状态
AscendC 算子开发 KB/CANN社区版9.2.0-beta.1/01_AscendC算子开发/
AscendC API 参考 KB/CANN社区版9.2.0-beta.1/02_API参考/AscendC_API/
算子库 aclnn KB/CANN社区版9.2.0-beta.1/02_API参考/算子库aclnn/
性能优化 / msProf KB/CANN社区版9.2.0-beta.1/03_性能优化/
编译器(毕昇 + PTO 虚拟指令集) KB/CANN社区版9.2.0-beta.1/08_编译器/
加速库 ATB KB/CANN社区版9.2.0-beta.1/07_加速库/
商用版 9.0.0 / 8.5.0 KB/CANN商用版9.0.0/KB/CANN商用版8.5.0/ 备用对照

5. 待补充情报(列为后续行动)

情报 为什么需要 获取途径 优先级
msProf 实测 profileop_summary 等) 校准/验证理论模型精度 Atlas 350 真机、CANN 仿真、或官方公开性能数据
GM 读写单向带宽 读写竞争建模需要分读写 msProf main_mem_read_bw/write_bw 反推
950PR 上 matmul 的官方基准性能数据TFLOPS 实测) 模型验证的 ground truth 官方性能白皮书 / 论坛 / 技术工单
源码缺失文件补拉 若 3.x 分析发现个别 .cpp 缺失 .tmp/gitcode_fetch.py cann ops-nn master matmul/mat_mul_v3
CUTLASS/GEMM 建模对照(可选) 方法论交叉验证 公开论文/文档

6. 情报就绪度总结

  • 硬件规格: 齐全(白皮书全文 + 解读 + 产品页)
  • 性能建模公式: 齐全(官方 matmul_performance.md 全套)
  • 源码: 基本齐全mat_mul_v3 182 文件 + blasLt matmul 25 文件 + catlass + 官方样例)
  • 文档: 齐全13097 篇 CANN 文档)
  • 缺口集中在"实测数据":理论建模的验证闭环需要 msProf 实测数据,这是当前最需要补的一环,建议尽快落实真机/仿真途径。