首页> 中国专利> 一种深度学习推理服务的动态批处理任务调度方法及系统

一种深度学习推理服务的动态批处理任务调度方法及系统

摘要

本发明公开了一种深度学习推理服务的动态批处理任务调度方法及系统,方法包括:以二维马尔可夫过程描述每个批次离开时刻的队列等任务数和离开批次的大小,确定所述二维马尔可夫过程的稳态概率,根据所述稳态概率确定深度学习推理服务系统中的平均服务延迟;构建优化模型来优化批处理任务大小的上限与所述平均服务延迟和内存使用量,求解优化模型确定批处理任务的批次大小上限。本发明具有符合动态环境,具有较好的平均服务延迟和内存占用量等优点。

著录项

  • 公开/公告号CN112860402A

    专利类型发明专利

  • 公开/公告日2021-05-28

    原文格式PDF

  • 申请/专利权人 中南大学;

    申请/专利号CN202110192645.X

  • 发明设计人 张德宇;罗云臻;张尧学;

    申请日2021-02-20

  • 分类号G06F9/48(20060101);G06F9/50(20060101);G06N3/08(20060101);G06N20/00(20190101);

  • 代理机构43008 湖南兆弘专利事务所(普通合伙);

  • 代理人蒋维特

  • 地址 410083 湖南省长沙市麓山南路932号

  • 入库时间 2023-06-19 11:08:20

说明书

技术领域

本发明涉及边缘计算和云计算技术领域,尤其涉及一种深度学习推理服务的动态批处理任务调度方法及系统。

背景技术

由于深度学习(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)为服务延迟,γ为内存使用量与平均服务延迟相比的权重,m

进一步地,所述平均服务延迟通过式(2)计算确定,

式(2)中,E(W(b))为批次大小上限b所对应平均服务延迟,L为平均任务数,λ为任务到达率,P

进一步地,所述平均任务数通过式(3)确定,

所述阻塞概率通过式(4)确定,

式(3)和式(4)中,E(L)为平均任务数,n为批处理任务队列中等待任务数,r为批次大小,a为批处理任务的批次大小下限,b为批处理任务的批次大小上限,π

进一步地,所述优化模型的求解过程包括:

初始化批处理任务的批次大小上限,及每次迭代中对批次大小上限进行调整的步长;以批次大小上限所对应的平均服务延时和内存使用量之和作为收敛参数;在每次迭代中,根据所述步长调整所述批次大小上限,当本轮迭代得到的收敛参数大于前一轮迭代的收敛参数时,以本轮迭代得到的批次大小上限作为优化模型输出的最优解。

进一步地,在第一轮迭代时,还包括对所述步长的调整方向进行修正的过程:当第一轮迭代得到的平均服务延迟与初始化的批次大小上限对应的平均服务延迟之差大于预设的阈值时,变更对批次大小上限进行调整的调整方向。

一种深度学习推理服务的动态批处理任务调度系统,根据如上任一项所述的深度学习推理服务的动态批处理任务调度方法进行任务调度。

与现有技术相比,本发明的优点在于:本发明相对于传统单任务处理的方法,在处理速度上有了大幅提高;相对于传统的批处理方法,与最优固定批次大小的批处理方法在速度上也有大幅提高,而且,在显存占用上也有明显的改进;相对于贪婪的动态批处理方法,在服务延迟基本相同的情况下,显存占用量大幅减少,显存占用方面有了巨大的提升。

附图说明

图1为现有技术中不同深度学习模型的吞吐率情况。

图2为现有技术中不同深度学习模型的显存占用量情况。

图3为本发明具体实施例的流程示意图。

图4为本发明具体实施例中NVIDIA RTX 2080 GPU上深度学习模型GoogLeNet,DenseNet-169推理吞吐率(a)、GPU利用率(b)与批次大小的关系示意图。

图5为本发明具体实施例中NVIDIA Titan Xp GPU上深度学习模型GoogLeNet,DenseNet-169推理吞吐率(a)、GPU利用率(b)与批次大小的关系示意图。

图6为本发明具体实施例中NVIDIA RTX 2080 GPU(a)和NVIDIA Titan Xp GPU(b)上深度学习模型GoogLeNet,DenseNet-169推理GPU显存占用的关系示意图。

图7为本发明具体实施例中NVIDIA RTX 2080 GPU上深度学习模型GoogLeNet推理服务在动态批处理(a=1)和静态批处理(a=b)的服务延迟和阻塞概率示意图,服务过程中的任务到达率为990任务/秒。

图8为本发明具体实施例中NVIDIA RTX 2080 GPU上深度学习模型GoogLeNet推理服务在固定动态批次上限情况下,动态批次下限与服务延迟的关系示意图

图9为本发明具体实施例中NVIDIA RTX 2080 GPU上深度学习模型GoogLeNet推理服务在动态批处理和静态批处理下的显存占用对比示意图。

图10为本发明具体实施例中深度学习推理服务系统模型所对应的排队模型示意图。

图11为本发明具体实施例中NVIDIA RTX 2080 GPU上深度学习模型GoogLeNet和DenseNet-169推理服务在真实情况下和模型预测情况下的对比示意图,其中GoogLeNet服务过程中的任务到达率为990任务/秒,DenseNet-169的任务到达率为330任务/秒。

图12为本发明具体实施例中GoogLeNet模型的推理服务受批次大小上限b和到达率λ的影响情况示意图。

图13为本发明具体实施例中NVIDIA RTX 2080 GPU上深度学习模型GoogLeNet推理服务在变化的任务到达率情况下,本发明的方法和不同的静态批处理的服务延迟对比示意图。

图14为本发明具体实施例中NVIDIA RTX 2080 GPU上深度学习模型GoogLeNet推理服务在变化的任务到达率情况下,本发明的方法和不同的静态批处理以及贪婪的动态批处理的显存占用对比示意图。

具体实施方式

以下结合说明书附图和具体优选的实施例对本发明作进一步描述,但并不因此而限制本发明的保护范围。

本实施例的深度学习推理服务的动态批处理任务调度方法,以二维马尔可夫过程描述每个批次离开时刻的队列等任务数和离开批次的大小,确定所述二维马尔可夫过程的稳态概率,根据所述稳态概率确定深度学习推理服务系统中的平均服务延迟;

通过式(1)所示的优化模型来优化批处理任务大小的上限与所述平均服务延迟和内存使用量,

式(1)中,E(W(b))为批次大小上限b所对应平均服务延迟,b为批处理任务的批次大小上限,W(b)为服务延迟,γ为内存使用量与平均服务延迟相比的权重,m

在本实施例中,所述平均服务延迟通过式(2)计算确定,

式(2)中,E(W(b))为批次大小上限b所对应平均服务延迟,L为平均任务数,λ为任务到达率,P

在本实施例中,所述平均任务数通过式(3)确定,

所述阻塞概率通过式(4)确定,

式(3)和式(4)中,E(L)为平均任务数,n为批处理任务队列中等待任务数,r为批次大小,a为批处理任务的批次大小下限,b为批处理任务的批次大小上限,π

在本实施例中,所述优化模型的求解过程包括:初始化批处理任务的批次大小上限,及每次迭代中对批次大小上限进行调整的步长;以批次大小上限所对应的平均服务延时和内存使用量之和作为收敛参数;在每次迭代中,根据所述步长调整所述批次大小上限,当本轮迭代得到的收敛参数大于前一轮迭代的收敛参数时,以本轮迭代得到的批次大小上限作为优化模型输出的最优解。

在本实施例中,在第一轮迭代时,还包括对所述步长的调整方向进行修正的过程:当第一轮迭代得到的平均服务延迟与初始化的批次大小上限对应的平均服务延迟之差大于预设的阈值时,变更对批次大小上限进行调整的调整方向。

一种深度学习推理服务的动态批处理任务调度系统,根据如上任一项所述的深度学习推理服务的动态批处理任务调度方法进行任务调度。

通过具体的仿真实验对本本实施例方法进行验证分析。在实验中,通过分析实际的网络深度学习推理服务的模式,以如下内容来描述基于批处理的深度学习推理服务系统。

GPU服务器会接收到大量移动设备或其他终端接收深度学习模型推理任务,任务到达过程遵循一个速率为λ的泊松分布,推理过程遵循一般分布,推理延迟取决于当前的批次大小。当GPU服务器仅仅运行一个深度学习推理模型时,由于不存在其他任务和其竞争,此时推理过程遵循一个确定性的分布。在更现实的情况下,即多个模型推理服务运行在一台服务器上,其推理延迟服务一般分布,用于描述服务之间计算资源竞争所造成的不同延迟。

根据深度学习推理服务系统的模式,本实施例的实验中将基于批处理的深度学习服务推理系统建模为一个M/G(a,b)/1/N排队模型,排队模型按照D.G.Kendall排队论的范式进行建模,其中M表示任务的到达过程服从泊松分布,G表示推理过程服从一般分布,a表示推理批次大小下限,b表示推理批次大小的上限,1表示服务器的数量,N表示排队系统的批处理任务队列中等待的最大任务数。建立排队模型后对排队模型进行分析,得到平均服务延迟。具体来说,在理论上构建一个深度学习服务推理系统的平均服务延迟的闭式解公式,该闭式解公式的求解结果包括排队延迟和推理延迟。通过大量实验分析后确定,由于随着批次的增大需要加载到显卡中的图片数量以及推理过程中生成的中间数据也会越多,显存占用会随着批次大小的增长而线性增长,可以通过一个线性函数来描述这个关系。最后,通过将闭式公司和线性函数归纳成一个优化问题的目标函数,优化变量是批次大小上限b。由于批次大小的值是离散且搜索空间较小,因此通过遍历搜索空间就求解这个问题。

在目前流行的深度学习框架中,如TensorFlow、Pytorch、MxNet和Dynet,在使用GPU加速的情况下,批处理后的图像将被编排成矩阵,传入到已经加载在GPU上深度学习模型的进行计算。一方面,批处理可以在卷积操作中让所有图像共用卷积核权重从而减少模型参数的调用降低延迟;另一方面,批处理利用了卷积运算和全连接层神经元运算的并行性,这进一步利用了GPU架构的并行计算能力。在实验中,基于8GB显存的RTX 2080 GPU和12GB内存的Titan X Pascal(Titan Xp)GPU进行深度学习模型推理实验,深度学习模型推理利用CUDA-v10.0.130接口和cuDNN-v7.6.2加速库,使用Pytorch作为深度学习框架。

在本实施例中,为了进行对比,首先测试了5个典型的深度学习模型在不同批次大小下的吞吐率和显存占用,输入的图像大小为224*224像素。考虑到服务过程中队列中的任务数是一个任意整数,而不是2的幂数,因此,如图4和图5中所示,选取了DenseNet-169和GoogLeNet两个模型,其FLOPs(浮点运算量)分别为3.2*109和1.41*109。当批处理的批次大小从1到64变化情况下,随着批处理规模的增大,吞吐率先是快速增长,然后在一定点附近波动,说明批处理可以在相当程度上加快模型推理的速度,所测试的其他模型也有同样的特点。其中,对于在RTX 2080和Titan Xp上运行的GoogLeNet来说,批处理可以分别提升7.67倍和25.27倍的吞吐率,吞吐率和GPU利用率随批处理规模的变化趋势几乎一致。为了进行统计验证,试验中如图4和图5所示的吞吐率和显存占用结果是100次运行的平均值。

在实验中,通过最小二乘法拟合了一条曲线来分析批处理量与吞吐率之间的关系。通过实验发现,在批量大小r下,批量推理时延τ

在服务器提供深度学习模型推理服务的场景中,会有大量的客户向服务器提交任务。服务器会将任务组织到一个队列中。在实验中用N来表示批处理任务队列中等待的最大任务数。根据服务等级协议(SLA),响应时间是云服务或者网络服务的一个重要指标,由于过大的N会导致队列尾部任务因高延迟而超时,因此N不宜过大,在本实验中设置为N=128。服务延迟W包括两部分,分别是排队延迟和推理延迟。在实验中为了模仿推理任务的随机到达,假设任务到达过程遵循泊松分布。

在实际系统中,由于任务是随机到达的,随机到达的任务不一定能立马接受服务,所以深度学习服务延迟不仅仅包含推理延迟,还包含排队延迟。在实验中,通过测试在不同系统状态下,RTX 2080 GPU上的GoogLeNet的服务延迟W和阻塞任务P

通过比较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,P

在深度学习推理计算中,GPU显存(即内存)是GPU计算过程中的重要资源,与CPU计算不同的是,物理GPU无法准确限制一个进程的显存使用量,不过GPU可以通过远程API技术和PCI pass-through技术进行虚拟化,或者通过nvidia docker分配到不同的容器中用于不同的服务。GPU服务器为一个进程提供了所有的GPU显存,并在进程申请时准备分配更多的内存。由于显存溢出(Out of Memory)和缺页错误(Page Fault)对GPU来说是致命错误(Fatal Error),会导致出错所在进程停止运行,而不同的进程会竞争GPU显存,因此,有必要在不影响运行速度的前提下尽可能减少一个进程的GPU显存使用量。因为在推理过程中,每张图像都需要加载到内存中,并在神经网络的每一层产生一个输出张量,内存使用量m

在基于动态批处理的深度学习推理服务系统中,每个批次的大小约束在a≤r≤b之间,即当等待任务的数量大于a时,服务器将开始进行批次推理,且一个批次的任务数量不能超过b。且批次大小受GPU显存的限制,即b的值最大为B,也即b≤B。为了得到平均服务延迟,需要分析系统中任意时刻的等待任务数,由于服务过程服从一般分布,任意时刻的系统中等待任务数的变化过程是一个非马尔可夫过程,此外,推理延迟取决于a和b之间的批量大小。为了使分析变得简单,在本实验中,首先利用嵌入式马尔可夫链(eMC)技术来获得一个马尔可夫过程的过渡概率,该过程有两个维度,包括队列等待任务数n和批处理大小r。嵌入式马尔可夫过程记录的是一个批处理完成时的等待任务数,本实施例中称批处理完成时刻为批次离开时刻,如图10中所示。再通过批次离开时刻的系统状态和任意时刻的系统状态的概率之间的关系,得到了任意时刻的系统状态的概率矩阵。在本实施例中,用X(t)=(n(t),r(t))表示每个批次离开时刻的队列等待任务数n和离开的批次大小r的演化共同构成的二维马尔可夫过程,其中t表示批次离开时刻的下标,即第几个离开的批次n(t)表示第t个批次离开时刻的队列等待任务数,r(t)表示第t个批次的批次大小。

可以用二维马尔可夫过程来表示深度学习推理服务的等待任务数和离开的批次大小之间关系的证明过程如下:

以V

·n(t)<a,即批次离开时刻t队列中任务数小于a,服务器需要等到a-n(t)个任务到达后才能进行批量大小为a的推理,因此,有n(t+1)=V

·a≤n(t)≤b,即批次离开时刻t的任务数在a和b之间,所有的n(t)任务将被作为一个批次推理。因此,有n(t+1)=V

·n(t)>b,即批次离开时刻t的任务数大于b,前b个任务将被作为一个批次进行推理。因此,有n(t+1)=n(t)-b+V

从而可以确定,n(t+1)和r(t+1)的值由n(t),r(t)和V

根据过程X(t)的马尔可夫性质,可以分析系统各个状态的概率。X(t)的状态空间是剩余任务和离开批次分别从0到N和a到b的联合。用

式中,用θ(·)表示的

为了便于说明推导过程,在确定的值之前,定义

·n(t)≤b,n(t+1)≤N-1。在这种情况下,下一批要进行推理的批次大小等于

·n(t)≤b且n(t+1)=N。与前述情况的理由相同,在这种情况下,下一批要进行推理的批次大小等于

·b<n(t)≤N且n(t+1)≤N-1。在这种情况下,下一批要进行推理的批次大小

·b<n(t)≤N且n(t+1)=N。在这种情况下,下一批要进行推理的批次大小

根据过渡概率矩阵

a+1≤r≤b-1,0≤n≤N-1

0≤n≤N-1

其中,

则n=N状态下的稳态概率如下:

a+1≤r≤b-1

其中,p

通过上述分析后,可以计算得到的重要指标,系统中的平均任务数E(L)如式(3)所示,包括排队中的任务和服务中的任务,然后根据利特尔法则可以得到平均服务延迟E(W)如式(2)所示,以及阻塞概率P

通过实验及上述分析,可以确定,基于动态批处理的深度学习推理服务中的服务时延一开始随着批次大小b是下降的,然后随着批次大小b的上界增加而波动,而显存占用随着批次大小的增加而单调增加。因此,可以确定在不同的系统状态下,通过调整上界b的值来实现延迟和内存使用量之间的良好平衡,即得到式(1)所示的优化模型。在式(1)中的约束条件下,出于实际考虑,流量强度

由于排队模型可以准确预测不同系统状态下的服务延迟,因此可以通过排队模型分析批量大小上界b、到达率λ对平均服务延迟E(W(b))的影响,如图12所示发现:

·当

·当

·当

如图12所示,体现了GoogLeNet推理服务中E(W(b))随量大小上界b和到达率λ变化的情况,如图1中所列举的其它深度学习模型由于推理过程相似,也具有上述特征。

在本实施例中,在确定了式(1)所示的优化模型后,通过迭代过程来实现优化模型的求解,相对于蛮力搜索相比,具有更高的效率。迭代的算法具体实现的代码如下:

包括:首先,当

通过在深度学习框架Pytorch上实现了本发明的方法并采用NVIDIA RTX 2080GPU和深度学习模型GoogLeNet对优化方法的性能进行了评估。图13显示了NVIDIA RTX2080 GPU上深度学习模型GoogLeNet推理服务在变化的任务到达率情况下,本发明的方法和不同的静态批处理的服务延迟对比结果。其中到达率的变迁情况为330,800,730,930,1120,990,330,530,670,400任务/秒,其中每个到达率下到达50000个任务。图14显示了NVIDIA RTX 2080 GPU上深度学习模型GoogLeNet推理服务在变化的任务到达率情况下,本发明的方法和不同的静态批处理以及贪婪的动态批处理的显存占用对比示意图。到达率的变迁情况为330,800,730,930,1120,990,330,530,670,400任务/秒,其中每个到达率下到达50000个任务。通过附图中的对比结论可以确定,本发明的优化方法相较于单任务处理的方法加速了31倍;在批处理的情形下,如图11和图12所示,本发明的方法与最优的固定批次大小批处理的方法相比加速了2.2倍,GPU显存占用为其0.8倍;而与贪婪的动态批处理方法相比,GPU显存占用仅为其0.3倍,而服务延迟基本相同。

上述只是本发明的较佳实施例,并非对本发明作任何形式上的限制。虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明。因此,凡是未脱离本发明技术方案的内容,依据本发明技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均应落在本发明技术方案保护的范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号