[{"data":1,"prerenderedAt":63},["ShallowReactive",2],{"post-deepseek-v4-parallelism":3},{"abbrlink":4,"title":5,"date":6,"categories":7,"tags":9,"excerpt":13,"html":14,"toc":15},"deepseek-v4-parallelism","千卡、万卡集群的 LLM 训练并行调优：以 Megatron-LM 训练 DeepSeek-V4 为例","2026-10-26",[8],"懵逼的深度学习",[10,11,12],"分布式训练框架","Megatron-LM","MoE","把训练从 1024 张卡扩到 8192 张卡，如果模型和全局 batch 都不变，每个数据并行副本分到的工作就会减少。原本能够连续送进流水线的 32 个 microbatch，可能只剩下 4 个。卡多了，流水线却更难填满。 这里整理一下这类问题的分析方法。以 DeepSeek-V4-Pro 为例，从显存和并行分组开始，逐步讨论 EP、PP、CP 的选择，以及怎样判断一次优化是否有效。文中的算例可以复算，性能数字则保留论文中的模型、硬件与","\u003Cp>把训练从 1024 张卡扩到 8192 张卡，如果模型和全局 batch 都不变，每个数据并行副本分到的工作就会减少。原本能够连续送进流水线的 32 个 microbatch，可能只剩下 4 个。卡多了，流水线却更难填满。\u003C\u002Fp>\n\u003Cp>这里整理一下这类问题的分析方法。以 DeepSeek-V4-Pro 为例，从显存和并行分组开始，逐步讨论 EP、PP、CP 的选择，以及怎样判断一次优化是否有效。文中的算例可以复算，性能数字则保留论文中的模型、硬件与实验条件。\u003C\u002Fp>\n\u003Cp>先说明资料范围。DeepSeek-V4 官方报告介绍的是继承自 V3 的训练基础设施，没有称其为 Megatron-LM。本文讨论在 Megatron-LM 中组织 V4 训练的调优过程；源码核查固定在 2026-10-26 的 \u003Ccode>ed9c2c8c\u003C\u002Fcode> 提交。本文未运行千卡或万卡集群，配置表属于搜索起点和计算示例。\u003Ca href=\"https:\u002F\u002Farxiv.org\u002Fhtml\u002F2606.19348v1\" target=\"_blank\" rel=\"noopener noreferrer\">DeepSeek-V4 报告\u003C\u002Fa>、\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FMegatron-LM\u002Ftree\u002Fed9c2c8c1cf4a5438922ae8d215181e7c8b9e0fe\" target=\"_blank\" rel=\"noopener noreferrer\">Megatron-LM 固定提交\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch2 id=\"post-heading-先确定模型与实现\">先确定模型与实现\u003C\u002Fh2>\n\u003Cp>DeepSeek-V4-Pro 的总参数约为 1.6T，每个 token 激活约 49B 参数，主体包含 61 个 Transformer 块。每个 MoE 层有 384 个 routed experts，每个 token 选择其中 6 个，另外有 1 个 shared expert。后面计算时，用到的 hidden size 为 7168，专家 intermediate size 为 3072。\u003Ca href=\"https:\u002F\u002Farxiv.org\u002Fhtml\u002F2606.19348v1#S4.SS2.SSS1\" target=\"_blank\" rel=\"noopener noreferrer\">报告 §4.2.1\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>总参数和激活参数在调优时承担不同作用。前者关系到参数及优化器状态的存储，后者主要影响每个 token 的计算量。以 BF16 保存全部权重，单是权重就约为：\u003C\u002Fp>\n\u003Csection>\u003Ceqn>\u003Cspan class=\"katex-display\">\u003Cspan class=\"katex\">\u003Cspan class=\"katex-mathml\">\u003Cmath xmlns=\"http:\u002F\u002Fwww.w3.org\u002F1998\u002FMath\u002FMathML\" display=\"block\">\u003Csemantics>\u003Cmrow>\u003Cmn>1.6\u003C\u002Fmn>\u003Cmo>×\u003C\u002Fmo>\u003Cmsup>\u003Cmn>10\u003C\u002Fmn>\u003Cmn>12\u003C\u002Fmn>\u003C\u002Fmsup>\u003Cmo>×\u003C\u002Fmo>\u003Cmn>2\u003C\u002Fmn>\u003Cmtext> \u003C\u002Fmtext>\u003Cmrow>\u003Cmi mathvariant=\"normal\">b\u003C\u002Fmi>\u003Cmi mathvariant=\"normal\">y\u003C\u002Fmi>\u003Cmi mathvariant=\"normal\">t\u003C\u002Fmi>\u003Cmi mathvariant=\"normal\">e\u003C\u002Fmi>\u003C\u002Fmrow>\u003Cmo>=\u003C\u002Fmo>\u003Cmn>3.2\u003C\u002Fmn>\u003Cmtext> \u003C\u002Fmtext>\u003Cmrow>\u003Cmi mathvariant=\"normal\">T\u003C\u002Fmi>\u003Cmi mathvariant=\"normal\">B\u003C\u002Fmi>\u003C\u002Fmrow>\u003Cmi mathvariant=\"normal\">.\u003C\u002Fmi>\u003C\u002Fmrow>\u003Cannotation encoding=\"application\u002Fx-tex\">\n1.6\\times10^{12}\\times2\\ \\mathrm{byte}=3.2\\ \\mathrm{TB}.\n\u003C\u002Fannotation>\u003C\u002Fsemantics>\u003C\u002Fmath>\u003C\u002Fspan>\u003Cspan class=\"katex-html\" aria-hidden=\"true\">\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.7278em;vertical-align:-0.0833em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">1.6\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2222em;\">\u003C\u002Fspan>\u003Cspan class=\"mbin\">×\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2222em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.9474em;vertical-align:-0.0833em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">1\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mord\">0\u003C\u002Fspan>\u003Cspan class=\"msupsub\">\u003Cspan class=\"vlist-t\">\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.8641em;\">\u003Cspan style=\"top:-3.113em;margin-right:0.05em;\">\u003Cspan class=\"pstrut\" style=\"height:2.7em;\">\u003C\u002Fspan>\u003Cspan class=\"sizing reset-size6 size3 mtight\">\u003Cspan class=\"mord mtight\">\u003Cspan class=\"mord mtight\">12\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2222em;\">\u003C\u002Fspan>\u003Cspan class=\"mbin\">×\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2222em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.8889em;vertical-align:-0.1944em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">2\u003C\u002Fspan>\u003Cspan class=\"mspace\"> \u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mord mathrm\">byte\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003Cspan class=\"mrel\">=\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.6833em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">3.2\u003C\u002Fspan>\u003Cspan class=\"mspace\"> \u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mord mathrm\">TB\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"mord\">.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Feqn>\u003C\u002Fsection>\u003Cp>这还没有算梯度和优化器状态。只看 49B 激活参数，无法判断模型是否装得下。\u003C\u002Fp>\n\u003Cp>V4 还有三个与并行调优直接相关的变化。CSA\u002FHCA 混合注意力使 CP 需要处理压缩块和样本边界；mHC 增加了激活与流水线边界的数据量；Muon 更新涉及逻辑完整的梯度矩阵，需要与参数分片共同设计。V3 的经验可以帮助定位问题，具体配置仍要重新验证。\u003Ca href=\"https:\u002F\u002Farxiv.org\u002Fhtml\u002F2606.19348v1#S3.SS4\" target=\"_blank\" rel=\"noopener noreferrer\">报告 §3.4\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>当前 Megatron-LM 已有 V4 的 hybrid attention、mHC 和 Muon 相关实现。实际搜索配置前，先看这条模型路径允许什么组合。\u003C\u002Fp>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>固定提交中的限制\u003C\u002Fth>\n\u003Cth>对本次调优的影响\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>V4 hybrid attention 要求 TP=1，使用 Transformer Engine\u003C\u002Ftd>\n\u003Ctd>后面的 V4 算例固定 TP1\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>CP&gt;1 要求 packed THD 输入\u003C\u002Ftd>\n\u003Ctd>数据和 packed-sequence 元数据要一起准备\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>packed 路径要求 cuDNN backend，CP&gt;1 要求 contiguous 布局\u003C\u002Ftd>\n\u003Ctd>普通注意力的 CP 配置不能直接套用\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>当前只支持 static CP，packed 路径尚不支持 deterministic mode\u003C\u002Ftd>\n\u003Ctd>动态 CP 切换和确定性测试要按实现能力安排\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>不支持 \u003Ccode>core_attn\u003C\u002Fcode> checkpoint 和 \u003Ccode>qkv_linear\u003C\u002Fcode> offload\u003C\u002Ftd>\n\u003Ctd>重算、卸载只能选择这条路径支持的模块\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cp>这些限制分别来自 \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FMegatron-LM\u002Fblob\u002Fed9c2c8c1cf4a5438922ae8d215181e7c8b9e0fe\u002Fmegatron\u002Fcore\u002Ftransformer\u002Fexperimental_attention_variant\u002Fdeepseek_v4_hybrid_attention.py#L94\" target=\"_blank\" rel=\"noopener noreferrer\">V4 hybrid attention\u003C\u002Fa> 与 \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FMegatron-LM\u002Fblob\u002Fed9c2c8c1cf4a5438922ae8d215181e7c8b9e0fe\u002Fmegatron\u002Fcore\u002Ftransformer\u002Fexperimental_attention_variant\u002Fcsa_utils\u002Fcp_utils.py#L312\" target=\"_blank\" rel=\"noopener noreferrer\">packed CP 校验\u003C\u002Fa>。硬件架构及 attention backend 还有额外校验，应连同 \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FMegatron-LM\u002Fblob\u002Fed9c2c8c1cf4a5438922ae8d215181e7c8b9e0fe\u002Fmegatron\u002Fcore\u002Ftransformer\u002Ftransformer_config.py\" target=\"_blank\" rel=\"noopener noreferrer\">TransformerConfig\u003C\u002Fa> 一起检查。\u003C\u002Fp>\n\u003Cp>源码中的组件和测试说明实现已经存在。完整预训练的正确性、收敛与集群性能，仍需要实际训练来确认。\u003C\u002Fp>\n\u003Ch2 id=\"post-heading-并行分组怎样计算\">并行分组怎样计算\u003C\u002Fh2>\n\u003Cp>先把几种并行的作用对应到训练对象。\u003C\u002Fp>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>并行方式\u003C\u002Fth>\n\u003Cth>主要切分对象\u003C\u002Fth>\n\u003Cth>需要重点观察的代价\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>TP，张量并行\u003C\u002Ftd>\n\u003Ctd>层内矩阵\u003C\u002Ftd>\n\u003Ctd>层内通信、矩阵切分后的计算效率\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>PP，流水线并行\u003C\u002Ftd>\n\u003Ctd>模型层或模型块\u003C\u002Ftd>\n\u003Ctd>气泡、stage 不均衡、边界传输\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>CP，上下文并行\u003C\u002Ftd>\n\u003Ctd>同一条序列\u003C\u002Ftd>\n\u003Ctd>attention 数据交换、边界处理\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>DP，数据并行\u003C\u002Ftd>\n\u003Ctd>独立训练数据\u003C\u002Ftd>\n\u003Ctd>梯度与参数同步、每副本 batch 缩小\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>EP，专家并行\u003C\u002Ftd>\n\u003Ctd>不同专家\u003C\u002Ftd>\n\u003Ctd>token dispatch\u002Fcombine、路由不均衡\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>ETP，专家张量并行\u003C\u002Ftd>\n\u003Ctd>单个专家内部的矩阵\u003C\u002Ftd>\n\u003Ctd>专家内部通信、GEMM 粒度变化\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cp>Megatron Core 的 MoE Parallel Folding 允许 attention 和 MoE 使用不同分组。固定一个 pipeline stage，其中的同一批 GPU，在 attention 路径和专家路径有两种组织方式。\u003Ca href=\"https:\u002F\u002Farxiv.org\u002Fhtml\u002F2504.14960v1#S3\" target=\"_blank\" rel=\"noopener noreferrer\">MoE Parallel Folding，§3\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>设 GPU 总数为 \u003Ceq>\u003Cspan class=\"katex\">\u003Cspan class=\"katex-mathml\">\u003Cmath xmlns=\"http:\u002F\u002Fwww.w3.org\u002F1998\u002FMath\u002FMathML\">\u003Csemantics>\u003Cmrow>\u003Cmi>N\u003C\u002Fmi>\u003C\u002Fmrow>\u003Cannotation encoding=\"application\u002Fx-tex\">N\u003C\u002Fannotation>\u003C\u002Fsemantics>\u003C\u002Fmath>\u003C\u002Fspan>\u003Cspan class=\"katex-html\" aria-hidden=\"true\">\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.6833em;\">\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.109em;\">N\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Feq>，attention 的数据并行度为 \u003Ceq>\u003Cspan class=\"katex\">\u003Cspan class=\"katex-mathml\">\u003Cmath xmlns=\"http:\u002F\u002Fwww.w3.org\u002F1998\u002FMath\u002FMathML\">\u003Csemantics>\u003Cmrow>\u003Cmsub>\u003Cmi>D\u003C\u002Fmi>\u003Cmi>a\u003C\u002Fmi>\u003C\u002Fmsub>\u003C\u002Fmrow>\u003Cannotation encoding=\"application\u002Fx-tex\">D_a\u003C\u002Fannotation>\u003C\u002Fsemantics>\u003C\u002Fmath>\u003C\u002Fspan>\u003Cspan class=\"katex-html\" aria-hidden=\"true\">\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.8333em;vertical-align:-0.15em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.0278em;\">D\u003C\u002Fspan>\u003Cspan class=\"msupsub\">\u003Cspan class=\"vlist-t vlist-t2\">\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.1514em;\">\u003Cspan style=\"top:-2.55em;margin-left:-0.0278em;margin-right:0.05em;\">\u003Cspan class=\"pstrut\" style=\"height:2.7em;\">\u003C\u002Fspan>\u003Cspan class=\"sizing reset-size6 size3 mtight\">\u003Cspan class=\"mord mathnormal mtight\">a\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-s\">​\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.15em;\">\u003Cspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Feq>，专家参数的数据并行度为 \u003Ceq>\u003Cspan class=\"katex\">\u003Cspan class=\"katex-mathml\">\u003Cmath xmlns=\"http:\u002F\u002Fwww.w3.org\u002F1998\u002FMath\u002FMathML\">\u003Csemantics>\u003Cmrow>\u003Cmsub>\u003Cmi>D\u003C\u002Fmi>\u003Cmi>e\u003C\u002Fmi>\u003C\u002Fmsub>\u003C\u002Fmrow>\u003Cannotation encoding=\"application\u002Fx-tex\">D_e\u003C\u002Fannotation>\u003C\u002Fsemantics>\u003C\u002Fmath>\u003C\u002Fspan>\u003Cspan class=\"katex-html\" aria-hidden=\"true\">\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.8333em;vertical-align:-0.15em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.0278em;\">D\u003C\u002Fspan>\u003Cspan class=\"msupsub\">\u003Cspan class=\"vlist-t vlist-t2\">\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.1514em;\">\u003Cspan style=\"top:-2.55em;margin-left:-0.0278em;margin-right:0.05em;\">\u003Cspan class=\"pstrut\" style=\"height:2.7em;\">\u003C\u002Fspan>\u003Cspan class=\"sizing reset-size6 size3 mtight\">\u003Cspan class=\"mord mathnormal mtight\">e\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-s\">​\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.15em;\">\u003Cspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Feq>。在本文采用的普通 folding 配置下，不加入额外的 GTP 重物化维度，有：\u003C\u002Fp>\n\u003Csection>\u003Ceqn>\u003Cspan class=\"katex-display\">\u003Cspan class=\"katex\">\u003Cspan class=\"katex-mathml\">\u003Cmath xmlns=\"http:\u002F\u002Fwww.w3.org\u002F1998\u002FMath\u002FMathML\" display=\"block\">\u003Csemantics>\u003Cmrow>\u003Cmfrac>\u003Cmi>N\u003C\u002Fmi>\u003Cmrow>\u003Cmi>P\u003C\u002Fmi>\u003Cmi>P\u003C\u002Fmi>\u003C\u002Fmrow>\u003C\u002Fmfrac>\u003Cmo>=\u003C\u002Fmo>\u003Cmi>T\u003C\u002Fmi>\u003Cmi>P\u003C\u002Fmi>\u003Cmo>×\u003C\u002Fmo>\u003Cmi>C\u003C\u002Fmi>\u003Cmi>P\u003C\u002Fmi>\u003Cmo>×\u003C\u002Fmo>\u003Cmsub>\u003Cmi>D\u003C\u002Fmi>\u003Cmi>a\u003C\u002Fmi>\u003C\u002Fmsub>\u003Cmo>=\u003C\u002Fmo>\u003Cmi>E\u003C\u002Fmi>\u003Cmi>T\u003C\u002Fmi>\u003Cmi>P\u003C\u002Fmi>\u003Cmo>×\u003C\u002Fmo>\u003Cmi>E\u003C\u002Fmi>\u003Cmi>P\u003C\u002Fmi>\u003Cmo>×\u003C\u002Fmo>\u003Cmsub>\u003Cmi>D\u003C\u002Fmi>\u003Cmi>e\u003C\u002Fmi>\u003C\u002Fmsub>\u003Cmi mathvariant=\"normal\">.\u003C\u002Fmi>\u003C\u002Fmrow>\u003Cannotation encoding=\"application\u002Fx-tex\">\n\\frac{N}{PP}=TP\\times CP\\times D_a=ETP\\times EP\\times D_e.\n\u003C\u002Fannotation>\u003C\u002Fsemantics>\u003C\u002Fmath>\u003C\u002Fspan>\u003Cspan class=\"katex-html\" aria-hidden=\"true\">\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:2.0463em;vertical-align:-0.686em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mopen nulldelimiter\">\u003C\u002Fspan>\u003Cspan class=\"mfrac\">\u003Cspan class=\"vlist-t vlist-t2\">\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:1.3603em;\">\u003Cspan style=\"top:-2.314em;\">\u003Cspan class=\"pstrut\" style=\"height:3em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.1389em;\">P\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.1389em;\">P\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"top:-3.23em;\">\u003Cspan class=\"pstrut\" style=\"height:3em;\">\u003C\u002Fspan>\u003Cspan class=\"frac-line\" style=\"border-bottom-width:0.04em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"top:-3.677em;\">\u003Cspan class=\"pstrut\" style=\"height:3em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.109em;\">N\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-s\">​\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.686em;\">\u003Cspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"mclose nulldelimiter\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003Cspan class=\"mrel\">=\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.7667em;vertical-align:-0.0833em;\">\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.1389em;\">T\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.1389em;\">P\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2222em;\">\u003C\u002Fspan>\u003Cspan class=\"mbin\">×\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2222em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.7667em;vertical-align:-0.0833em;\">\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.0715em;\">C\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.1389em;\">P\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2222em;\">\u003C\u002Fspan>\u003Cspan class=\"mbin\">×\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2222em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.8333em;vertical-align:-0.15em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.0278em;\">D\u003C\u002Fspan>\u003Cspan class=\"msupsub\">\u003Cspan class=\"vlist-t vlist-t2\">\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.1514em;\">\u003Cspan style=\"top:-2.55em;margin-left:-0.0278em;margin-right:0.05em;\">\u003Cspan class=\"pstrut\" style=\"height:2.7em;\">\u003C\u002Fspan>\u003Cspan class=\"sizing reset-size6 size3 mtight\">\u003Cspan class=\"mord mathnormal mtight\">a\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-s\">​\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.15em;\">\u003Cspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003Cspan class=\"mrel\">=\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.7667em;vertical-align:-0.0833em;\">\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.0576em;\">E\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.1389em;\">T\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.1389em;\">P\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2222em;\">\u003C\u002Fspan>\u003Cspan class=\"mbin\">×\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2222em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.7667em;vertical-align:-0.0833em;\">\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.0576em;\">E\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.1389em;\">P\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2222em;\">\u003C\u002Fspan>\u003Cspan class=\"mbin\">×\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2222em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.8333em;vertical-align:-0.15em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.0278em;\">D\u003C\u002Fspan>\u003Cspan class=\"msupsub\">\u003Cspan class=\"vlist-t vlist-t2\">\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.1514em;\">\u003Cspan style=\"top:-2.55em;margin-left:-0.0278em;margin-right:0.05em;\">\u003Cspan class=\"pstrut\" style=\"height:2.7em;\">\u003C\u002Fspan>\u003Cspan class=\"sizing reset-size6 size3 mtight\">\u003Cspan class=\"mord mathnormal mtight\">e\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-s\">​\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.15em;\">\u003Cspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"mord\">.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Feqn>\u003C\u002Fsection>\u003Cp>用 1024 卡、PP8、TP1、CP1、ETP1、EP64 代入：\u003C\u002Fp>\n\u003Csection>\u003Ceqn>\u003Cspan class=\"katex-display\">\u003Cspan class=\"katex\">\u003Cspan class=\"katex-mathml\">\u003Cmath xmlns=\"http:\u002F\u002Fwww.w3.org\u002F1998\u002FMath\u002FMathML\" display=\"block\">\u003Csemantics>\u003Cmrow>\u003Cmsub>\u003Cmi>D\u003C\u002Fmi>\u003Cmi>a\u003C\u002Fmi>\u003C\u002Fmsub>\u003Cmo>=\u003C\u002Fmo>\u003Cmfrac>\u003Cmn>1024\u003C\u002Fmn>\u003Cmrow>\u003Cmn>8\u003C\u002Fmn>\u003Cmo>×\u003C\u002Fmo>\u003Cmn>1\u003C\u002Fmn>\u003Cmo>×\u003C\u002Fmo>\u003Cmn>1\u003C\u002Fmn>\u003C\u002Fmrow>\u003C\u002Fmfrac>\u003Cmo>=\u003C\u002Fmo>\u003Cmn>128\u003C\u002Fmn>\u003Cmo separator=\"true\">,\u003C\u002Fmo>\u003Cmspace width=\"2em\"\u002F>\u003Cmsub>\u003Cmi>D\u003C\u002Fmi>\u003Cmi>e\u003C\u002Fmi>\u003C\u002Fmsub>\u003Cmo>=\u003C\u002Fmo>\u003Cmfrac>\u003Cmn>1024\u003C\u002Fmn>\u003Cmrow>\u003Cmn>8\u003C\u002Fmn>\u003Cmo>×\u003C\u002Fmo>\u003Cmn>1\u003C\u002Fmn>\u003Cmo>×\u003C\u002Fmo>\u003Cmn>64\u003C\u002Fmn>\u003C\u002Fmrow>\u003C\u002Fmfrac>\u003Cmo>=\u003C\u002Fmo>\u003Cmn>2.\u003C\u002Fmn>\u003C\u002Fmrow>\u003Cannotation encoding=\"application\u002Fx-tex\">\nD_a=\\frac{1024}{8\\times1\\times1}=128,\n\\qquad\nD_e=\\frac{1024}{8\\times1\\times64}=2.\n\u003C\u002Fannotation>\u003C\u002Fsemantics>\u003C\u002Fmath>\u003C\u002Fspan>\u003Cspan class=\"katex-html\" aria-hidden=\"true\">\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.8333em;vertical-align:-0.15em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.0278em;\">D\u003C\u002Fspan>\u003Cspan class=\"msupsub\">\u003Cspan class=\"vlist-t vlist-t2\">\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.1514em;\">\u003Cspan style=\"top:-2.55em;margin-left:-0.0278em;margin-right:0.05em;\">\u003Cspan class=\"pstrut\" style=\"height:2.7em;\">\u003C\u002Fspan>\u003Cspan class=\"sizing reset-size6 size3 mtight\">\u003Cspan class=\"mord mathnormal mtight\">a\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-s\">​\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.15em;\">\u003Cspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003Cspan class=\"mrel\">=\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:2.0908em;vertical-align:-0.7693em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mopen nulldelimiter\">\u003C\u002Fspan>\u003Cspan class=\"mfrac\">\u003Cspan class=\"vlist-t vlist-t2\">\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:1.3214em;\">\u003Cspan style=\"top:-2.314em;\">\u003Cspan class=\"pstrut\" style=\"height:3em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mord\">8\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2222em;\">\u003C\u002Fspan>\u003Cspan class=\"mbin\">×\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2222em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">1\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2222em;\">\u003C\u002Fspan>\u003Cspan class=\"mbin\">×\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2222em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">1\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"top:-3.23em;\">\u003Cspan class=\"pstrut\" style=\"height:3em;\">\u003C\u002Fspan>\u003Cspan class=\"frac-line\" style=\"border-bottom-width:0.04em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"top:-3.677em;\">\u003Cspan class=\"pstrut\" style=\"height:3em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mord\">1024\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-s\">​\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.7693em;\">\u003Cspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"mclose nulldelimiter\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003Cspan class=\"mrel\">=\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.8778em;vertical-align:-0.1944em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">128\u003C\u002Fspan>\u003Cspan class=\"mpunct\">,\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:2em;\">\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.1667em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.0278em;\">D\u003C\u002Fspan>\u003Cspan class=\"msupsub\">\u003Cspan class=\"vlist-t vlist-t2\">\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.1514em;\">\u003Cspan style=\"top:-2.55em;margin-left:-0.0278em;margin-right:0.05em;\">\u003Cspan class=\"pstrut\" style=\"height:2.7em;\">\u003C\u002Fspan>\u003Cspan class=\"sizing reset-size6 size3 mtight\">\u003Cspan class=\"mord mathnormal mtight\">e\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-s\">​\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.15em;\">\u003Cspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003Cspan class=\"mrel\">=\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:2.0908em;vertical-align:-0.7693em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mopen nulldelimiter\">\u003C\u002Fspan>\u003Cspan class=\"mfrac\">\u003Cspan class=\"vlist-t vlist-t2\">\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:1.3214em;\">\u003Cspan style=\"top:-2.314em;\">\u003Cspan class=\"pstrut\" style=\"height:3em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mord\">8\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2222em;\">\u003C\u002Fspan>\u003Cspan class=\"mbin\">×\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2222em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">1\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2222em;\">\u003C\u002Fspan>\u003Cspan class=\"mbin\">×\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2222em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">64\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"top:-3.23em;\">\u003Cspan class=\"pstrut\" style=\"height:3em;\">\u003C\u002Fspan>\u003Cspan class=\"frac-line\" style=\"border-bottom-width:0.04em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"top:-3.677em;\">\u003Cspan class=\"pstrut\" style=\"height:3em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mord\">1024\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-s\">​\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.7693em;\">\u003Cspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"mclose nulldelimiter\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003Cspan class=\"mrel\">=\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.6444em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">2.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Feqn>\u003C\u002Fsection>\u003Cp>每个 stage 有 128 张 GPU。attention 对应 128 个数据副本；MoE 对应 2 组专家副本，每组用 64 张 GPU 放置专家。\u003C\u002Fp>\n\u003Cp>下面的图只表示逻辑分组，不表示额外申请了 GPU。\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"\u002Fimage\u002Fdeepseek-v4-parallelism\u002Fparallel-folding.svg\" alt=\"同一批 GPU 在 Attention 和 MoE 路径中的逻辑分组\">\u003C\u002Fp>\n\u003Cp>这里 EP 已经包含在同一批 GPU 的另一套分组里。如果再写成 \u003Ceq>\u003Cspan class=\"katex\">\u003Cspan class=\"katex-mathml\">\u003Cmath xmlns=\"http:\u002F\u002Fwww.w3.org\u002F1998\u002FMath\u002FMathML\">\u003Csemantics>\u003Cmrow>\u003Cmi>N\u003C\u002Fmi>\u003Cmo>=\u003C\u002Fmo>\u003Cmi>T\u003C\u002Fmi>\u003Cmi>P\u003C\u002Fmi>\u003Cmo>×\u003C\u002Fmo>\u003Cmi>P\u003C\u002Fmi>\u003Cmi>P\u003C\u002Fmi>\u003Cmo>×\u003C\u002Fmo>\u003Cmi>C\u003C\u002Fmi>\u003Cmi>P\u003C\u002Fmi>\u003Cmo>×\u003C\u002Fmo>\u003Cmi>D\u003C\u002Fmi>\u003Cmi>P\u003C\u002Fmi>\u003Cmo>×\u003C\u002Fmo>\u003Cmi>E\u003C\u002Fmi>\u003Cmi>P\u003C\u002Fmi>\u003C\u002Fmrow>\u003Cannotation encoding=\"application\u002Fx-tex\">N=TP\\times PP\\times CP\\times DP\\times EP\u003C\u002Fannotation>\u003C\u002Fsemantics>\u003C\u002Fmath>\u003C\u002Fspan>\u003Cspan class=\"katex-html\" aria-hidden=\"true\">\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.6833em;\">\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.109em;\">N\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003Cspan class=\"mrel\">=\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.7667em;vertical-align:-0.0833em;\">\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.1389em;\">T\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.1389em;\">P\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2222em;\">\u003C\u002Fspan>\u003Cspan class=\"mbin\">×\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2222em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.7667em;vertical-align:-0.0833em;\">\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.1389em;\">P\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.1389em;\">P\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2222em;\">\u003C\u002Fspan>\u003Cspan class=\"mbin\">×\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2222em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.7667em;vertical-align:-0.0833em;\">\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.0715em;\">C\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.1389em;\">P\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2222em;\">\u003C\u002Fspan>\u003Cspan class=\"mbin\">×\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2222em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.7667em;vertical-align:-0.0833em;\">\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.0278em;\">D\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.1389em;\">P\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2222em;\">\u003C\u002Fspan>\u003Cspan class=\"mbin\">×\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2222em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.6833em;\">\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.0576em;\">E\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.1389em;\">P\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Feq>，就会重复计算 GPU。dense 参数和 expert 参数的同步组也不相同，通信量与优化器分片都要分别核算。\u003C\u002Fp>\n\u003Ch2 id=\"post-heading-显存先按最重的-rank-算\">显存先按最重的 rank 算\u003C\u002Fh2>\n\u003Cp>模型状态只是一部分。一个 rank 的峰值显存可以拆成：\u003C\u002Fp>\n\u003Csection>\u003Ceqn>\u003Cspan class=\"katex-display\">\u003Cspan class=\"katex\">\u003Cspan class=\"katex-mathml\">\u003Cmath xmlns=\"http:\u002F\u002Fwww.w3.org\u002F1998\u002FMath\u002FMathML\" display=\"block\">\u003Csemantics>\u003Cmrow>\u003Cmsub>\u003Cmi>M\u003C\u002Fmi>\u003Cmrow>\u003Cmi>p\u003C\u002Fmi>\u003Cmi>e\u003C\u002Fmi>\u003Cmi>a\u003C\u002Fmi>\u003Cmi>k\u003C\u002Fmi>\u003C\u002Fmrow>\u003C\u002Fmsub>\u003Cmo>=\u003C\u002Fmo>\u003Cmsub>\u003Cmi>M\u003C\u002Fmi>\u003Cmrow>\u003Cmi>w\u003C\u002Fmi>\u003Cmi>e\u003C\u002Fmi>\u003Cmi>i\u003C\u002Fmi>\u003Cmi>g\u003C\u002Fmi>\u003Cmi>h\u003C\u002Fmi>\u003Cmi>t\u003C\u002Fmi>\u003C\u002Fmrow>\u003C\u002Fmsub>\u003Cmo>+\u003C\u002Fmo>\u003Cmsub>\u003Cmi>M\u003C\u002Fmi>\u003Cmrow>\u003Cmi>g\u003C\u002Fmi>\u003Cmi>r\u003C\u002Fmi>\u003Cmi>a\u003C\u002Fmi>\u003Cmi>d\u003C\u002Fmi>\u003C\u002Fmrow>\u003C\u002Fmsub>\u003Cmo>+\u003C\u002Fmo>\u003Cmsub>\u003Cmi>M\u003C\u002Fmi>\u003Cmrow>\u003Cmi>o\u003C\u002Fmi>\u003Cmi>p\u003C\u002Fmi>\u003Cmi>t\u003C\u002Fmi>\u003Cmi>i\u003C\u002Fmi>\u003Cmi>m\u003C\u002Fmi>\u003Cmi>i\u003C\u002Fmi>\u003Cmi>z\u003C\u002Fmi>\u003Cmi>e\u003C\u002Fmi>\u003Cmi>r\u003C\u002Fmi>\u003C\u002Fmrow>\u003C\u002Fmsub>\u003Cmo>+\u003C\u002Fmo>\u003Cmsub>\u003Cmi>M\u003C\u002Fmi>\u003Cmrow>\u003Cmi>a\u003C\u002Fmi>\u003Cmi>c\u003C\u002Fmi>\u003Cmi>t\u003C\u002Fmi>\u003Cmi>i\u003C\u002Fmi>\u003Cmi>v\u003C\u002Fmi>\u003Cmi>a\u003C\u002Fmi>\u003Cmi>t\u003C\u002Fmi>\u003Cmi>i\u003C\u002Fmi>\u003Cmi>o\u003C\u002Fmi>\u003Cmi>n\u003C\u002Fmi>\u003C\u002Fmrow>\u003C\u002Fmsub>\u003Cmo>+\u003C\u002Fmo>\u003Cmsub>\u003Cmi>M\u003C\u002Fmi>\u003Cmrow>\u003Cmi>c\u003C\u002Fmi>\u003Cmi>o\u003C\u002Fmi>\u003Cmi>m\u003C\u002Fmi>\u003Cmi>m\u003C\u002Fmi>\u003Cmi>u\u003C\u002Fmi>\u003Cmi>n\u003C\u002Fmi>\u003Cmi>i\u003C\u002Fmi>\u003Cmi>c\u003C\u002Fmi>\u003Cmi>a\u003C\u002Fmi>\u003Cmi>t\u003C\u002Fmi>\u003Cmi>i\u003C\u002Fmi>\u003Cmi>o\u003C\u002Fmi>\u003Cmi>n\u003C\u002Fmi>\u003C\u002Fmrow>\u003C\u002Fmsub>\u003Cmo>+\u003C\u002Fmo>\u003Cmsub>\u003Cmi>M\u003C\u002Fmi>\u003Cmrow>\u003Cmi>w\u003C\u002Fmi>\u003Cmi>o\u003C\u002Fmi>\u003Cmi>r\u003C\u002Fmi>\u003Cmi>k\u003C\u002Fmi>\u003Cmi>s\u003C\u002Fmi>\u003Cmi>p\u003C\u002Fmi>\u003Cmi>a\u003C\u002Fmi>\u003Cmi>c\u003C\u002Fmi>\u003Cmi>e\u003C\u002Fmi>\u003C\u002Fmrow>\u003C\u002Fmsub>\u003Cmo>+\u003C\u002Fmo>\u003Cmsub>\u003Cmi>M\u003C\u002Fmi>\u003Cmrow>\u003Cmi>r\u003C\u002Fmi>\u003Cmi>u\u003C\u002Fmi>\u003Cmi>n\u003C\u002Fmi>\u003Cmi>t\u003C\u002Fmi>\u003Cmi>i\u003C\u002Fmi>\u003Cmi>m\u003C\u002Fmi>\u003Cmi>e\u003C\u002Fmi>\u003C\u002Fmrow>\u003C\u002Fmsub>\u003Cmi mathvariant=\"normal\">.\u003C\u002Fmi>\u003C\u002Fmrow>\u003Cannotation encoding=\"application\u002Fx-tex\">\nM_{peak}=M_{weight}+M_{grad}+M_{optimizer}\n+M_{activation}+M_{communication}+M_{workspace}+M_{runtime}.\n\u003C\u002Fannotation>\u003C\u002Fsemantics>\u003C\u002Fmath>\u003C\u002Fspan>\u003Cspan class=\"katex-html\" aria-hidden=\"true\">\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.9694em;vertical-align:-0.2861em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.109em;\">M\u003C\u002Fspan>\u003Cspan class=\"msupsub\">\u003Cspan class=\"vlist-t vlist-t2\">\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.3361em;\">\u003Cspan style=\"top:-2.55em;margin-left:-0.109em;margin-right:0.05em;\">\u003Cspan class=\"pstrut\" style=\"height:2.7em;\">\u003C\u002Fspan>\u003Cspan class=\"sizing reset-size6 size3 mtight\">\u003Cspan class=\"mord mtight\">\u003Cspan class=\"mord mathnormal mtight\">p\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">e\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\" style=\"margin-right:0.0315em;\">ak\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-s\">​\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.2861em;\">\u003Cspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003Cspan class=\"mrel\">=\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.9694em;vertical-align:-0.2861em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.109em;\">M\u003C\u002Fspan>\u003Cspan class=\"msupsub\">\u003Cspan class=\"vlist-t vlist-t2\">\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.3361em;\">\u003Cspan style=\"top:-2.55em;margin-left:-0.109em;margin-right:0.05em;\">\u003Cspan class=\"pstrut\" style=\"height:2.7em;\">\u003C\u002Fspan>\u003Cspan class=\"sizing reset-size6 size3 mtight\">\u003Cspan class=\"mord mtight\">\u003Cspan class=\"mord mathnormal mtight\" style=\"margin-right:0.0269em;\">w\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">e\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">i\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\" style=\"margin-right:0.0359em;\">g\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">h\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">t\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-s\">​\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.2861em;\">\u003Cspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2222em;\">\u003C\u002Fspan>\u003Cspan class=\"mbin\">+\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2222em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.9694em;vertical-align:-0.2861em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.109em;\">M\u003C\u002Fspan>\u003Cspan class=\"msupsub\">\u003Cspan class=\"vlist-t vlist-t2\">\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.3361em;\">\u003Cspan style=\"top:-2.55em;margin-left:-0.109em;margin-right:0.05em;\">\u003Cspan class=\"pstrut\" style=\"height:2.7em;\">\u003C\u002Fspan>\u003Cspan class=\"sizing reset-size6 size3 mtight\">\u003Cspan class=\"mord mtight\">\u003Cspan class=\"mord mathnormal mtight\" style=\"margin-right:0.0359em;\">g\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\" style=\"margin-right:0.0278em;\">r\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">a\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">d\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-s\">​\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.2861em;\">\u003Cspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2222em;\">\u003C\u002Fspan>\u003Cspan class=\"mbin\">+\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2222em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.9694em;vertical-align:-0.2861em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.109em;\">M\u003C\u002Fspan>\u003Cspan class=\"msupsub\">\u003Cspan class=\"vlist-t vlist-t2\">\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.3117em;\">\u003Cspan style=\"top:-2.55em;margin-left:-0.109em;margin-right:0.05em;\">\u003Cspan class=\"pstrut\" style=\"height:2.7em;\">\u003C\u002Fspan>\u003Cspan class=\"sizing reset-size6 size3 mtight\">\u003Cspan class=\"mord mtight\">\u003Cspan class=\"mord mathnormal mtight\">o\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">pt\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">imi\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\" style=\"margin-right:0.044em;\">z\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\" style=\"margin-right:0.0278em;\">er\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-s\">​\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.2861em;\">\u003Cspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2222em;\">\u003C\u002Fspan>\u003Cspan class=\"mbin\">+\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2222em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.8333em;vertical-align:-0.15em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.109em;\">M\u003C\u002Fspan>\u003Cspan class=\"msupsub\">\u003Cspan class=\"vlist-t vlist-t2\">\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.3117em;\">\u003Cspan style=\"top:-2.55em;margin-left:-0.109em;margin-right:0.05em;\">\u003Cspan class=\"pstrut\" style=\"height:2.7em;\">\u003C\u002Fspan>\u003Cspan class=\"sizing reset-size6 size3 mtight\">\u003Cspan class=\"mord mtight\">\u003Cspan class=\"mord mathnormal mtight\">a\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">c\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">t\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">i\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\" style=\"margin-right:0.0359em;\">v\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">a\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">t\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">i\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">o\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">n\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-s\">​\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.15em;\">\u003Cspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2222em;\">\u003C\u002Fspan>\u003Cspan class=\"mbin\">+\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2222em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.8333em;vertical-align:-0.15em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.109em;\">M\u003C\u002Fspan>\u003Cspan class=\"msupsub\">\u003Cspan class=\"vlist-t vlist-t2\">\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.3117em;\">\u003Cspan style=\"top:-2.55em;margin-left:-0.109em;margin-right:0.05em;\">\u003Cspan class=\"pstrut\" style=\"height:2.7em;\">\u003C\u002Fspan>\u003Cspan class=\"sizing reset-size6 size3 mtight\">\u003Cspan class=\"mord mtight\">\u003Cspan class=\"mord mathnormal mtight\">co\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">mm\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">u\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">ni\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">c\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">a\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">t\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">i\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">o\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">n\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-s\">​\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.15em;\">\u003Cspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2222em;\">\u003C\u002Fspan>\u003Cspan class=\"mbin\">+\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2222em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.9694em;vertical-align:-0.2861em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.109em;\">M\u003C\u002Fspan>\u003Cspan class=\"msupsub\">\u003Cspan class=\"vlist-t vlist-t2\">\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.3361em;\">\u003Cspan style=\"top:-2.55em;margin-left:-0.109em;margin-right:0.05em;\">\u003Cspan class=\"pstrut\" style=\"height:2.7em;\">\u003C\u002Fspan>\u003Cspan class=\"sizing reset-size6 size3 mtight\">\u003Cspan class=\"mord mtight\">\u003Cspan class=\"mord mathnormal mtight\" style=\"margin-right:0.0269em;\">w\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\" style=\"margin-right:0.0278em;\">or\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\" style=\"margin-right:0.0315em;\">k\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">s\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">p\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">a\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">ce\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-s\">​\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.2861em;\">\u003Cspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2222em;\">\u003C\u002Fspan>\u003Cspan class=\"mbin\">+\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2222em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.8333em;vertical-align:-0.15em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.109em;\">M\u003C\u002Fspan>\u003Cspan class=\"msupsub\">\u003Cspan class=\"vlist-t vlist-t2\">\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.3117em;\">\u003Cspan style=\"top:-2.55em;margin-left:-0.109em;margin-right:0.05em;\">\u003Cspan class=\"pstrut\" style=\"height:2.7em;\">\u003C\u002Fspan>\u003Cspan class=\"sizing reset-size6 size3 mtight\">\u003Cspan class=\"mord mtight\">\u003Cspan class=\"mord mathnormal mtight\" style=\"margin-right:0.0278em;\">r\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">u\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">n\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">t\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">im\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">e\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-s\">​\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.15em;\">\u003Cspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"mord\">.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Feqn>\u003C\u002Fsection>\u003Cp>最后几项经常决定配置能否运行。比如 dispatch 的接收缓冲要容纳路由波动，融合算子需要工作区，VPP 会改变同时存活的激活数量。只把模型参数除以 GPU 总数，容易漏掉副本和峰值。\u003C\u002Fp>\n\u003Cp>这里先算一个可检查的下界。忽略 bias，一个 SwiGLU routed expert 的三个矩阵共有：\u003C\u002Fp>\n\u003Csection>\u003Ceqn>\u003Cspan class=\"katex-display\">\u003Cspan class=\"katex\">\u003Cspan class=\"katex-mathml\">\u003Cmath xmlns=\"http:\u002F\u002Fwww.w3.org\u002F1998\u002FMath\u002FMathML\" display=\"block\">\u003Csemantics>\u003Cmrow>\u003Cmsub>\u003Cmi>P\u003C\u002Fmi>\u003Cmrow>\u003Cmi>e\u003C\u002Fmi>\u003Cmi>x\u003C\u002Fmi>\u003Cmi>p\u003C\u002Fmi>\u003Cmi>e\u003C\u002Fmi>\u003Cmi>r\u003C\u002Fmi>\u003Cmi>t\u003C\u002Fmi>\u003C\u002Fmrow>\u003C\u002Fmsub>\u003Cmo>=\u003C\u002Fmo>\u003Cmn>3\u003C\u002Fmn>\u003Cmi>h\u003C\u002Fmi>\u003Cmi>f\u003C\u002Fmi>\u003Cmo>=\u003C\u002Fmo>\u003Cmn>3\u003C\u002Fmn>\u003Cmo>×\u003C\u002Fmo>\u003Cmn>7168\u003C\u002Fmn>\u003Cmo>×\u003C\u002Fmo>\u003Cmn>3072\u003C\u002Fmn>\u003Cmo>=\u003C\u002Fmo>\u003Cmn>66\u003C\u002Fmn>\u003Cmo separator=\"true\">,\u003C\u002Fmo>\u003Cmn>060\u003C\u002Fmn>\u003Cmo separator=\"true\">,\u003C\u002Fmo>\u003Cmn>288\u003C\u002Fmn>\u003C\u002Fmrow>\u003Cannotation encoding=\"application\u002Fx-tex\">\nP_{expert}=3hf\n=3\\times7168\\times3072\n=66,060,288\n\u003C\u002Fannotation>\u003C\u002Fsemantics>\u003C\u002Fmath>\u003C\u002Fspan>\u003Cspan class=\"katex-html\" aria-hidden=\"true\">\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.9694em;vertical-align:-0.2861em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.1389em;\">P\u003C\u002Fspan>\u003Cspan class=\"msupsub\">\u003Cspan class=\"vlist-t vlist-t2\">\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.2806em;\">\u003Cspan style=\"top:-2.55em;margin-left:-0.1389em;margin-right:0.05em;\">\u003Cspan class=\"pstrut\" style=\"height:2.7em;\">\u003C\u002Fspan>\u003Cspan class=\"sizing reset-size6 size3 mtight\">\u003Cspan class=\"mord mtight\">\u003Cspan class=\"mord mathnormal mtight\">e\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">x\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">p\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\" style=\"margin-right:0.0278em;\">er\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">t\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-s\">​\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.2861em;\">\u003Cspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003Cspan class=\"mrel\">=\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.8889em;vertical-align:-0.1944em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">3\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal\">h\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.1076em;\">f\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003Cspan class=\"mrel\">=\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.7278em;vertical-align:-0.0833em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">3\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2222em;\">\u003C\u002Fspan>\u003Cspan class=\"mbin\">×\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2222em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.7278em;vertical-align:-0.0833em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">7168\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2222em;\">\u003C\u002Fspan>\u003Cspan class=\"mbin\">×\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2222em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.6444em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">3072\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003Cspan class=\"mrel\">=\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.8389em;vertical-align:-0.1944em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">66\u003C\u002Fspan>\u003Cspan class=\"mpunct\">,\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.1667em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">060\u003C\u002Fspan>\u003Cspan class=\"mpunct\">,\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.1667em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">288\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Feqn>\u003C\u002Fsection>\u003Cp>个参数。假设某个 PP stage 放置 8 个完整的 MoE 层，ETP1，使用 BF16 常驻 routed 权重，且不再对权重做 FSDP 分片，那么：\u003C\u002Fp>\n\u003Csection>\u003Ceqn>\u003Cspan class=\"katex-display\">\u003Cspan class=\"katex\">\u003Cspan class=\"katex-mathml\">\u003Cmath xmlns=\"http:\u002F\u002Fwww.w3.org\u002F1998\u002FMath\u002FMathML\" display=\"block\">\u003Csemantics>\u003Cmrow>\u003Cmsub>\u003Cmi>M\u003C\u002Fmi>\u003Cmrow>\u003Cmi>r\u003C\u002Fmi>\u003Cmi>o\u003C\u002Fmi>\u003Cmi>u\u003C\u002Fmi>\u003Cmi>t\u003C\u002Fmi>\u003Cmi>e\u003C\u002Fmi>\u003Cmi>d\u003C\u002Fmi>\u003Cmtext> \u003C\u002Fmtext>\u003Cmi>w\u003C\u002Fmi>\u003Cmi>e\u003C\u002Fmi>\u003Cmi>i\u003C\u002Fmi>\u003Cmi>g\u003C\u002Fmi>\u003Cmi>h\u003C\u002Fmi>\u003Cmi>t\u003C\u002Fmi>\u003C\u002Fmrow>\u003C\u002Fmsub>\u003Cmo>=\u003C\u002Fmo>\u003Cmn>8\u003C\u002Fmn>\u003Cmo>×\u003C\u002Fmo>\u003Cmfrac>\u003Cmn>384\u003C\u002Fmn>\u003Cmrow>\u003Cmi>E\u003C\u002Fmi>\u003Cmi>P\u003C\u002Fmi>\u003C\u002Fmrow>\u003C\u002Fmfrac>\u003Cmo>×\u003C\u002Fmo>\u003Cmsub>\u003Cmi>P\u003C\u002Fmi>\u003Cmrow>\u003Cmi>e\u003C\u002Fmi>\u003Cmi>x\u003C\u002Fmi>\u003Cmi>p\u003C\u002Fmi>\u003Cmi>e\u003C\u002Fmi>\u003Cmi>r\u003C\u002Fmi>\u003Cmi>t\u003C\u002Fmi>\u003C\u002Fmrow>\u003C\u002Fmsub>\u003Cmo>×\u003C\u002Fmo>\u003Cmn>2.\u003C\u002Fmn>\u003C\u002Fmrow>\u003Cannotation encoding=\"application\u002Fx-tex\">\nM_{routed\\ weight}=8\\times\\frac{384}{EP}\\times P_{expert}\\times2.\n\u003C\u002Fannotation>\u003C\u002Fsemantics>\u003C\u002Fmath>\u003C\u002Fspan>\u003Cspan class=\"katex-html\" aria-hidden=\"true\">\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.9694em;vertical-align:-0.2861em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.109em;\">M\u003C\u002Fspan>\u003Cspan class=\"msupsub\">\u003Cspan class=\"vlist-t vlist-t2\">\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.3361em;\">\u003Cspan style=\"top:-2.55em;margin-left:-0.109em;margin-right:0.05em;\">\u003Cspan class=\"pstrut\" style=\"height:2.7em;\">\u003C\u002Fspan>\u003Cspan class=\"sizing reset-size6 size3 mtight\">\u003Cspan class=\"mord mtight\">\u003Cspan class=\"mord mathnormal mtight\" style=\"margin-right:0.0278em;\">r\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">o\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">u\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">t\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">e\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">d\u003C\u002Fspan>\u003Cspan class=\"mspace mtight\">\u003Cspan class=\"mtight\"> \u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\" style=\"margin-right:0.0269em;\">w\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">e\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">i\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\" style=\"margin-right:0.0359em;\">g\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">h\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">t\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-s\">​\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.2861em;\">\u003Cspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003Cspan class=\"mrel\">=\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.7278em;vertical-align:-0.0833em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">8\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2222em;\">\u003C\u002Fspan>\u003Cspan class=\"mbin\">×\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2222em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:2.0074em;vertical-align:-0.686em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mopen nulldelimiter\">\u003C\u002Fspan>\u003Cspan class=\"mfrac\">\u003Cspan class=\"vlist-t vlist-t2\">\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:1.3214em;\">\u003Cspan style=\"top:-2.314em;\">\u003Cspan class=\"pstrut\" style=\"height:3em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.0576em;\">E\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.1389em;\">P\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"top:-3.23em;\">\u003Cspan class=\"pstrut\" style=\"height:3em;\">\u003C\u002Fspan>\u003Cspan class=\"frac-line\" style=\"border-bottom-width:0.04em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"top:-3.677em;\">\u003Cspan class=\"pstrut\" style=\"height:3em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mord\">384\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-s\">​\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.686em;\">\u003Cspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"mclose nulldelimiter\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2222em;\">\u003C\u002Fspan>\u003Cspan class=\"mbin\">×\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2222em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.9694em;vertical-align:-0.2861em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.1389em;\">P\u003C\u002Fspan>\u003Cspan class=\"msupsub\">\u003Cspan class=\"vlist-t vlist-t2\">\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.2806em;\">\u003Cspan style=\"top:-2.55em;margin-left:-0.1389em;margin-right:0.05em;\">\u003Cspan class=\"pstrut\" style=\"height:2.7em;\">\u003C\u002Fspan>\u003Cspan class=\"sizing reset-size6 size3 mtight\">\u003Cspan class=\"mord mtight\">\u003Cspan class=\"mord mathnormal mtight\">e\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">x\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">p\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\" style=\"margin-right:0.0278em;\">er\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">t\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-s\">​\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.2861em;\">\u003Cspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2222em;\">\u003C\u002Fspan>\u003Cspan class=\"mbin\">×\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2222em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.6444em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">2.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Feqn>\u003C\u002Fsection>\u003Cp>在 1024 卡、PP8、TP1、CP1 下，结果如下。GB 采用十进制单位。\u003C\u002Fp>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth style=\"text-align:right\">EP\u003C\u002Fth>\n\u003Cth style=\"text-align:right\">每层每 rank 的 routed experts\u003C\u002Fth>\n\u003Cth style=\"text-align:right\">expert DP\u003C\u002Fth>\n\u003Cth style=\"text-align:right\">8 层 routed 权重约占\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd style=\"text-align:right\">32\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">12\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">4\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">12.68 GB\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd style=\"text-align:right\">64\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">6\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">2\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">6.34 GB\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd style=\"text-align:right\">128\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">3\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">1\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">3.17 GB\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cp>这个表只计算主体中的 routed 权重，shared expert 和 attention 都没包含，MTP 也没包含。61 个块不均匀划分，意味着各 stage 的实际占用还会不同。\u003C\u002Fp>\n\u003Cp>可以看到，增大 EP 能降低常驻专家权重，但同时缩小了 expert DP。优化器状态若沿 expert DP 分片，其变化就不能直接照抄权重这一列。Muon 还有矩阵完整性和分桶约束，必须以实际实现分配出的状态为准。\u003C\u002Fp>\n\u003Cp>激活占用则要在真实 schedule 下测峰值。选择性重算如果省出了显存，可能允许减少 PP、调整 EP，或者使用效率更高的 microbatch。比较方案时，要把这些后续变化一起考虑，只比较同一配置中开关重算的耗时，可能错过更好的组合。\u003C\u002Fp>\n\u003Ch2 id=\"post-heading-pp-和-microbatch-要一起看\">PP 和 microbatch 要一起看\u003C\u002Fh2>\n\u003Cp>设全局 batch 为 \u003Ceq>\u003Cspan class=\"katex\">\u003Cspan class=\"katex-mathml\">\u003Cmath xmlns=\"http:\u002F\u002Fwww.w3.org\u002F1998\u002FMath\u002FMathML\">\u003Csemantics>\u003Cmrow>\u003Cmi>B\u003C\u002Fmi>\u003C\u002Fmrow>\u003Cannotation encoding=\"application\u002Fx-tex\">B\u003C\u002Fannotation>\u003C\u002Fsemantics>\u003C\u002Fmath>\u003C\u002Fspan>\u003Cspan class=\"katex-html\" aria-hidden=\"true\">\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.6833em;\">\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.0502em;\">B\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Feq> 条 packed 序列，一个 microbatch 有 \u003Ceq>\u003Cspan class=\"katex\">\u003Cspan class=\"katex-mathml\">\u003Cmath xmlns=\"http:\u002F\u002Fwww.w3.org\u002F1998\u002FMath\u002FMathML\">\u003Csemantics>\u003Cmrow>\u003Cmi>b\u003C\u002Fmi>\u003C\u002Fmrow>\u003Cannotation encoding=\"application\u002Fx-tex\">b\u003C\u002Fannotation>\u003C\u002Fsemantics>\u003C\u002Fmath>\u003C\u002Fspan>\u003Cspan class=\"katex-html\" aria-hidden=\"true\">\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.6944em;\">\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal\">b\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Feq> 条，attention DP 为 \u003Ceq>\u003Cspan class=\"katex\">\u003Cspan class=\"katex-mathml\">\u003Cmath xmlns=\"http:\u002F\u002Fwww.w3.org\u002F1998\u002FMath\u002FMathML\">\u003Csemantics>\u003Cmrow>\u003Cmsub>\u003Cmi>D\u003C\u002Fmi>\u003Cmi>a\u003C\u002Fmi>\u003C\u002Fmsub>\u003C\u002Fmrow>\u003Cannotation encoding=\"application\u002Fx-tex\">D_a\u003C\u002Fannotation>\u003C\u002Fsemantics>\u003C\u002Fmath>\u003C\u002Fspan>\u003Cspan class=\"katex-html\" aria-hidden=\"true\">\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.8333em;vertical-align:-0.15em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.0278em;\">D\u003C\u002Fspan>\u003Cspan class=\"msupsub\">\u003Cspan class=\"vlist-t vlist-t2\">\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.1514em;\">\u003Cspan style=\"top:-2.55em;margin-left:-0.0278em;margin-right:0.05em;\">\u003Cspan class=\"pstrut\" style=\"height:2.7em;\">\u003C\u002Fspan>\u003Cspan class=\"sizing reset-size6 size3 mtight\">\u003Cspan class=\"mord mathnormal mtight\">a\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-s\">​\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.15em;\">\u003Cspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Feq>，每次参数更新累积 \u003Ceq>\u003Cspan class=\"katex\">\u003Cspan class=\"katex-mathml\">\u003Cmath xmlns=\"http:\u002F\u002Fwww.w3.org\u002F1998\u002FMath\u002FMathML\">\u003Csemantics>\u003Cmrow>\u003Cmi>m\u003C\u002Fmi>\u003C\u002Fmrow>\u003Cannotation encoding=\"application\u002Fx-tex\">m\u003C\u002Fannotation>\u003C\u002Fsemantics>\u003C\u002Fmath>\u003C\u002Fspan>\u003Cspan class=\"katex-html\" aria-hidden=\"true\">\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.4306em;\">\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal\">m\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Feq> 个 microbatch，则：\u003C\u002Fp>\n\u003Csection>\u003Ceqn>\u003Cspan class=\"katex-display\">\u003Cspan class=\"katex\">\u003Cspan class=\"katex-mathml\">\u003Cmath xmlns=\"http:\u002F\u002Fwww.w3.org\u002F1998\u002FMath\u002FMathML\" display=\"block\">\u003Csemantics>\u003Cmrow>\u003Cmi>B\u003C\u002Fmi>\u003Cmo>=\u003C\u002Fmo>\u003Cmi>b\u003C\u002Fmi>\u003Cmsub>\u003Cmi>D\u003C\u002Fmi>\u003Cmi>a\u003C\u002Fmi>\u003C\u002Fmsub>\u003Cmi>m\u003C\u002Fmi>\u003Cmo separator=\"true\">,\u003C\u002Fmo>\u003Cmspace width=\"2em\"\u002F>\u003Cmi>m\u003C\u002Fmi>\u003Cmo>=\u003C\u002Fmo>\u003Cmfrac>\u003Cmi>B\u003C\u002Fmi>\u003Cmrow>\u003Cmi>b\u003C\u002Fmi>\u003Cmsub>\u003Cmi>D\u003C\u002Fmi>\u003Cmi>a\u003C\u002Fmi>\u003C\u002Fmsub>\u003C\u002Fmrow>\u003C\u002Fmfrac>\u003Cmi mathvariant=\"normal\">.\u003C\u002Fmi>\u003C\u002Fmrow>\u003Cannotation encoding=\"application\u002Fx-tex\">\nB=bD_am,\\qquad m=\\frac{B}{bD_a}.\n\u003C\u002Fannotation>\u003C\u002Fsemantics>\u003C\u002Fmath>\u003C\u002Fspan>\u003Cspan class=\"katex-html\" aria-hidden=\"true\">\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.6833em;\">\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.0502em;\">B\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003Cspan class=\"mrel\">=\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.8889em;vertical-align:-0.1944em;\">\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal\">b\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.0278em;\">D\u003C\u002Fspan>\u003Cspan class=\"msupsub\">\u003Cspan class=\"vlist-t vlist-t2\">\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.1514em;\">\u003Cspan style=\"top:-2.55em;margin-left:-0.0278em;margin-right:0.05em;\">\u003Cspan class=\"pstrut\" style=\"height:2.7em;\">\u003C\u002Fspan>\u003Cspan class=\"sizing reset-size6 size3 mtight\">\u003Cspan class=\"mord mathnormal mtight\">a\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-s\">​\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.15em;\">\u003Cspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal\">m\u003C\u002Fspan>\u003Cspan class=\"mpunct\">,\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:2em;\">\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.1667em;\">\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal\">m\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003Cspan class=\"mrel\">=\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:2.1963em;vertical-align:-0.836em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mopen nulldelimiter\">\u003C\u002Fspan>\u003Cspan class=\"mfrac\">\u003Cspan class=\"vlist-t vlist-t2\">\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:1.3603em;\">\u003Cspan style=\"top:-2.314em;\">\u003Cspan class=\"pstrut\" style=\"height:3em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mord mathnormal\">b\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.0278em;\">D\u003C\u002Fspan>\u003Cspan class=\"msupsub\">\u003Cspan class=\"vlist-t vlist-t2\">\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.1514em;\">\u003Cspan style=\"top:-2.55em;margin-left:-0.0278em;margin-right:0.05em;\">\u003Cspan class=\"pstrut\" style=\"height:2.7em;\">\u003C\u002Fspan>\u003Cspan class=\"sizing reset-size6 size3 mtight\">\u003Cspan class=\"mord mathnormal mtight\">a\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-s\">​\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.15em;\">\u003Cspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"top:-3.23em;\">\u003Cspan class=\"pstrut\" style=\"height:3em;\">\u003C\u002Fspan>\u003Cspan class=\"frac-line\" style=\"border-bottom-width:0.04em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"top:-3.677em;\">\u003Cspan class=\"pstrut\" style=\"height:3em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.0502em;\">B\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-s\">​\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.836em;\">\u003Cspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"mclose nulldelimiter\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"mord\">.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Feqn>\u003C\u002Fsection>\u003Cp>这里讨论固定长度、固定样本数的静态 packing。CP 分开计算同一条序列，EP 改变专家放置，两者都不增加独立样本数。动态 packing 应另查实际的 token budget 和 microbatch 计算方式。\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FMegatron-LM\u002Fblob\u002Fed9c2c8c1cf4a5438922ae8d215181e7c8b9e0fe\u002Fmegatron\u002Fcore\u002Fnum_microbatches_calculator.py#L367\" target=\"_blank\" rel=\"noopener noreferrer\">Megatron microbatch 计算实现\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>为了看清扩容后的变化，固定 \u003Ceq>\u003Cspan class=\"katex\">\u003Cspan class=\"katex-mathml\">\u003Cmath xmlns=\"http:\u002F\u002Fwww.w3.org\u002F1998\u002FMath\u002FMathML\">\u003Csemantics>\u003Cmrow>\u003Cmi>B\u003C\u002Fmi>\u003Cmo>=\u003C\u002Fmo>\u003Cmn>4096\u003C\u002Fmn>\u003C\u002Fmrow>\u003Cannotation encoding=\"application\u002Fx-tex\">B=4096\u003C\u002Fannotation>\u003C\u002Fsemantics>\u003C\u002Fmath>\u003C\u002Fspan>\u003Cspan class=\"katex-html\" aria-hidden=\"true\">\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.6833em;\">\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.0502em;\">B\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003Cspan class=\"mrel\">=\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.6444em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">4096\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Feq>、\u003Ceq>\u003Cspan class=\"katex\">\u003Cspan class=\"katex-mathml\">\u003Cmath xmlns=\"http:\u002F\u002Fwww.w3.org\u002F1998\u002FMath\u002FMathML\">\u003Csemantics>\u003Cmrow>\u003Cmi>b\u003C\u002Fmi>\u003Cmo>=\u003C\u002Fmo>\u003Cmn>1\u003C\u002Fmn>\u003C\u002Fmrow>\u003Cannotation encoding=\"application\u002Fx-tex\">b=1\u003C\u002Fannotation>\u003C\u002Fsemantics>\u003C\u002Fmath>\u003C\u002Fspan>\u003Cspan class=\"katex-html\" aria-hidden=\"true\">\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.6944em;\">\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal\">b\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003Cspan class=\"mrel\">=\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.6444em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">1\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Feq>、序列长度 \u003Ceq>\u003Cspan class=\"katex\">\u003Cspan class=\"katex-mathml\">\u003Cmath xmlns=\"http:\u002F\u002Fwww.w3.org\u002F1998\u002FMath\u002FMathML\">\u003Csemantics>\u003Cmrow>\u003Cmi>S\u003C\u002Fmi>\u003Cmo>=\u003C\u002Fmo>\u003Cmn>8192\u003C\u002Fmn>\u003C\u002Fmrow>\u003Cannotation encoding=\"application\u002Fx-tex\">S=8192\u003C\u002Fannotation>\u003C\u002Fsemantics>\u003C\u002Fmath>\u003C\u002Fspan>\u003Cspan class=\"katex-html\" aria-hidden=\"true\">\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.6833em;\">\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.0576em;\">S\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003Cspan class=\"mrel\">=\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.6444em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">8192\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Feq>，TP1、PP8、EP64、ETP1。每次更新处理的 packed token 位置总数都是 \u003Ceq>\u003Cspan class=\"katex\">\u003Cspan class=\"katex-mathml\">\u003Cmath xmlns=\"http:\u002F\u002Fwww.w3.org\u002F1998\u002FMath\u002FMathML\">\u003Csemantics>\u003Cmrow>\u003Cmn>4096\u003C\u002Fmn>\u003Cmo>×\u003C\u002Fmo>\u003Cmn>8192\u003C\u002Fmn>\u003Cmo>=\u003C\u002Fmo>\u003Cmn>33\u003C\u002Fmn>\u003Cmo separator=\"true\">,\u003C\u002Fmo>\u003Cmn>554\u003C\u002Fmn>\u003Cmo separator=\"true\">,\u003C\u002Fmo>\u003Cmn>432\u003C\u002Fmn>\u003C\u002Fmrow>\u003Cannotation encoding=\"application\u002Fx-tex\">4096\\times8192=33,554,432\u003C\u002Fannotation>\u003C\u002Fsemantics>\u003C\u002Fmath>\u003C\u002Fspan>\u003Cspan class=\"katex-html\" aria-hidden=\"true\">\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.7278em;vertical-align:-0.0833em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">4096\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2222em;\">\u003C\u002Fspan>\u003Cspan class=\"mbin\">×\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2222em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.6444em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">8192\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003Cspan class=\"mrel\">=\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.8389em;vertical-align:-0.1944em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">33\u003C\u002Fspan>\u003Cspan class=\"mpunct\">,\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.1667em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">554\u003C\u002Fspan>\u003Cspan class=\"mpunct\">,\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.1667em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">432\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Feq>；如果存在 padding 或 loss mask，实际计入损失的 token 数还要单独统计。\u003C\u002Fp>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>配置\u003C\u002Fth>\n\u003Cth style=\"text-align:right\">GPU\u003C\u002Fth>\n\u003Cth style=\"text-align:right\">CP\u003C\u002Fth>\n\u003Cth style=\"text-align:right\">attention DP\u003C\u002Fth>\n\u003Cth style=\"text-align:right\">expert DP\u003C\u002Fth>\n\u003Cth style=\"text-align:right\">累积 microbatch 数 \u003Ceq>\u003Cspan class=\"katex\">\u003Cspan class=\"katex-mathml\">\u003Cmath xmlns=\"http:\u002F\u002Fwww.w3.org\u002F1998\u002FMath\u002FMathML\">\u003Csemantics>\u003Cmrow>\u003Cmi>m\u003C\u002Fmi>\u003C\u002Fmrow>\u003Cannotation encoding=\"application\u002Fx-tex\">m\u003C\u002Fannotation>\u003C\u002Fsemantics>\u003C\u002Fmath>\u003C\u002Fspan>\u003Cspan class=\"katex-html\" aria-hidden=\"true\">\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.4306em;\">\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal\">m\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Feq>\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>A，千卡起点\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">1024\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">1\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">128\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">2\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">32\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>B，主要扩 DP\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">8192\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">1\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">1024\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">16\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">4\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>C，增加 CP\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">8192\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">4\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">256\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">16\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">16\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cp>这些配置满足分组与 batch 的算术约束，尚未证明显存、数值或性能可行。其中 C 还依赖前面列出的 V4 packed CP 条件。\u003C\u002Fp>\n\u003Cp>对均衡的、非交错的 1F1B 流水线，设 stage 数为 \u003Ceq>\u003Cspan class=\"katex\">\u003Cspan class=\"katex-mathml\">\u003Cmath xmlns=\"http:\u002F\u002Fwww.w3.org\u002F1998\u002FMath\u002FMathML\">\u003Csemantics>\u003Cmrow>\u003Cmi>p\u003C\u002Fmi>\u003C\u002Fmrow>\u003Cannotation encoding=\"application\u002Fx-tex\">p\u003C\u002Fannotation>\u003C\u002Fsemantics>\u003C\u002Fmath>\u003C\u002Fspan>\u003Cspan class=\"katex-html\" aria-hidden=\"true\">\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.625em;vertical-align:-0.1944em;\">\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal\">p\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Feq>，忽略通信和优化器时间，气泡占比可以粗估为：\u003C\u002Fp>\n\u003Csection>\u003Ceqn>\u003Cspan class=\"katex-display\">\u003Cspan class=\"katex\">\u003Cspan class=\"katex-mathml\">\u003Cmath xmlns=\"http:\u002F\u002Fwww.w3.org\u002F1998\u002FMath\u002FMathML\" display=\"block\">\u003Csemantics>\u003Cmrow>\u003Cmsub>\u003Cmi>f\u003C\u002Fmi>\u003Cmrow>\u003Cmi>b\u003C\u002Fmi>\u003Cmi>u\u003C\u002Fmi>\u003Cmi>b\u003C\u002Fmi>\u003Cmi>b\u003C\u002Fmi>\u003Cmi>l\u003C\u002Fmi>\u003Cmi>e\u003C\u002Fmi>\u003C\u002Fmrow>\u003C\u002Fmsub>\u003Cmo>≈\u003C\u002Fmo>\u003Cmfrac>\u003Cmrow>\u003Cmi>p\u003C\u002Fmi>\u003Cmo>−\u003C\u002Fmo>\u003Cmn>1\u003C\u002Fmn>\u003C\u002Fmrow>\u003Cmrow>\u003Cmi>m\u003C\u002Fmi>\u003Cmo>+\u003C\u002Fmo>\u003Cmi>p\u003C\u002Fmi>\u003Cmo>−\u003C\u002Fmo>\u003Cmn>1\u003C\u002Fmn>\u003C\u002Fmrow>\u003C\u002Fmfrac>\u003Cmi mathvariant=\"normal\">.\u003C\u002Fmi>\u003C\u002Fmrow>\u003Cannotation encoding=\"application\u002Fx-tex\">\nf_{bubble}\\approx\\frac{p-1}{m+p-1}.\n\u003C\u002Fannotation>\u003C\u002Fsemantics>\u003C\u002Fmath>\u003C\u002Fspan>\u003Cspan class=\"katex-html\" aria-hidden=\"true\">\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.8889em;vertical-align:-0.1944em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.1076em;\">f\u003C\u002Fspan>\u003Cspan class=\"msupsub\">\u003Cspan class=\"vlist-t vlist-t2\">\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.3361em;\">\u003Cspan style=\"top:-2.55em;margin-left:-0.1076em;margin-right:0.05em;\">\u003Cspan class=\"pstrut\" style=\"height:2.7em;\">\u003C\u002Fspan>\u003Cspan class=\"sizing reset-size6 size3 mtight\">\u003Cspan class=\"mord mtight\">\u003Cspan class=\"mord mathnormal mtight\">b\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">u\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">bb\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\" style=\"margin-right:0.0197em;\">l\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">e\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-s\">​\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.15em;\">\u003Cspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003Cspan class=\"mrel\">≈\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:2.2019em;vertical-align:-0.8804em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mopen nulldelimiter\">\u003C\u002Fspan>\u003Cspan class=\"mfrac\">\u003Cspan class=\"vlist-t vlist-t2\">\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:1.3214em;\">\u003Cspan style=\"top:-2.314em;\">\u003Cspan class=\"pstrut\" style=\"height:3em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mord mathnormal\">m\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2222em;\">\u003C\u002Fspan>\u003Cspan class=\"mbin\">+\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2222em;\">\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal\">p\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2222em;\">\u003C\u002Fspan>\u003Cspan class=\"mbin\">−\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2222em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">1\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"top:-3.23em;\">\u003Cspan class=\"pstrut\" style=\"height:3em;\">\u003C\u002Fspan>\u003Cspan class=\"frac-line\" style=\"border-bottom-width:0.04em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"top:-3.677em;\">\u003Cspan class=\"pstrut\" style=\"height:3em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mord mathnormal\">p\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2222em;\">\u003C\u002Fspan>\u003Cspan class=\"mbin\">−\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2222em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">1\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-s\">​\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.8804em;\">\u003Cspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"mclose nulldelimiter\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"mord\">.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Feqn>\u003C\u002Fsection>\u003Cp>代入 \u003Ceq>\u003Cspan class=\"katex\">\u003Cspan class=\"katex-mathml\">\u003Cmath xmlns=\"http:\u002F\u002Fwww.w3.org\u002F1998\u002FMath\u002FMathML\">\u003Csemantics>\u003Cmrow>\u003Cmi>p\u003C\u002Fmi>\u003Cmo>=\u003C\u002Fmo>\u003Cmn>8\u003C\u002Fmn>\u003C\u002Fmrow>\u003Cannotation encoding=\"application\u002Fx-tex\">p=8\u003C\u002Fannotation>\u003C\u002Fsemantics>\u003C\u002Fmath>\u003C\u002Fspan>\u003Cspan class=\"katex-html\" aria-hidden=\"true\">\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.625em;vertical-align:-0.1944em;\">\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal\">p\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003Cspan class=\"mrel\">=\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.6444em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">8\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Feq>，A、B、C 分别约为 17.9%、63.6%、30.4%。这是理想调度的估算，实际 V4 的混合 attention、mHC 和 stage 不均衡都会改变结果。\u003C\u002Fp>\n\u003Cp>B 从 A 扩了 8 倍 GPU，每个流水线副本的 microbatch 却从 32 降到 4，流水线填充和排空的代价更难摊薄。C 通过 CP 减少 attention DP，把 microbatch 数提高到 16；后面还需要检查它增加的通信与计算形状变化。\u003C\u002Fp>\n\u003Cp>这里有一个容易遗漏的实现条件。当前交错 VPP schedule 要求 \u003Ccode>PP ≤ microbatch_group_size ≤ m\u003C\u002Fcode>，B 的 \u003Ceq>\u003Cspan class=\"katex\">\u003Cspan class=\"katex-mathml\">\u003Cmath xmlns=\"http:\u002F\u002Fwww.w3.org\u002F1998\u002FMath\u002FMathML\">\u003Csemantics>\u003Cmrow>\u003Cmi>m\u003C\u002Fmi>\u003Cmo>=\u003C\u002Fmo>\u003Cmn>4\u003C\u002Fmn>\u003Cmo>&lt;\u003C\u002Fmo>\u003Cmi>P\u003C\u002Fmi>\u003Cmi>P\u003C\u002Fmi>\u003Cmo>=\u003C\u002Fmo>\u003Cmn>8\u003C\u002Fmn>\u003C\u002Fmrow>\u003Cannotation encoding=\"application\u002Fx-tex\">m=4&lt;PP=8\u003C\u002Fannotation>\u003C\u002Fsemantics>\u003C\u002Fmath>\u003C\u002Fspan>\u003Cspan class=\"katex-html\" aria-hidden=\"true\">\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.4306em;\">\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal\">m\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003Cspan class=\"mrel\">=\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.6835em;vertical-align:-0.0391em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">4\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003Cspan class=\"mrel\">&lt;\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.6833em;\">\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.1389em;\">P\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.1389em;\">P\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003Cspan class=\"mrel\">=\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.6444em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">8\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Feq>，启用这条 VPP 路径会被拒绝。VPP 的搜索应从合法配置开始。\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FMegatron-LM\u002Fblob\u002Fed9c2c8c1cf4a5438922ae8d215181e7c8b9e0fe\u002Fmegatron\u002Fcore\u002Fpipeline_parallel\u002Fschedules.py#L1152\" target=\"_blank\" rel=\"noopener noreferrer\">schedule 校验\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3 id=\"post-heading-61-个块怎样分给流水线\">61 个块怎样分给流水线\u003C\u002Fh3>\n\u003Cp>61 不能被 8 整除。还要考虑 embedding、prediction head 和 MTP 的额外负载，各 stage 分到相同数量的块也未必等时。\u003C\u002Fp>\n\u003Cp>V4 的 HybridModel 用原始 layer pattern 中的 \u003Ccode>|\u003C\u002Fcode> 表达 pipeline 划分；attention 和 MoE 可分别编码，pattern 的符号数也不等于论文中的 Transformer 块数。这条路径不能同时套用 \u003Ccode>--pipeline-model-parallel-layout\u003C\u002Fcode> 或旧的 VPP 分层参数。\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FMegatron-LM\u002Fblob\u002Fed9c2c8c1cf4a5438922ae8d215181e7c8b9e0fe\u002Fmegatron\u002Ftraining\u002Farguments.py#L734\" target=\"_blank\" rel=\"noopener noreferrer\">参数互斥检查\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>实际调整时，先保留正确的 attention\u002FMoE 顺序，测每段的前向、反向和 P2P 等待时间，再移动切分位置。目标是降低最慢 stage 的时间，同时保持每个 stage 的显存可用。\u003C\u002Fp>\n\u003Cp>VPP 增加交错机会，也会增加边界传输与调度工作。Zero Bubble 进一步把 backward 拆成输入梯度和参数梯度计算，将后者安排到空闲位置；优化器同步也需要专门处理。这些机制适合结合显存和时间线评估。\u003Ca href=\"https:\u002F\u002Farxiv.org\u002Fhtml\u002F2401.10241v1#S2\" target=\"_blank\" rel=\"noopener noreferrer\">Zero Bubble，§2–4\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>DeepSeek 开源的 DualPipe 同样需要模型实现专用的 \u003Ccode>overlapped_forward_backward\u003C\u002Fcode> 接口，通信计算的重叠要由这部分实现完成。\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fdeepseek-ai\u002FDualPipe\" target=\"_blank\" rel=\"noopener noreferrer\">DualPipe 实现说明\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch2 id=\"post-heading-cp-降低气泡之后-还会改变什么\">CP 降低气泡之后，还会改变什么\u003C\u002Fh2>\n\u003Cp>上面的 C 看起来比 B 更容易填满流水线。再算一下专家每次拿到多少 token，就能看到另一个变化。\u003C\u002Fp>\n\u003Cp>在本文 TP1、ETP1 的算例中，假设 EP64 组收集 64 个 rank 的唯一 token，每个 rank 在一次 microbatch 中持有 \u003Ceq>\u003Cspan class=\"katex\">\u003Cspan class=\"katex-mathml\">\u003Cmath xmlns=\"http:\u002F\u002Fwww.w3.org\u002F1998\u002FMath\u002FMathML\">\u003Csemantics>\u003Cmrow>\u003Cmi>b\u003C\u002Fmi>\u003Cmi>S\u003C\u002Fmi>\u003Cmi mathvariant=\"normal\">\u002F\u003C\u002Fmi>\u003Cmi>C\u003C\u002Fmi>\u003Cmi>P\u003C\u002Fmi>\u003C\u002Fmrow>\u003Cannotation encoding=\"application\u002Fx-tex\">bS\u002FCP\u003C\u002Fannotation>\u003C\u002Fsemantics>\u003C\u002Fmath>\u003C\u002Fspan>\u003Cspan class=\"katex-html\" aria-hidden=\"true\">\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\">\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal\">b\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.0576em;\">S\u003C\u002Fspan>\u003Cspan class=\"mord\">\u002F\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.0715em;\">C\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.1389em;\">P\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Feq> 个 token，那么一次 dispatch 覆盖：\u003C\u002Fp>\n\u003Csection>\u003Ceqn>\u003Cspan class=\"katex-display\">\u003Cspan class=\"katex\">\u003Cspan class=\"katex-mathml\">\u003Cmath xmlns=\"http:\u002F\u002Fwww.w3.org\u002F1998\u002FMath\u002FMathML\" display=\"block\">\u003Csemantics>\u003Cmrow>\u003Cmsub>\u003Cmi>T\u003C\u002Fmi>\u003Cmrow>\u003Cmi>g\u003C\u002Fmi>\u003Cmi>r\u003C\u002Fmi>\u003Cmi>o\u003C\u002Fmi>\u003Cmi>u\u003C\u002Fmi>\u003Cmi>p\u003C\u002Fmi>\u003C\u002Fmrow>\u003C\u002Fmsub>\u003Cmo>=\u003C\u002Fmo>\u003Cmi>E\u003C\u002Fmi>\u003Cmi>P\u003C\u002Fmi>\u003Cmo>×\u003C\u002Fmo>\u003Cmfrac>\u003Cmrow>\u003Cmi>b\u003C\u002Fmi>\u003Cmi>S\u003C\u002Fmi>\u003C\u002Fmrow>\u003Cmrow>\u003Cmi>C\u003C\u002Fmi>\u003Cmi>P\u003C\u002Fmi>\u003C\u002Fmrow>\u003C\u002Fmfrac>\u003Cmi mathvariant=\"normal\">.\u003C\u002Fmi>\u003C\u002Fmrow>\u003Cannotation encoding=\"application\u002Fx-tex\">\nT_{group}=EP\\times\\frac{bS}{CP}.\n\u003C\u002Fannotation>\u003C\u002Fsemantics>\u003C\u002Fmath>\u003C\u002Fspan>\u003Cspan class=\"katex-html\" aria-hidden=\"true\">\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.9694em;vertical-align:-0.2861em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.1389em;\">T\u003C\u002Fspan>\u003Cspan class=\"msupsub\">\u003Cspan class=\"vlist-t vlist-t2\">\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.1514em;\">\u003Cspan style=\"top:-2.55em;margin-left:-0.1389em;margin-right:0.05em;\">\u003Cspan class=\"pstrut\" style=\"height:2.7em;\">\u003C\u002Fspan>\u003Cspan class=\"sizing reset-size6 size3 mtight\">\u003Cspan class=\"mord mtight\">\u003Cspan class=\"mord mathnormal mtight\" style=\"margin-right:0.0359em;\">g\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\" style=\"margin-right:0.0278em;\">r\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">o\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">u\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">p\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-s\">​\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.2861em;\">\u003Cspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003Cspan class=\"mrel\">=\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.7667em;vertical-align:-0.0833em;\">\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.0576em;\">E\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.1389em;\">P\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2222em;\">\u003C\u002Fspan>\u003Cspan class=\"mbin\">×\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2222em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:2.0574em;vertical-align:-0.686em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mopen nulldelimiter\">\u003C\u002Fspan>\u003Cspan class=\"mfrac\">\u003Cspan class=\"vlist-t vlist-t2\">\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:1.3714em;\">\u003Cspan style=\"top:-2.314em;\">\u003Cspan class=\"pstrut\" style=\"height:3em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.0715em;\">C\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.1389em;\">P\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"top:-3.23em;\">\u003Cspan class=\"pstrut\" style=\"height:3em;\">\u003C\u002Fspan>\u003Cspan class=\"frac-line\" style=\"border-bottom-width:0.04em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"top:-3.677em;\">\u003Cspan class=\"pstrut\" style=\"height:3em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mord mathnormal\">b\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.0576em;\">S\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-s\">​\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.686em;\">\u003Cspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"mclose nulldelimiter\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"mord\">.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Feqn>\u003C\u002Fsection>\u003Cp>路由完全均匀、没有丢弃或 padding 时，单个 routed expert 接收的 token assignment 期望为：\u003C\u002Fp>\n\u003Csection>\u003Ceqn>\u003Cspan class=\"katex-display\">\u003Cspan class=\"katex\">\u003Cspan class=\"katex-mathml\">\u003Cmath xmlns=\"http:\u002F\u002Fwww.w3.org\u002F1998\u002FMath\u002FMathML\" display=\"block\">\u003Csemantics>\u003Cmrow>\u003Cmi mathvariant=\"double-struck\">E\u003C\u002Fmi>\u003Cmo stretchy=\"false\">[\u003C\u002Fmo>\u003Cmsub>\u003Cmi>T\u003C\u002Fmi>\u003Cmrow>\u003Cmi>e\u003C\u002Fmi>\u003Cmi>x\u003C\u002Fmi>\u003Cmi>p\u003C\u002Fmi>\u003Cmi>e\u003C\u002Fmi>\u003Cmi>r\u003C\u002Fmi>\u003Cmi>t\u003C\u002Fmi>\u003C\u002Fmrow>\u003C\u002Fmsub>\u003Cmo stretchy=\"false\">]\u003C\u002Fmo>\u003Cmo>=\u003C\u002Fmo>\u003Cmfrac>\u003Cmrow>\u003Cmi>k\u003C\u002Fmi>\u003Cmsub>\u003Cmi>T\u003C\u002Fmi>\u003Cmrow>\u003Cmi>g\u003C\u002Fmi>\u003Cmi>r\u003C\u002Fmi>\u003Cmi>o\u003C\u002Fmi>\u003Cmi>u\u003C\u002Fmi>\u003Cmi>p\u003C\u002Fmi>\u003C\u002Fmrow>\u003C\u002Fmsub>\u003C\u002Fmrow>\u003Cmi>E\u003C\u002Fmi>\u003C\u002Fmfrac>\u003Cmo separator=\"true\">,\u003C\u002Fmo>\u003C\u002Fmrow>\u003Cannotation encoding=\"application\u002Fx-tex\">\n\\mathbb{E}[T_{expert}]=\\frac{kT_{group}}{E},\n\u003C\u002Fannotation>\u003C\u002Fsemantics>\u003C\u002Fmath>\u003C\u002Fspan>\u003Cspan class=\"katex-html\" aria-hidden=\"true\">\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:1.0361em;vertical-align:-0.2861em;\">\u003C\u002Fspan>\u003Cspan class=\"mord mathbb\">E\u003C\u002Fspan>\u003Cspan class=\"mopen\">[\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.1389em;\">T\u003C\u002Fspan>\u003Cspan class=\"msupsub\">\u003Cspan class=\"vlist-t vlist-t2\">\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.2806em;\">\u003Cspan style=\"top:-2.55em;margin-left:-0.1389em;margin-right:0.05em;\">\u003Cspan class=\"pstrut\" style=\"height:2.7em;\">\u003C\u002Fspan>\u003Cspan class=\"sizing reset-size6 size3 mtight\">\u003Cspan class=\"mord mtight\">\u003Cspan class=\"mord mathnormal mtight\">e\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">x\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">p\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\" style=\"margin-right:0.0278em;\">er\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">t\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-s\">​\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.2861em;\">\u003Cspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"mclose\">]\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003Cspan class=\"mrel\">=\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:2.0574em;vertical-align:-0.686em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mopen nulldelimiter\">\u003C\u002Fspan>\u003Cspan class=\"mfrac\">\u003Cspan class=\"vlist-t vlist-t2\">\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:1.3714em;\">\u003Cspan style=\"top:-2.314em;\">\u003Cspan class=\"pstrut\" style=\"height:3em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.0576em;\">E\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"top:-3.23em;\">\u003Cspan class=\"pstrut\" style=\"height:3em;\">\u003C\u002Fspan>\u003Cspan class=\"frac-line\" style=\"border-bottom-width:0.04em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"top:-3.677em;\">\u003Cspan class=\"pstrut\" style=\"height:3em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.0315em;\">k\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.1389em;\">T\u003C\u002Fspan>\u003Cspan class=\"msupsub\">\u003Cspan class=\"vlist-t vlist-t2\">\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.1514em;\">\u003Cspan style=\"top:-2.55em;margin-left:-0.1389em;margin-right:0.05em;\">\u003Cspan class=\"pstrut\" style=\"height:2.7em;\">\u003C\u002Fspan>\u003Cspan class=\"sizing reset-size6 size3 mtight\">\u003Cspan class=\"mord mtight\">\u003Cspan class=\"mord mathnormal mtight\" style=\"margin-right:0.0359em;\">g\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\" style=\"margin-right:0.0278em;\">r\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">o\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">u\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">p\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-s\">​\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.2861em;\">\u003Cspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-s\">​\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.686em;\">\u003Cspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"mclose nulldelimiter\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"mpunct\">,\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Feqn>\u003C\u002Fsection>\u003Cp>其中 \u003Ceq>\u003Cspan class=\"katex\">\u003Cspan class=\"katex-mathml\">\u003Cmath xmlns=\"http:\u002F\u002Fwww.w3.org\u002F1998\u002FMath\u002FMathML\">\u003Csemantics>\u003Cmrow>\u003Cmi>k\u003C\u002Fmi>\u003Cmo>=\u003C\u002Fmo>\u003Cmn>6\u003C\u002Fmn>\u003C\u002Fmrow>\u003Cannotation encoding=\"application\u002Fx-tex\">k=6\u003C\u002Fannotation>\u003C\u002Fsemantics>\u003C\u002Fmath>\u003C\u002Fspan>\u003Cspan class=\"katex-html\" aria-hidden=\"true\">\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.6944em;\">\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.0315em;\">k\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003Cspan class=\"mrel\">=\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.6444em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">6\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Feq>、\u003Ceq>\u003Cspan class=\"katex\">\u003Cspan class=\"katex-mathml\">\u003Cmath xmlns=\"http:\u002F\u002Fwww.w3.org\u002F1998\u002FMath\u002FMathML\">\u003Csemantics>\u003Cmrow>\u003Cmi>E\u003C\u002Fmi>\u003Cmo>=\u003C\u002Fmo>\u003Cmn>384\u003C\u002Fmn>\u003C\u002Fmrow>\u003Cannotation encoding=\"application\u002Fx-tex\">E=384\u003C\u002Fannotation>\u003C\u002Fsemantics>\u003C\u002Fmath>\u003C\u002Fspan>\u003Cspan class=\"katex-html\" aria-hidden=\"true\">\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.6833em;\">\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.0576em;\">E\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003Cspan class=\"mrel\">=\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.6444em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">384\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Feq>。每个 token 产生 6 个 routed assignment，不包含 shared expert 的工作。\u003C\u002Fp>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>配置\u003C\u002Fth>\n\u003Cth style=\"text-align:right\">每次 dispatch 的唯一 token\u003C\u002Fth>\n\u003Cth style=\"text-align:right\">每个专家的平均 assignment\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>A，CP1\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">524,288\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">8192\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>B，CP1\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">524,288\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">8192\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>C，CP4\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">131,072\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">2048\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cp>C 的累积次数增加了，但单次专家 GEMM 的 token 维度缩小到了四分之一。Grouped GEMM 的效率、量化与 permutation 开销都会随之变化。CP 还增加了 attention 数据交换，所以气泡估算更低的配置，仍可能得到更长的 step time。\u003C\u002Fp>\n\u003Cp>这里也能看出 A 和 B 的一个区别：扩 DP 主要减少了每次更新的累积次数，在这个固定 MBS、固定 EP 的例子中，并没有减少单次 dispatch 的专家 token 数。分析时要明确说的是单次算子、单次更新，还是整个作业的平均工作量。\u003C\u002Fp>\n\u003Cp>真实路由还存在偏斜。平均每个专家 2048 个 assignment，不代表最热专家也是 2048。应同时查看每专家 token 分布，以及每个 rank 的总接收量。一个 rank 放着多个专家，单专家均衡与 rank 均衡是两个相关但不同的问题。\u003C\u002Fp>\n\u003Ch3 id=\"post-heading-长上下文还要验证边界\">长上下文还要验证边界\u003C\u002Fh3>\n\u003Cp>V4 的 CP 要处理压缩块跨 rank 和 packed 样本边界。测试样本应包含长度不整除压缩率的情况，也要覆盖样本边界恰好落在 CP 切分处，以及短长样本混装的情况。\u003C\u002Fp>\n\u003Cp>边界交换还要求每个 rank 的本地 token 行数不少于 \u003Ccode>D_window\u003C\u002Fcode>。本文 8K 序列、CP4 的算例每 rank 有 2048 行；向更短序列或更大 CP 扩展前，应检查这个条件。\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FMegatron-LM\u002Fblob\u002Fed9c2c8c1cf4a5438922ae8d215181e7c8b9e0fe\u002Fmegatron\u002Fcore\u002Ftransformer\u002Fexperimental_attention_variant\u002Fcsa_utils\u002Fcp_utils.py#L119\" target=\"_blank\" rel=\"noopener noreferrer\">CP 边界交换校验\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>比较 CP1 与 CP4 时，保持 token 顺序、样本 mask 和 loss normalization 一致，核对前向结果与梯度。当前 packed 路径没有 deterministic mode，应预先定义数值误差容限，结合短程 loss 和梯度统计判断，不能只凭运行没有报错验收。\u003C\u002Fp>\n\u003Cp>模型支持百万上下文，并不要求所有预训练阶段都采用这个长度。短序列与长序列阶段可以分别搜索配置，切换时还要计入 checkpoint 重分片和恢复成本；本文固定提交的 V4 路径使用 static CP。\u003C\u002Fp>\n\u003Ch2 id=\"post-heading-ep-要连同物理拓扑一起调\">EP 要连同物理拓扑一起调\u003C\u002Fh2>\n\u003Cp>假设每节点 8 GPU，节点内有 NVLink\u002FNVSwitch，那么 EP64 至少跨 8 个节点。这个配置需要跨节点网络承担专家通信。\u003C\u002Fp>\n\u003Cp>先把逻辑 rank 映射到 GPU、NIC 和交换机位置，检查同一 EP 组经过哪些链路。同样的 EP64，如果跨越不同的上联或超售边界，实际表现可能不同。CP、PP 和 DP 通信也可能同时争用这些路径。\u003C\u002Fp>\n\u003Cp>普通 dense 模型中，TP 经常受益于高速节点内互联。但本文核查的 V4 路径固定 TP1，当前优化空间主要在 EP、PP、CP，以及对应的数据并行度。未来实现支持更多 TP 组合后，还需要重新评估层内通信和切分后的矩阵效率。\u003C\u002Fp>\n\u003Cp>MoE Parallel Folding 提供了更灵活的映射方式，便于将频繁通信放到紧凑的互联域；当显存要求专家跨节点时，仍然要支付跨节点通信代价。这个取舍可结合前面的专家权重表判断。\u003Ca href=\"https:\u002F\u002Farxiv.org\u002Fhtml\u002F2504.14960v1#S4.SS4\" target=\"_blank\" rel=\"noopener noreferrer\">MoE Parallel Folding，§4.4\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>测网络时，应使用接近训练的消息尺寸和并发关系。单独运行一次大消息 AllReduce，只能说明这种通信模式的表现；MoE 的 all-to-all 还受到路由偏斜、目标节点数和 token 去重方式影响。\u003C\u002Fp>\n\u003Cp>NVIDIA 的 Hybrid-EP 工程文章讨论了 RDMA 与 NVLink 的分层流水，以及用较少 SM 完成通信的实现。这里值得关注的是通信资源占用，因为这些 SM 和带宽同时也可能被计算需要。\u003Ca href=\"https:\u002F\u002Fdeveloper.nvidia.com\u002Fblog\u002Foptimizing-communication-for-mixture-of-experts-training-with-hybrid-expert-parallel\u002F\" target=\"_blank\" rel=\"noopener noreferrer\">Hybrid Expert Parallel\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch2 id=\"post-heading-怎样判断通信真的被隐藏了\">怎样判断通信真的被隐藏了\u003C\u002Fh2>\n\u003Cp>先看一个 MoE 前向的数据依赖。\u003C\u002Fp>\n\u003Cdiv class=\"code-block\" data-code-block>\u003Cdiv class=\"code-toolbar\">\u003Cspan class=\"code-language\">text\u003C\u002Fspan>\u003Cbutton type=\"button\" class=\"code-copy\" data-copy-code aria-label=\"复制代码\" title=\"复制代码\">\u003Csvg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\" aria-hidden=\"true\" focusable=\"false\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\u003Crect x=\"8\" y=\"8\" width=\"13\" height=\"13\" rx=\"2\"\u002F>\u003Cpath d=\"M16 8V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h3\"\u002F>\u003C\u002Fsvg>\u003C\u002Fbutton>\u003C\u002Fdiv>\u003Cdiv class=\"code-viewport\">\u003Cdiv class=\"code-line-numbers\" aria-hidden=\"true\">\u003Cspan>1\u003C\u002Fspan>\u003C\u002Fdiv>\u003Cpre class=\"hljs\" tabindex=\"0\" aria-label=\"代码，超出宽度时可横向滚动\">\u003Ccode>router → permutation → dispatch → expert GEMM → combine → 恢复顺序\n\u003C\u002Fcode>\u003C\u002Fpre>\u003C\u002Fdiv>\u003C\u002Fdiv>\n\u003Cp>反向还有对应的数据交换。整步训练同时存在 PP 的 P2P、dense\u002Fexpert 参数梯度同步，以及优化器更新。各路径能够重叠，所有 NCCL kernel 的耗时相加通常大于它们对 step time 的实际贡献。\u003C\u002Fp>\n\u003Cp>调优要看关键路径上的等待。例如 expert GEMM 在什么时刻拿到输入，最后一个 combine 是否拖住后续计算，最后一桶梯度是否延后了 optimizer。时间线中两种颜色重叠，只说明执行区间有交集。\u003C\u002Fp>\n\u003Cp>通信可能占用 SM 和 HBM 带宽，导致旁边的 GEMM 变慢。启用 overlap 后，应该同时比较 step time、GEMM duration 和显存峰值；只有通信等待减少、计算没有付出更大代价，整步才能加速。\u003C\u002Fp>\n\u003Cp>下面这些现象可以作为下一轮实验的线索。\u003C\u002Fp>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>观察到的现象\u003C\u002Fth>\n\u003Cth>接下来检查什么\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>dispatch\u002Fcombine 明显暴露，网络吞吐偏低\u003C\u002Ftd>\n\u003Ctd>消息大小、rank\u002FNIC 映射、路由偏斜与通信 backend\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>overlap 后 GEMM 变长，step 几乎不变\u003C\u002Ftd>\n\u003Ctd>通信 SM 配额、HBM 争用、并发流数量\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>最后几个 stage 经常等待\u003C\u002Ftd>\n\u003Ctd>stage 划分、首尾额外工作、P2P 边界与 microbatch 数\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>FP8 后计算缩短，通信占比反而上升\u003C\u002Ftd>\n\u003Ctd>原先被计算覆盖的通信尾部、量化与 launch 开销\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>吞吐偶发下降，平均值看不出异常\u003C\u002Ftd>\n\u003Ctd>最慢 rank、热专家、NIC 异常和数据等待\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cp>Grouped GEMM、融合和 CUDA Graph 也需要在完整迭代中比较。NVIDIA 2026 年的融合内核文章同时给出了算子与端到端收益：其 V3 完整栈测试中，端到端提升为 8%。算子加速和整步加速之间的差异，正好说明剩余路径仍然占时间。\u003Ca href=\"https:\u002F\u002Fdeveloper.nvidia.com\u002Fblog\u002Fboosting-moe-training-throughput-with-advanced-fusion-kernels\u002F\" target=\"_blank\" rel=\"noopener noreferrer\">MoE Fusion Kernels\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>低精度优化改变了计算和通信的比例，原先合适的 EP 或 overlap 配置可能需要重调。本文的 BF16 权重核算仅用于解释存储；使用 FP8 等训练 recipe 后，要按实际保存的主权重、梯度和优化器状态重新计算。\u003C\u002Fp>\n\u003Ch2 id=\"post-heading-公开实验可以说明到哪一步\">公开实验可以说明到哪一步\u003C\u002Fh2>\n\u003Cp>把论文结果放在一起时，先保留它们的比较条件。\u003C\u002Fp>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>来源\u003C\u002Fth>\n\u003Cth>原文中的设置与结果\u003C\u002Fth>\n\u003Cth>对本次调优的启发\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>Llama 3，2024\u003C\u002Ftd>\n\u003Ctd>405B dense 模型；固定约 16M token\u002Fbatch、8K 序列，8192 H100 的 BF16 MFU 为 43%，16384 H100 为 41%\u003C\u002Ftd>\n\u003Ctd>固定全局 batch 扩 DP，单副本 batch 缩小，会影响扩展效率\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>MegaScale，2024\u003C\u002Ftd>\n\u003Ctd>175B 模型，12288 张 Ampere GPU，2K 序列，batch 6144，MFU 55.2%\u003C\u002Ftd>\n\u003Ctd>万卡效率还依赖数据流水、通信重叠与故障诊断\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>MoE Parallel Folding，2025\u003C\u002Ftd>\n\u003Ctd>MoE 评测扩到 1024 张 H100，并测试长上下文；性能基准使用 capacity factor=1 的 token dropping\u003C\u002Ftd>\n\u003Ctd>分组与 dispatcher 可以共同优化；路由实验条件必须写明\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Megatron Core MoE 报告，2026\u003C\u002Ftd>\n\u003Ctd>V3、1024 H100、4K 序列、FP8 blockwise，报告 1412 token\u002Fs\u002FGPU；性能配置使用 force-balanced routing\u003C\u002Ftd>\n\u003Ctd>可作为系统能力参考，仍需用自然路由验证尾部与真实吞吐\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cp>数据分别来自 \u003Ca href=\"https:\u002F\u002Farxiv.org\u002Fhtml\u002F2407.21783v3#S3.SS3.SSS2\" target=\"_blank\" rel=\"noopener noreferrer\">Llama 3 Table 4\u003C\u002Fa>、\u003Ca href=\"https:\u002F\u002Farxiv.org\u002Fhtml\u002F2402.15627v1#S6\" target=\"_blank\" rel=\"noopener noreferrer\">MegaScale §6\u003C\u002Fa>、\u003Ca href=\"https:\u002F\u002Farxiv.org\u002Fhtml\u002F2504.14960v1#S4\" target=\"_blank\" rel=\"noopener noreferrer\">Parallel Folding §4\u003C\u002Fa>、\u003Ca href=\"https:\u002F\u002Farxiv.org\u002Fhtml\u002F2603.07685v1#S8.SS2\" target=\"_blank\" rel=\"noopener noreferrer\">Megatron Core MoE §8.2\u003C\u002Fa>。\u003C\u002Fp>\n\u003Cp>这些结果回答的是各自实验中的系统问题。尤其是 token dropping 和 force-balanced routing，会改变专家工作量分布。用它们分析实现上限之后，正式候选仍应在目标路由语义下比较，并记录 token drop\u002Fpadding 的实际数量。\u003C\u002Fp>\n\u003Cp>MFU 也要保持口径一致。MoE 计算量应按实际激活专家和 attention 结构估算；把全部 1.6T 参数代入 dense 模型的 \u003Ceq>\u003Cspan class=\"katex\">\u003Cspan class=\"katex-mathml\">\u003Cmath xmlns=\"http:\u002F\u002Fwww.w3.org\u002F1998\u002FMath\u002FMathML\">\u003Csemantics>\u003Cmrow>\u003Cmn>6\u003C\u002Fmn>\u003Cmi>N\u003C\u002Fmi>\u003Cmi>T\u003C\u002Fmi>\u003C\u002Fmrow>\u003Cannotation encoding=\"application\u002Fx-tex\">6NT\u003C\u002Fannotation>\u003C\u002Fsemantics>\u003C\u002Fmath>\u003C\u002Fspan>\u003Cspan class=\"katex-html\" aria-hidden=\"true\">\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.6833em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">6\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.109em;\">N\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.1389em;\">T\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Feq> 近似，会高估有效模型工作。重算和 padding 产生的额外计算，应与模型必需计算分开报告。分母则说明采用何种精度的硬件 peak，是否包含结构化稀疏条件。\u003C\u002Fp>\n\u003Ch2 id=\"post-heading-按什么顺序做实验\">按什么顺序做实验\u003C\u002Fh2>\n\u003Cp>首先固定模型与训练语义，再缩小配置范围。一个可用的记录应包含模型设置、tokenizer、packing\u002Fmask、路由方式和优化器，同时保留容器、Megatron 提交与通信库版本。否则，相同的 EP64 也可能运行了不同的计算。\u003C\u002Fp>\n\u003Ch3 id=\"post-heading-从正确性和显存开始\">从正确性和显存开始\u003C\u002Fh3>\n\u003Cp>先在可承受规模上验证 attention、MoE block 和分布式切片，比较前向与梯度，再做短程训练和保存恢复。完整的 1.6T 模型装不进单卡，可以使用可信的模块基线，以及保持关键维度与数据边界的切片实验。\u003C\u002Fp>\n\u003Cp>缩小模型只能验证对应机制。完整模型的显存峰值、专家数量与 stage 负载，仍要在后续集群实验中确认。\u003C\u002Fp>\n\u003Cp>按最重 rank 的显存先筛掉不可行配置，再搜索 PP、EP 和 CP。当前 V4 路径先固定 TP1、ETP1；EP32\u002F64\u002F128 都能整除 384 个专家，可作为候选。其余组合还要检查 stage、microbatch 和 backend 的限制。\u003C\u002Fp>\n\u003Cp>下面只是 A 配置的并行参数片段，需要接在已经验证的 V4 模型、数据和 HybridModel 布局上，不是一条完整启动命令。\u003C\u002Fp>\n\u003Cdiv class=\"code-block\" data-code-block>\u003Cdiv class=\"code-toolbar\">\u003Cspan class=\"code-language\">bash\u003C\u002Fspan>\u003Cbutton type=\"button\" class=\"code-copy\" data-copy-code aria-label=\"复制代码\" title=\"复制代码\">\u003Csvg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\" aria-hidden=\"true\" focusable=\"false\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\u003Crect x=\"8\" y=\"8\" width=\"13\" height=\"13\" rx=\"2\"\u002F>\u003Cpath d=\"M16 8V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h3\"\u002F>\u003C\u002Fsvg>\u003C\u002Fbutton>\u003C\u002Fdiv>\u003Cdiv class=\"code-viewport\">\u003Cdiv class=\"code-line-numbers\" aria-hidden=\"true\">\u003Cspan>1\u003C\u002Fspan>\u003Cspan>2\u003C\u002Fspan>\u003Cspan>3\u003C\u002Fspan>\u003Cspan>4\u003C\u002Fspan>\u003Cspan>5\u003C\u002Fspan>\u003Cspan>6\u003C\u002Fspan>\u003Cspan>7\u003C\u002Fspan>\u003C\u002Fdiv>\u003Cpre class=\"hljs\" tabindex=\"0\" aria-label=\"代码，超出宽度时可横向滚动\">\u003Ccode>--tensor-model-parallel-size 1 \\\n--pipeline-model-parallel-size 8 \\\n--context-parallel-size 1 \\\n--expert-model-parallel-size 64 \\\n--expert-tensor-parallel-size 1 \\\n--micro-batch-size 1 \\\n--global-batch-size 4096\n\u003C\u002Fcode>\u003C\u002Fpre>\u003C\u002Fdiv>\u003C\u002Fdiv>\n\u003Cp>选择通信 backend 时也要固定版本。核查的 Megatron 提交使用 \u003Ccode>--moe-token-dispatcher-type flex\u003C\u002Fcode> 配合 \u003Ccode>--moe-flex-dispatcher-backend\u003C\u002Fcode> 选择实现，旧的 \u003Ccode>--moe-enable-deepep\u003C\u002Fcode> 已弃用；DeepEP 仓库本身的接口也在演进，应把依赖提交一起记录。\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FMegatron-LM\u002Fblob\u002Fed9c2c8c1cf4a5438922ae8d215181e7c8b9e0fe\u002Fmegatron\u002Fcore\u002Ftransformer\u002Ftransformer_config.py\" target=\"_blank\" rel=\"noopener noreferrer\">Megatron 配置校验\u003C\u002Fa>、\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fdeepseek-ai\u002FDeepEP\" target=\"_blank\" rel=\"noopener noreferrer\">DeepEP 仓库\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3 id=\"post-heading-再联合调整调度和算子\">再联合调整调度和算子\u003C\u002Fh3>\n\u003Cp>对能运行的配置，联合检查 MBS、累积数和 stage 划分，再加入实现支持的 VPP 与选择性重算。它们会相互影响，单独的最优参数未必能组成最优配置。\u003C\u002Fp>\n\u003Cp>建立原因判断时，可以先只改一个因素，例如只替换 dispatcher，记录通信等待和整步时间；之后对相关变量做小范围联合搜索。启用低精度、融合或 CUDA Graph 后，再检查计算形状和 overlap，不能沿用优化前的瓶颈判断。\u003C\u002Fp>\n\u003Cp>暖机应覆盖编译、内存分配和 graph capture。测量窗口至少覆盖多个代表性数据批次，记录长度和重复次数；真实路由波动较大时，报告 step time 的 p50\u002Fp95\u002Fp99，并保留异常窗口。\u003C\u002Fp>\n\u003Ch3 id=\"post-heading-扩容时保留两类比较\">扩容时保留两类比较\u003C\u002Fh3>\n\u003Cp>Strong scaling 固定模型、序列和全局 batch，观察 GPU 增多后时间怎样变化。Weak scaling 则相应增大 batch，用来评估另一类扩展能力。后者改变了优化条件，需要同时比较学习率设置、验证 loss 和达到目标质量所需的 token 数。\u003C\u002Fp>\n\u003Cp>从千卡逐步扩到数千卡，再到 8192\u002F16384 这类接近或超过万卡的规模。小规模实验适合排除明显不合适的候选，跨机架争用与尾部问题要留到对应规模验证。\u003C\u002Fp>\n\u003Ch2 id=\"post-heading-最后看长时间的有效吞吐\">最后看长时间的有效吞吐\u003C\u002Fh2>\n\u003Cp>稳态 token\u002Fs 反映训练循环的速度。作业完成时间还包含保存、故障检测、重启和重放，应另算：\u003C\u002Fp>\n\u003Csection>\u003Ceqn>\u003Cspan class=\"katex-display\">\u003Cspan class=\"katex\">\u003Cspan class=\"katex-mathml\">\u003Cmath xmlns=\"http:\u002F\u002Fwww.w3.org\u002F1998\u002FMath\u002FMathML\" display=\"block\">\u003Csemantics>\u003Cmrow>\u003Cmsub>\u003Cmi>Q\u003C\u002Fmi>\u003Cmrow>\u003Cmi>e\u003C\u002Fmi>\u003Cmi>f\u003C\u002Fmi>\u003Cmi>f\u003C\u002Fmi>\u003Cmi>e\u003C\u002Fmi>\u003Cmi>c\u003C\u002Fmi>\u003Cmi>t\u003C\u002Fmi>\u003Cmi>i\u003C\u002Fmi>\u003Cmi>v\u003C\u002Fmi>\u003Cmi>e\u003C\u002Fmi>\u003C\u002Fmrow>\u003C\u002Fmsub>\u003Cmo>=\u003C\u002Fmo>\u003Cmfrac>\u003Cmtext>成功推进且没有被回滚的训练 token\u003C\u002Fmtext>\u003Cmtext>总墙钟时间\u003C\u002Fmtext>\u003C\u002Fmfrac>\u003Cmi mathvariant=\"normal\">.\u003C\u002Fmi>\u003C\u002Fmrow>\u003Cannotation encoding=\"application\u002Fx-tex\">\nQ_{effective}=\\frac{\\text{成功推进且没有被回滚的训练 token}}{\\text{总墙钟时间}}.\n\u003C\u002Fannotation>\u003C\u002Fsemantics>\u003C\u002Fmath>\u003C\u002Fspan>\u003Cspan class=\"katex-html\" aria-hidden=\"true\">\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:0.9694em;vertical-align:-0.2861em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mord mathnormal\">Q\u003C\u002Fspan>\u003Cspan class=\"msupsub\">\u003Cspan class=\"vlist-t vlist-t2\">\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.3361em;\">\u003Cspan style=\"top:-2.55em;margin-left:0em;margin-right:0.05em;\">\u003Cspan class=\"pstrut\" style=\"height:2.7em;\">\u003C\u002Fspan>\u003Cspan class=\"sizing reset-size6 size3 mtight\">\u003Cspan class=\"mord mtight\">\u003Cspan class=\"mord mathnormal mtight\">e\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\" style=\"margin-right:0.1076em;\">f\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\" style=\"margin-right:0.1076em;\">f\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">ec\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">t\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">i\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\" style=\"margin-right:0.0359em;\">v\u003C\u002Fspan>\u003Cspan class=\"mord mathnormal mtight\">e\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-s\">​\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.2861em;\">\u003Cspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003Cspan class=\"mrel\">=\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"base\">\u003Cspan class=\"strut\" style=\"height:2.0574em;vertical-align:-0.686em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mopen nulldelimiter\">\u003C\u002Fspan>\u003Cspan class=\"mfrac\">\u003Cspan class=\"vlist-t vlist-t2\">\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:1.3714em;\">\u003Cspan style=\"top:-2.314em;\">\u003Cspan class=\"pstrut\" style=\"height:3em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mord text\">\u003Cspan class=\"mord cjk_fallback\">总墙钟时间\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"top:-3.23em;\">\u003Cspan class=\"pstrut\" style=\"height:3em;\">\u003C\u002Fspan>\u003Cspan class=\"frac-line\" style=\"border-bottom-width:0.04em;\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"top:-3.677em;\">\u003Cspan class=\"pstrut\" style=\"height:3em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mord text\">\u003Cspan class=\"mord cjk_fallback\">成功推进且没有被回滚的训练\u003C\u002Fspan>\u003Cspan class=\"mord\"> token\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-s\">​\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.686em;\">\u003Cspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"mclose nulldelimiter\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"mord\">.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Feqn>\u003C\u002Fsection>\u003Cp>例如，两组配置的稳态吞吐与有效训练时间占比，假设分别为 100 万 token\u002Fs、90%，以及 110 万 token\u002Fs、80%，那么有效吞吐约为 90 万和 88 万 token\u002Fs。这是说明计算方法的假设数据。更高的瞬时吞吐，可能被更频繁的故障和恢复抵消。\u003C\u002Fp>\n\u003Cp>Llama 3 报告在一个 54 天的训练快照中记录了 466 次作业中断，有效训练时间仍超过 90%。大规模训练的验收需要包含诊断与恢复能力。\u003Ca href=\"https:\u002F\u002Farxiv.org\u002Fhtml\u002F2407.21783v3#S3.SS3.SSS4\" target=\"_blank\" rel=\"noopener noreferrer\">Llama 3 §3.3.4\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>保存恢复至少检查模型参数、优化器状态和学习率进度，还要验证数据游标与各 rank 随机状态。若计划修改 PP、EP 或 CP 后恢复，应单独验证该版本的重分片能力，测量转换时间与恢复后的数值表现。\u003C\u002Fp>\n\u003Cp>最终留下的实验记录，可以按下面的项目整理。\u003C\u002Fp>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>项目\u003C\u002Fth>\n\u003Cth>需要留下的证据\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>版本与语义\u003C\u002Ftd>\n\u003Ctd>commit、容器与依赖，模型设置、精度、路由和 packing\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>资源分布\u003C\u002Ftd>\n\u003Ctd>GPU\u002FNIC 拓扑，attention\u002Fexpert 分组，实际 HybridModel 布局\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>每步工作量\u003C\u002Ftd>\n\u003Ctd>GBS、MBS、累积数，有效 token、padding 与 token drop\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>显存\u003C\u002Ftd>\n\u003Ctd>最重 rank 的 allocated\u002Freserved 峰值，激活及通信 buffer\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>端到端时间\u003C\u002Ftd>\n\u003Ctd>连续窗口的 token\u002Fs、step p50\u002Fp95\u002Fp99，最慢 rank\u002Fstage\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>瓶颈解释\u003C\u002Ftd>\n\u003Ctd>时间线中的等待、GEMM 形状、热专家与链路计数\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>训练质量\u003C\u002Ftd>\n\u003Ctd>短程 loss\u002F梯度检查，验证集表现及目标质量条件\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>长期运行\u003C\u002Ftd>\n\u003Ctd>保存与恢复耗时，回滚 token，包含停机的有效吞吐\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cp>一项调优能保留下来，应该能对应到表中的证据：它省下了哪部分时间，付出了多少显存或通信代价，在同样训练语义下是否仍然成立。进入下一轮实验时，先从这项证据还没有解释清楚的地方继续。\u003C\u002Fp>\n",[16,20,23,26,29,33,36,39,42,45,48,51,54,57,60],{"id":17,"text":18,"level":19},"post-heading-先确定模型与实现","先确定模型与实现",2,{"id":21,"text":22,"level":19},"post-heading-并行分组怎样计算","并行分组怎样计算",{"id":24,"text":25,"level":19},"post-heading-显存先按最重的-rank-算","显存先按最重的 rank 算",{"id":27,"text":28,"level":19},"post-heading-pp-和-microbatch-要一起看","PP 和 microbatch 要一起看",{"id":30,"text":31,"level":32},"post-heading-61-个块怎样分给流水线","61 个块怎样分给流水线",3,{"id":34,"text":35,"level":19},"post-heading-cp-降低气泡之后-还会改变什么","CP 降低气泡之后，还会改变什么",{"id":37,"text":38,"level":32},"post-heading-长上下文还要验证边界","长上下文还要验证边界",{"id":40,"text":41,"level":19},"post-heading-ep-要连同物理拓扑一起调","EP 要连同物理拓扑一起调",{"id":43,"text":44,"level":19},"post-heading-怎样判断通信真的被隐藏了","怎样判断通信真的被隐藏了",{"id":46,"text":47,"level":19},"post-heading-公开实验可以说明到哪一步","公开实验可以说明到哪一步",{"id":49,"text":50,"level":19},"post-heading-按什么顺序做实验","按什么顺序做实验",{"id":52,"text":53,"level":32},"post-heading-从正确性和显存开始","从正确性和显存开始",{"id":55,"text":56,"level":32},"post-heading-再联合调整调度和算子","再联合调整调度和算子",{"id":58,"text":59,"level":32},"post-heading-扩容时保留两类比较","扩容时保留两类比较",{"id":61,"text":62,"level":19},"post-heading-最后看长时间的有效吞吐","最后看长时间的有效吞吐",1792995406007]