# MFU 术语表

本术语表记录本教学空间中的规范用语。每个术语只在用户能正确使用后才加入。

## Terms

**MFU (Model FLOPs Utilization)**：
模型每秒实际需要的浮点运算量与 GPU 理论峰值浮点运算量之比，仅统计完成一次前向+反向所必需的操作，不计重计算。

**HFU (Hardware FLOPs Utilization)**：
硬件每秒实际执行的浮点运算量与 GPU 理论峰值之比，包含 activation checkpointing 等重计算产生的额外 FLOPs，因此 HFU ≥ MFU。

**FLOPs (floating-point operations)**：
浮点运算次数，一次乘加（multiply-accumulate）计为 2 FLOPs。

**MACs (multiply-accumulate operations)**：
乘加运算次数，1 MAC = 2 FLOPs。部分工具把 MACs 直接标成 FLOPs，容易误导。

**GPU Utilization**：
`nvidia-smi` 报告的 GPU 利用率，表示 GPU 上是否有 warp 在执行，不能区分有用计算与空转/内存搬运。

**Peak FLOPS**：
GPU 在特定精度（FP16/BF16/FP32/FP8）下的理论峰值算力，通常以 TFLOPS 为单位。

**Compute-bound**：
工作负载受限于 GPU 算力，此时提升算力或 MFU 能直接提升吞吐。

**Memory-bound**：
工作负载受限于显存带宽，算力没有跑满，优化重点应放在减少数据搬运或提升访存效率。

**Causal mask**：
自回归模型中使用的下三角掩码，使得每个 token 只能 attend 到它及之前的 token，因此 attention 计算量可近似减半。

**Activation checkpointing**：
通过丢弃前向激活并在反向时重新计算来节省显存的技术；重计算部分计入 HFU 但不计入 MFU。

**MAC (multiply-accumulate)**：
一次乘法加一次加法组成的原子运算，1 MAC = 2 FLOPs。神经网络里的矩阵乘、卷积主要由 MAC 构成。

**Analytical FLOPs**：
基于模型架构和输入尺寸用公式直接算出的理论 FLOPs，优点是快、可重复，缺点是忽略框架 overhead、融合算子、内存搬运等。

**Measured FLOPs**：
通过运行时 hook 或 profiler 统计到的实际执行 FLOPs，优点是能反映真实实现，缺点是结果依赖具体框架版本和优化手段。

**Hook-based profiler**：
在 PyTorch 模块上注册 forward/backward hook，按算子类型调用预设公式累计 FLOPs 的工具实现方式（DeepSpeed Flops Profiler、ptflops 均属此类）。
