基于CPU和GPU混合计算的在线服务方法及装置制造方法及图纸

技术编号:35761413 阅读:17 留言:0更新日期:2022-11-26 19:12
本申请提供一种基于CPU和GPU混合计算的在线服务方法及装置。该方法包括:将接收到的在线业务请求添加到缓存队列中;根据定时任务或者触发事件,选择计算组件对缓存队列中的在线业务请求进行异步处理,其中,计算组件包括CPU和GPU;在调用计算组件对在线业务请求进行异步处理过程中,依据缓存队列中的在线业务请求的数量以及计算组件的平均计算耗时,确定每个计算组件对应的权重;依据每个计算组件对应的权重,动态调用CPU或者GPU执行在线业务请求,并将在线业务请求对应的业务结果存储到业务结果集合中,业务结果集合中包含在线业务请求的标识信息以及与标识信息对应的业务结果信息。本申请提升了在线计算服务的计算效率,提高了硬件资源的利用率。提高了硬件资源的利用率。提高了硬件资源的利用率。

【技术实现步骤摘要】
基于CPU和GPU混合计算的在线服务方法及装置


[0001]本申请涉及计算机
,尤其涉及一种基于CPU和GPU混合计算的在线服务方法及装置。

技术介绍

[0002]当前的GPU(Graphic Processing Unit,图形处理单元)具有很好的并行处理能力,在很多领域和应用场景中可以进行加速计算。特别是可以并行或批量的一次性处理若干计算任务。传统的CPU主要是单任务的计算,配套的在线服务接口和调用方式也比较简单。当前环境下的很多在线服务,需要融合GPU的功能进行改造,以便达到加速的效果。
[0003]现有的涉及CPU和GPU的在线计算服务中,一种方法是通过在每个机器人中安装算法SDK(Software Development Kit,软件开发工具包)进行识别计算,由于硬件限制,识别效率缓慢,不能达到实时返回结果的效果,而且安装多次造成一定的资源浪费。另一种方法是进行云端请求,将图片上传到云端服务,得到识别的结果,但是当前云端的在线服务一般不能进行批量请求的物品图片识别,每次只能发送一张图片请求,吞吐量低且浪费计算资源。因此,现有的在线计算服务方法中存在计算效率低,硬件资源浪费严重的问题。

技术实现思路

[0004]有鉴于此,本申请实施例提供了一种基于CPU和GPU混合计算的在线服务方法及装置,以解决现有技术存在的计算效率低,硬件资源浪费严重的问题。
[0005]本申请实施例的第一方面,提供了一种基于CPU和GPU混合计算的在线服务方法,包括:接收在线业务请求,将在线业务请求添加到缓存队列中;根据预设的定时任务或者触发事件,选择一个计算组件对缓存队列中的在线业务请求进行异步处理,其中,计算组件包括CPU和GPU;在调用计算组件对在线业务请求进行异步处理过程中,依据缓存队列中的在线业务请求的数量以及计算组件的平均计算耗时,确定每个计算组件对应的权重;依据每个计算组件对应的权重,动态调用CPU或者GPU执行在线业务请求,并将在线业务请求对应的业务结果存储到业务结果集合中,其中,业务结果集合中包含在线业务请求的标识信息以及与标识信息对应的业务结果信息。
[0006]本申请实施例的第二方面,提供了一种基于CPU和GPU混合计算的在线服务装置,包括:接收模块,被配置为接收在线业务请求,将在线业务请求添加到缓存队列中;处理模块,被配置为根据预设的定时任务或者触发事件,选择一个计算组件对缓存队列中的在线业务请求进行异步处理,其中,计算组件包括CPU和GPU;计算模块,被配置为在调用计算组件对在线业务请求进行异步处理过程中,依据缓存队列中的在线业务请求的数量以及计算组件的平均计算耗时,确定每个计算组件对应的权重;调用模块,被配置为依据每个计算组件对应的权重,动态调用CPU或者GPU执行在线业务请求,并将在线业务请求对应的业务结果存储到业务结果集合中,其中,业务结果集合中包含在线业务请求的标识信息以及与标识信息对应的业务结果信息。
[0007]本申请实施例的第三方面,提供了一种电子设备,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现上述方法的步骤。
[0008]本申请实施例的第四方面,提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述方法的步骤。
[0009]本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:通过接收在线业务请求,将在线业务请求添加到缓存队列中;根据预设的定时任务或者触发事件,选择一个计算组件对缓存队列中的在线业务请求进行异步处理,其中,计算组件包括CPU和GPU;在调用计算组件对在线业务请求进行异步处理过程中,依据缓存队列中的在线业务请求的数量以及计算组件的平均计算耗时,确定每个计算组件对应的权重;依据每个计算组件对应的权重,动态调用CPU或者GPU执行在线业务请求,并将在线业务请求对应的业务结果存储到业务结果集合中,其中,业务结果集合中包含在线业务请求的标识信息以及与标识信息对应的业务结果信息。本申请提升了在线计算服务的计算效率,提高了硬件资源的利用率。
附图说明
[0010]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
[0011]图1是本申请实施例在实际场景中涉及到的请求处理流程示意图;图2是本申请实施例提供的基于CPU和GPU混合计算的在线服务方法的流程示意图;图3是本申请实施例提供的基于CPU和GPU混合计算的在线服务装置的结构示意图;图4是本申请实施例提供的电子设备的结构示意图。
具体实施方式
[0012]以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
[0013]如
技术介绍
所述内容,当前的GPU(Graphic Processing Unit,图形处理单元)具有很好的并行处理能力,在很多领域和应用场景中可以进行加速计算。特别是可以并行或批量的一次性处理若干计算任务,具有明显优势。传统的CPU主要是单任务的计算,配套的在线服务接口和调用方式也比较简单。当前环境下的很多在线服务,需要融合GPU的功能进行改造,以便达到加速的效果。下面以机器人对于图像物品识别的计算服务方法举例,对现有的计算服务方法存在的问题进行详细说明。
[0014]现有的针对图像物品识别的计算服务方法主要包括以下两种方式:第一种方式是通过在每个机器人中安装算法SDK(Software Development Kit,软件开发工具包)进行图
像识别计算,但是由于硬件限制,识别效率缓慢,不能达到实时返回结果的效果,而且安装多次造成一定的资源浪费。另外一种方式是进行云端的请求,将图片上传到云端服务,得到识别的结果,但是当前云端的在线服务一般不能进行批量请求的物品图片识别,每次只能发送一张图片请求,吞吐量低且浪费计算资源。
[0015]鉴于现有技术中存在的问题,本申请实施例提供一种能够提高计算效率以及硬件资源利用率的融合CPU和GPU混合计算环境下的在线服务方法,图1是本申请实施例在实际场景中涉及到的请求处理流程示意图,如图1所示,其中,请求消息发送给队列缓存,中间层基于定时任务或者触发事件对缓存队列中的在线业务请求进行异步处理,在对在线业务请求进行处理之后,将查询结果进行缓存,并利用DLL算法包调用加锁单线程,根据调度算法在不同情况调用CPU/GPU批处理计算结果,最后将处理结果存储到结果存储集合中,等待定时查询数据库的处理,并返回查询结果。
[0016]图2是本申请实施例提供的基于CPU和本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于CPU和GPU混合计算的在线服务方法,其特征在于,包括:接收在线业务请求,将所述在线业务请求添加到缓存队列中;根据预设的定时任务或者触发事件,选择一个计算组件对所述缓存队列中的在线业务请求进行异步处理,其中,所述计算组件包括CPU和GPU;在调用所述计算组件对所述在线业务请求进行异步处理过程中,依据所述缓存队列中的在线业务请求的数量以及所述计算组件的平均计算耗时,确定每个所述计算组件对应的权重;依据每个所述计算组件对应的权重,动态调用CPU或者GPU执行在线业务请求,并将所述在线业务请求对应的业务结果存储到业务结果集合中,其中,所述业务结果集合中包含所述在线业务请求的标识信息以及与所述标识信息对应的业务结果信息。2.根据权利要求1所述的方法,其特征在于,所述接收在线业务请求,将所述在线业务请求添加到缓存队列中,包括:接收云平台发送的原始图片数据对应的字符串,根据所述字符串生成所述在线业务请求,并将所述在线业务请求按照时间顺序加入到所述缓存队列中去;其中,所述字符串为机器人根据机器人舱内接收到的物品生成原始图片数据,并将所述原始图片数据发送至所述云平台,以使所述云平台对所述原始图片数据进行编码处理得到的字符串。3.根据权利要求1所述的方法,其特征在于,根据定时任务选择一个计算组件对所述缓存队列中的在线业务请求进行异步处理,包括:按照预设的定时任务执行时间间隔,将所述定时任务执行时间间隔内添加到所述缓存队列中的所述在线业务请求发送给GPU进行批量执行,或者将所述在线业务请求依次发送给CPU进行循环执行。4.根据权利要求1所述的方法,其特征在于,根据触发事件选择一个计算组件对所述缓存队列中的在线业务请求进行异步处理,包括:当所述缓存队列中的在线业务请求对应的请求数量达到数量阈值时,将所述缓存队列中的所述在线业务请求发送给GPU进行批量执行,或者将所述在线业务请求依次发送给CPU进行循环执行;或者,当CPU和GPU中的任意一个计算组件处于空间状态时,将所述缓存队列中的所述在线业务请求发送给所述空间状态的计算组件进行执行。5.根据权利要求3或4所述的方法,其特征在于,当CPU和GPU均处于空间状态时,采用以下公式对每个所述计算组件对应的权重进行计算:其中,表示CPU对应的权重,表示GPU对应的权重,表示缓
存队列中的在线业务请求,表示当前GPU并行计算的任务能力,表示CPU在过去时间段内平均执行一次在线业...

【专利技术属性】
技术研发人员:曲昱汇张献涛支涛
申请(专利权)人:北京云迹科技股份有限公司
类型:发明
国别省市:

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

1