本文是Megatron 专家面试题系列的 Level 7,覆盖 M097-M110。重点是MFU、FLOPs、Transformer Engine、fusion、CUDA Graph、FP8 与拓扑映射。
上一篇:MoE 与 EP · 系列总索引 · 下一篇:Checkpoint 与可靠性
9. Level 7:性能、融合、精度与通信重叠(M097-M110)
M097. Megatron训练为什么常用MFU,而不仅是tokens/s?
高分回答要点
- tokens/s受模型大小和sequence影响,不能跨配置直接比较硬件利用;MFU用有效模型FLOPs/硬件峰值归一化。
- FLOPs模型要说明attention、embedding、MoE active experts、recompute是否计入,硬件峰值要匹配dtype/Tensor Core。
- MFU仍不等于time-to-quality,也不揭示通信/数据/能效,需与step、loss和profile结合。
追问:recompute FLOPs计入分子会提高“硬件利用”却不提高有效训练进度,因此需同时报useful MFU与executed FLOPs口径。
前置知识与分析过程:先定义分子有效/执行FLOPs和分母硬件理论峰值,再判断配置变化是否增加重复计算。最后关联time-to-quality。
主问题得分点(10分):MFU定义 3 分;FLOPs/峰值口径 2 分;recompute/MoE边界 3 分;与训练进度区别 2 分。
追问分析与参考回答:若full recompute多执行约一段forward,把这些FLOPs计入executed MFU可能显示GPU更忙;但每step有效tokens和模型更新没增加。应同时报useful model FLOPs/step time、executed FLOPs利用率、tok/s及收敛,使优化不会奖励无效重算。
追问得分点(5分):两种分子2分;反直觉结论1分;多指标1分;time-to-quality1分。
M098. 如何估算 dense Transformer 的训练 FLOPs?
高分回答要点
- 从QKV/output、MLP两层和attention score/value matmul逐项按
2MNK计算forward。 - 训练forward+backward常近似forward的3倍,但embedding、softmax、norm、checkpoint重算和tied权重需明确。
- 常见
~6N tokens只是大模型/特定假设下近似,长sequence attention项和MoE会偏离。
追问:面试官给L/H/S/B时应现场列主项,而不是只背6N。
前置知识与分析过程:对每个linear写2MNK,attention写QK与PV,按layers/batch累加;backward再按矩阵梯度成本扩展。
主问题得分点(10分):linear主项 3 分;attention二次项 2 分;训练倍数 2 分;近似边界 3 分。
追问分析与参考回答:每层列QKV约2BSH*3H、output2BSH*H、MLP两/三路,以及QK/PV约各2B*heads*S*S*head_dim;forward求和,backward通常每matmul有dX/dW两项。最后说明softmax/norm/fusion、MoE和recompute是否计入。
追问得分点(5分):至少四个linear项2分;两attention项1分;backward1分;边界1分。
M099. local layer spec 与 Transformer Engine spec 如何选择?
高分回答要点
- local spec更便于源码理解、兼容/调试;TE spec提供融合layer、optimized attention、FP8等NVIDIA路径。
- 同shape不保证相同kernel、numerics、checkpoint key或硬件支持;V100上很多新TE能力不可用。
- 应做同权重forward/backward correctness、峰值、kernel trace和端到端吞吐对照。
追问:本机使用get_gpt_layer_local_spec(),不能据此声称测过TE/FP8优化。
前置知识与分析过程:先比较spec选择的module实现和硬件依赖,再设计同权重A/B,而不是将“模型结构相同”等同“runtime相同”。
主问题得分点(10分):两spec定位 3 分;kernel/numeric/checkpoint差异 3 分;对照方法 2 分;本机边界 2 分。
追问分析与参考回答:脚本显式调用local spec且V100无FP8,所以数据只覆盖PyTorch/local MCore路径。要评估TE需目标硬件安装兼容TE,加载同logical权重,固定GBS比较logits/grad、kernel、peak、MFU和checkpoint key;失败时保留local fallback。
追问得分点(5分):代码证据1分;硬件边界1分;A/B correctness1分;性能指标1分;fallback1分。
M100. Megatron常见fusion分别消除什么开销?
高分回答要点
- bias+activation、bias+dropout+residual、fused softmax、cross entropy、LayerNorm/RMSNorm、rotary等减少launch与中间HBM访存。
- gradient accumulation fusion把weight-gradient accumulation融入GEMM epilogue,减少独立读写/加法kernel。
- fusion收益随shape和硬件变化,必须有fallback/correctness;小shape更容易被launch主导。
追问:用roofline解释为什么memory-bound逐元素链更适合fusion,而大GEMM本身主要看Tensor Core效率。
前置知识与分析过程:计算算术强度FLOPs/bytes,把多kernel中间读写和launch列出来,再判断fusion是否提高强度或仅减少launch。
主问题得分点(10分):至少五类fusion 3 分;访存/launch机制 3 分;gradient fusion 2 分;正确性/fallback 2 分。
追问分析与参考回答:bias、dropout、residual分别成kernel会多次读写同一activation,FLOPs少且受HBM/launch限制,融合成一次遍历收益大;大GEMM已有高算术强度,优化重点是tile、Tensor Core和shape,epilogue fusion只减少边缘访存。用dram bytes/kernel数验证。
追问得分点(5分):强度定义1分;逐元素访存2分;GEMM区别1分;counter验证1分。
M101. TP communication overlap有哪些常见手段?
高分回答要点
- 把AG/RS切分并与GEMM不同chunks流水,或将bulk/dgrad/wgrad阶段与对应collective交叠。
- 需要GEMM足够大、独立stream/event和合适通信chunk;通信kernel占SM也可能与compute争抢。
- sequence parallel layout常提供RS/AG边界,但“可异步”不等于实际critical-path overlap。
追问:保存timeline,计算NCCL union、compute intersection和exposed通信,再看step wall与显存峰值。
前置知识与分析过程:确定可切chunk和producer/consumer依赖,通信与GEMM放不同stream;再从trace判断真实而非理论overlap。
主问题得分点(10分):overlap手段 3 分;窗口/依赖 2 分;资源争用 2 分;测量 3 分。
追问分析与参考回答:对每TP collective记录interval,合并重叠NCCL区间得union,与目标GEMM union求交;exposed=nccl_union-intersection。还要看chunk增多是否增加launch/peak,以及max-rank step是否下降;局部交集增加但step不降不算成功。
追问得分点(5分):union1分;intersection1分;exposed1分;step wall1分;peak/争用1分。
M102. 为什么同时开启多种overlap flag可能变慢?
高分回答要点
- TP、DP grad、param gather、EP A2A和PP P2P可能争用同一NIC/PCIe/NVLink、copy engine、SM和stream priority。
- 更多in-flight buffer提高显存峰值/fragmentation;更细chunk增加launch与同步。
- 局部重叠可能把压力移到另一个phase或最慢rank,端到端critical path反而增长。
追问:应做单flag、两两组合、全开消融矩阵,保存链路counter和per-group trace。
前置知识与分析过程:建立每种通信占用的链路/SM/stream资源表,再用factorial消融识别交互项,避免一次全开无法归因。
主问题得分点(10分):五类通信争用 3 分;内存/launch代价 2 分;消融矩阵 3 分;critical path判断 2 分。
追问分析与参考回答:先baseline,再逐个开TP、grad RS、param AG、EP A2A overlap;对收益项做两两和全开。记录每group exposed、NIC/NVLink/PCIe吞吐、SM active、in-flight peak和step。全开回退时根据交互项定位共享链路或SM竞争。
追问得分点(5分):逐flag1分;两两交互1分;资源指标1分;peak1分;归因方案1分。
M103. CUDA Graph 在Megatron训练中为什么困难?
高分回答要点
- graph要求稳定control flow、shape、地址和stream依赖;pipeline microbatch、MoE variable token counts、动态loss/数据都增加变化。
- NCCL capture、RNG、optimizer、FP8 metadata和参数AllGather必须使用兼容路径。
- 收益主要是降低CPU launch gap;若已被大GEMM/NCCL主导,端到端收益有限。
追问:先用Nsight确认CPU gap,再逐scope capture并验证replay数值和buffer地址,不要因“支持graph”就全迭代捕获。
前置知识与分析过程:先判断性能是否CPU launch-bound,再检查shape/control/address/stream稳定性。按module或microbatch逐步扩大capture scope。
主问题得分点(10分):graph约束 4 分;Megatron动态难点 3 分;收益判断 1 分;渐进验证 2 分。
追问分析与参考回答:Nsight若显示GPU kernel间CPU空洞明显才值得;从固定shape attention/MLP scope开始,固定allocator地址和RNG/NCCL capture,重复replay比较loss/grad。MoE variable tokens和动态PP先保留graph外,逐步扩大并监控graph cache/内存。
追问得分点(5分):CPU gap1分;最小scope1分;地址/RNG/NCCL1分;数值1分;动态fallback1分。
M104. FP8训练需要解决哪些问题?
高分回答要点
- 需要选择FP8格式、scale/amax历史、何处quantize/dequantize,并保留更高精度master/敏感算子。
- Tensor Core吞吐和通信/显存可受益,但overflow/underflow、scale同步和收敛需验证。
- Transformer Engine、硬件架构和MCore版本决定支持范围;V100没有FP8 Tensor Core路径。
追问:专家不会把“权重FP8”与“optimizer state FP8”混为一谈,也不会只跑一步loss finite作为精度结论。
前置知识与分析过程:为forward weight/activation、gradient、master param和optimizer states分别标dtype;再画scale/amax生成与同步。
主问题得分点(10分):FP8格式/scale 3 分;敏感状态高精度 2 分;硬件/TE依赖 2 分;数值验证 3 分。
追问分析与参考回答:权重/activation进入FP8 GEMM不意味着FP32 master和Adam m/v也FP8;scale/amax决定量化范围并可能跨group同步。验证需多层activation/grad误差、overflow、数百步loss与最终quality,对照BF16;V100无对应Tensor Core路径。
追问得分点(5分):dtype分层2分;scale/amax1分;长期验证1分;V100边界1分。
M105. 如何从GEMM shape判断一个并行配置可能低效?
高分回答要点
- 列每rank的M=
seq_local*microbatch、N/K由hidden/FFN/TP切分,检查Tensor Core对齐、tile数和wave量。 - TP/EP过大使N/K或expert token M过小;PP过大使每rankkernel数量少、launch gap占比高。
- 用cublas/TE kernel name、achieved FLOPs、Tensor Core指令和duration验证,而非只看GPU utilization。
追问:同tok/s下每GPU MFU下降可能意味着加GPU后工作切得过碎。
前置知识与分析过程:从global shape和并行轴计算每rankM/N/K,再检查对齐、tiles/waves和launch数量;将kernel效率与通信分开。
主问题得分点(10分):M/N/K推导 3 分;TP/EP/PP碎片化 3 分;硬件指标 2 分;配置决策 2 分。
追问分析与参考回答:aggregate tok/s可因更多GPU维持,但每GPU处理更小GEMM,achieved FLOPs/MFU下降,成本效率变差。应报per-GPU tok/s、GEMM shape、waves、Tensor Core指令和NCCL;尝试减TP/EP或增MBS,在容量允许下恢复shape。
追问得分点(5分):aggregate/per-GPU区别1分;shape2分;指标1分;调整方向1分。
M106. 如何做topology-aware的并行映射?
高分回答要点
- 按通信频率、bytes和exposed fraction给TP/CP/EP/PP/DP edge加权,再映射GPU/NIC/NUMA/故障域。
- 高频TP/CP优先高速域,EP需考虑all-to-all rail,PP相邻stage需稳定低延迟,DP可跨节点但梯度流量大。
- 同时考虑共享链路contention和故障域,不能只最小化pair距离。
追问:本机SYS TP phase慢3.05x,但三类各一次并发两mapping接近,说明目标函数必须包含真实调用频率。
前置知识与分析过程:构造通信图,每edge权重=bytes*frequency*exposed sensitivity,再加入共享链路和故障域约束。
主问题得分点(10分):各并行placement原则 3 分;加权成本 3 分;contention/故障域 2 分;本机反例 2 分。
追问分析与参考回答:两mapping并发实验都恰含PIX/PHB/SYS各一流,所以物理流量multiset相同;真实TP每层多次而DP通常每step bucket,权重不同。planner需用schedule频率与critical path而非一次对称microbench选择。
追问得分点(5分):解释multiset2分;调用频率1分;critical path1分;planner成本1分。
M107. Megatron显存分析为什么必须按生命周期拆分?
高分回答要点
- 常驻:本地param shard、main param、optimizer;周期:grad buffer、AG full param;microbatch:activation/recompute;临时:workspace/communication。
- PP/overlap/recompute改变并存时间,allocator reserved/fragmentation又与active tensor bytes不同。
- 记录每rankmax allocated/reserved、memory snapshot、OOM时allocation request和parallel coordinate。
追问:只用参数公式能判断“理论放得下”,不能保证runtime不在prefetch+activation重叠处OOM。
前置知识与分析过程:将状态分常驻、iteration、microbatch和瞬态,画live intervals并找并集峰值;再区分allocated、reserved和外部库内存。
主问题得分点(10分):四类状态 3 分;lifetime峰值 3 分;allocator口径 2 分;OOM诊断 2 分。
追问分析与参考回答:参数公式漏掉AG full params、PP warmup activations、communication/workspace和checkpoint staging的同时存活。用rank-local memory snapshot定位OOM时刻,记录requested/allocated/reserved及module/stream;关闭prefetch/recompute/overlap做因果对照。
追问得分点(5分):瞬态并存2分;snapshot1分;三内存口径1分;消融1分。
M108. 如何使用straggler信息定位慢rank?
高分回答要点
- 先按DP/TP/PP/CP/EP坐标聚合step、F/B、collective和data time,看异常是否沿某process group传播。
- 关联GPU clocks/ECC/thermal、CPU/NUMA、NIC counters、data shard和MoE token counts。
- collective中所有rank变长不代表所有rank故障,最晚进入者可能是根因。
追问:PP某stage compute慢会让上下游在P2P等待;EP热点会让其他rank在combine等待。
前置知识与分析过程:先按并行坐标聚合异常,再对共同group找最晚enter rank;不要把等待者误判为根因。
主问题得分点(10分):坐标聚合 3 分;系统指标 2 分;peer-wait归因 3 分;故障域 2 分。
追问分析与参考回答:PP看每stage compute结束与send/recv enter;最慢stage之前/之后会形成等待链。EP看token counts和expert GEMM end;早进combine的rank NCCL长是等待热点。关联clock/NIC/data后才能区分软件负载与坏卡。
追问得分点(5分):PP时间线1分;EP时间线1分;最晚enter1分;系统交叉证据1分;不误归NCCL1分。
M109. 一个可信的Megatron性能benchmark需要什么?
高分回答要点
- 固定commit/container/driver/TE/NCCL、模型/config、global batch、sequence、数据shape、拓扑和环境变量。
- 分离初始化/JIT/autotune/warmup,取max-rank wall,做多次独立启动并保存loss/correctness、方差和原始log/trace。
- 同时报tok/s、samples/s、MFU、每GPU效率、peak、collective breakdown和数据/checkpoint pause。
追问:性能提升若来自改变global batch或跳过optimizer/checkpoint,必须单独标注,不能称公平训练优化。
前置知识与分析过程:先定义被测边界是纯F/B还是完整iteration/训练job,列固定变量和计入项。再制定warmup、重复与correctness。
主问题得分点(10分):环境/配置固定 3 分;计时与max-rank 2 分;指标 2 分;correctness/artifact 3 分。
追问分析与参考回答:对优化A/B保存完整config diff,确保GBS、sequence、optimizer step、precision和数据相同;若单独测F/B就明确排除optimizer/checkpoint,另报端到端job。每次独立启动、warmup后同步计时,保存raw JSON/trace和loss。
追问得分点(5分):边界声明1分;固定变量2分;重复/同步1分;artifact/correctness1分。
M110. V100实验对今天Megatron专家能力有什么价值与局限?
高分回答要点
- 可真实学习TP/SP/PP数据流、NCCL拓扑、recompute、benchmark和失败定位,慢PCIe还放大通信代价。
- 不能验证BF16/FP8、FlashAttention新路径、NVSwitch/IB、多机EP/CP或最新版TE/MCore绝对性能。
- 专家价值在可迁移的tensor/通信/状态分析方法,并能明确新硬件需要重新校准哪些数字。
追问:回答“原理一样所以数字也适用”或“老卡完全无价值”都不合格。
前置知识与分析过程:把算法不变量、软件API和硬件性能量三层分开;逐层说明可迁移与需重测内容。
主问题得分点(10分):可学机制 3 分;硬件限制 3 分;可迁移方法 2 分;诚实边界 2 分。
追问分析与参考回答:Column/Row数学、1F1B依赖、group顺序和benchmark方法可迁移;NVLink/NIC、BF16/FP8、attention/TE kernel和最佳TP degree必须在新平台重测。V100通信慢使瓶颈清晰,但绝对tok/s不能代表H100/B200。
追问得分点(5分):稳定机制2分;需重测量2分;不走极端1分。