解题思路
设模型总层数为 n,单卡最大承载层数为 c,micro batch 数为 m,硬件总卡数为 h。
可行的 PP 需要满足:
- PP≤h
- n
- PPn≤c
P5120.第2题-大模型训练流水线并行(PP)最优估计计算
题目内容
题目背景
在大模型训练流水线并行(PP)训练中,需要模型按层切分割多个加速卡(NPU/GPU)上,PP(Pipeline Parallelism,即加速卡数量/stage数)的选择直接影响训练效率:
- 选择FP 需满足:(1)PP ≤硬件总卡数;(2)单卡分配层数=模型总层数/PP(需为整数);(3)单卡分配层数≤单卡最大承载层数。
- 气泡率公式:气泡率=(PP−1)/(m+PP−1)(m 为 micro batch 数目),气泡越小,设备利用率越高。
题目要求
实现一个算法,输入模型总层数,单卡最大承载层数,micro batch数目、硬件总卡数,输出最优PP值和对应的气泡率(四舍五入,保留四位小数)
优化优先级:
- 优先满足所有约束条=条件(PP需为可行值)
- 其次最小化气泡率
- 若多个PP的气泡率相同,选择PP更小的。
输入描述
一行数据,数据间用空格分隔,依次为模型层数、单卡最大承载层数、micro batch 数目、硬件总卡数
输出描述
一行两个参数,数据间以空格分隔,最优 PP 值,最优 PP 值对应的气泡率(四舍五入,保留 4 位小数)。如果没有可行PP或输入参数个数不对或输入参数类型不是正整数的,输出 −1−1
样例1
输入
9 2 3 4
输出
-1 -1
说明
参数个数满足(4 个),9层模型,单卡最多2层,总卡数=4;
PP=1 →9>2,PP=2 →9%2=0,PP=3 →3>2,PP=4 →9%4=0;无可行PP
样例2
输入
10 5 2
输出
-1 -1
说明
3个数,不等4个,直接输出 −1−1
样例3
输入
8 4 3 4
输出
2 0.2500
说明
8层模型,单卡最大承载层数(4个),能整除且PP的卡层多4层,micro batch=3,总卡数=4;可行PP=2(每卡4层)、4(每卡2层);PP=2 气泡率 =(2−1)/(3+2−1)=0.25(更小),选PP=2。输出 PP 取值及 0.25,不满 0.2500