公开/公告号CN112783645A
专利类型发明专利
公开/公告日2021-05-11
原文格式PDF
申请/专利权人 武汉兴图新科电子股份有限公司;
申请/专利号CN202110015006.6
申请日2021-01-06
分类号G06F9/50(20060101);
代理机构42238 武汉知产时代知识产权代理有限公司;
代理人张毅
地址 430000 湖北省武汉市东湖新技术开发区关山大道1号软件产业三期A3栋8层
入库时间 2023-06-19 10:57:17
技术领域
本发明涉及人工智能服务应用领域,尤其涉及一种应用于云联邦的人工智能池化算法调度与管理方法及装置。
背景技术
现有技术中,90%以上的人工智能应用都运行在GPU上,而且GPU价格昂贵。当模型训练完成,在实际场景进行部署的时候,GPU通常采用静态分配。每个算法都需要固定大小的显存,一个业务场景需要多个算法和检测规则,算法模型在启动实例化的时候也比较的耗时,所以,一般在算法部署的时候,就根据GPU显存大小、算法类型和算法个数提前分配好GPU资源。实际应用场景中,由于每个算法工作的时长,以及每个算法的检测速度都不一样,现有技术的资源预分配,存在算法模型部署灵活性差,资源利用率低,极大的造成了资源浪费的技术问题。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于,解决现有技术的资源预分配,存在算法模型部署灵活性差,资源利用率低,极大的造成了资源浪费的技术问题。
为实现上述目的,本发明提供应用于云联邦的人工智能池化算法调度与管理方法,包括以下步骤:
S1:获取算法池,向所述算法池中调入算法实例;
S2:根据算法调度请求,在所述算法池的算法实例中,调出与所述算法调度请求对应的目标算法实例。
优选地,步骤S1具体为:
S11:获取算法池,配置所述算法池的算法实例最小数量;
S12:检测所述算法池是否为空,若是,则根据所述算法实例最小数量,向所述算法池中调入对应数量的算法对象,进入步骤S13;否则进入步骤S2;
S13:将各所述算法对象进行实例化处理,获得对应的算法实例。
优选地,步骤S2具体为:
S21:接收到算法调度请求后,检测所述算法池中是否存在与所述算法调度请求对应的目标算法实例;
S22:若存在,则将所述目标算法实例调出所述算法池,进入步骤S23;否则进入步骤S24;
S23:检测所述算法调度请求的每秒请求数;若所述每秒请求数大于或等于阈值,且所述算法池中算法实例的当前数量没有达到最大值,则向所述算法池中添加新的算法实例,返回步骤S21;否则不进行任何操作,返回步骤S21;
S24:进入等待队列,等待时间t开始计时;若所述等待时间t小于或等于预设值,且收到算法实例释放信号,则返回步骤S21;若所述等待时间t大于预设值,或收到结束命令,则请求进行超时处理,并返回步骤S21。
优选地,每隔预设时间T进行一次步骤S3;
S3:检测所述算法池中各所述算法实例的存活时间,根据所述存活时间释放空闲的算法实例。
优选地,步骤S3具体为:
S31:检测各所述算法实例的存活时间;若存在所述存活时间大于或等于空闲时间的算法实例,则将所述存活时间大于或等于空闲时间的算法实例标记为空闲的算法实例,进入步骤S32;否则结束步骤S3;
S32:检测所述算法池中算法实例的当前数量,若所述算法实例的当前数量大于1,则释放各所述空闲的算法实例,发送算法实例释放信号并结束步骤S3;否则不进行任何操作,并结束步骤S3。
此外,为实现上述目的,本发明还提出应用于云联邦的人工智能池化算法调度与管理装置,包括:
算法池获取模块,用于获取算法池,向所述算法池中调入算法实例;
调度模块,用于根据算法调度请求,在所述算法池的算法实例中,调出与所述算法调度请求对应的目标算法实例。
本发明具有以下有益效果:
解决静态资源分配导致的部署灵活性差、资源利用率低的问题;
解决了传统GPU虚拟化技术的复杂性和规模问题;
在满足同等资源条件以及保证服务可用的前提下,尽可能发挥资源的最大能效。
附图说明
图1为本发明应用于云联邦的人工智能池化算法调度与管理方法的流程示意图;
图2为本发明应用于云联邦的人工智能池化算法调度与管理装置的结构框图;
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明应用于云联邦的人工智能池化算法调度与管理方法的流程示意图。
现有技术中一个算法使用的显存可能会大很多,例如:百度人体关键点识别算法推荐的显存为5.2G,人体检测算法推荐的显存为2G;在只考虑一路摄像头接一路算法,计算结果在1秒内返回的前提下,传统的优化静态分配的方法是,将网络传输、图片处理因素除外,内存大小忽略,提供一个16G大小显存的GPU;如果三个算法串行运行,根据显存和算法处理耗时的两个维度下建立如下方程:
0.2x+0.8y+0.5z=16
10x=2y=z
其中,x、y、z分别代表三个算法的实例个数;求得结果为x=1.7、y=17、z=8.5,算法实例不可能为小数,平衡调整后x=2、y=17、z=8;那么这样一来,在理想情况下该系统只能接受80路视频流;但是在理想情况下,人脸检测算法的一个16G显存卡可以接入16000/200*1000/10=8000路,人脸检测与属性识别算法的一个16G显存卡可以接入16000/500*1000/10=320路;所以预分配资源,极大的造成了资源的浪费。
为解决此问题,一些大型的人工智能应用服务平台会开发专门GPU池化和虚拟化管理平台,代表产品为趋动科技猎户座OrionX AI加速器资源池化软件;该软件的特点是:支持将虚拟机或者容器运行在一台没有物理GPU的服务器上,透明地使用另一台服务器上的GPU资源,该虚拟机或者容器内的AI应用无需修改代码。通过这个功能,该AI计算平台帮助用户实现了数据中心级的GPU资源池,用户的应用可以无障碍地部署到数据中心内的任意服务器之上,并且能够透明地使用任何服务器之上的GPU资源。
对于大型的GPU服务这样做是非常有意义的,但是针对中心规模的安防、人脸识别场景的人工智能服务,从成本上讲增加了软件成本;从系统架构上讲,增加了系统架构的复杂度和运维复杂度,整体上讲性价比太低。
因此,本发明提出一种应用于云联邦的人工智能池化算法调度与管理方法,解决静态资源分配导致的部署灵活性差、资源利用率低的问题;解决了传统GPU虚拟化技术的复杂性和规模问题;在满足同等资源条件以及保证服务可用的前提下,尽可能发挥资源的最大能效;在相关参数经过合理的调整后,同等资源环境、同等业务场景相同的算法,GPU资源利用率可显著提升,由原来的不足30%,可提升到40%以上。
具体包括步骤:
S1:获取算法池,向所述算法池中调入算法实例;
S2:根据算法调度请求,在所述算法池的算法实例中,调出与所述算法调度请求对应的目标算法实例。
进一步地,步骤S1具体为:
S11:获取算法池,配置所述算法池的算法实例最小数量;
S12:检测所述算法池是否为空,若是,则根据所述算法实例最小数量,向所述算法池中调入对应数量的算法对象,进入步骤S13;否则进入步骤S2;
S13:将各所述算法对象进行实例化处理,获得对应的算法实例。
进一步地,步骤S2具体为:
S21:接收到算法调度请求后,检测所述算法池中是否存在与所述算法调度请求对应的目标算法实例;
S22:若存在,则将所述目标算法实例调出所述算法池,进入步骤S23;否则进入步骤S24;
S23:检测所述算法调度请求的每秒请求数;若所述每秒请求数大于或等于阈值,且所述算法池中算法实例的当前数量没有达到最大值,则向所述算法池中添加新的算法实例,返回步骤S21;否则不进行任何操作,返回步骤S21;
S24:进入等待队列,等待时间t开始计时,等待时间t可根据不同的计算任务具体设定;若所述等待时间t小于或等于预设值,且收到算法实例释放信号,则返回步骤S21;若所述等待时间t大于预设值,或收到结束命令,则请求进行超时处理,并返回步骤S21。
进一步地,每隔预设时间T进行一次步骤S3;隔预设时间T可根据不同的计算任务具体设定。
S3:检测所述算法池中各所述算法实例的存活时间,根据所述存活时间释放空闲的算法实例。
进一步地,步骤S3具体为:
S31:检测各所述算法实例的存活时间;若存在所述存活时间大于或等于空闲时间的算法实例,则将所述存活时间大于或等于空闲时间的算法实例标记为空闲的算法实例,进入步骤S32;否则结束步骤S3;
S32:检测所述算法池中算法实例的当前数量,若所述算法实例的当前数量大于1,则释放各所述空闲的算法实例,发送算法实例释放信号并结束步骤S3;否则不进行任何操作,并结束步骤S3。
在具体实施中,由于每个算法针对的业务场景差异、布防时间差异、以及算法运行时间的差异;综合这些因数我们可以预估出当前一段时间内所需要的算法实例数,例如:当前该算法的调用请求速率是50次/秒,算法的处理时间为10ms,那么当前一个实例就能完成当前的请求任务,如果有多余的实例,完全可以释放掉,将资源分配给算法RPS较高的算法场景使用。
此外,参照图2,本发明实施例还提出应用于云联邦的人工智能池化算法调度与管理装置,所述应用于云联邦的人工智能池化算法调度与管理装置包括:
算法池获取模块10,用于获取算法池,向所述算法池中调入算法实例;
调度模块20,用于根据算法调度请求,在所述算法池的算法实例中,调出与所述算法调度请求对应的目标算法实例。
本发明所述应用于云联邦的人工智能池化算法调度与管理装置的其他实施例或具体实现方式可参照上述各方法实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。词语第一、第二、以及第三等的使用不表示任何顺序,可将这些词语解释为标识。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
机译: 利用人工智能云预测营养代谢变化的方法和利用人工智能云测量营养代谢的方法以及使用其管理疾病的方法
机译: 基于吞噬作用的杂交粒子群综合优化和遗传算法的云任务调度方法
机译: 基于用户满意度的云任务调度算法