# Mission: Model FLOPs Utilization (MFU) 与 GPU 真实效率评估

## Why

在工作中需要判断 GPU 是否真的被训练/推理任务“打满”，而 `nvidia-smi` 里的 GPU Utilization 常常会骗人。用户希望掌握一套以 MFU 为核心的评估方法：能独立算出模型实际需要的 FLOPs、能解释为什么这么算、知道业界有哪些开源工具可以更精准地计算，并且能区分 LLM、ViT 与传统 CNN 在 FLOPs 计算上的差异，从而把优化精力放在真正影响吞吐量的地方。

## Success looks like

- 拿到一个模型配置，能在 5 分钟内手算出训练一步的理论 FLOPs，并换算成 MFU。
- 能向同事解释清楚“6N”和“12lhqt”分别从哪里来，以及 causal mask 为什么要把 attention FLOPs 砍半。
- 能在 calflops、DeepSpeed Flops Profiler、fvcore / ptflops 之间根据场景选对工具。
- 能一眼看出 CNN、ViT、LLM 在 FLOPs 计算时的核心差异点（局部感受野 vs 全局 attention、参数复用 vs 序列长度二次项等）。

## Constraints

- 以 PyTorch 生态为主，兼顾 HuggingFace Transformers。
- 同时覆盖训练（forward + backward）和推理（prefill + decode）两个场景。
- 学习时间碎片化，单次课程控制在 15 分钟内可完成。

## Out of scope

- CUDA kernel 级别的性能调优（如融合算子手写）。
- 分布式通信栈（NCCL / RCCL）的深入调优。
- TPU / 非 NVIDIA 硬件的专用 profiling 工具。
