Page 165 - 《软件学报》2025年第4期
P. 165
杨紫超 等: 基于性能建模的深度学习训练任务调度综述 1571
for performance modeling and scheduling in the future.
Key words: deep learning training; performance modeling; task scheduling
深度学习是借助人工神经网络架构, 对数据进行表征训练和目标预测推理的前沿技术, 其在医学图像分析 [1] 、
自动驾驶 [2] 、人脸识别 [3] 、语音翻译 [4] 及自然语言对话 [5] 等诸多领域具有广泛的应用. 在深度学习的数据表征训
练环节, 通常需处理大规模样本数据, 并依赖 GPU 等高性能加速器进行并行计算, 这使得 GPU 集群 [6,7] 成为推动
深度学习应用的核心基础设施. 然而, GPU 集群内包含大量异构计算资源, 并需应对多样化的深度学习训练任务,
因此, 如何合理规划任务与资源, 以提升训练效率及资源利用率, 已成为产业界和学术界共同面临的挑战.
任务调度作为一种在多维约束下对上层任务与底层计算资源进行优化匹配的技术, 对于提升训练效率及资源
利用率具有重要作用. 近年来, 基于性能建模的调度方法受到了广泛关注, 它通过构建精确的任务性能模型, 为调
度决策提供有力支持. 本文旨在对这些调度器中使用的性能建模与调度方法进行系统性的综述, 以帮助研究者了
解现有性能建模设计思路, 以及调度方法如何利用性能建模以提升调度效果.
尽管已有综述工作对大数据和高性能计算中的任务性能建模与调度进行了概述 [8−11] , 但它们未充分考虑深度
学习训练中迭代执行与异构算力等独特性能特性, 因此难以直接应用. 另外, 部分综述聚焦于深度学习推理任务的
效的调度算法, 从而为每个任务确定最佳的资源配置. 本文总结出
调度 [12−14] , 而推理阶段与训练阶段的优化目标存在显著差异, 前者更关注实时性, 后者则更强调如何加速大规模任
务的完成. 还有一些工作关注于单任务性能调优和显存优化 [15−17] , 这与本文关注的集群整体优化视角有所不同. 虽
然少量综述工作对深度学习训练任务调度进行了总结 [18,19] , 但主要依据调度目标进行分类, 而本文则着重探讨如
何利用性能建模来提升调度效果.
本文第 1 节介绍相关背景及挑战, 分析深度学习训练特性, 阐述任务调度利用性能建模进行优化的方式, 并介
绍性能建模与调度的挑战. 第 2 节依据建模方法切入点对任务性能建模方法进行了分类分析. 第 3 节根据如何利
用性能建模来优化调度的策略, 对各种调度方法进行了系统的分类和讨论. 第 4 节对未来的研究方向进行了展望.
第 5 节对全文进行总结.
1 背景与挑战
1.1 基于性能建模的任务调度流程
图 1 展示了基于性能建模的深度学习训练任务调度的工作流程. 用户提交深度学习训练任务后, 性能建模模
块会筛选出未进行建模的深度学习训练任务, 并为每个任务建立性能模型. 性能建模本质是确定每个任务在任意
资源配置下的性能指标, 其中资源配置可包含 GPU 类型、GPU 数量、GPU 通讯带宽、CPU 核数、内存大小等.
本文关注的性能指标主要有 3 类, 包括任务执行时间、吞吐率和收敛效率, 其中吞吐率指单位时间内训练迭代次数.
优化任务排序
利用 优化弹性部署 提升
用户提交任务 任务性能建模 任务调度 任务执行
性能建模 优化异构分配 调度效果
优化放置拓扑
吞吐率/执行时间/收敛效率
图 1 基于性能建模的任务调度流程
任务性能模型建立后, 进入任务调度阶段. 调度的本质是根据不同性能指标约束进行任务与资源的优化匹配
决策. 在这一阶段, 调度模块会充分利用从性能建模阶段获取的任务性能模型, 通过不同调度优化策略, 来制定高
4 种调度优化策略, 包括: 优化任务排序、优化
弹性部署、优化异构分配以及优化放置拓扑. 通过运用这些策略, 可以实现更加高效的任务调度, 进而显著提升任
务执行效率和集群利用率.
1.2 深度学习训练特性
与大数据和高性能计算任务相比, 深度学习训练任务具有其独特的特性, 需要在任务性能建模和调度中特别