关于 huawei-cloud-ascend-op-mfu-calculator
用于计算 Huawei Cloud Ascend NPU 上算子的机器浮点利用率(MFU)的技能,可根据算子参数推导 FLOPs、实际 TFLOPs/s 和 MFU,并分析性能数据以识别瓶颈、提出优化建议。
主要功能
- 01算子 FLOPs 计算
- 02实际 TFLOPs/s 计算
- 03依据峰值性能计算 MFU
- 04基于性能分析数据诊断瓶颈
- 05区分计算与内存瓶颈
- 06按优先级提供优化建议
适用场景
- 01测量 Ascend NPU 算子利用率
- 02比较不同算子实现
- 03诊断性能瓶颈
- 04寻找优化机会
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ huaweicloud/ huaweicloud-skills --skill huawei-cloud-ascend-op-mfu-calculator安装后在 Claude Code 中输入/huawei-cloud-ascend-op-mfu-calculator确认已加载。
附带文件references/mfu-calculation-methodology.mdreferences/verification-method.md
详细介绍
华为云 Ascend 算子 MFU 计算器
概述
此技能用于计算 Ascend NPU 上 matmul/GEMM/FlashAttention 等算子的 MFU(机器浮点运算利用率),并提供清晰的公式和推导过程。
架构:输入校验 → FLOPs 计算 → 实际 TFLOPs/s → MFU 计算 → 结果分析
相关技能:
huawei-cloud-ascend-profiler-db-explorer- 算子性能数据的性能分析数据分析
前置条件
- 已安装 Python 3.8+
- 基本了解 FLOPs 计算概念
使用场景
典型问题场景:
- 评估算子对 Ascend NPU 计算能力的利用情况
- 比较不同算子实现的性能
- 找出矩阵运算的优化机会
典型用户表达:
- “计算我的 GEMM 算子的 MFU”
- “FlashAttention 的机器浮点运算利用率是多少?”
- “分析我的 matmul 算子的性能效率”
工作流
- 收集输入:收集算子参数(矩阵维度、数据类型、执行时间)
- FLOPs 计算:计算该操作的理论 FLOPs
- 实际性能:根据执行时间计算实际 TFLOPs/s
- MFU 计算:应用公式 MFU = 实际 FLOPs / 峰值 FLOPs
- 结果分析:提供解读和优化建议
MFU 计算公式
MFU = (实际 FLOPs / 峰值 FLOPs) × 100%
其中:
- 实际 FLOPs = 操作 FLOPs / 执行时间
- 峰值 FLOPs = 硬件特定的峰值性能(例如,Ascend 910B:FP16 下为 256 TFLOPs)
参考文档
| 文档 | 说明 |
|---|---|
| Ascend 910B Series Technical Specifications | Ascend 910B 系列产品的官方规格 |
| MFU Calculation Methodology | MFU 计算公式和示例详解 |
| FlashAttention Technical Paper | FlashAttention 原始研究论文 |
增强功能
智能瓶颈诊断器
- 由 AI 驱动的瓶颈诊断功能,可分析性能分析数据并自动识别根本原因
- 将瓶颈分为以下类别:内存受限、计算受限、通信受限或算子回退
- 提供按优先级排序的可执行优化建议
- 包含针对已知性能反模式的模式匹配
参数确认
| 参数 | 说明 | 必填 |
|---|---|---|
| operator | 算子类型(matmul/flash_attention/gemm 等) | 是 |
| flops | 算子的理论 FLOPs | 是 |
| time_ms | 算子执行时间(毫秒) | 是 |
| peak_tflops | 硬件峰值计算能力(TFLOPS) | 是 |
| device | NPU 设备类型(910B/910 等) | 否 |
评论
支持 Markdown