一种基于单GPU卡的图像并发处理方法、装置及系统制造方法及图纸

技术编号:20448423 阅读:25 留言:0更新日期:2019-02-27 02:46
本发明专利技术实施例公开了一种基于单GPU卡的图像并发处理方法、装置及系统,该方法包括:接收用户提交的任务;将任务加入到任务队列,并为任务配置与之对应的任务线程;将配置好的任务线程按序加入到线程池中;根据图形处理器GPU卡的内存和线程池中每一个任务线程执行时占用的内存,合理的从线程池中选取一个或多个任务线程提交至GPU卡,以便GPU卡对一个或多个任务线程并行处理。通过上述方式,可以保证GPU的资源能够充分利用,避免资源浪费,使其空闲、空余占比大大减少,有效增加了系统的吞吐能力。此外,多个任务线程同时处理,可以具备更好的加速比,进一步提升处理效率。

An Image Concurrent Processing Method, Device and System Based on Single GPU Card

The embodiment of the present invention discloses an image concurrent processing method, device and system based on a single GPU card. The method includes: receiving tasks submitted by users; adding tasks to task queues and configuring corresponding task threads for tasks; sequentially adding configured task threads to thread pools; and according to the memory of GPU card of graphics processor and each task in thread pool. The memory occupied by thread execution can be reasonably selected from thread pool to submit to GPU card so that GPU card can process one or more task threads in parallel. Through the above way, the resources of GPU can be fully utilized, the waste of resources can be avoided, the proportion of idle and unused resources can be greatly reduced, and the throughput capacity of the system can be effectively increased. In addition, multi-task threads processing at the same time can have better speedup ratio and further improve processing efficiency.

【技术实现步骤摘要】
一种基于单GPU卡的图像并发处理方法、装置及系统
本专利技术涉及图像处理
,具体涉及一种基于单GPU卡的图像并发处理方法、装置及系统。
技术介绍
深度学习是机器学习研究中的一个新的领域,其动机在于建立、模拟人脑进行分析学习的神经网络,它模仿人脑的机制来解释数据,例如图像,声音和文本。目前,深度学习应用最主要的计算方式是前向传播。在现如今大量应用场景需求下,对于深度学习计算性能的要求越来越高。而其中最常用的提高计算性能的方法是使用图形处理器(GraphicsProcessingUnit,简称GPU)加速计算,以达到更高的系统吞吐量。经典的GPU加速计算注重于发挥GPU加速硬件的性能潜力,将深度学习前向传播过程中计算密集部分使用GPU进行计算,并进行深入优化来达到更高的加速效果。即便如此,GPU硬件的实际利用率仍然没有达到理想的效果,造成了GPU资源的浪费。
技术实现思路
本专利技术实施例的目的在于提供一种基于单GPU卡的图像并发处理方法、装置及系统,用以解决在进行深度学习应用时,CPU硬件的实际利用率不高,造成资源浪费的问题。为实现上述目的,本专利技术实施例提供一种基于单GPU卡的图像并发处理方法,该方法包括:接收用户提交的任务,其中任务为用户根据待处理的对象和处理需求建立的任务;将任务加入到任务队列,并为任务配置与之对应的任务线程;将配置好的任务线程按序加入到线程池中,线程池中包含至少两个任务线程;根据图形处理器GPU卡的内存和线程池中每一个任务线程执行时占用的内存,合理的从线程池中选取一个或多个任务线程提交至GPU卡,以便GPU卡对一个或多个任务线程并行处理。本专利技术实施例具有如下优点:接收用户提交的任务后,将任务加入队列后配置与之对应的任务线程。然后根据GPU内存和每一个任务线程占用的内存,确定GPU可以同时处理的任务线程。通过上述方式,可以保证GPU的资源能够充分利用,避免资源浪费,使其空闲、空余占比大大减少,有效增加了系统的吞吐能力。此外,多个任务线程同时处理,可以具备更好的加速比,进一步提升处理效率。为实现上述目的,本专利技术实施例提供一种基于单GPU卡的图像并发处理装置,该装置包括:接收单元,用于接收用户提交的任务,其中任务为用户根据待处理的对象和处理需求建立的任务;配置单元,用于将任务加入到任务队列,并为任务配置与之对应的任务线程;处理单元,用于将配置好的任务线程按序加入到线程池中,线程池中包含至少两个任务线程;根据图形处理器GPU卡的内存和线程池中每一个任务线程执行时占用的内存,合理的从线程池中选取一个或多个任务线程提交至GPU卡,以便GPU卡对一个或多个任务线程并行处理。本专利技术实施例具有如下优点:接收用户提交的任务后,将任务加入队列后配置与之对应的任务线程。然后根据GPU内存和每一个任务线程占用的内存,确定GPU可以同时处理的任务线程。通过上述方式,可以保证GPU的资源能够充分利用,避免资源浪费,使其空闲、空余占比大大减少,有效增加了系统的吞吐能力。此外,多个任务线程同时处理,可以具备更好的加速比,进一步提升处理效率。为实现上述目的,本专利技术实施例提供一种基于单GPU卡的图像并发处理系统,该系统包括:任务管理器和GPU卡;任务管理器用于执行如上所介绍的一种基于单GPU卡的图像并发处理的方法,GPU卡用于在接收到任务管理器提交的一个或多个任务线程后,反馈与一个或多个任务线程对应的响应信息至任务管理器;对任务管理器提交的一个或多个任务线程并行;以及,当确定一个或多个任务线程中部分任务线程无法执行时,向任务管理器发送通知消息。本专利技术实施例具有如下优点:接收用户提交的任务后,将任务加入队列后配置与之对应的任务线程。然后根据GPU内存和每一个任务线程占用的内存,确定GPU可以同时处理的任务线程。通过上述方式,可以保证GPU的资源能够充分利用,避免资源浪费,使其空闲、空余占比大大减少,有效增加了系统的吞吐能力。此外,多个任务线程同时处理,可以具备更好的加速比,进一步提升处理效率。为实现上述目的,本专利技术实施例提供一种计算机存储介质,该计算机存储介质包括:计算机程序指令。计算机程序指令用于如上的基于单GPU卡的图像并发处理系统中任务管理器和GPU卡分别执行与自身对应的方法步骤。附图说明图1为本专利技术实施例1提供的基于单GPU卡的图像并发处理方法流程示意图。图2为本专利技术实施例2提供的基于单GPU卡的图像并发处理装置结构示意图;图3为本专利技术实施例3提供的基于单GPU卡的图像并发处理系统结构示意图。具体实施方式以下由特定的具体实施例说明本专利技术的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本专利技术的其他优点及功效。须知,本说明书所附图式所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本专利技术可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本专利技术所能产生的功效及所能达成的目的下,均应仍落在本专利技术所揭示的
技术实现思路
得能涵盖的范围内。同时,本说明书中所引用的如“上”、“下”、“左”、右”、“中间”等的用语,亦仅为便于叙述的明了,而非用以限定本专利技术可实施的范围,其相对关系的改变或调整,在无实质变更
技术实现思路
下,当亦视为本专利技术可实施的范畴。实施例1本专利技术实施例1提供了一种基于单GPU卡的图像并发处理方法流程示意图,具体如图1所示。该方法由任务管理器执行,该方法包括:步骤110,接收用户提交的任务。具体的,用户提交的任务是根据自身的处理需求和待处理的对象建立的。例如,用户需要对人脸图像进行识别,那么提交的任务可以包括检测人脸对象、提取人脸特征,以及判断活体检测等3个任务。处理需求实际可以理解为任务类型,待处理的对象则是任务数据。此外,用户还可以在提交任务时,定义前向依赖任务。比如,检测人脸对象就是提取人脸特征的前向依赖任务,提取人脸特征就是判断活体检测的前向依赖任务。而在后的任务只有在前向依赖任务完成后才能够被调度执行。步骤120,将任务加入到任务队列,并为任务配置与之对应的任务线程。具体的,将包含任务类型和任务数据的任务加入到任务队列中。任务的调度执行策略上可以使用先进先服务(FirstInFirstServe,简称FIFS)原则。在执行任务之前,需要为其配置与之对应的任务线程。而任务线程是在系统初始化时就创建出所有线程,也即是方便后续根据具体调度分配线程去执行相应任务。步骤130,将配置好的任务线程按序加入到线程池中,线程池中包含至少两个任务线程。具体的,由于用户可能不止一个,那么系统会将每个用户提交的任务都按照步骤110-步骤130的方式加入到线程池中,因此线程池中包含了至少两个任务线程。步骤140,根据GPU卡的内存和线程池中每一个任务线程执行时占用的内存,合理的从线程池中选取一个或多个任务线程提交至GPU卡,以便GPU卡对一个或多个任务线程并行处理。具体的,为了保证GPU卡能够将自己的资源充分利用,但是不超过其所能够处理的负荷状态,就需要事先确定GPU卡的内存和线程池中每一个任务线程执行时所占用的内存,GPU卡的内存可以通过系统自动查询获取。而每一个任务线程所占用的内存可以是通过用户自己提交任务后填写大约占本文档来自技高网
...

【技术保护点】
1.一种基于单GPU卡的图像并发处理方法,其特征在于,所述方法包括:接收用户提交的任务,其中所述任务为用户根据待处理的对象和处理需求建立的任务;将所述任务加入到任务队列,并为所述任务配置与之对应的任务线程;将配置好的任务线程按序加入到线程池中,所述线程池中包含至少两个任务线程;根据图形处理器GPU卡的内存和所述线程池中每一个任务线程执行时占用的内存,合理的从所述线程池中选取一个或多个任务线程提交至所述GPU卡,以便所述GPU卡对所述一个或多个任务线程并行处理。

【技术特征摘要】
1.一种基于单GPU卡的图像并发处理方法,其特征在于,所述方法包括:接收用户提交的任务,其中所述任务为用户根据待处理的对象和处理需求建立的任务;将所述任务加入到任务队列,并为所述任务配置与之对应的任务线程;将配置好的任务线程按序加入到线程池中,所述线程池中包含至少两个任务线程;根据图形处理器GPU卡的内存和所述线程池中每一个任务线程执行时占用的内存,合理的从所述线程池中选取一个或多个任务线程提交至所述GPU卡,以便所述GPU卡对所述一个或多个任务线程并行处理。2.根据权利要求1所述的方法,其特征在于,所述用户提交的任务包括至少一个。3.根据权利要求1所述的方法,其特征在于,所述根据所述GPU卡的内存和所述任务线程执行时占用的内存,合理的从所述线程池中选取一个或多个任务线程提交至所述GPU卡之后,所述方法还包括:接收所述GPU卡反馈的分别与所述一个或多个任务线程中每一个任务线程对应的响应信息,以便根据所述响应信息查询所述GPU卡处理所述一个或多个任务线程的进度。4.根据权利要求3所述的方法,其特征在于,当根据所述响应信息确定所述GPU卡对所述一个或多个任务线程中的第一任务线程处理完成时,从所述GPU卡中读取处理结果,并删除与所述第一任务线程对应的任务,其中,所述第一任务线程为所述一个或多个任务线程中的任一个任务线程。5.根据权利要求1或2所述的方法,其特征在于,所述根据图形处理器GPU卡的内存和所述线程池中每一个任务线程执行时占用的内存,合理的从所述线程池中选取一个或多个任务线程提交至所述GPU卡之前,所述方法还包括:当确定所述一个或多个任务线程中第一任务线程存在前向依赖任务线程时,检测所述前向依赖线程是否执行完毕;若所述前向依赖线程未执行完毕时,将所述第一任务线程加入到所述线程池的尾部排队,直至确定所述前向依赖任务线程执行完毕后,再按序将所述第一任务线程提交至所述GPU卡;并且,重新从所述线程池中按序再次选取一个任务线程提交至所述GPU卡,所述第一任务线程为所述一个或多个任务线程中任一个任务线程。6.一种基于单GPU卡的图像并发处理装置,其特征在于,所述装置包括:接收单元,用于接收用户提交的任务,...

【专利技术属性】
技术研发人员:安玉山
申请(专利权)人:北京视甄智能科技有限公司
类型:发明
国别省市:北京,11

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

1