基于任务可预测性的高吞吐分布式训练集群资源调度
如果无法正常显示,请先停止浏览器的去广告插件。
1. 基于任务可预测性的高吞吐分布式
训练集群资源调度
李方舒
天津大学 智能与计算学部
fangshuli@tju.edu.cn
2. 个人简介
• 学习科研经历:
– 2015.9-2019.6 西南交通大学 软件工程专业 本科
– 2019.9 至今 天津大学 软件工程专业 硕士在读
• 主要研究方向
– 分布式训练性能优化
– 大规模数据中心资源效率优化
– AI系统加速
• 联系方式
– fangshuli@tju.edu.cn
3. 目录
1 相 关 背 景 介 绍
2 AITurbo 设 计
3 实 验 评 估
4 讨 论 与 总 结
3
4. 背景
参数规模 和 模型复杂度
OpenAI 最新发布的语言模型 GPT3 参数量已达到 175B
4
5. 背景
参数规模 和 模型复杂度
Facebook: 模型复杂度在两年内增长了 2×。
使用Tesla V100的云实例训练GPT-3模型需要
消耗 $4.6M。
5
6. 背景
如何提升训练性能和资源效益是一个巨大的挑战
Job
Resource
Job1
Job2
New Resource
Add
Add
Delete
Job3
CPU
GPU
动态作业优先级调度 动态资源分配
该策略为每一个作业分配一个 该策略动态调整作业的超参数和
动态变化的优先级
资源配置
6
7. 背景
部分可预测训练
l 只有部分可训练作业是可预测的。
l 可预测作业最初是不可预测的。
7
8. 背景
部分可预测训练
l 针对部分可预测训练,基于可预测任务的调度和不可预测任务的
调度都是无效的。
需要一个混合调度策略!
8
9. 背景
统一 CPU-GPU 训练
l CPU和GPU的集群资源利用率偏低,且使用不均衡。
两种资源利用率之差的CDF图
Abs(CPUutil−GPUutil)
当CPU成为性能瓶颈时,
CPU资源也无法使用
9
10. 背景
统一 CPU-GPU 训练
l 不同数目的参数服务器(PS)和工作节点(Worker)、资源配
置、资源类型具有不同的训练性能
1Gbps
0.1Gbps
1
0
11. 目录
1 相 关 背 景 介 绍
2 AITurbo 设 计
3 实 验 评 估
4 讨 论 与 总 结
12. AITurbo 设计
AITurbo 创新点:
利用DDL作业的 部分可预测性特征 和 异构CPU-GPU训练
特征 ,优化DDL作业的训练效率,提高集群资源利用率
挑战:
如何判别一个DDL训练作业的可预测性?
如何统一调度异构CPU-GPU资源?
如何统一调度可预测作业与不可预测作业?
8
13. AITurbo 设计
AITurbo系统设计:
解决方案:
解决方案1: 二分类模型
解决方案2: 统一计算分配
8
14. AITurbo 设计
二分类模型:
l 影响作业可预测性的指标
u 模型自身特征
u 训练框架的超参数配置
u 作业运行的状态
8
15. AITurbo 设计
二分类模型:
l 指标选择标准
u Pearson相关系数, Kendall 相关系数和Spearman相关系数
u 基于纯度的重要性分析
8
16. AITurbo 设计
二分类模型:
u 指标选择标准
u Pearson相关系数, Kendall 相关系数和Spearman相关系数
u 基于纯度的重要性分析
8
17. AITurbo 设计
二分类模型:
l 算法选择
u K邻近 (KNN)
u 逻辑回归 (LR)
u 随机森林回归 (RFR)
u 支持向量机(SVR)
u 多层感知神经网络(MLP)
8
18. AITurbo 设计
可预测作业的性能预测模型:
l 性能预测模型
训练迭代次数
作业完成时间
单次迭代的训练速度
速度模型
1
u 1、 前向传播
2
3
4
u 2、 后向传播
u 4、 参数更新
5
u 3、 梯度推送
u 5、 参数拉取
8
19. AITurbo 设计
可预测作业的性能预测模型:
l 性能预测模型
训练迭代次数
作业完成时间
单次迭代的训练速度
速度模型
训练步数模型
损失值
迭代次数
8
20. AITurbo 设计
可预测作业的资源分配:
l 目标:
作业 i 的剩余服务数:
对每个作业 i,AITurbo会计算调整资源集
的
中单位资源后的作业剩余服务数
8
21. AITurbo 设计
可预测作业的资源分配:
l 示例:
+ps
+worker
9 5
18 22 26
-worker -CPU(ps) -CPU(worker) -GPU
14 14 13 JobA(V=10) 8 6
JobB(V=16) 18 24
-ps 12
JobA(V=10)
JobB(V=16)
16
+CPU(ps) +CPU(worker) +GPU
12
12
16
15
� = � ���� (+���) + � ���� (−���) = 15
18
10
8
22. AITurbo 设计
统一计算分配:
l 可预测作业 & 不可预测作业
l 波达计数法 & 多级反馈队列(MLFQ)
l 示例:
8
23. 目录
1 相 关 背 景 介 绍
2 AITurbo 设 计
3 实 验 评 估
4 讨 论 与 总 结
24. 实验评估
实验平台:
工作负载:
l Tensorflow benchmark
l 数据集: ILSVRC2012-ImageNet 和 Cifar10
8
25. 实验评估
性能提升:
l 作业完成时间 和 最大完工时间
AITurbo 可以减少至少 2× 以上
的平均作业完成时间
l 长作业 和 短作业
AITurbo 对不同训练时长的作
业都具有良好的性能提升
8
26. 实验评估
资源利用率:
l CPU利用率 和 GPU 利用率
AITurbo 可以提升至少 15% 的资源利用率
在未使用AITurbo时,资源利用率之差在 80% 的时间内小于 60%。
在使用AITurbo后,该差距降低为 40%
8
27. 实验评估
开销:
l 在Tensorflow上重启一个使用GPU资源训练作业的时间开销
l 不同DDL作业的刻画开销
8
28. 目录
1 相 关 背 景 介 绍
2 AITurbo 设 计
3 实 验 评 估
4 讨 论 与 总 结
29. 总结
AITurbo利用作业的部分可预测特征和异构CPU-GPU特征优
化了训练性能。
AITurbo 有效的减少了训练作业的平均完成时间,优于现
有的最先进的调度器。
AITurbo针对商业GPU集群进行设计,该集群可以被同一
部门下的多个编程人员共享。
29
30. Thank you!
30