Crux: GPU-Efficient Communication Scheduling for Deep Learning Training缩略图

Crux:GPU高效的深度学习训练通信调度

作者:阿里云团队

Author:Jiamin Cao, Yu Guan, Kun Qian, Jiaqi Gao, Wencong Xiao, Jianbo Dong,Binzhang Fu, Dennis Cai, Ennan Zhai

论文摘要原文:Deep learning training (DLT), e.g., large language model (LLM)training,has become one of the most important services in multi-tenant cloud computing. By deeply studying in-production DLTjobs, we observed that communication contention among differ-ent DLT jobs seriously influences the overall GPU computationutilization, resulting in the low efficiency of the training cluster.In this paper, we presentCrux, a communication scheduler thataims to maximize GPU computation utilizationby mitigating the communication contention among DLT jobs. Maximizing GPU com-putation utilization for DLT, nevertheless, is NP-Complete; thus,we formulate and prove a novel theorem to approach this goal by GPUintensity-aware communication scheduling. Then, we propose an approach that prioritizes the DLT flows with high GPU com-putation intensity, reducing potential communication contention.Our 96-GPU testbed experiments show that Crux improves 8.3% to 14.8% GPU computation utilization. The large-scale production trace-based simulation further shows that Crux increases GPU computation utilization by up to 23% compared with alternatives including Sincronia, TACCL, and CASSINI.

论文摘要中文:深度学习训练(DLT),例如:大型语言模型(LLM)训练已成为多租户云计算中最重要的服务之一。通过对生产中DLT作业的深入研究,我们发现DLT作业间的通信竞争严重影响了GPU的整体计算利用率,导致训练集群的效率低下。本文提出了一种通信调度器Crux,旨在通过减少DLT作业之间的通信争用来最大化GPU计算利用率.然而,DLT的GPU计算利用率最大化是NP完全的;因此,我们公式化并证明了一个新的定理,以通过GPU强度感知通信调度来实现这一目标。在此基础上,提出了一种对GPU计算强度较高的DLT流进行优先级排序的方法,减少了潜在的通信冲突.我们的96-GPU测试平台实验表明,Crux将GPU计算利用率提高了8.3%至14.8%。基于大规模生产轨迹的模拟进一步表明,与Sincronia、TACCL和CASSINI等替代方案相比,Crux将GPU计算利用率提高了23%。

研究问题、关键问题:本文的研究问题是 如何通过优化多租户深度学习训练(DLT)集群中的通信调度,提高 GPU 计算利用率,从而提升训练效率和集群收益

具体而言,研究问题包含以下两个方面:

1.分析 DLT 任务之间的通信竞争问题: 研究生产环境中 DLT 任务之间的通信竞争现象,分析其产生原因和影响,并提出解决方案。

2.设计高效的通信调度算法: 基于 GPU 强度概念,设计高效的通信调度算法,优先调度 GPU 强度高的任务,从而最大化 GPU 利用率。

研究动机:

1.生产环境中 DLT 任务通信竞争普遍存在: 随着深度学习模型的规模不断扩大,DLT 任务在共享 GPU 集群中执行时,不同任务之间会产生通信竞争,导致 GPU 利用率低下,训练效率降低,集群收益受损。

2.现有通信调度方法无法有效解决通信竞争问题: 现有的 DLT 通信调度方法主要集中在单任务内部,忽略了不同任务之间的通信竞争,无法有效提高整体 GPU 利用率。

3.提高 GPU 利用率对 DLT 集群至关重要: GPU 利用率是 DLT 集群性能的重要指标,直接影响到训练效率和集群收益。因此,优化 GPU 利用率对于 DLT 集群至关重要。

研究意义:

  1. 提升 DLT 训练效率: 通过优化 DLT 集群的通信调度,减少通信竞争,可以提高 GPU 利用率,从而缩短训练时间,提升训练效率。
  2. 提高集群收益: GPU 利用率越高,集群的吞吐量越大,可以处理更多的训练任务,从而提高集群的收益
  3. 推动 DLT 集群发展: 通过优化 DLT 集群的通信调度,可以促进 DLT 集群的发展,使其能够更好地满足日益增长的计算需求。

研究内容(算法、方法、技术、模型)

  1. GPU 强度概念:

定义 GPU 强度来衡量任务对 GPU 利用率的影响,并以此作为通信调度的依据。

GPU 强度越高,任务对 GPU 利用率的影响越大,因此在通信调度中应优先考虑。

Crux: GPU-Efficient Communication Scheduling for Deep Learning Training插图
  • 路径选择算法:

设计路径选择算法,选择对高 GPU 强度任务影响较小的路径,避免通信竞争。

算法会根据任务的 GPU 强度和网络拓扑结构进行路径选择,以确保高 GPU 强度任务能够优先使用带宽较宽的路径。

  • 优先级分配算法:

设计优先级分配算法,考虑 DLT 任务的特征(如迭代和计算-通信重叠),对任务进行优先级分配,优先调度 GPU 强度高的任务。

算法会根据任务的 GPU 强度、迭代时间、计算-通信重叠程度等因素进行优先级分配,以确保高 GPU 强度任务能够优先获得网络资源。

Crux: GPU-Efficient Communication Scheduling for Deep Learning Training插图1
  • 优先级压缩算法:

设计优先级压缩算法,将优先级分配结果压缩到有限的优先级级别下,最小化 GPU 利用率损失。

算法会根据任务的 GPU 强度、网络拓扑结构等因素进行优先级压缩,以确保高 GPU 强度任务能够优先获得网络资源,同时尽量减少低 GPU 强度任务之间的竞争。

Crux: GPU-Efficient Communication Scheduling for Deep Learning Training插图2

主要贡献

  1. 对我们的多租户生产培训集群的分析表明,36.3%的DLT作业可能会遇到与其他作业的通信竞争,从而导致大量GPU浪费。我们认为作业间通信调度对于提高GPU利用率是必要的。我们在https://github.com/alibaba/alibaba-lingjun-dataset-2023上公开了我们的数据集。
  2. 我们将GPU利用率最大化这一NP完全(NPC)问题转化为GPU强度感知通信调度问题。我们设计了一个系统Crux来优化DLT集群中的GPU利用率。Crux引入了(1)一种路径选择算法,通过为具有较高GPU密度的作业选择最不拥塞的路径来缓解通信争用,(2)优先级分配算法,考虑DLT特性,如多次迭代和通信-计算重叠,以及(3)一种高效的优先级压缩算法,以适应实际NIC和交换机上有限的优先级。
  3. 我们的实验测试平台由96个Nvidia A100 GPU组成,表明Crux在实际模型(例如,GPT、BERT和ResNet)。我们基于生产跟踪(2,000 + GPU,5,000+作业)的模拟表明,与最先进的解决方案(Sincronia,CASSINI和TACCL)相比,Crux在各种集群网络架构下将GPU利用率提高了5%至23%。

创新点、创新性

提出了 GPU 强度概念并构建了基于 GPU 强度的通信调度方法,从而有效地解决了 DLT 集群中任务之间的通信竞争问题,提高了 GPU 利用率和训练效率。

技术难点

  1. 通信竞争的复杂性,以及如何准确评估和调度通信竞争。
  2. GPU 强度的计算,以及如何高效地计算 GPU 强度。
  3. 调度算法的设计,以及如何设计高效的调度算法。
  4. 系统的可扩展性和鲁棒性,以及如何提高系统的可扩展性和鲁棒性。

进一步研究思路 (Future Work)

Crux 论文提出的 GPU 强度概念和通信调度方法为 DLT 集群的性能优化提供了新的思路。未来研究可以从以下几个方面进行探索:

GPU 强度的细化: 考虑数据传输模式、数据类型、通信协议等因素,设计更精细的 GPU 强度计算方法,以更准确地反映任务的通信需求。

多目标优化: 在最大化 GPU 利用率的基础上,考虑最小化任务完成时间、提高任务公平性、最大化吞吐量等多目标,设计多目标优化算法,找到最优的调度策略。

自动化调度: 利用机器学习或强化学习技术,实现自动化调度,减少人工干预,提高调度效率,并更好地适应动态变化的 DLT 集群环境。

个人总结:

Crux引入GPU强度概念(即特异性指标)衡量作业对GPU利用率的影响。它们的调度决策并非是传统的基于单个作业的流量模式,考虑了不同作业间的竞争。使用GPU强度,Crux为不同的作业选择路径并分配优先级,以减轻通信争用。

作者 ienlab2023

IEN-"Intelligent Eco Networking"