设模型总层数为 n,单卡最大承载层数为 c,micro batch 数为 m,硬件总卡数为 h。
可行的 PP 需要满足:
在大模型训练的流水线并行(Pipeline Parallelism,PP)场景中,模型会按层拆分到多张加速卡(NPU/GPU)上。PP 数值等于并行阶段数或使用的加速卡数量,其选择会直接影响训练效率。
设模型总层数为 L,单卡最大承载层数为 C,micro batch 数目为 m,硬件总卡数为 T。对于候选值 PP,称其为可行值,当且仅当同时满足:
对任意可行 PP,其气泡率定义为:
m+PP−1PP−1其中 m 为 micro batch 数目。气泡率越小,设备利用率越高。
要求在满足以下优先级的前提下选择最优方案:
最终需要输出最优 PP 值以及对应的气泡率,气泡率四舍五入保留四位小数。如果没有可行 PP,或输入参数不合法,输出 -1 -1。
输入包含一行,其中有四个由空格分隔的整数,依次表示模型总层数、单卡最大承载层数、micro batch 数目和硬件总卡数。
如果存在可行 PP,输出一行两个用空格分隔的值:最优 PP 值和一个保留四位小数的气泡率。如果不存在可行 PP,或输入参数个数不是四个,或任意一个参数不是正整数,则输出 -1 -1。
输入
1 1 1 1
输出
1 0.0000
说明
输入为 1 1 1 1,即 L=1,C=1,m=1,T=1。
可行 PP 需要同时满足 PP≤T、L 能被 PP 整除、PPL≤C。
这里 PP=1 满足全部条件,因此它是最优可行值。
气泡率为 m+PP−1PP−1=10=0,保留四位小数为 0.0000。
所以输出 1 0.0000。
输入
12 3 5 6
输出
4 0.3750
说明
输入为 12 3 5 6,即 L=12,C=3,m=5,T=6。
首先需要满足 PPL≤C,即 PP≥⌈312⌉=4。
同时 PP 必须是 12 的约数,并且 PP≤6。
12 的约数中满足 4≤PP≤6 的有 4 和 6。
其中最小可行 PP 为 4。
气泡率为 5+4−14−1=83=0.375,保留四位小数为 0.3750。
因此输出 4 0.3750。
输入
12 3 -1 6
输出
-1 -1
说明
输入为 12 3 -1 6。
参数中出现了负数 -1,不满足所有参数必须为正整数的要求。
因此该输入不合法,直接输出 -1 -1。
输入
10 2 7 5
输出
5 0.3636
说明
输入为 10 2 7 5,即 L=10,C=2,m=7,T=5。
需要满足 PP≥⌈210⌉=5,同时 PP 是 10 的约数,且 PP≤5。
10 的约数中满足这些条件的只有 5。
因此最优 PP 为 5。
气泡率为 7+5−15−1=114=0.363636⋯,四舍五入保留四位小数为 0.3636。
所以输出 5 0.3636。
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册