【论文】略读笔记69-前沿-基于干扰感知预测的深度学习调度系统
📖《Horus: Interference-Aware and Prediction-Based Scheduling in Deep Learning Systems》
2022年 英国兰卡斯特大学(Lancaster)团队 发表于 CCF-A 类期刊 TPDS。
🎯需求
- 为了加速深度学习(DL)模型的训练,配备了 GPU 等硬件加速器的机器集群被用来缩短执行时间。
- 深度学习(DL)是一种日益重要的机器学习类型,将对许多领域产生影响。
- 深度学习架构的创新和数据量的增长导致从业人员的需求增加,从而建立了配备图形处理器(GPU)等计算机加速器的机器集群。这些由小型和大型分布式系统组成的 DL 系统可实现大量计算吞吐量并缩短模型训练总时间。
- 需要最先进的资源管理器来提高 GPU 利用率并最大限度地提高吞吐量。
- 云提供商通过调配资源来部署和执行 DL 工作负载(封装为 DL 作业),作为其服务模式的一部分。
- 此类数据链路系统的一个重要目标是能够以资源高效的方式满足服务水平协议(SLA)和服务质量(QoS)标准。由于 GPU 利用率不足,确保此类 SLA 和 QoS 保证的努力面临挑战。
- 这是由于 Kubernetes 和 YARN 等现有资源管理器禁止明确使用 GPU 共享(即只允许将单个 DL 作业分配给每个 GPU)。
- 这种利用不足会降低性能、资源效率和服务可用性,导致排队时间延长,需要额外的 GPU 设备来满足需求。
🚧现状
- 虽然在同一 GPU 上共定位 DL 作业已被证明是有效的,但这会产生干扰,导致速度减慢。
- 1)共同定位 DL 作业(co-locate DL jobs,即在同一 GPU 上执行)的能力已被确定为解决利用率不足问题的一种手段。
- 特点:这种共同定位的有效性基于对 DL 工作负载 GPU 利用模式的充分了解。
- 优势:对于提供商而言,这有助于做出高质量的 DL 系统调度和共址决策,从而减少 GPU 资源利用不足的情况。
- 挑战:了解并利用 DL 工作负载的利用率来改进共同定位对于设计资源节约型 DL 系统至关重要。
- 缺点:虽然共同定位可以提高 GPU 利用率,但也会产生性能干扰(我们称之为干扰),导致不同共同定位组合的 DL 作业平均减慢 18%。
- 2)然而,用于描述 DL 工作负载的 GPU 利用率的现有方法利用的是执行过程中的在线剖析。
- 特点:在线剖析需要在独立的 GPU(或专用机器)上执行每个独特的 DL 作业,以确保准确的指标收集。
- 缺点:由于需要预留 GPU 设备,这种在线剖析导致服务可用性和资源效率降低:鉴于不同模型架构和配置的数量不断增加,这个问题日益严重。
- 3)虽然现在已有允许共定位的 DL 资源管理器。
- 缺点:但人们较少关注在放置决策过程中积极解决共享同一 GPU 的 DL 作业之间的干扰问题。不良的 DL 作业放置会导致更高的作业间隔(makespan)、更长的作业完成时间(JCT)、作业驱逐以及 GPU 内存不足(OOM)错误导致的作业失败。
- 1)共同定位 DL 作业(co-locate DL jobs,即在同一 GPU 上执行)的能力已被确定为解决利用率不足问题的一种手段。
🛩创新
- 在本文中,我们介绍了 Horus:一种基于预测的 DL 系统干扰感知资源管理器。
- 与现有方法不同的是:
- 当前的方法是预留独立 GPU 以执行在线剖析,并直接测量每个已提交作业的 GPU 利用率。
- Horus 会根据未见过的 DL 作业的模型特征主动预测其 GPU 利用率,我们的调度器会利用这些特征来确定合适的 DL 作业共定位组合,以最大限度地减少干扰。
- 可根据 DL 模型的计算图特征,主动预测异构 DL 作业的 GPU 利用率,从而无需在线剖析和隔离预留 GPU。通过在异构 GPU 硬件上进行微基准测试和作业共同定位组合,我们将 GPU 利用率确定为一个通用代理指标,以确定良好的定位决策。
- 我们的方法避免了对内核模式进行剖析,避免了对底层 DL 框架的修改,也不需要在调度程序运行时对需要隔离 GPU 的作业执行情况进行广泛的在线剖析–所有这些都既昂贵又耗时。
- 我们提供了三项具体的研究成果:
- 1)描述因共用位置而产生的 DL 工作负载干扰。我们对异构 GPU 硬件架构中超过 600 种独特的共定位 DL 作业组合的干扰特征进行了分析。研究结果表明,DL 作业共定位干扰会导致高达 2.4 倍-3.4 倍的速度减慢,与分布式训练的网络局部性不相上下。
- 2)针对 DL 工作负载的 GPU 利用率分析和预测引擎。通过一系列基准测试,我们分析并确定了 DL 模型的关键特征及其与 GPU 利用率的关系。这些特征包括每秒浮点运算次数(FLOPs)、输入数据大小和 DL 计算图结构(如卷积层数)。我们提出的预测引擎可实现亚秒级的 DL 作业 GPU 利用率预测,而无需进行在线剖析。
- 3)干扰感知 DL 资源管理器。利用我们的预测引擎,我们提出了一种可感知干扰的资源管理器,该资源管理器支持共同定位并最大限度地减少 GPU 过度承诺。我们的方法提供了两种可供选择的调度算法,它们优先考虑最小化作业时间跨度或提高公平性,以避免作业饥荒–降低作业等待时间的中位数,但代价是作业时间跨度和利用率的边际下降。
- 与现有方法不同的是:
- 我们在先前工作的基础上进行了扩展:
- 1)将 DL 工作负载特征研究的范围从 81 个模型扩大到 292 个模型;
- 2)捕获了更多 GPU 架构和 600 多个共定位配置文件用于分析和建模,提高了 GPU 预测模型的准确性;
- 3)并通过对生产集群进行跟踪驱动模拟,对 Horus 进行了大规模评估。
- 4)Horus 框架也进行了重新设计,纳入了一种改进的公平排队调度算法,以最大限度地降低成本目标。
- 5)最后,评估还使用了一组额外的工作负载组合和一种额外的共同定位算法进行比较。
📊效果
- 资源管理器被集成到 Kubernetes 中并部署在一个 DL 集群中,并通过对生产型 DL 集群的跟踪驱动模拟进行了大规模评估。
- 结果表明,与现有方法相比,我们的方法使 GPU 集群的利用率提高了 32-61.5%,时间跨度降低了 23.7-30.7%,在缩短作业等待时间方面比其他 DL 资源管理器高出 68.3%。
🧠疑问
- 预测的难点在哪里?是以前人都没考虑?如果只是这样的话,难度如何体现?本方法巧妙的点在什么地方?
- 干扰的本质原因是什么?论文没有显式提炼出insight。
- 引言说K8S不支持GPU共享,但实验中又说基于K8S
- 希望这篇博客对你有帮助!如果你有任何问题或需要进一步的帮助,请随时提问。
- 如果你喜欢这篇文章,欢迎动动小手给我一个follow或star。
🗺参考文献
- 标题: 【论文】略读笔记69-前沿-基于干扰感知预测的深度学习调度系统
- 作者: Fre5h1nd
- 创建于 : 2024-10-12 11:18:02
- 更新于 : 2024-10-12 13:57:01
- 链接: https://freshwlnd.github.io/2024/10/12/literature/literatureNotes69/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论