当前位置: 首页 > 专利查询>湖南大学专利>正文

一种针对深度学习推理服务系统的GPU调度优化方法技术方案

技术编号:36772241 阅读:58 留言:0更新日期:2023-03-08 21:48
本发明专利技术新型公开了一种针对深度学习推理服务系统的GPU调度优化方法,包括针对深度学习推理服务系统作初始化处理;分配获取的处理后的系统对应包含的所有模型,启动预测线程,周期性执行吞吐量需求预测流程,针对预测线程分配得到的模型预测新周期内的吞吐量需求;启动调度线程,采用获得的预测吞吐量需求,在调度时刻执行基于反馈控制策略的吞吐量调整流程,优化系统各模型的实际吞吐量分配。本发明专利技术能够动态预测各模型服务在独占GPU时的吞吐量,有效适应复杂多变的工作负载;满足部署在同一台服务器上各模型请求的不同延时和吞吐量需求,弥补了现有模型服务系统中的任务调度策略的不足。策略的不足。策略的不足。

【技术实现步骤摘要】
一种针对深度学习推理服务系统的GPU调度优化方法


[0001]本专利技术属于计算机系统结构与人工智能
,具体涉及一种针对深度学习推理服务系统的GPU调度优化方法。

技术介绍

[0002]随着数据的爆炸式增长、核心算法的改善和硬件算力的提升,深度学习技术为人工智能的发展与应用带来难以估量的价值,也已被广泛应用于计算机视觉、语音识别和自然语言处理等领域。深度学习主要包括“训练”和“推理”这两个阶段。训练阶段是根据输入数据,利用优化算法不断调整深度神经网络(Deep Neural Networks,DNN)权重的过程,是构建模型的过程。由于输入数据和DNN权重参数的数量较大,训练这些DNN模型通常需要大量的算力,且耗时几小时到几天才能完成训练过程。
[0003]GPU(Graphics Processing Unit,图像处理器)和TPU(Tensor Processing Unit,张量处理器)等硬件加速器,凭借能够对数据进行简单重复操作的强大能力,成为DNN模型训练加速的主流硬件。当DNN模型训练完毕后,就可以开始对输入数据进行预测,进而进入到推理阶段。DNN模型的在线推理服务是深度学习技术一个重要的可落地应用场景,其将DNN模型部署于云端数据中心,为租户提供推理服务,使计算资源受限的移动设备也能通过该服务来支持深度学习应用。推理任务在早期更多被部署于CPU(Central Processing Unit,中央处理器)。随着DNN模型的加大,在CPU上运行推理任务难以满足端到端的实时性需求(延时小于100ms)。因此,当前大量工作青睐于使用GPU来加速DNN推理任务。
[0004]为了提高GPU资源的利用率,当下通行的方式是将多个深度学习模型部署于同一台GPU服务器。在该场景下,推理任务的低延时、多租户间的性能隔离等需求,对共享GPU环境下的任务调度机制提出了新的挑战。当前,共享GPU环境下的任务调度主要分为空间共享型和时间共享型。以NVIDIA多进程服务(Multi Process Service,MPS)为代表的空间共享技术,能够使GPU在任意时刻运行多个任务,有效改善推理服务系统的资源利用率。但是,在空间共享策略下,同时运行的任务性能存在极大的不确定性,无法保证多租户间的性能隔离和实时性需求。在时间共享策略下的任意调度单元内,GPU仅运行单个推理任务,没有充分利用GPU内核的并行执行特性。相比于空间共享策略来说,虽然时间共享策略下的GPU资源利用率较低,但推理任务的执行时间更为稳定,可以更好地保证推理服务请求的实时性需求。但是,当异构模型部署于同一服务器时,规模相对较小的模型服务性能更容易被干扰,严重影响相应租户的服务体验。
[0005]综上所述,针对DNN推理任务的加速过程,当前使用的共享GPU环境下不能够很好的调度多项任务,存在不确定性、易干扰性,不能够很好的保证推理服务请求的实时性需求。
[0006]专利技术新型内容
[0007]本专利技术的目的在于提出一种针对深度学习推理服务系统的GPU调度优化方法,用以支持共享GPU环境下多租户隔离的深度学习推理服务系统,可在复杂多变的工作负载条
件下,动态实时预测共享GPU环境下各模型服务的吞吐量需求,并基于预测结果,进行动态实时GPU调度,解决多租户间的性能隔离问题。
[0008]本专利技术提供的这种针对深度学习推理服务系统的GPU调度优化方法,包括如下步骤:
[0009]S1.对调度优化参数进行初始化;
[0010]S2.获取当前时刻下,深度学习推理服务系统的待处理任务,基于深度学习推理服务系统的系统参数,预测待处理任务中各个模型在新一轮周期内的吞吐量需求;其中,模型吞吐量是指该模型成功响应的推理请求数;每个推理请求都有一个截止时间,当且仅当客户端在该请求的截止时间之前获取相应推理结果时,该请求才算成功响应,并计入模型的吞吐量中;
[0011]S3.开启新一轮周期,基于步骤S2得到的各个模型在新一轮周期内的吞吐量需求,在周期时长内对各个模型的吞吐量进行调整和分配;
[0012]S4.当前周期结束后,重复步骤S2~S3,直至深度学习推理服务系统终止运行,完成针对深度学习推理服务系统的GPU调度优化。
[0013]步骤S1所述的对调度优化参数进行初始化,具体包括:系统定义的全局共享数据中包括了模型变量数组models[2][m]、模型状态索引si和与模型状态索引si对应的模型状态锁变量si_lock,为每个模型设置模拟队列和请求队列;其中,models[2][m]用于存储状态信息,存储状态信息包括各模型吞吐量需求的估算值和当前周期的实际吞吐量;m为模型数量,models[2][m]数组每列对应一个模型的状态信息,将models[2][m]中各元素和si的初始值设置为0,且si的取值限定为0或1;为避免预测过程和调度过程在模型状态信息上的读写冲突,调度过程仅从si值指定的行来读写models[2][m]数组中各列存储的模型状态,预测过程则从si

值指定的行来读写models[2][m]数组各列存储的模型状态,其中,si

=(si+1)%2,%为求余符号;并行执行的预测过程个数为n个,并行执行的调度过程个数为k个,m、n、k均为自然整数,m取值需满足大于等于1,n、k的具体取值根据系统的硬件配置进行设定;每个模型的请求队列用于存储该模型等待响应的推理请求,模拟队列用于存储步骤S2所述预测流程涉及到的推理请求。
[0014]步骤S2所述的基于深度学习推理服务系统的系统参数,预测待处理任务中各个模型在新一轮周期内的吞吐量需求,具体为采用如下步骤进行吞吐量需求的预测:
[0015]A.将所有模型平均分配给各个预测过程:系统存在的模型个数为m个,并行执行的预测过程个数为n个,m、n均为自然数,m取值满足大于等于1,n的具体取值根据系统的硬件配置进行设定且大于等于1;前n

1个预测过程分配到的模型个数为个,为向上取整符号,最后1个预测过程分配到的模型个数为m%n个,其中%为取余操作;
[0016]B.启动预测过程估算新一轮周期内所有模型的吞吐量需求:针对当前模型,预测过程假定该模型独占GPU计算资源,模拟调度该模型尚未完成的请求,计算模拟调度情况下,一个周期时长内能够响应成功的推理请求数,并将计算结果作为该模型在新一轮周期内的吞吐量需求;
[0017]C.所有预测过程在完成估算任务后结束;
[0018]D.获取模型状态锁变量si_lock,更新模型状态索引si为si=si',为调度过程发布新一轮周期内的模型状态数据,并在更新结束后释放模型状态锁变量;
[0019]E.结束本轮预测流程;
[0020]预测过程针对单个模型估算吞吐量需求的细化流程具体包括:
[0021](1)复制当前模型的请求队列中所有请求到该模型的模拟队列中;
[0022](2)清空当前模型待发布的状态数据:假定当前模型的编号为i本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种针对深度学习推理服务系统的GPU调度优化方法,包括如下步骤:S1.对调度优化参数进行初始化;S2.获取当前时刻下,深度学习推理服务系统的待处理任务,基于深度学习推理服务系统的系统参数,预测待处理任务中各个模型在新一轮周期内的吞吐量需求;S3.开启新一轮周期,基于步骤S2得到的各个模型在新一轮周期内的吞吐量需求,在周期时长内对各个模型的吞吐量进行调整和分配;S4.当前周期结束后,重复步骤S2~S3,直至深度学习推理服务系统终止运行,完成针对深度学习推理服务系统的GPU调度优化。2.根据权利要求1所述的针对深度学习推理服务系统的GPU调度优化方法,其特征在于步骤S1所述的对调度优化参数进行初始化,具体包括:系统定义的全局共享数据中包括了模型变量数组models[2][m]、模型状态索引si和与模型状态索引si对应的模型状态锁变量si_lock,为每个模型设置模拟队列和请求队列;其中,models[2][m]用于存储状态信息,存储状态信息包括各模型吞吐量需求的估算值和当前周期的实际吞吐量;m为模型数量,models[2][m]数组每列对应一个模型的状态信息,将models[2][m]中各元素和si的初始值设置为0,且si的取值限定为0或1;为避免预测过程和调度过程在模型状态信息上的读写冲突,调度过程仅从si值指定的行来读写models[2][m]数组中各列存储的模型状态,预测过程则从si

值指定的行来读写models[2][m]数组各列存储的模型状态,其中,si

=(si+1)%2,%为求余符号;并行执行的预测过程个数为n个,并行执行的调度过程个数为k个,m、n、k均为自然整数,m取值需满足大于等于1,n、k的具体取值根据系统的硬件配置进行设定;每个模型的请求队列用于存储该模型等待响应的推理请求,模拟队列用于存储步骤S2所述预测流程涉及到的推理请求。3.根据权利要求2所述的针对深度学习推理服务系统的GPU调度优化方法,其特征在于步骤S2所述的基于深度学习推理服务系统的系统参数,预测待处理任务中各个模型在新一轮周期内的吞吐量需求,具体为采用如下步骤进行吞吐量需求的预测:A.将所有模型平均分配给各个预测过程:系统存在的模型个数为m个,并行执行的预测过程个数为n个,m、n均为自然数,m取值满足大于等于1,n的具体取值根据系统的硬件配置进行设定且大于等于1;前n

1个预测过程分配到的模型个数为个,为向上取整符号,最后1个预测过程分配到的模型个数为m%n个,其中%为取余操作;B.启动预测过程估算新一轮周期内所有模型的吞吐量需求:针对当前模型,预测过程假定该模型独占GPU计算资源,模拟调度该模型尚未完成的请求,计算模拟调度情况下,一个周期时长内能够响应成功的推理请求数,并将计算结果作为该模型在新一轮周期内的吞吐量需求;C.所有预测过程在完成估算任务后结束;D.获取模型状态锁变量si_lock,更新模型状态索引si为si=si',为调度过程发布新一轮周期内的模型状态数据,并在更新结束后释放模型状态锁变量;E.结束本轮预测流程;预测过程针对单个模型估算吞吐量需求的细化流程具体包括:
(1)复制当前模型的请求队列中所有请求到该模型的模拟队列中;(2)清空当前模型待发布的状态数据:假定当前模型的编号为i,models[(si+1)%2][i]所对应的元素为该模型待发布的状态数据;每个模型状态数据包含两个成员变量:sim_solo和goodput;其中,models[(si+1)%2][i].sim_solo为编号为i的模型的sim_solo成员变量,用于记录为当前模型估算的吞吐量需求,models[(si+1)%2][i].good...

【专利技术属性】
技术研发人员:彭亚琼
申请(专利权)人:湖南大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1