CN112860402B - 一种深度学习推理服务的动态批处理任务调度方法及*** - Google Patents
一种深度学习推理服务的动态批处理任务调度方法及*** Download PDFInfo
- Publication number
- CN112860402B CN112860402B CN202110192645.XA CN202110192645A CN112860402B CN 112860402 B CN112860402 B CN 112860402B CN 202110192645 A CN202110192645 A CN 202110192645A CN 112860402 B CN112860402 B CN 112860402B
- Authority
- CN
- China
- Prior art keywords
- batch
- task
- size
- upper limit
- service
- 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
- 238000000034 method Methods 0.000 title claims abstract description 80
- 238000013135 deep learning Methods 0.000 title claims abstract description 50
- 230000008569 process Effects 0.000 claims abstract description 48
- 238000012545 processing Methods 0.000 claims abstract description 37
- 238000005457 optimization Methods 0.000 claims abstract description 22
- 230000000903 blocking effect Effects 0.000 claims description 9
- 238000004364 calculation method Methods 0.000 claims description 7
- 238000013136 deep learning model Methods 0.000 description 28
- 238000002474 experimental method Methods 0.000 description 14
- 239000011159 matrix material Substances 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 230000003068 static effect Effects 0.000 description 8
- 238000004458 analytical method Methods 0.000 description 6
- 230000001934 delay Effects 0.000 description 6
- 238000003672 processing method Methods 0.000 description 6
- 230000007704 transition Effects 0.000 description 5
- RTAQQCXQSZGOHL-UHFFFAOYSA-N Titanium Chemical compound [Ti] RTAQQCXQSZGOHL-UHFFFAOYSA-N 0.000 description 4
- 238000010923 batch production Methods 0.000 description 4
- 230000007423 decrease Effects 0.000 description 4
- 230000003247 decreasing effect Effects 0.000 description 4
- 238000011160 research Methods 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012886 linear function Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 239000012014 frustrated Lewis pair Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000001771 impaired effect Effects 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 229920002803 thermoplastic polyurethane Polymers 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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
- G06F9/5016—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 the resource being the memory
-
- 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/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- 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
-
- 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)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Biomedical Technology (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种深度学***均服务延迟;构建优化模型来优化批处理任务大小的上限与所述平均服务延迟和内存使用量,求解优化模型确定批处理任务的批次大小上限。本发明具有符合动态环境,具有较好的平均服务延迟和内存占用量等优点。
Description
技术领域
本发明涉及边缘计算和云计算技术领域,尤其涉及一种深度学习推理服务的动态批处理任务调度方法及***。
背景技术
由于深度学习(Deep Learning)在如图像处理、自然语言处理等领域的优秀表现,以及如搭载Android和iOS等***的移动设备的日渐普及,目前移动设备可以为终端用户提供众多智能应用。如Google Play上有超过16500个移动应用使用深度学习作为核心构件,提供从计算机视觉到文本和音频处理的智能服务。具体应用包括如微软开发的名为SeeingAI的手机APP,用于协助视障人士利用车载摄像头识别周围环境。Adobe Scan使用基于深度学习的文本识别技术,将图像转化为文本。
移动设备使用深度学习提供智能服务的一种常见方式是基于预先训练的模型运行深度学习推理。然而,深度学习模型推理在能源、内存和计算引擎周期方面都有着较高的要求。虽然目前市面上已经发布了一些移动神经网络计算元件以加速设备上的深度学习模型推理,如NPU和TPU,但它们的计算能力仍非常有限,难以保证高质量的服务。
为了提供高效的移动智能服务,更有效的解决方案是将模型推理卸载到强大的边缘或云服务器上。由于深度学***台DLIS(Deep Learning Inference Service,DLIS)每秒会收到数十万个深度学习推理请求。而Facebook的数据中心的深度学习推理需求量在两年内也增加了三倍。
在AR和VR等移动应用中,关键的问题是严格的低延迟要求,一般都在毫秒级的范围。随着深度学习推理任务请求量的显著增加,即使是对于强大的GPU服务器来说,这种严格的低延迟要求也成为了一种挑战。
由于GPU的高度并行计算架构,将输入批处理在一起可以显著提高计算效率。通过对2个GPU服务器上具有代表性的深度学习模型在不同批次(batch)大小下的吞吐率进行研究分析,得到如图1所示的不同深度学习模型中不同批次大小下的吞吐率,可见通过批处理输入,可以较大的提高吞吐率。同时,通过对批处理输入的批次与显存占用关系之间的研究,得到如图2所示的不同深度学习模型中不同批次大小与显存占用之间的关系,最差的情况是显存占用达到2558MB。
而现有的采用批处理的方式提升深度学习推理服务的吞吐率和降低深度学习推理服务的延迟的相关研究都是静态环境下讨论的,静态环境指的是相关研究认为深度学习推理服务的任务都是在服务器本地静态等待的,但在实际网络服务的情况中,任务都是随机到达的,所以在这种随机到达的过程中,如何合理利用批处理的方式对深度学习推理服务进行优化是现有技术中尚没有被深入研究并且具有现实意义的。
发明内容
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种符合动态环境,具有较好的平均服务延迟和内存占用量的深度学习推理服务的动态批处理任务调度方法及***。
为解决上述技术问题,本发明提出的技术方案为:一种深度学***均服务延迟;
通过式(1)所示的优化模型来优化批处理任务大小的上限与所述平均服务延迟和内存使用量,
式(1)中,E(W(b))为批次大小上限b所对应平均服务延迟,b为批处理任务的批次大小上限,W(b)为服务延迟,γ为内存使用量与平均服务延迟相比的权重,mb为批次大小上限为b时对应的内存使用量,B为批次大小上限的最大值,N为批处理任务队列中等待的最大任务数,λ为任务到达率,μB为批次大小为B时的服务速率;求解式(1)的优化模型确定批处理任务中的批次大小上限。
进一步地,所述平均服务延迟通过式(2)计算确定,
式(2)中,E(W(b))为批次大小上限b所对应平均服务延迟,L为平均任务数,λ为任务到达率,Pblock为任务的阻塞概率。
进一步地,所述平均任务数通过式(3)确定,
所述阻塞概率通过式(4)确定,
式(3)和式(4)中,E(L)为平均任务数,n为批处理任务队列中等待任务数,r为批次大小,a为批处理任务的批次大小下限,b为批处理任务的批次大小上限,πn,r为等待任务数为n批次大小为r的稳态概率,πn,0为等待任务数为n批次大小为0的稳态概率,πN,r为等待任务数为N批次大小为r的稳态概率。
进一步地,所述优化模型的求解过程包括:
初始化批处理任务的批次大小上限,及每次迭代中对批次大小上限进行调整的步长;以批次大小上限所对应的平均服务延时和内存使用量之和作为收敛参数;在每次迭代中,根据所述步长调整所述批次大小上限,当本轮迭代得到的收敛参数大于前一轮迭代的收敛参数时,以本轮迭代得到的批次大小上限作为优化模型输出的最优解。
进一步地,在第一轮迭代时,还包括对所述步长的调整方向进行修正的过程:当第一轮迭代得到的平均服务延迟与初始化的批次大小上限对应的平均服务延迟之差大于预设的阈值时,变更对批次大小上限进行调整的调整方向。
一种深度学习推理服务的动态批处理任务调度***,根据如上任一项所述的深度学习推理服务的动态批处理任务调度方法进行任务调度。
与现有技术相比,本发明的优点在于:本发明相对于传统单任务处理的方法,在处理速度上有了大幅提高;相对于传统的批处理方法,与最优固定批次大小的批处理方法在速度上也有大幅提高,而且,在显存占用上也有明显的改进;相对于贪婪的动态批处理方法,在服务延迟基本相同的情况下,显存占用量大幅减少,显存占用方面有了巨大的提升。
附图说明
图1为现有技术中不同深度学习模型的吞吐率情况。
图2为现有技术中不同深度学习模型的显存占用量情况。
图3为本发明具体实施例的流程示意图。
图4为本发明具体实施例中NVIDIA RTX 2080GPU上深度学习模型GoogLeNet,DenseNet-169推理吞吐率(a)、GPU利用率(b)与批次大小的关系示意图。
图5为本发明具体实施例中NVIDIA Titan Xp GPU上深度学习模型GoogLeNet,DenseNet-169推理吞吐率(a)、GPU利用率(b)与批次大小的关系示意图。
图6为本发明具体实施例中NVIDIARTX 2080GPU(a)和NVIDIA Titan Xp GPU(b)上深度学习模型GoogLeNet,DenseNet-169推理GPU显存占用的关系示意图。
图7为本发明具体实施例中NVIDIA RTX 2080GPU上深度学习模型GoogLeNet推理服务在动态批处理(a=1)和静态批处理(a=b)的服务延迟和阻塞概率示意图,服务过程中的任务到达率为990任务/秒。
图8为本发明具体实施例中NVIDIA RTX 2080GPU上深度学习模型GoogLeNet推理服务在固定动态批次上限情况下,动态批次下限与服务延迟的关系示意图
图9为本发明具体实施例中NVIDIARTX 2080GPU上深度学习模型GoogLeNet推理服务在动态批处理和静态批处理下的显存占用对比示意图。
图10为本发明具体实施例中深度学习推理服务***模型所对应的排队模型示意图。
图11为本发明具体实施例中NVIDIA RTX 2080GPU上深度学习模型GoogLeNet和DenseNet-169推理服务在真实情况下和模型预测情况下的对比示意图,其中GoogLeNet服务过程中的任务到达率为990任务/秒,DenseNet-169的任务到达率为330任务/秒。
图12为本发明具体实施例中GoogLeNet模型的推理服务受批次大小上限b和到达率λ的影响情况示意图。
图13为本发明具体实施例中NVIDIA RTX 2080GPU上深度学习模型GoogLeNet推理服务在变化的任务到达率情况下,本发明的方法和不同的静态批处理的服务延迟对比示意图。
图14为本发明具体实施例中NVIDIA RTX 2080GPU上深度学习模型GoogLeNet推理服务在变化的任务到达率情况下,本发明的方法和不同的静态批处理以及贪婪的动态批处理的显存占用对比示意图。
具体实施方式
以下结合说明书附图和具体优选的实施例对本发明作进一步描述,但并不因此而限制本发明的保护范围。
本实施例的深度学***均服务延迟;
通过式(1)所示的优化模型来优化批处理任务大小的上限与所述平均服务延迟和内存使用量,
式(1)中,E(W(b))为批次大小上限b所对应平均服务延迟,b为批处理任务的批次大小上限,W(b)为服务延迟,γ为内存使用量与平均服务延迟相比的权重,mb为批次大小上限为b时对应的内存使用量,B为批次大小上限的最大值,N为批处理任务队列中等待的最大任务数,λ为任务到达率,μB为批次大小为B时的服务速率;求解式(1)的优化模型确定批处理任务中的批次大小上限。
在本实施例中,所述平均服务延迟通过式(2)计算确定,
式(2)中,E(W(b))为批次大小上限b所对应平均服务延迟,L为平均任务数,λ为任务到达率,Pblock为任务的阻塞概率,式中其余参数的定义与上文相同。
在本实施例中,所述平均任务数通过式(3)确定,
所述阻塞概率通过式(4)确定,
式(3)和式(4)中,E(L)为平均任务数,n为批处理任务队列中等待任务数,r为批次大小,a为批处理任务的批次大小下限,b为批处理任务的批次大小上限,πn,r为等待任务数为n批次大小为r的稳态概率,πn,0为等待任务数为n批次大小为0的稳态概率,πN,r为等待任务数为N批次大小为r的稳态概率,式中其余参数的定义与上文相同。
在本实施例中,所述优化模型的求解过程包括:初始化批处理任务的批次大小上限,及每次迭代中对批次大小上限进行调整的步长;以批次大小上限所对应的平均服务延时和内存使用量之和作为收敛参数;在每次迭代中,根据所述步长调整所述批次大小上限,当本轮迭代得到的收敛参数大于前一轮迭代的收敛参数时,以本轮迭代得到的批次大小上限作为优化模型输出的最优解。
在本实施例中,在第一轮迭代时,还包括对所述步长的调整方向进行修正的过程:当第一轮迭代得到的平均服务延迟与初始化的批次大小上限对应的平均服务延迟之差大于预设的阈值时,变更对批次大小上限进行调整的调整方向。
一种深度学习推理服务的动态批处理任务调度***,根据如上任一项所述的深度学习推理服务的动态批处理任务调度方法进行任务调度。
通过具体的仿真实验对本本实施例方法进行验证分析。在实验中,通过分析实际的网络深度学习推理服务的模式,以如下内容来描述基于批处理的深度学习推理服务***。
GPU服务器会接收到大量移动设备或其他终端接收深度学习模型推理任务,任务到达过程遵循一个速率为λ的泊松分布,推理过程遵循一般分布,推理延迟取决于当前的批次大小。当GPU服务器仅仅运行一个深度学习推理模型时,由于不存在其他任务和其竞争,此时推理过程遵循一个确定性的分布。在更现实的情况下,即多个模型推理服务运行在一台服务器上,其推理延迟服务一般分布,用于描述服务之间计算资源竞争所造成的不同延迟。
根据深度学***均服务延迟。具体来说,在理论上构建一个深度学***均服务延迟的闭式解公式,该闭式解公式的求解结果包括排队延迟和推理延迟。通过大量实验分析后确定,由于随着批次的增大需要加载到显卡中的图片数量以及推理过程中生成的中间数据也会越多,显存占用会随着批次大小的增长而线性增长,可以通过一个线性函数来描述这个关系。最后,通过将闭式公司和线性函数归纳成一个优化问题的目标函数,优化变量是批次大小上限b。由于批次大小的值是离散且搜索空间较小,因此通过遍历搜索空间就求解这个问题。
在目前流行的深度学习框架中,如TensorFlow、Pytorch、MxNet和Dynet,在使用GPU加速的情况下,批处理后的图像将被编排成矩阵,传入到已经加载在GPU上深度学习模型的进行计算。一方面,批处理可以在卷积操作中让所有图像共用卷积核权重从而减少模型参数的调用降低延迟;另一方面,批处理利用了卷积运算和全连接层神经元运算的并行性,这进一步利用了GPU架构的并行计算能力。在实验中,基于8GB显存的RTX 2080GPU和12GB内存的Titan X Pascal(Titan Xp)GPU进行深度学习模型推理实验,深度学习模型推理利用CUDA-v10.0.130接口和cuDNN-v7.6.2加速库,使用Pytorch作为深度学习框架。
在本实施例中,为了进行对比,首先测试了5个典型的深度学***均值。
在实验中,通过最小二乘法拟合了一条曲线来分析批处理量与吞吐率之间的关系。通过实验发现,在批量大小r下,批量推理时延τr=v×r+τ0,v表示随着I/O操作随批量大小的增加,推理时延的斜率,τ0表示推理时延的截距,v>0,τ0>0。由此可以确定批量大小r下的服务率μr的表达式(单位为batch/s)为在指大小r下,吞吐率(image/s)的表达式为r×μr。
在服务器提供深度学习模型推理服务的场景中,会有大量的客户向服务器提交任务。服务器会将任务组织到一个队列中。在实验中用N来表示批处理任务队列中等待的最大任务数。根据服务等级协议(SLA),响应时间是云服务或者网络服务的一个重要指标,由于过大的N会导致队列尾部任务因高延迟而超时,因此N不宜过大,在本实验中设置为N=128。服务延迟W包括两部分,分别是排队延迟和推理延迟。在实验中为了模仿推理任务的随机到达,假设任务到达过程遵循泊松分布。
在实际***中,由于任务是随机到达的,随机到达的任务不一定能立马接受服务,所以深度学习服务延迟不仅仅包含推理延迟,还包含排队延迟。在实验中,通过测试在不同***状态下,RTX 2080GPU上的GoogLeNet的服务延迟W和阻塞任务Pblock。可以确定,处理的批次大小是由服务器中等待的任务数量决定的,如果小于批处理大小上限b,则服务器将所有任务作为一批进行处理;否则,服务器处理的批次大小将为上限b。考虑到批次大小受GPU内存的限制,在实验中,对b的值设置了一个最大值B,即b≤B,B≤N,在本实验中,B设置为64。B×μB为对应于一定服务过程中的最大吞吐率。将流量强度定义为其中μB表示批处理大小为B时的服务速率,λ表示任务到达率,ρ<1,因为当λ大于或等于最大吞吐率B×μB时,增加到达率λ只会增加Pblock。
通过比较a=1(a为批次大小下限,a=1即动态批次大小)和a=b(即固定批次大小)的情况,并设置ρ为0.75,可计算出的任务到达率λ=990,即代表平均每秒到达990个任务。如图7所示,在a=1的情况下,对于b的数值较小的情况下,当增加b时,服务延迟会降低,当b的数值变大时,服务延迟只会轻微波动。而a=b情况下的服务延迟值比a=b情况下的服务延迟值大,这是因为先到达的任务必须等到队列中至少有b个任务时,才能够进行批处理。图8显示,当批次上限b固定时,增加下限a的值会增加服务延迟,对应的显存占用量如图9所示。可以确定,动态批处理大小比固定批处理大小表现得更好,另外,当a=b=1,即不进行批处理时,服务延迟的平均值为781ms,Pblock为83%,Pblock和服务延迟W的趋势几乎相同,这是因为服务延迟越低,任务的排队延迟越低,从而任务到达时队列为满的概率越低。
在深度学习推理计算中,GPU显存(即内存)是GPU计算过程中的重要资源,与CPU计算不同的是,物理GPU无法准确限制一个进程的显存使用量,不过GPU可以通过远程API技术和PCI pass-through技术进行虚拟化,或者通过nvidia docker分配到不同的容器中用于不同的服务。GPU服务器为一个进程提供了所有的GPU显存,并在进程申请时准备分配更多的内存。由于显存溢出(Out of Memory)和缺页错误(Page Fault)对GPU来说是致命错误(Fatal Error),会导致出错所在进程停止运行,而不同的进程会竞争GPU显存,因此,有必要在不影响运行速度的前提下尽可能减少一个进程的GPU显存使用量。因为在推理过程中,每张图像都需要加载到内存中,并在神经网络的每一层产生一个输出张量,内存使用量mr与批次大小r呈线性关系,如图6中所示,内存使用量与批次大小之间的关系可表示为mr=kr+m0,其中,k为表示随着批次大小r的增加显存使用量增加的斜率,m0为表示加载深度学习模型的显存使用量,且k>0,m0>0。
在基于动态批处理的深度学***均服务延迟,需要分析***中任意时刻的等待任务数,由于服务过程服从一般分布,任意时刻的***中等待任务数的变化过程是一个非马尔可夫过程,此外,推理延迟取决于a和b之间的批量大小。为了使分析变得简单,在本实验中,首先利用嵌入式马尔可夫链(eMC)技术来获得一个马尔可夫过程的过渡概率,该过程有两个维度,包括队列等待任务数n和批处理大小r。嵌入式马尔可夫过程记录的是一个批处理完成时的等待任务数,本实施例中称批处理完成时刻为批次离开时刻,如图10中所示。再通过批次离开时刻的***状态和任意时刻的***状态的概率之间的关系,得到了任意时刻的***状态的概率矩阵。在本实施例中,用X(t)=(n(t),r(t))表示每个批次离开时刻的队列等待任务数n和离开的批次大小r的演化共同构成的二维马尔可夫过程,其中t表示批次离开时刻的下标,即第几个离开的批次n(t)表示第t个批次离开时刻的队列等待任务数,r(t)表示第t个批次的批次大小。
可以用二维马尔可夫过程来表示深度学习推理服务的等待任务数和离开的批次大小之间关系的证明过程如下:
以Vt,t+1(r)表示批次离开时刻t和t+1之间的到达任务数,批次大小为r,下面推导不同情况下n(t)和r(t)的转化关系:
·n(t)<a,即批次离开时刻t队列中任务数小于a,服务器需要等到a-n(t)个任务到达后才能进行批量大小为a的推理,因此,有n(t+1)=Vt,t+1(a)和r(t+1)=a。
·a≤n(t)≤b,即批次离开时刻t的任务数在a和b之间,所有的n(t)任务将被作为一个批次推理。因此,有n(t+1)=Vt,t+1(n(t))和r(t+1)=n(t)。
·n(t)>b,即批次离开时刻t的任务数大于b,前b个任务将被作为一个批次进行推理。因此,有n(t+1)=n(t)-b+Vt,t+1(b)和r(t+1)=b。
从而可以确定,n(t+1)和r(t+1)的值由n(t),r(t)和Vt,t+1(r(t+1))决定,而Vt,t+1(r(t+1))的值遵循泊松分布,该分布在各个批次离开时刻之间是无记忆的,因此可以用二维马尔可夫过程来表示深度学习推理服务的等待任务数和离开的批次大小之间关系。
根据过程X(t)的马尔可夫性质,可以分析***各个状态的概率。X(t)的状态空间是剩余任务和离开批次分别从0到N和a到b的联合。用来表示概率转移矩阵,其维度为(N+1)(b-a+1)×(N+1)(b-a+1)。为了简化分析,将原矩阵划分为大小各为(b-a+1)×(b-a+1)的子矩阵,用/>表示,如下式所示,
式中,用θ(·)表示的矩阵的各个元素,θ(·)括号中的值表示介于a和b之间的批次大小。
为了便于说明推导过程,在确定的值之前,定义为处理一批大小为r的任务时,j个任务到达服务器的概率,定义/>如果n(t)≤a,n(t)的值等于a,如果a<n(t)≤b,n(t)的值等于b,如果n(t)>b,则分下面几种情况来确定θ(·)的值:
·n(t)≤b,n(t+1)≤N-1。在这种情况下,下一批要进行推理的批次大小等于即如果n(t)<a,则等待一个任务到达后再进行推理,否则,则对所有任务进行批量推理。下一个批次完成时服务器中存在n(t+1)个任务的概率等于/>即/>中其他θ(·)=0。
·n(t)≤b且n(t+1)=N。与前述情况的理由相同,在这种情况下,下一批要进行推理的批次大小等于由于n(t+1)=N,表明在该批任务的服务过程中至少有N个任务到达。下一个批次完成时服务器中存在n(t+1)个任务的概率等于/>即/>中其他θ(·)=0。
·b<n(t)≤N且n(t+1)≤N-1。在这种情况下,下一批要进行推理的批次大小要实现n(t+1)≤N-1,到达的任务数等于n(t+1)-(n(t)-b)。下一个批次完成时服务器中存在n(t+1)任务的概率等于/>即/>中/>其他θ(·)=0。
·b<n(t)≤N且n(t+1)=N。在这种情况下,下一批要进行推理的批次大小由于n(t+1)=N,所以在批量推理过程中至少有n(t+1)-(n(t)-b)个任务到达。下一个批次完成时服务器中存在n(t+1)个任务的概率等于/>即/>中/>其他θ(·)=0。
根据过渡概率矩阵可以推导出X(t)的稳态概率矩阵/>通过求解/>等式可得/>用/>来表示服务器在一个批次大小为r的批次离开时刻有队列中n个任务的稳态概率,由于要描述***的所有状态,需要将批次离开时刻的稳态概率矩阵,即/>与***任意时刻处的稳态概率矩阵Π联系起来,用πn,r来表示稳态概率矩阵Π中每个状态的概率。通过计算可以得到批次离开时刻的稳态概率矩阵/>与***任意时刻处的稳态概率矩阵Π的函数关系如下,在0≤n≤N-1的***状态的稳态概率如下所示:
其中,sr表示当批次大小为r时的平均推理延迟。
则n=N状态下的稳态概率如下:
其中,pn,r(0)表示队列中存在n个任务且批次大小r的的批次剩余服务时间为0的概率,pn,r(0)由下式给出:
通过上述分析后,可以计算得到的重要指标,***中的平均任务数E(L)如式(3)所示,包括排队中的任务和服务中的任务,然后根据利特尔法则可以得到平均服务延迟E(W)如式(2)所示,以及阻塞概率Pblock如式(4)所示,而根据λ(1-Pblock)可计算得到有效到达率。
通过实验及上述分析,可以确定,基于动态批处理的深度学***衡,即得到式(1)所示的优化模型。在式(1)中的约束条件下,出于实际考虑,流量强度是为了保证***稳定运行,1≤b≤B是批处理大小上界的范围。通过实验发现,对于b的数值较小的情况下,当增加b时,E(W(b))会降低,当b的数值变大时,E(W(b))只会轻微波动,因此当***对显存占用不是非常敏感的情况下,可以将γ设置为一个较小的值。优化问题的求解变量为批次大小上界b的值,目标为最小化服务延迟E(W(b))与γmb的和。
由于排队模型可以准确预测不同***状态下的服务延迟,因此可以通过排队模型分析批量大小上界b、到达率λ对平均服务延迟E(W(b))的影响,如图12所示发现:
·当时,即bμb大于到达率λ时,服务延迟E(W(b))随b的增加而略有下降。从图4,图5可知,bμb随b单调增加,其中μb表示批次大小为b时的服务率。b为服务期间的批次大小上限,因此bμb是服务期间吞吐率的上限。当bμb大于到达率时,服务器可以及时推断到达的任务,增加b的值所带来的服务延迟减少不会很明显。
·当即bμb等于或开始小于λ时,服务延迟E(W(b))的值会随着b的减小而激增。在这种情况下,在排队***中,任务队列必然产生积压,导致每个新到达的任务都需要面对一个排满的任务队列。
·当即bμb小于到达率λ时,服务延迟E(W(b))的值随着b的减小而继续增加。在队列容量有限的排队***中,当到达率大于吞吐率时,吞吐率已经达到饱和,在这种情况下,降低吞吐率,即降低***中b的值,将导致任务的排队延迟增加。
如图12所示,体现了GoogLeNet推理服务中E(W(b))随量大小上界b和到达率λ变化的情况,如图1中所列举的其它深度学习模型由于推理过程相似,也具有上述特征。
在本实施例中,在确定了式(1)所示的优化模型后,通过迭代过程来实现优化模型的求解,相对于蛮力搜索相比,具有更高的效率。迭代的算法具体实现的代码如下:
包括:首先,当时,可以得到一个相对较低的平均服务延迟和内存使用率。对方程λ=bμb中的b求解,得到/>将λτ0/(1-λv)向上取整是为了确保(第1-2行)。然后,计算当前b对应的E(W(b))和E(W(b-1))的值来得到服务延迟的激增情况。因为E(W(b))和E(W(b-1))分别对应于/>和/>的平均服务延迟(第3行)。最后,根据权衡参数γ和k来调整b的值。当:1)E(W(b-1))-E(W(b))<γk时,说明显存使用量在(OP)中的权重大于服务延迟的激增速度,需要降低b的值来降低显存使用量。2)E(W(b-1))-E(W(b))≥γk,说明b可以继续增加以获得更低的服务延迟(第7-8,11行)。3)改变b的值会导致E(W(b))+γmb的值变大,此时b的值就是最优解b*(第15-16行)。由于E(W(b))和mb分别随b的单调递减和递增,所以E(W(b))+γmb在定义域[1,B]上一定有一个最小值,算法搜索最坏的情况是b*在定义域的端点上。
通过在深度学习框架Pytorch上实现了本发明的方法并采用NVIDIA RTX 2080GPU和深度学习模型GoogLeNet对优化方法的性能进行了评估。图13显示了NVIDIA RTX2080GPU上深度学习模型GoogLeNet推理服务在变化的任务到达率情况下,本发明的方法和不同的静态批处理的服务延迟对比结果。其中到达率的变迁情况为330,800,730,930,1120,990,330,530,670,400任务/秒,其中每个到达率下到达50000个任务。图14显示了NVIDIA RTX 2080GPU上深度学习模型GoogLeNet推理服务在变化的任务到达率情况下,本发明的方法和不同的静态批处理以及贪婪的动态批处理的显存占用对比示意图。到达率的变迁情况为330,800,730,930,1120,990,330,530,670,400任务/秒,其中每个到达率下到达50000个任务。通过附图中的对比结论可以确定,本发明的优化方法相较于单任务处理的方法加速了31倍;在批处理的情形下,如图11和图12所示,本发明的方法与最优的固定批次大小批处理的方法相比加速了2.2倍,GPU显存占用为其0.8倍;而与贪婪的动态批处理方法相比,GPU显存占用仅为其0.3倍,而服务延迟基本相同。
上述只是本发明的较佳实施例,并非对本发明作任何形式上的限制。虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明。因此,凡是未脱离本发明技术方案的内容,依据本发明技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均应落在本发明技术方案保护的范围内。
Claims (4)
1.一种深度学习推理服务的动态批处理任务调度方法,其特征在于:
以二维马尔可夫过程描述每个批次离开时刻的队列等待任务数和离开批次的大小,确定所述二维马尔可夫过程的稳态概率,根据所述稳态概率确定深度学***均服务延迟;
通过式(1)所示的优化模型来优化批处理任务大小的上限与所述平均服务延迟和内存使用量,
式(1)中,E(W(b))为批次大小上限b所对应平均服务延迟,b为批处理任务的批次大小上限,W(b)为服务延迟,γ为内存使用量与平均服务延迟相比的权重,mb为批次大小上限为b时对应的内存使用量,B为批次大小上限的最大值,N为批处理任务队列中等待的最大任务数,λ为任务到达率,μB为批次大小为B时的服务速率;求解式(1)的优化模型确定批处理任务中的批次大小上限;
所述平均服务延迟通过式(2)计算确定,
式(2)中,E(W(b))为批次大小上限b所对应平均服务延迟,L为平均任务数,λ为任务到达率,Pblock为任务的阻塞概率;
所述平均任务数通过式(3)确定,
所述阻塞概率通过式(4)确定,
式(3)和式(4)中,E(L)为平均任务数,n为批处理任务队列中等待任务数,r为批次大小,a为批处理任务的批次大小下限,b为批处理任务的批次大小上限,πn,r为等待任务数为n批次大小为r的稳态概率,πn,0为等待任务数为n批次大小为0的稳态概率,πN,r为等待任务数为N批次大小为r的稳态概率。
2.根据权利要求1所述的深度学习推理服务的动态批处理任务调度方法,其特征在于,所述优化模型的求解过程包括:
初始化批处理任务的批次大小上限,及每次迭代中对批次大小上限进行调整的步长;以批次大小上限所对应的平均服务延时和内存使用量之和作为收敛参数;在每次迭代中,根据所述步长调整所述批次大小上限,当本轮迭代得到的收敛参数大于前一轮迭代的收敛参数时,以本轮迭代得到的批次大小上限作为优化模型输出的最优解。
3.根据权利要求2所述的深度学***均服务延迟与初始化的批次大小上限对应的平均服务延迟之差大于预设的阈值时,变更对批次大小上限进行调整的调整方向。
4.一种深度学习推理服务的动态批处理任务调度***,其特征在于,根据权利要求1至3任一项所述的深度学习推理服务的动态批处理任务调度方法进行任务调度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110192645.XA CN112860402B (zh) | 2021-02-20 | 2021-02-20 | 一种深度学习推理服务的动态批处理任务调度方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110192645.XA CN112860402B (zh) | 2021-02-20 | 2021-02-20 | 一种深度学习推理服务的动态批处理任务调度方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112860402A CN112860402A (zh) | 2021-05-28 |
CN112860402B true CN112860402B (zh) | 2023-12-05 |
Family
ID=75988278
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110192645.XA Active CN112860402B (zh) | 2021-02-20 | 2021-02-20 | 一种深度学习推理服务的动态批处理任务调度方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112860402B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113656150A (zh) * | 2021-08-20 | 2021-11-16 | 上海熠知电子科技有限公司 | 深度学习算力虚拟化*** |
CN114691314A (zh) * | 2021-10-14 | 2022-07-01 | 上海交通大学 | 基于确定性算子共存的服务调度方法及其应用的gpu |
CN113961328B (zh) * | 2021-10-26 | 2022-07-19 | 深圳大学 | 一种任务处理方法、装置、存储介质及电子设备 |
CN117376423B (zh) * | 2023-12-08 | 2024-03-12 | 西南民族大学 | 一种深度学习推理服务调度方法、***、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106792779A (zh) * | 2016-12-30 | 2017-05-31 | 浙江大学 | 一种在许可和免许可频段工作的蜂窝网络接入控制方法 |
CN110312272A (zh) * | 2019-07-23 | 2019-10-08 | 中南大学 | 一种网络服务块资源分配方法及存储介质 |
CN112346866A (zh) * | 2020-11-05 | 2021-02-09 | 中国科学院计算技术研究所 | 一种基于异步数据传输的gpu调度方法及*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2017348382A1 (en) * | 2016-10-28 | 2019-06-20 | Illumina, Inc. | Bioinformatics systems, apparatuses, and methods for performing secondary and/or tertiary processing |
-
2021
- 2021-02-20 CN CN202110192645.XA patent/CN112860402B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106792779A (zh) * | 2016-12-30 | 2017-05-31 | 浙江大学 | 一种在许可和免许可频段工作的蜂窝网络接入控制方法 |
CN110312272A (zh) * | 2019-07-23 | 2019-10-08 | 中南大学 | 一种网络服务块资源分配方法及存储介质 |
CN112346866A (zh) * | 2020-11-05 | 2021-02-09 | 中国科学院计算技术研究所 | 一种基于异步数据传输的gpu调度方法及*** |
Non-Patent Citations (8)
Title |
---|
"An Energy Efficient Task Scheduling Strategy in a Cloud Computing System and its Performance Evaluation using a Two-Dimensional Continuous Time Markov Chain Model";Zhao, Wenjuan, Xiushuang Wang, Shunfu Jin, Wuyi Yue, and Yutaka Takahashi.;《Electronics 8》;全文 * |
"Border crossing delay prediction using transient multi-server queueing models";Lin, Lei, Qian Wang, and Adel W. Sadek.;《Transportation Research Part A: Policy and Practice64 (2014)》;全文 * |
"Delay-Aware IoT Task Scheduling in Space-Air-Ground Integrated Network";C.Zhou et al.;《2019 IEEE Global Communications Conference (GLOBECOM)》;全文 * |
"Delay-optimal proactive service framework for block-stream as a service";Zhang, Deyu, et al.;《IEEE Wireless Communications Letters 7.4 (2018)》;第598-601页 * |
"Stationary analysis and optimal control under multiple working vacation policy in a GI/M (a, b)/1 queue";Panda, Gopinath, Abhijit Datta Banik, and Dibyajyoti Guha.;《Journal of Systems Science and Complexity 31 (2018)》;全文 * |
"基于***调度与随机算法的云服务优化技术研究";王斐;《中国博士学位论文全文数据库 基础科学辑》;全文 * |
何华 ; 林闯 ; 赵增华 ; 庞善臣 ; ."使用确定随机Petri网对Hadoop公平调度的建模和性能分析".《计算机应用》.2015,全文. * |
赵海军 ; 崔梦天 ; 李明东 ; 何先波 ; ."基于CTMC和状态空间模型的宽带无线接入网的QoS性能研究".《电子学报》.2018,全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN112860402A (zh) | 2021-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112860402B (zh) | 一种深度学习推理服务的动态批处理任务调度方法及*** | |
JP6539236B2 (ja) | 効果的なニューラルネットワークの配置に用いるシステム及び方法 | |
CN110546654B (zh) | 通过构造接口的带宽控制来增强dnn模块的处理性能 | |
CN108885571B (zh) | 分批处理机器学习模型的输入 | |
CN113950066A (zh) | 移动边缘环境下单服务器部分计算卸载方法、***、设备 | |
US10140572B2 (en) | Memory bandwidth management for deep learning applications | |
US10846096B1 (en) | Batch processing of requests for trained machine learning model | |
CN108012156A (zh) | 一种视频处理方法及控制平台 | |
CN113469355B (zh) | 分布式***中的多模型训练管道 | |
CN110531996B (zh) | 一种多微云环境下基于粒子群优化的计算任务卸载方法 | |
WO2019001323A1 (zh) | 信号处理的***和方法 | |
CN112667400A (zh) | 边缘自治中心管控的边云资源调度方法、装置及*** | |
CN110689045A (zh) | 一种深度学习模型的分布式训练方法及装置 | |
US11941528B2 (en) | Neural network training in a distributed system | |
CN110489955B (zh) | 应用于电子设备的图像处理、装置、计算设备、介质 | |
CN114008589A (zh) | 用于在顺序处理器上进行多次执行的动态代码加载 | |
CN114240506A (zh) | 多任务模型的建模方法、推广内容处理方法及相关装置 | |
US11494326B1 (en) | Programmable computations in direct memory access engine | |
CN109840597B (zh) | 一种模型预测方法、装置、电子设备及存储介质 | |
CN111860557B (zh) | 图像处理方法及装置、电子设备及计算机存储介质 | |
CN113361621B (zh) | 用于训练模型的方法和装置 | |
WO2022213073A1 (en) | Sparse machine learning acceleration | |
US20220148298A1 (en) | Neural network, computation method, and recording medium | |
CN114819088A (zh) | 网络结构搜索方法、装置、可读存储介质及电子设备 | |
CN115599533A (zh) | 任务处理方法、装置、设备以及存储介质 |
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 |