本题为np-hard问题,以下给出近似解法
n 的最小堆(优先队列)来维护每个 NPU 的当前负载,初值全为 0。大模型训练通常采用数据并行的训练方式,处理大规模数据集(样本),加速训练过程,具休的:
假设有n个NPU,m个样本,把m个样本分给n个NPU,每个NPU上有一份完整模型,各自计算自己的样本数据,其中m>=n,保证每个NPU至少分到一个样本,且样本不能切分,一个样本必须完整的被分到个NPU上
每个NPU的运行时间跟所分到的样本的长度和呈正相关。如果每个NPU上的样本长度和相差较大,会形成木桶效应,执行快的NPU等待执行慢的NPU,最终执行时间由最大样本和长度的NPU决定。
试着编号一段程序对样本进行均衡分配,设n个NPU上分得的最大的样本和为lmax,使lmax最小,即求min(lmax)
开通会员即可查看完整视频题解: 1.题目讲解 2.思路分析 3.逐行代码手写
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.