CN115437795B - 一种异构gpu集群负载感知的显存重计算优化方法及系统 - Google Patents
一种异构gpu集群负载感知的显存重计算优化方法及系统 Download PDFInfo
- Publication number
- CN115437795B CN115437795B CN202211386085.2A CN202211386085A CN115437795B CN 115437795 B CN115437795 B CN 115437795B CN 202211386085 A CN202211386085 A CN 202211386085A CN 115437795 B CN115437795 B CN 115437795B
- Authority
- CN
- China
- Prior art keywords
- video memory
- stage
- recalculation
- neural network
- load
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000015654 memory Effects 0.000 title claims abstract description 238
- 238000005457 optimization Methods 0.000 title claims abstract description 61
- 238000000034 method Methods 0.000 title claims abstract description 55
- 230000008447 perception Effects 0.000 title claims abstract description 8
- 238000012549 training Methods 0.000 claims abstract description 48
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 24
- 238000004364 calculation method Methods 0.000 claims abstract description 19
- 230000008569 process Effects 0.000 claims abstract description 16
- 238000013528 artificial neural network Methods 0.000 claims description 85
- 230000001186 cumulative effect Effects 0.000 claims description 7
- 238000005315 distribution function Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 3
- 238000000638 solvent extraction Methods 0.000 claims description 2
- 238000013135 deep learning Methods 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 8
- 238000003062 neural network model Methods 0.000 description 8
- 230000006872 improvement Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 238000012360 testing method Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000005034 decoration Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000011478 gradient descent method Methods 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种异构GPU集群负载感知的显存重计算优化方法及系统,针对异构GPU集群环境下流水线训练显存需求,刻画出其训练执行过程中计算时间、GPU显存总量、显存占用等相应指标,并将其作为负载感知的显存重计算优化方法的输入,建立显存重计算优化模型,计算各GPU上显存负载百分比,确定所有阶段中显存负载最高的阶段,根据最小化显存开销算法进行重计算优化,保证各阶段负载均衡,提升整体吞吐率,本发明提出最小化负载最高阶段显存开销算法与平衡异构GPU各阶段开销算法,减少异构GPU集群环境下流水线训练的显存占用,同时最小化显存优化开销,更好地支持大模型的训练。
Description
技术领域
本发明属于分布式计算机技术领域,主要涉及了一种异构GPU集群负载感知的显存重计算优化方法及系统。
背景技术
近年来人工智能技术快速发展,深度神经网络 (Deep Neural Networks,DNNs)成为了应用最广泛的人工智能技术之一。深度学习是通过复杂的多层次神经网络来学习大量数据中的特征,然后在应用在诸如分类、识别等高精度预测领域中。大规模深度神经网络结构和大数据集在深度学习中扮演着至关重要的地位。为了更好地从数据中心提取特征,研究者们尝试用更大的神经网络模型来学习特征,以提升深度学习预测的准确率。然而,更大的模型也意味着需要更强的计算能力和更大的显存容量。对于更大的深度神经网络模型,显存占用量也急剧增加。但是对于训练模型常用的硬件加速器 GPU 来说,显存容量却相对有限。随着深度学习模型显存占用的增加,模型的准确率也在上升,但是此时 GPU 的显存容量却成为了设计更大模型的瓶颈,例如 ResNet1001需要大概32GB显存,但是常见的NVIDIA RTX 3090 GPU的显存只有24GB,远远不能满足需求。
深度神经网络的训练通过执行正向传播和反向传播算法来学习模型中的特性并且更新参数。深度神经网络的训练通常包括以下三个阶段:(1)正向传播。正向传播是指神经网络从带有标签的训练集中读取数据,通过中间层进行计算,最后由输出层输出计算结果的过程。为了减少训练过程中的噪声以及提高训练速度,每次正向传播会处理一个批次的数据。(2)反向传播。正向传播过程结束后,要把正向传播的结果与训练集上的标签对比,并采用相应的损失函数计算出误差。然后通过链式求导法则,从正向传播的反方向求出各个参数的梯度,计算不同参数对误差影响的权重大小,反向传播时要用到对应层正向传播的中间结果。(3)梯度下降。根据反向传播中得到的参数梯度,采用梯度下降的方法,更新每一层的参数,完成一次训练迭代。不断重复迭代过程直到神经网络达到收敛状态,完成训练。由上述描述可知,深度学习在训练过程中,除了缓存参数和参数的梯度用于计算以外,还需要缓存前向传播的中间结果在反向传播的过程中参与运算,进一步增加了显存的占用。因此,为了能够在现有的GPU上执行大规模深度深度神经网络模型的运算,优化 GPU 显存需求成为深度神经网络训练的一大挑战。
流水线训练中,由于同一时间内,GPU 内存在多个批次的数据,为了保证模型能够正常收敛,需要储存多个版本的参数和中间结果,让每个批次正向和反向计算时的所使用的数据版本相同,以保证统计有效性。同时,由于GPU的异构性,不同GPU间的显存容量存在差异,这就使得显存占用问题更加复杂,显存较小的 GPU 会成为整体流水线训练的瓶颈,给训练带来了巨大限制。异构 GPU 集群分布式流水线训练中,多版本参数和中间结果以及GPU的异构性,导致显存资源不足,为大模型的训练带来的巨大的限制。因此,在异构 GPU集群环境下,多版本中间结果的缓存和显存异构性带来的短板效应成为影响支持更大模型训练的关键问题之一。
发明内容
本发明正是针对现有技术中异构GPU集群中流水线训练模式下分布式深度学习的训练,多版本中间结果的缓存和显存异构性带来的短板无法支持大规模训练的问题,提供一种异构GPU集群负载感知的显存重计算优化方法及系统,建立显存重计算优化模型,计算各GPU上显存负载百分比,确定所有阶段中显存负载最高的阶段,根据最小化显存开销算法进行重计算优化,保证各阶段负载均衡,提升整体吞吐率,本发明提出最小化负载最高阶段显存开销算法与平衡异构GPU各阶段开销算法,减少异构 GPU 集群环境下流水线训练的显存占用,同时最小化显存优化开销,更好地支持大模型的训练。
为了实现上述目的,本发明采取的技术方案是:一种异构GPU集群负载感知的显存重计算优化方法,建立显存重计算优化模型,计算各GPU上显存负载百分比,确定所有阶段中显存负载最高的阶段,根据最小化显存开销算法进行重计算优化,保证各阶段负载均衡。
作为本发明的一种改进,所述最小化显存开销算法具体为:对于负载最高的阶段,需要最小化显存计算开销,即
令表示checkpoint层的选择,当/>为0 时,代表第/>层被设置为checkpoint,需要重计算;当/>为1 时,代表需要满足显存限制表第i 层不需要重计算, 其中/>为阶段s的神经网络层集合,即
所述显存限制为:
作为本发明的一种改进,采用动态规划中0−1背包的思想对最小化显存开销算法进行求解,将显存限制定义为背包容量,每层所占用的显存定义为代价,重计算的开销定义为获利,采用重计算开销的倒数进行计算。
作为本发明的一种改进,所述负载均衡为各阶段重计算开销与显存负载最高的阶段相等,即
作为本发明的另一种改进,所述各阶段重计算开销与显存负载最高的阶段相等,对于任意阶段s,
其中,s为神经网络划分的某个阶段;为神经网络第l层的参数显存占用;
为神经网络第l层的中间结果显存占用;为阶段s需要储存的版本数; 表示
checkpoint层的选择;为显存负载最高的阶段重计算开销;
当绝对值内的值大于等于 0时:
当绝对值内的值小于 0时:
作为本发明的另一种改进,本案一种异构GP U集群负载感知的显存重计算优化方法,包括如下步骤:
S1:建立深度神经网络的层次累积分布函数模型,根据层次累积分布函数模型,使用异构GPU硬件环境执行预训练过程,刻画出神经网络在训练过程中的指标;
S2:建立显存重计算优化模型,以步骤S1中的指标及异构GPU集群中GPU间的网络拓扑连接作为输入,分析得到显存负载最高的阶段,对所有阶段显存进行约束以及负载最高的阶段显存进行约束,保证各阶段负载均衡;
S3:选择最佳重计算层,使显存负载最高的 GPU 阶段显存降低为原来的 d 倍,并减少重计算开销;其他阶段选择重计算层,在满足总显存限制的前提下,重计算开销与负载最高的阶段平衡。
作为本发明更进一步改进,所述步骤S3中,显存使用率降低为原来的 d 倍,所有阶段都应满足显存占用小于等于显存总量,即:
为了实现上述目的,本发明还采取的技术方案是:一种异构GPU集群负载感知的显存重计算优化系统,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述方法的步骤。
与现有技术相比,本发明具有的有益效果:
(1)提出了最小化负载最高阶段显存开销算法,使显存负载最高的 GPU 阶段显存降低为原来的 d 倍,并且减少了重计算开销。
(2)提出了平衡异构GPU各阶段开销算法,在满足总显存限制的前提下,能够选择合适的重计算层,使得重计算开销尽可能与负载最高的阶段平衡,降低了重计算开销对整体流水线速度的影响。
(3)提供了一种异构GPU集群负载感知的显存重计算优化系统及方法,解决在异构GPU流水线训练过程中减少显存的占用同时保证各个阶段间的负载均衡,优化显存重计算开销,能够同时满足显存优化需求和训练速度的保证。
附图说明
图1为本发明原型系统整体架构图;
图2为本发明测试例中流水线模式下不同模型各个阶段的显存占用对比图;
图3为本发明测试例中不同模型各个阶段显存占用率对比图;
图4为在异构GPU流水线模式下,经典神经网络的负载最高阶段优化前后显存占用与开销对比图;
图5为显存优化率为0.6时的显存优化示意图;
图6为在异构GPU流水线模式下,使用本发明方法前后训练VGG16模型的显存负载平衡示意图;
图7为深度神经网络模型在本发明重计算开销平衡算法机制与原始的流水线训练速度的对比图;
图8为本发明方法步骤S3中最小化显存开销算法的步骤示意图。
具体实施方式
下面结合附图和具体实施方式,进一步阐明本发明,应理解下述具体实施方式仅用于说明本发明而不用于限制本发明的范围。
实施例1
一种异构GPU集群负载感知的显存重计算优化方法,本方法主要在具有异构GPU集群环境下进行,如图1所示,包括如下步骤:
S1: 建立深度神经网络的层次累积分布函数模型,分析在异构GPU集群环境中深度学习应用在流水线模式下执行负载感知的显存重计算优化方法所需要的输入条件,为了后续的显存优化开销最小化,通过预训练分析设备与模型,得到流水段所使用的GPU显存总量,神经网络按层计算时间,神经网络各层参数与中间结果的显存占用,为步骤S2做准备工作。
由于神经网络训练分为前向传播预测结果和反向传播更新参数过程,数据经过神经网络逐层计算,因此在流水线模式下,对于神经网络的层次结构建立累积分布函数模型。根据累积分布函数模型,使用异构GPU硬件环境执行预训练过程,刻画出神经网络在训练过程中的响应指标。
在模型刻画阶段,对于计算量而言,使用给定的mini-batch大小,利用profile刻画出神经网络在GPU上依次执行前向传反向传播的矩阵计算(mkldnn_convolution、max_pool2d_with_indices、batch_norm、addmm等)所需计算时间,然后按照层次顺序按层统计计算时间。对于显存而言,利用PyTorch模型可视化工具可打印出神经网络各层输出的矩阵形状以及神经网络各层参数的数量,然后按照浮点数所需字节计算得到各层中间结果显存占用以及参数显存占用。通过预训练之后得到,异构 GPU 集群环境下流水线训练计算时间与显存开销等参数,具体为:
S2:建立显存重计算优化模型,针对异构GPU集群,对流水线模式下分布式深度学习训练过程中显存需求进行建模,分析各层显存负载,采用重计算的方式进行显存优化,保证各个阶段重计算的开销尽可能均衡,同时要求各阶段重计算开销与显存负载最高的阶段尽可能相等。
所述步骤S2中显存重计算优化模型是以步骤S1中刻画得到的相应指标,以及异构GPU集群中GPU间的网络拓扑连接作为算法输入,分析得到显存负载最高的阶段,对所有阶段显存进行约束以及负载最高的阶段显存进行约束,提出各个阶段重计算开销代价指标,优化目标是负载均衡,即要求各阶段重计算开销与显存负载最高的阶段尽可能相等。
计算每个阶段的显存占用百分比,找到所有阶段中显存负载最高的阶段。将显存负载最高的阶段作为基准,采用重计算的方式进行显存优化,保证各阶段负载均衡。各阶段重计算开销,/>为显存负载最高阶段重计算开销。负载均衡要求各阶段重计算开销与显存负载最高的阶段尽可能相等,即
其中,S为神经网络的划分阶段集合,s为神经网络划分的阶段。
建立显存重计算优化模型,先对异构 GPU 集群环境下流水线训练显存需求进行建模。
将显存负载最高的阶段作为基准,采用重计算的方式进行显存优化。但是重计算所带来的负载会导致各个阶段间负载不均衡,从而降低 GPU 的利用率,此外如果只有一个阶段进行显存优化,其他阶段产生的数据会在此阶段形成显存堆积,造成显存瓶颈。为了解决上述问题,需要对开销进行平衡,对其他阶段也进行重计算,保证各阶段负载均衡,提升整体吞吐率。令为每个阶段需要重计算的神经网络层的集合,/>为重计算开销,/>为减少的显存。
令 d 为显存优化率,即将显存使用率降低为原来的 d 倍,可以得到求解目标和限制条件:所有阶段都应满足显存占用小于等于显存总量:
负载均衡要求各阶段重计算开销与显存负载最高的阶段尽可能相等,即
S3: 为了求解上述问题,对过程进行简化,首先找出负载最高的 GPU,将显存使用量降低到原来的 d 倍,并尽量减少重计算开销。对于其他阶段,在满足最大显存约束条件的前下,尽量保证显存优化开销与第一阶段相同。
具体来说,将求解分为以下两个步骤:1)如何选择合适的重计算层,使显存负载最高的 GPU 阶段显存降低为原来的 d 倍,并且尽可能地减少重计算开销。2)在其他阶段如何选择合适的重计算层,在满足总显存限制的前提下,使重计算开销尽可能与负载最高的阶段平衡。
首先,最小化负载最高阶段显存开销算法:
对于负载最高的阶段,需要最小化显存计算开销,即
需要满足显存限制:
对于该问题,可以采用动态规划中0−1背包的思想去求解,将显存限制定义为背包容量,每层所占用的显存定义为代价,重计算的开销定义为获利。由于我们的目标是最小化显存优化开销,所以采用重计算开销的倒数进行计算。
如图8所示,图8中算法1给出了求解该问题的具体算法,算法的输入包括显存占用最高阶段的各层计算时间c,各层显存占用m,显存占用,显存优化率d。算法的输出为被设置checkpoint 层的编号以及显存优化后的总开销。算法的第2−4行初始化相关变量,其中visit 代表需要设置为checkpoint 的层,dp[i][j] 为动态规划状态转移数组,表示在第0−i层中,显存容量小于j时的最小重计算时间。第5−12用动态规划的方式求解最小重计算时间。第 6-16 根据之前的计算结果进行回溯,求得最小代价下的 visit 设置。
平衡异构 GPU 各阶段开销算法:
如何在异构 GPU 环境下平衡各个阶段的显存优化开销。虽然在流水线模式下,各个阶段间具有拓扑关系,但是在显存优化时,各个阶段间相互独立,可以将问题拆分如下:在满足各阶段显存约束的前提下,各阶段的重计算开销与负载最高阶段的显存优化开销尽可能接近,对于任意阶段 s,我们可以得到:
其中含有绝对值,所以求解时我们需要分类讨论,根据结果的正负划分为两种情况:
1)绝对值内的值大于等于 0:
2)绝对值内的值小于 0:
上述的目标函数中,未知量只有变量,代表第 i 层是否被选定为 checkpoint层,所以求解此问题是一个线性规划问题,即 0 − 1 线性规划问题。求解此问题,采用python 中的scipy 库来解决,将Profile 刻画得到的神经网络各层计算时间,中间结果及参数量等作为输入,输出一维张量,表示各层 checkpoint 的设置情况。
测试例
为了验证本本案提出方法的有效性,在异构GPU集群环境下基于流水线的分布式深度学习系统Pipepar之上,集成了此机制并应用于东南大学云计算中心的异构GPU环境,采用经典的神经网络模型和数据集,展示本案在异构GPU流水线模式下的显存占用情况、所产生的开销对整体吞吐率的影响、在平衡和非平衡开销机制下整体吞吐率的影响。
采取如下配置执行实验,Config-a:集群有两个服务器,服务器A上搭载2块NVIDIARTX 2080Ti,服务器B上搭载2块NVIDIA RTX3090,共4块GPU通过PCIE 连接,PCIE带宽约为10GB/s,服务器间间通过 的以太网连接。实验使用的数据集为ImageNet(ILSVRC2012),其包含1000 个图片类别,128万张训练集,5万张验证集以及10万张测试集。训练模型选用了AlexNet,VGG16,ResNet34,ResNet50,ResNext50等典型神经网络模型。
(1)流水线模式下显存占用情况:
为了证明本案提出的显存重计算机制的有效性,首先对所选择的多个经典的神经网络模型横向对比各个阶段的显存占用。
图2所示为流水线模式下不同模型各个阶段的显存占用,默认的batchsize大小为64,对于较小或者较大的模型,将适当调整batchsize大小,标注在图中模型名称的后面。
第一个阶段多为卷积层,中间结果较大,而且保存了最多版本的中间结果与参数,所以在所有模型中,第一阶段显存占用量都是最高的,其中占用最多的ResNet50达到了21.5GB。不过由于不同阶段GPU的显存总量不同,图3给出了不同模型各个阶段显存占用率。由于前面阶段的任务放置在RTX 3090上,RTX 3090的24GB显存远远大于RTX 2080Ti,所以大部分模型中第一阶段的显存占用率仍然是最高的。不过在ResNext模型中,后两个阶段和前两个阶段相比,显存占用率相近,其中ResNext50(32)上,第三阶段的占用率最高,超过了前两个阶段。
根据上述分析,可以针对不同模型负载情况的不同,选择负载最高的阶段进行显存优化,该阶段通常为显存占用最高的第一阶段或者显存容量较小的2080Ti上的阶段。
(2)负载最高阶段显存优化:
为了展示本案的基于重计算的异构GPU显存优化算法的有效性,横向对比多个神经网络采用所提方法后显存负载最高阶段的显存占用情况以及由于重计算所带来的开销。
图4展示了在异构GPU流水线模式下,经典神经网络的负载最高阶段优化前后显存占用与开销对比,显存优化率d设置为0.8。此时的重计算开销在8%左右,但由于ResNext18模型显存负载最高的阶段在RTX 2080Ti上,算力低于其他模型的3090,所以重计算开销较大,达到了14.41%。图5展示了d设置为0.6时的显存优化情况。此时的重计算开销在20%左右。相比d=0.8的情况,显存优化代价有所增加。对于放置在RTX 2080Ti上的ResNext18模型第三阶段,重计算开销达到了27.51%。
(3)显存重计算负载平衡:
下面展示本案提出的平衡异构GPU各阶段显存开销算法的有效性,即在满足总显存限制的条件下异构GPU各阶段开销是否达到平衡状态。
图6展示了在异构GPU流水线模式下,使用该机制前后训练VGG16模型的显存负载平衡情况。在异构GPU流水线模式下,VGG16被划分为了三个阶段,其中第一个阶段由两块RTX 3090执行数据并行,后两个阶段各由一块RTX 2080Ti执行。由于中间结果、参数量的不同和版本储存数的差异,不同阶段的显存占用量不同。选择显存占用率最高的第一阶段进行重计算优化,优化后第一阶段的显存占用降低为原来的0.8倍左右,同时为了保流水线的均衡,平衡其他阶段的开销。图中可以看出各个阶段的重计算开销均为8%左右,但是后两个阶段由于中间结果较小,相同重计算开销下的显存优化效率要低于第一阶段。
(4)异构 GPU 流水线训练模式下平衡与非平衡状态下的吞吐率对比:
为了验证显存重计算负载均衡的有效性,本节在上述的实验配置config-a上,对比重计算平衡与非平衡的方法对流水线整体训练速度的影响。重计算平衡方案下,对显存负载最高的阶段进行重计算优化,此时d设置为0.6,同时对其他阶段进行重计算开销优化,使各个阶段负载均衡。非平衡方案下,各个阶段均设置d为0.6进行优化,而不采取显存重计算开销平衡。
图7给出了几种常见的深度神经网络模型在本发明给出的重计算开销平衡算法机制与原始的流水线训练速度的对比,展示了异构GPU流水线模式下各阶段重计算开销平衡与否对于流水线训练速度的影响。重计算显存优化均会带来一定的计算开销,由于ResNext50(32)的优化阶段分配在RTX 2080Ti上,所以重计算开销较大。当不采用重计算开销平衡算法机制时,各个模型的训练速度进一步下降,前四个模型的优化阶段均分配给RTX3090显卡运算,而其他阶段上的RTX 2080Ti显卡要达到相同的显存优化效果重计算开销更大,所以前四个模型训练速度下降较为严重,其中VGG16,ResNet34(128),ResNet50,ResNext18分别下降了12.18%,10.04%,14.46%,12.57%,而ResNext50(32)的优化阶段分配给RTX 2080Ti显卡,训练速度只下降了7.71%。
综上,本案提出了一种负载感知的显存重计算优化方法,在异构 GPU 集群环境下,流水线训练过程中多版本中间结果缓存和异构 GPU 显存负载不平衡所导致的显存瓶颈,根据神经网络各层参数刻画以及 GPU 设备拓扑,设计采用重计算的优化方法来减少负载最高阶段的显存占用。同时设计显存重计算优化平衡策略,平衡显存重计算优化引入的开销,保证各个阶段间负载均衡。最终实现在减少流水线模式下的 GPU 显存占用的同时最小化显存优化开销。
需要说明的是,以上内容仅仅说明了本发明的技术思想,不能以此限定本发明的保护范围,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰均落入本发明权利要求书的保护范围之内。
Claims (9)
1.一种异构GPU集群负载感知的显存重计算优化方法,其特征在于:建立显存重计算优化模型,计算各GPU上显存负载百分比,确定所有阶段中显存负载最高的阶段,根据最小化显存开销算法进行重计算优化,保证各阶段负载均衡;
所述最小化显存开销算法具体为:对于负载最高的阶段,需要最小化显存计算开销,即
所述显存限制为:
2.如权利要求1所述的一种异构GPU集群负载感知的显存重计算优化方法,其特征在于:采用动态规划中0−1背包的思想对最小化显存开销算法进行求解,将显存限制定义为背包容量,每层所占用的显存定义为代价,重计算的开销定义为获利,采用重计算开销的倒数进行计算。
5.如权利要求4所述的一种异构GPU集群负载感知的显存重计算优化方法,其特征在于,包括如下步骤:
S1:建立深度神经网络的层次累积分布函数模型,根据层次累积分布函数模型,使用异构GPU硬件环境执行预训练过程,刻画出神经网络在训练过程中的指标;
S2:建立显存重计算优化模型,以步骤S1中的指标及异构GPU集群中GPU间的网络拓扑连接作为输入,分析得到显存负载最高的阶段,对所有阶段显存进行约束以及负载最高的阶段显存进行约束,保证各阶段负载均衡;
S3:选择最佳重计算层,使显存负载最高的 GPU 阶段显存降低为原来的 d 倍,并减少重计算开销;其他阶段选择重计算层,在满足总显存限制的前提下,重计算开销与负载最高的阶段平衡。
6.如权利要求5所述的一种异构GPU集群负载感知的显存重计算优化方法,其特征在于:所述步骤S1中指标至少包括各层的计算时间,参数显存占用,中间结果显存占用以及固定阶段所使用的 GPU 的显存总量。
9.一种异构GPU集群负载感知的显存重计算优化系统,包括计算机程序,其特征在于:所述计算机程序被处理器执行时实现如权利要求1-8任一种所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211386085.2A CN115437795B (zh) | 2022-11-07 | 2022-11-07 | 一种异构gpu集群负载感知的显存重计算优化方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211386085.2A CN115437795B (zh) | 2022-11-07 | 2022-11-07 | 一种异构gpu集群负载感知的显存重计算优化方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115437795A CN115437795A (zh) | 2022-12-06 |
CN115437795B true CN115437795B (zh) | 2023-03-24 |
Family
ID=84252870
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211386085.2A Active CN115437795B (zh) | 2022-11-07 | 2022-11-07 | 一种异构gpu集群负载感知的显存重计算优化方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115437795B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115982091B (zh) * | 2023-03-21 | 2023-06-23 | 深圳云豹智能有限公司 | 基于rdma引擎的数据处理方法与系统、介质、设备 |
CN116501502B (zh) * | 2023-06-25 | 2023-09-05 | 电子科技大学 | 一种基于Pytorch框架的数据并行优化方法 |
CN117892769B (zh) * | 2024-03-15 | 2024-06-11 | 之江实验室 | 神经网络训练方法、显存调度方法、系统、设备和产品 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021238734A1 (zh) * | 2020-05-29 | 2021-12-02 | 华为技术有限公司 | 一种神经网络的训练方法及相关设备 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104035751B (zh) * | 2014-06-20 | 2016-10-12 | 深圳市腾讯计算机系统有限公司 | 基于多图形处理器的数据并行处理方法及装置 |
US12056604B2 (en) * | 2018-05-23 | 2024-08-06 | Microsoft Technology Licensing, Llc | Highly performant pipeline parallel deep neural network training |
CN109213601B (zh) * | 2018-09-12 | 2021-01-01 | 华东师范大学 | 一种基于cpu-gpu的负载均衡方法及设备 |
CN110533183B (zh) * | 2019-08-30 | 2021-08-20 | 东南大学 | 流水线分布式深度学习中异构网络感知的任务放置方法 |
CN112784968A (zh) * | 2021-01-29 | 2021-05-11 | 东南大学 | 一种加速分布式深度神经网络训练的混合流水线并行方法 |
CN115237580B (zh) * | 2022-09-21 | 2022-12-16 | 之江实验室 | 面向智能计算的流水并行训练自适应调整系统、方法 |
-
2022
- 2022-11-07 CN CN202211386085.2A patent/CN115437795B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021238734A1 (zh) * | 2020-05-29 | 2021-12-02 | 华为技术有限公司 | 一种神经网络的训练方法及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN115437795A (zh) | 2022-12-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115437795B (zh) | 一种异构gpu集群负载感知的显存重计算优化方法及系统 | |
CN107644254A (zh) | 一种卷积神经网络权重参数量化训练方法及系统 | |
CN112052958A (zh) | 模型训练的方法、装置、设备及计算机可读存储介质 | |
CN111178486B (zh) | 一种基于种群演化的超参数异步并行搜索方法 | |
CN103399841A (zh) | 基于gpu的稀疏矩阵lu分解方法 | |
CN114492770B (zh) | 一种面向循环脉冲神经网络的类脑计算芯片映射方法 | |
CN114548591A (zh) | 一种基于混合深度学习模型和Stacking的时序数据预测方法及系统 | |
CN112884236B (zh) | 一种基于vdm分解与lstm改进的短期负荷预测方法及系统 | |
CN112947300A (zh) | 一种加工质量虚拟量测方法、系统、介质及设备 | |
CN111325222A (zh) | 图像归一化处理方法及装置、存储介质 | |
CN115392441A (zh) | 量化神经网络模型的片内适配方法、装置、设备及介质 | |
CN115952856A (zh) | 一种基于双向分割的神经网络流水线并行训练方法及系统 | |
CN116755876A (zh) | 一种大模型混合并行训练加速方法和系统 | |
CN113052299B (zh) | 基于通信下界的神经网络存内计算装置及加速方法 | |
CN114064235A (zh) | 多任务教与学优化方法、系统及设备 | |
CN111859785B (zh) | 流体特征提取方法、系统、计算机可读存储介质及设备 | |
Zhang et al. | Optimizing execution for pipelined‐based distributed deep learning in a heterogeneously networked GPU cluster | |
CN107038244A (zh) | 一种数据挖掘方法和装置、一种可读介质和存储控制器 | |
CN110674931B (zh) | 一种基于权重重要性的全连接神经网络优化方法和装置 | |
US20240004718A1 (en) | Compiling tensor operators for neural network models based on tensor tile configurations | |
CN112232401A (zh) | 一种基于差分隐私及随机梯度下降的数据分类方法 | |
CN115456184B (zh) | 量子电路处理方法、量子态制备方法、装置、设备及介质 | |
CN111722923A (zh) | 一种异构资源的调用方法、装置和计算机可读存储介质 | |
CN115935888A (zh) | 一种神经网络加速系统 | |
WO2022057459A1 (zh) | 一种基于Tensorcore处理int4数据类型的方法、系统、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |