CN111489281A - 一种基于gpu和cpu协同运算的检测方法 - Google Patents

一种基于gpu和cpu协同运算的检测方法 Download PDF

Info

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
Application number
CN202010271990.8A
Other languages
English (en)
Inventor
张兴全
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Changzhou Aochuang Medical Technology Co ltd
Original Assignee
Changzhou Aochuang Medical Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Changzhou Aochuang Medical Technology Co ltd filed Critical Changzhou Aochuang Medical Technology Co ltd
Priority to CN202010271990.8A priority Critical patent/CN111489281A/zh
Publication of CN111489281A publication Critical patent/CN111489281A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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协同运算的检测方法
技术领域
本发明涉及一种基于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。
CN202010271990.8A 2020-04-09 2020-04-09 一种基于gpu和cpu协同运算的检测方法 Pending CN111489281A (zh)

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)

* Cited by examiner, † Cited by third party
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 北京搜狗科技发展有限公司 一种协同计算方法及装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
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