CN111489281A - 一种基于gpu和cpu协同运算的检测方法 - Google Patents
一种基于gpu和cpu协同运算的检测方法 Download PDFInfo
- Publication number
- CN111489281A CN111489281A CN202010271990.8A CN202010271990A CN111489281A CN 111489281 A CN111489281 A CN 111489281A CN 202010271990 A CN202010271990 A CN 202010271990A CN 111489281 A CN111489281 A CN 111489281A
- Authority
- CN
- China
- Prior art keywords
- gpu
- cpu
- calculation
- cut
- calculated
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 47
- 238000004364 calculation method Methods 0.000 claims abstract description 72
- 238000000034 method Methods 0.000 claims description 13
- 230000000903 blocking effect Effects 0.000 claims description 4
- 230000006870 function Effects 0.000 description 4
- 238000013135 deep learning Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 241000282414 Homo sapiens Species 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Image Processing (AREA)
Abstract
本发明公开了一种基于GPU和CPU协同运算的检测方法,方法的步骤中含有:将待计算图片切割为N个相等尺寸的切割后图片;将其中X个切割后图片分配给GPU进行计算和将其中Y个切割后图片分配给CPU进行计算;待GPU完成计算任务后,再将剩余切割后图片中X个切割后图片分配给GPU进行计算;待CPU完成计算任务后,再将剩余切割后图片中Y个切割后图片分配给CPU进行计算;GPU和CPU依次完成计算任务直到N个切割后图片计算完毕;其中,MX+SY=N;M为GPU完成计算任务的次数;S为CPU完成计算任务的次数;将GPU计算的切割后图片的计算结果和CPU计算的切割后图片的计算结果相加,得到待计算图片的检测结果。本发明提高了检测速度,缩短了检测时间。
Description
技术领域
本发明涉及一种基于GPU和CPU协同运算的检测方法。
背景技术
目前,近些年来,深度学习广泛地用地用在图像处理和图像内容理解上,在图像分类,图像识别等领用取得了很大成就,甚至在某些方面,误检率已经低于人类。
深度学习旨在建立一个模拟人脑进行分析学习的神经网络,包含一个输入层,一个输出层和多个隐含层。输入一张图片,通过逐层处理,逐渐将初始的“低层”特征表示转化为“高层”特征表示,从而使分类或预测更容易。
基于深度学习的目标检测方法主要分为两大类:基于区域提名的两步法和基于回归的单步法。“两步法”首先在一张图片产生大约2000个区域提名,然后放入分类器上分类和位置的修订,主要以rcnn, fastrcnn, fasterrcnn等为代表;“单步法”直接把一张图片发送到网络进行建设,一步给出目标物体的类型和位置,以yolov1,yolov2,yolov3,ssd 等为代表 。“两步法”检测准确率高,但是速度慢,“单步法”准确率低,但是检测速度快。
一般的检测算法工作流程为:第一步,把训练好的模型加载到GPU上,第二步,CPU从硬盘中读取图片,传输到GPU上,由GPU完成检测计算,第三步,GPU把检测结果传输到CPU,然后报告给用户。
本检测方法存在着如下问题:
计算资源浪费,计算效率不高,在第二步中,当GPU在进行检测时,CPU处于等待和空闲状态,这就导致了CPU计算资源的浪费。
针对大尺寸图片,如果直接检测,则检测速度慢,如果resize为小尺寸,则图像分辨率变小,严重影响了检测结果。
发明内容
本发明所要解决的技术问题是克服现有技术的缺陷,提供一种基于GPU和CPU协同运算的检测方法,它提高了检测速度,缩短了检测时间。
为了解决上述技术问题,本发明的第一种技术方案是:一种基于GPU和CPU协同运算的检测方法,方法的步骤中含有:
将待计算图片切割为N个相等尺寸的切割后图片;
将其中X个切割后图片分配给GPU进行计算和将其中Y个切割后图片分配给CPU进行计算;其中,X+Y=N;
将GPU计算的切割后图片的计算结果和CPU计算的切割后图片的计算结果相加,得到待计算图片的检测结果。
进一步,N=64;X=48;Y=16。
为了解决上述技术问题,本发明的第二种技术方案是:一种基于GPU和CPU协同运算的检测方法,方法的步骤中含有:
将待计算图片切割为N个相等尺寸的切割后图片;
将其中X个切割后图片分配给GPU进行计算和将其中Y个切割后图片分配给CPU进行计算;待GPU完成计算任务后,再将剩余切割后图片中X个切割后图片分配给GPU进行计算;待CPU完成计算任务后,再将剩余切割后图片中Y个切割后图片分配给CPU进行计算;GPU和CPU依次完成计算任务直到N个切割后图片计算完毕;其中,MX+SY=N;M为GPU完成计算任务的次数;S为CPU完成计算任务的次数;
将GPU计算的切割后图片的计算结果和CPU计算的切割后图片的计算结果相加,得到待计算图片的检测结果。
进一步,开启一个用于分配GPU和CPU计算任务的线程;其中,
线程处于阻塞状态,当GPU或CPU请求分配计算任务时,所述线程转变为活跃状态,分配相应的计算任务给GPU或CPU。
进一步,N=64;X=4,Y=1。
采用了上述技术方案后,本发明具有以下的有益效果:
1、不同于原有的技术,只使用GPU或者CPU进行计算,本发明实现了GPU和CPU协同运算,减少了CPU计算资源的浪费,提升了目标物体的检测速度。
2、本发明针对大尺寸图片,进行切割,而没有resize,没有减小分辨率,不会导致检测结果不准,本发明既保持检测结果准确,又保持高速的检测速度。本发明提出两种任务分配方案——静态分配和动态分配,检测速度最高提升了22%。
附图说明
图1为本发明的第一种方案的基于GPU和CPU协同运算的检测方法;
图2为本发明的第二种方案的基于GPU和CPU协同运算的检测方法。
具体实施方式
为了使本发明的内容更容易被清楚地理解,下面根据具体实施例并结合附图,对本发明作进一步详细的说明。
实施例一
如图1所示,一种基于GPU和CPU协同运算的检测方法,方法的步骤中含有:
将待计算图片切割为N个相等尺寸的切割后图片;
将其中X个切割后图片分配给GPU进行计算和将其中Y个切割后图片分配给CPU进行计算;其中,X+Y=N;
将GPU计算的切割后图片的计算结果和CPU计算的切割后图片的计算结果相加,得到待计算图片的检测结果。
具体地,通过opencv的resize函数把待计算图片尺寸改变到1024*1024;
通过cut_image函数把待计算图片分割为8*8,每个切割后图片的尺寸为128*128;
把64张切割后图片中前48份,通过Variable(cuda)变成GPU中的变量,把后面16份通过Variable(cpu)变成CPU的变量,分别由GPU和CPU进行计算;
将GPU计算的切割后图片的计算结果和CPU计算的切割后图片的计算结果相加,得到待计算图片的检测结果。
通过使用yolov3算法进行测试,发现检测时间缩减了15%左右。
实施例二
如图2所示,一种基于GPU和CPU协同运算的检测方法,方法的步骤中含有:
将待计算图片切割为N个相等尺寸的切割后图片;
将其中X个切割后图片分配给GPU进行计算和将其中Y个切割后图片分配给CPU进行计算;待GPU完成计算任务后,再将剩余切割后图片中X个切割后图片分配给GPU进行计算;待CPU完成计算任务后,再将剩余切割后图片中Y个切割后图片分配给CPU进行计算;GPU和CPU依次完成计算任务直到N个切割后图片计算完毕;其中,MX+SY=N;M为GPU完成计算任务的次数;S为CPU完成计算任务的次数;
将GPU计算的切割后图片的计算结果和CPU计算的切割后图片的计算结果相加,得到待计算图片的检测结果。
开启一个用于分配GPU和CPU计算任务的线程;其中,
线程处于阻塞状态,当GPU或CPU请求分配计算任务时,所述线程转变为活跃状态,分配相应的计算任务给GPU或CPU。
N=64;X=4,Y=1。
具体地,通过opencv的resize函数把待计算图片尺寸改变到1024*1024;
通过cut_image函数把待计算图片分割为8*8,每个切割后图片的尺寸为128*128;
将其中4个切割后图片分配给GPU进行计算和将其中1个切割后图片分配给CPU进行计算;待GPU完成计算任务后,再将剩余切割后图片中4个切割后图片分配给GPU进行计算;待CPU完成计算任务后,再将剩余切割后图片中1个切割后图片分配给CPU进行计算;GPU和CPU依次完成计算任务直到64个切割后图片计算完毕;
具体地,可以开启一个用于分配GPU和CPU计算任务的线程;其中,
线程处于阻塞状态,当GPU或CPU请求分配计算任务时,所述线程转变为活跃状态,分配相应的计算任务给GPU或CPU。
通过对大量的图片进行测试,发现实施例一中的方法存在一个缺点:GPU和CPU没有同时达到计算终点。在一些图片中,GPU先完成计算,然后等待CPU完成计算,在另外一些情况下,恰好相反,是CPU等待GPU完成计算。
基于此,本实施例对实施例一的方法进行了改进,GPU和CPU优化分配计算任务,通过实施例二的方法,GPU和CPU两个计算设备,哪个计算速度块,它的计算任务就多,反之,若计算速度慢,它分配计算任务就少,这样就保持了两个设备的总的计算时间相等。通过测试,检测速度提升了22%。
以上所述的具体实施例,对本发明解决的技术问题、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
在本发明的描述中,需要理解的是,指示方位或位置关系的术语为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的设备或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
此外,术语“水平”、“竖直”、“悬垂”等术语并不表示要求部件绝对水平或悬垂,而是可以稍微倾斜。如“水平”仅仅是指其方向相对“竖直”而言更加水平,并不是表示该结构一定要完全水平,而是可以稍微倾斜。
在本发明中,除非另有明确的规定和限定,第一特征在第二特征之上或之下可以包括第一和第二特征直接接触,也可以包括第一和第二特征不是直接接触而是通过它们之间的另外的特征接触。而且,第一特征在第二特征之上、上方和上面包括第一特征在第二特征正上方和斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征之下、下方和下面包括第一特征在第二特征正下方和斜下方,或仅仅表示第一特征水平高度小于第二特征。
Claims (5)
1.一种基于GPU和CPU协同运算的检测方法,其特征在于方法的步骤中含有:
将待计算图片切割为N个相等尺寸的切割后图片;
将其中X个切割后图片分配给GPU进行计算和将其中Y个切割后图片分配给CPU进行计算;其中,X+Y=N;
将GPU计算的切割后图片的计算结果和CPU计算的切割后图片的计算结果相加,得到待计算图片的检测结果。
2.根据权利要求1所述的检测方法,其特征在于,
N=64;X=48;Y=16。
3.一种基于GPU和CPU协同运算的检测方法,其特征在于方法的步骤中含有:
将待计算图片切割为N个相等尺寸的切割后图片;
将其中X个切割后图片分配给GPU进行计算和将其中Y个切割后图片分配给CPU进行计算;待GPU完成计算任务后,再将剩余切割后图片中X个切割后图片分配给GPU进行计算;待CPU完成计算任务后,再将剩余切割后图片中Y个切割后图片分配给CPU进行计算;GPU和CPU依次完成计算任务直到N个切割后图片计算完毕;其中,MX+SY=N;M为GPU完成计算任务的次数;S为CPU完成计算任务的次数;
将GPU计算的切割后图片的计算结果和CPU计算的切割后图片的计算结果相加,得到待计算图片的检测结果。
4.根据权利要求3所述的检测方法,其特征在于,
开启一个用于分配GPU和CPU计算任务的线程;其中,
线程处于阻塞状态,当GPU或CPU请求分配计算任务时,所述线程转变为活跃状态,分配相应的计算任务给GPU或CPU。
5.根据权利要求3所述的检测方法,其特征在于,
N=64;X=4,Y=1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010271990.8A CN111489281A (zh) | 2020-04-09 | 2020-04-09 | 一种基于gpu和cpu协同运算的检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010271990.8A CN111489281A (zh) | 2020-04-09 | 2020-04-09 | 一种基于gpu和cpu协同运算的检测方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111489281A true CN111489281A (zh) | 2020-08-04 |
Family
ID=71794724
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010271990.8A Pending CN111489281A (zh) | 2020-04-09 | 2020-04-09 | 一种基于gpu和cpu协同运算的检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111489281A (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101520900A (zh) * | 2009-03-30 | 2009-09-02 | 中国人民解放军第三军医大学第一附属医院 | 一种利用gpu加速cr/dr/ct图像显示及图像处理的方法及专用设备 |
US20110023040A1 (en) * | 2009-07-24 | 2011-01-27 | Apple Inc. | Power-efficient interaction between multiple processors |
CN103617626A (zh) * | 2013-12-16 | 2014-03-05 | 武汉狮图空间信息技术有限公司 | 基于cpu+gpu的遥感影像多尺度异构并行分割方法 |
CN104267940A (zh) * | 2014-09-17 | 2015-01-07 | 武汉狮图空间信息技术有限公司 | 一种基于cpu+gpu的地图切片的快速生成方法 |
CN104869398A (zh) * | 2015-05-21 | 2015-08-26 | 大连理工大学 | 一种基于cpu+gpu异构平台实现hevc中的cabac的并行方法 |
CN106951322A (zh) * | 2017-02-28 | 2017-07-14 | 中国科学院深圳先进技术研究院 | 一种cpu/gpu异构环境的图像协同处理程序获取方法及*** |
CN107945098A (zh) * | 2017-11-24 | 2018-04-20 | 腾讯科技(深圳)有限公司 | 图像处理方法、装置、计算机设备和存储介质 |
CN109871352A (zh) * | 2017-12-01 | 2019-06-11 | 北京搜狗科技发展有限公司 | 一种协同计算方法及装置 |
-
2020
- 2020-04-09 CN CN202010271990.8A patent/CN111489281A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101520900A (zh) * | 2009-03-30 | 2009-09-02 | 中国人民解放军第三军医大学第一附属医院 | 一种利用gpu加速cr/dr/ct图像显示及图像处理的方法及专用设备 |
US20110023040A1 (en) * | 2009-07-24 | 2011-01-27 | Apple Inc. | Power-efficient interaction between multiple processors |
CN103617626A (zh) * | 2013-12-16 | 2014-03-05 | 武汉狮图空间信息技术有限公司 | 基于cpu+gpu的遥感影像多尺度异构并行分割方法 |
CN104267940A (zh) * | 2014-09-17 | 2015-01-07 | 武汉狮图空间信息技术有限公司 | 一种基于cpu+gpu的地图切片的快速生成方法 |
CN104869398A (zh) * | 2015-05-21 | 2015-08-26 | 大连理工大学 | 一种基于cpu+gpu异构平台实现hevc中的cabac的并行方法 |
CN106951322A (zh) * | 2017-02-28 | 2017-07-14 | 中国科学院深圳先进技术研究院 | 一种cpu/gpu异构环境的图像协同处理程序获取方法及*** |
CN107945098A (zh) * | 2017-11-24 | 2018-04-20 | 腾讯科技(深圳)有限公司 | 图像处理方法、装置、计算机设备和存储介质 |
CN109871352A (zh) * | 2017-12-01 | 2019-06-11 | 北京搜狗科技发展有限公司 | 一种协同计算方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111176852A (zh) | 资源分配方法、装置、芯片及计算机可读存储介质 | |
WO2016173351A1 (zh) | 一种数据处理方法及装置 | |
CN108205469B (zh) | 一种基于MapReduce的资源分配方法及服务器 | |
TWI679886B (zh) | 一種影像分析系統與方法 | |
US11429434B2 (en) | Elastic execution of machine learning workloads using application based profiling | |
JP6348431B2 (ja) | 画像処理方法、画像処理装置 | |
CN111104210A (zh) | 一种任务处理方法、装置及计算机*** | |
CN112181613A (zh) | 异构资源分布式计算平台批量任务调度方法及存储介质 | |
KR20210043677A (ko) | 동작 인식 방법 및 장치, 전자 디바이스 및 기록 매체 | |
CN114519521A (zh) | 一种资源调度方法、装置、计算机设备及存储介质 | |
CN113885956A (zh) | 服务部署方法及装置、电子设备和存储介质 | |
CN112699040A (zh) | 压力测试方法、装置、设备及计算机可读存储介质 | |
CN110955390B (zh) | 数据处理方法、装置、电子设备和存储介质 | |
CN116540876A (zh) | 一种基于个体信息的个性化联邦学习的人体动作识别方法 | |
CN110390295B (zh) | 一种图像信息识别方法、装置及存储介质 | |
CN114968567A (zh) | 用于分配计算节点的计算资源的方法、装置和介质 | |
EP3869398A2 (en) | Method and apparatus for processing image, device and storage medium | |
CN111489281A (zh) | 一种基于gpu和cpu协同运算的检测方法 | |
CN112465050A (zh) | 一种图像模板选择方法、装置、设备及存储介质 | |
CN111625281A (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN111143148A (zh) | 一种模型参数确定方法、装置及存储介质 | |
CN109299743A (zh) | 手势识别方法及装置、终端 | |
EP4050560B1 (en) | Wafer testing method and apparatus, and device and storage medium | |
DE102022120731A1 (de) | Multimodale sensorfusion zur identifizierung von inhalten bei anwendungen von mensch-maschine-schnittstellen | |
CN114330888A (zh) | 订单处理方法、***及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |