CN110969565A - 图像处理的方法和装置 - Google Patents
图像处理的方法和装置 Download PDFInfo
- Publication number
- CN110969565A CN110969565A CN201811142940.9A CN201811142940A CN110969565A CN 110969565 A CN110969565 A CN 110969565A CN 201811142940 A CN201811142940 A CN 201811142940A CN 110969565 A CN110969565 A CN 110969565A
- Authority
- CN
- China
- Prior art keywords
- thread
- distribution information
- threads
- preset
- determining
- 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.)
- Granted
Links
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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种图像处理的方法和装置,属于计算机技术领域。所述方法包括:确定待处理的第一图像的尺寸,根据所述第一图像的尺寸和线程块的预设的线程分布信息,确定待处理的线程块数目;根据所述预设的线程分布信息,确定GPU的单个SM一次任务能处理的线程块数目;根据所述待处理的线程块数目和所述单个SM一次任务能处理的线程块数目,确定SM总使用效率;根据所述SM总使用效率,确定线程块的待使用的线程分布信息,基于所述待使用的线程分布信息,对所述第一图像执行图像处理。采用本申请,可以充分利用SM的硬件资源,从而提高图像处理的效率。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种图像处理的方法和装置。
背景技术
随着科学技术的发展,机器学习在众多领域里都有涉及,深度学习作为机器学习领域最前沿的分支,在近几年也得到了飞速发展。卷积神经网络模型是深度学习中应用较为广泛的一种算法模型,在图像处理模型中通常以卷积神经网络模型作为主干。
卷积神经网络的复杂度不断提高,计算量也越来越大,但是计算机资源存在限制,那么如何在计算机资源一定的情况下,提升卷积神经网络模型的图像处理效率,也就成为了相关技术人员亟需解决的问题。
相关技术中将GPU(Graphics Processing Unit,图形处理器)中的SM(StreamingMultiprocessor,流多处理器)需要处理的线程进行预先分块,得到包含有一定线程数量的线程块,再将这些线程块分配给SM进行处理。
在实现本申请的过程中,发明人发现相关技术至少存在以下问题:
相关技术中,对于一次图像处理,可以划分成多次任务,每次任务根据SM的处理能力为SM分配线程块进行处理,各个SM的处理能力相同,完成任务的时间也非常接近,可以近似认为时间相同。经常会出现一种情况,分配到最后一次任务的时候,只剩下数量很少的线程块需要处理,那么在最后一次任务中,这数量很少的线程块就只能分配给一小部分SM,其余的SM都处于闲置状态,这样会导致图像处理的效率偏低。
发明内容
为了解决现有技术的问题,本申请实施例提供了一种图像处理的方法和装置。所述技术方案如下:
第一方面,提供了一种图像处理的方法,所述方法包括:
确定待处理的第一图像的尺寸,根据所述第一图像的尺寸和线程块的预设的线程分布信息,确定待处理的线程块数目;
根据所述预设的线程分布信息,确定GPU的单个SM一次任务能处理的线程块数目;
根据所述待处理的线程块数目和所述单个SM一次任务能处理的线程块数目,确定SM总使用效率;
根据所述SM总使用效率,确定线程块的待使用的线程分布信息,基于所述待使用的线程分布信息,对所述第一图像执行图像处理。
可选的,所述根据所述SM总使用效率,确定线程块的待使用的线程分布信息,包括:
如果所述SM总使用效率大于预设阈值,则将所述预设的线程分布信息确定为待使用的线程分布信息;
如果所述SM总使用效率小于预设阈值,则根据预设调整规则对所述预设的线程分布信息进行数值调整,转至执行根据所述线程数目和线程块的预设的线程分布信息确定待处理的线程块数目。
可选的,所述线程块是多维线程块,所述线程分布信息包括每个维度对应的线程数目,所述根据预设调整规则对所述预设的线程分布信息进行数值调整,包括:
确定所述待处理的线程块数目和所述GPU中的SM数目的最小公倍数;
确定所述最小公倍数除以所述待处理的线程块数目的商,作为对所述第一图像执行图像处理所需的任务执行次数;
基于预设的线程分布信息中待调整维度对应的线程数目和所述任务执行次数,确定所述待调整维度对应的调整后的线程数目,基于所述待调整维度对应的调整后的线程数目,对所述预设的线程分布信息进行数值调整。
可选的,所述基于所述待调整维度对应的调整后的线程数目,对所述预设的线程分布信息进行数值调整,包括:
如果所述待调整维度对应的调整后的线程数目相对于所述待调整维度对应的线程数目的变化比例大于预设变化比例,则根据所述预设变化比例,对所述待调整维度对应的线程数目,进行重调整,得到所述待调整维度对应的重调整后的线程数目,将所述预设的线程分布信息中所述待调整维度对应的线程数目,调整为所述重调整后的线程数目;
如果所述待调整维度对应的调整后的线程数目相对于所述待调整维度对应的线程数目的变化比例小于预设变化比例,则将所述预设的线程分布信息中所述待调整维度对应的线程数目,调整为所述调整后的线程数目。
可选的,所述根据所述预设的线程分布信息,确定GPU的单个SM一次任务能处理的线程块数目,包括:
根据所述预设的线程分布信息,确定线程块中的线程数目;
根据所述线程块中的线程数目和预设的GPU的单个SM一个周期能处理的线程数目,确定所述GPU的单个SM一次任务能处理的线程块数目。
可选的,所述基于所述待使用的线程分布信息,对所述第一图像执行图像处理之后,还包括:
当接收到对第二图像的图像处理指令时,如果所述第二图像与第一图像尺寸相同,则基于所述待使用的线程分布信息,对所述第二图像执行图像处理。
可选的,所述图像处理为图像卷积处理。
第二方面,提供了一种图像处理的装置,所述装置包括:
确定模块,用于确定待处理的第一图像的尺寸,根据所述第一图像的尺寸和线程块的预设的线程分布信息,确定待处理的线程块数目;
根据所述预设的线程分布信息,确定GPU的单个SM一次任务能处理的线程块数目;
根据所述待处理的线程块数目和所述单个SM一次任务能处理的线程块数目,确定SM总使用效率;
执行模块,用于根据所述SM总使用效率,确定线程块的待使用的线程分布信息,基于所述待使用的线程分布信息,对所述第一图像执行图像处理。
可选的,所述确定模块,用于:
如果所述SM总使用效率大于预设阈值,则将所述预设的线程分布信息确定为待使用的线程分布信息;
如果所述SM总使用效率小于预设阈值,则根据预设调整规则对所述预设的线程分布信息进行数值调整,转至执行根据所述线程数目和线程块的预设的线程分布信息确定待处理的线程块数目。
可选的,所述线程块是多维线程块,所述线程分布信息包括每个维度对应的线程数目,所述确定模块,用于:
确定所述待处理的线程块数目和所述GPU中的SM数目的最小公倍数;
确定所述最小公倍数除以所述待处理的线程块数目的商,作为对所述第一图像执行图像处理所需的任务执行次数;
基于预设的线程分布信息中待调整维度对应的线程数目和所述任务执行次数,确定所述待调整维度对应的调整后的线程数目,基于所述待调整维度对应的调整后的线程数目,对所述预设的线程分布信息进行数值调整。
可选的,所述确定模块,用于:
如果所述待调整维度对应的调整后的线程数目相对于所述待调整维度对应的线程数目的变化比例大于预设变化比例,则根据所述预设变化比例,对所述待调整维度对应的线程数目,进行重调整,得到所述待调整维度对应的重调整后的线程数目,将所述预设的线程分布信息中所述待调整维度对应的线程数目,调整为所述重调整后的线程数目;
如果所述待调整维度对应的调整后的线程数目相对于所述待调整维度对应的线程数目的变化比例小于预设变化比例,则将所述预设的线程分布信息中所述待调整维度对应的线程数目,调整为所述调整后的线程数目。
可选的,所述确定模块,用于:
根据所述预设的线程分布信息,确定线程块中的线程数目;
根据所述线程块中的线程数目和预设的GPU的单个SM一个周期能处理的线程数目,确定所述GPU的单个SM一次任务能处理的线程块数目。
可选的,所述执行模块,还用于:
当接收到对第二图像的图像处理指令时,如果所述第二图像与第一图像尺寸相同,则基于所述待使用的线程分布信息,对所述第二图像执行图像处理。
可选的,所述图像处理为图像卷积处理。
第三方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上述第一方面所述的图像处理的方法。
第四方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上述第一方面所述的图像处理的方法。
本申请实施例提供的技术方案带来的有益效果至少包括:
本申请实施例中,基于待执行的图像处理对应的线程数目、线程块的预设的线程分布信息和GPU中的SM相关信息,得到SM总使用效率,再根据该SM总使用效率对线程块的线程分布信息进行调整,这样能充分利用SM的硬件资源,从而提高图像处理的效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种图像处理的方法的流程图;
图2是本申请实施例提供的一种图像处理的方法的流程图;
图3是本申请实施例提供的一种图像处理的装置的结构示意图;
图4是本申请实施例提供的一种计算机设备结构示意图;
图5是本申请实施例提供的一种线程块的线程分布信息示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
本申请实施例提供了一种图像处理的方法,该方法可以由计算机设备实现。其中,计算机设备可以是具有图像处理功能的计算机。图像处理可以是图像卷积处理、图像缩放处理、抠图处理等,本申请实施例以卷积神经网络处理过程中的图像卷积处理为例进行说明,其他图像处理与此类似,在此不再赘述。
如图1所示,该方法的处理流程可以包括如下的步骤:
在步骤101中,确定待处理的第一图像的尺寸,根据所述第一图像的尺寸和线程块的预设的线程分布信息,确定待处理的线程块数目。
其中,如图5所示,线程块由一定数量的线程组成,线程分布信息可以包括线程块x维度的线程数目dim.x、y维度的线程数目dim.y和z维度的线程数目dim.z。预设的线程分布信息,可以设置为dim.x=32,dim.y=8,dim.z=8。
在实施中,在进行卷积神经网络处理的过程中,计算机设备中的GPU获取到需要进行图像卷积处理的第一图像,对该第一图像的处理任务包含于线程中,GPU将线程分配到实际执行线程中任务的模块SM中执行,在分配线程时,是以线程块为单位分配的,所以,技术人员可以预先对线程块中的线程分布信息进行设置。其中,每个线程块中的线程分布信息相同。线程块x维度的线程数目dim.x、y维度的线程数目dim.y和z维度的线程数目dim.z相乘,就可以得到单个线程块中的线程数目num_thread,即num_thread=dim.x*dim.y*dim.z。那么,处理该第一图像时,GPU中待处理的线程块数目是多少,可以由以下方法计算得出。
计算机设备将第一图像的宽M,第一图像的高N和第一图像的通道数K,分别除以线程块在x维度的线程数目dim.x、y维度的线程数目dim.y和z维度的线程数目dim.z,便可以得到grid(网格)上各维度的线程块数目,其中,grid是所有线程的组织形式,可以认为是所有线程的集合。需要说明的是,将第一图像的宽M,第一图像的高N和第一图像的通道数K,分别除以程块x维度的线程数目dim.x、y维度的线程数目dim.y和z维度的线程数目dim.z,具体操作可以是由M除以dim.x,N除以dim.y,K除以dim.z,也可以是M除以dim.y,N除以dim.x,K除以dim.z,或者,还可以是M除以dim.z,N除以dim.y,K除以dim.x,除了以上三种方式,还可以有其他类似相除的方式,在此不做赘述,具体是哪种方式,可以根据实际情况确定,本实施例中,使用最常用的一种相除方式,由M除以dim.x,得到grid在x维度的线程块数目grid_dim.x,N除以dim.y,得到grid在y维度的线程块数目grid_dim.y,K除以dim.z,得到grid在z维度的线程块数目grid_dim.z。
再由grid在x维度的线程块数目grid_dim.x,y维度的线程块数目grid_dim.y和z维度的线程块数目grid_dim.z相乘,就可以得到grid中总的线程块数目num_block,即进行第一图像处理时,GPU中待处理的线程块数目。
在步骤102中,根据预设的线程分布信息,确定GPU的单个SM一次任务能处理的线程块数目。
在实施中,因为SM在处理线程时,要用到SM内的共享存储器、寄存器等硬件资源,所以SM一次任务中能处理的线程数目就会受到这些硬件资源的限制,而GPU在给SM分配线程时,又是以线程块为单位的,那么,根据线程块中的线程数目,就可以确定出单个SM一次任务中能处理的线程块数目。
可选的,可以根据预设的线程分布信息,确定线程块中的线程数目;根据线程块中的线程数目和预设的GPU的单个SM一个周期能处理的线程数目,确定GPU的单个SM一次任务能处理的线程块数目。
其中,SM在处理线程时,是以Warp(线程束)为单位的,而单个Warp中的线程数目为32。
在实施中,技术人员可以根据实际的SM中的硬件资源情况,预先设置单个SM一个周期能处理的线程数目,即可得单个SM一个周期能处理的Warp数目,在本实施例中设置单个SM一个周期能处理的线程数目为512,即单个SM一个周期能处理的Warp数目为16。由步骤101可知,根据预设的线程块中的线程分布信息线程块x维度的线程数目dim.x、y维度的线程数目dim.y和z维度的线程数目dim.z相乘,就可以得到单个线程块中的线程数目num_thread。再根据得到的单个线程块中的线程数目num_thread和单个Warp中的线程数目,计算得到单个线程块中的Warp数,具体计算公式为:num_warp=num_thread/32。再根据单个Warp中的线程数目和单个SM一个周期能处理的Warp数目,计算得到单个SM一次任务能处理的线程块数目saturating_block_per_sm,具体计算公式为:
saturating_block_per_sm=(16+num_warp-1)/num_warp。
需要说明的是因为SM处理线程时,是以Warp为单位的,而单个Warp中的线程数目为32,所以,在本实施例中,线程块中的线程数目可以为32的整数倍,这样可以避免SM在处理线程时出现小于32个线程的情况,这样的情况下,会使SM产生资源浪费的问题。
在步骤103中,根据待处理的线程块数目和单个SM一次任务能处理的线程块数目,确定SM总使用效率。
在实施中,技术人员可以根据GPU的实际硬件信息,获取GPU中的SM数目num_sm,再由SM数目num_sm和单个SM一次任务能处理的线程块数目saturating_block_per_sm,计算得到GPU中所有的SM一次任务能处理的线程块数目saturating_block,具体计算公式为:
saturating_block=num_sm*saturating_block_per_sm。
如果SM一次任务中实际处理的线程块数目达到其一次任务能处理的线程块数目则可以称该SM饱和运行。再根据GPU中待处理的线程块数目num_block和GPU中所有的SM一次任务能处理的线程块数目,计算得出GPU中的所有SM饱和运行的次数full_times,具体计算公式为:full_times=num_block/saturating_block,如果计算结果不是整数,则full_times取整数。同样,根据GPU中待处理的线程块数目num_block和GPU中所有的SM一次任务能处理的线程块数目,计算得出经过full_times次的处理后,还剩余的待处理的线程块数目remainder_block,具体计算公式为:
remainder_block=num_block%saturating_block,其中%为取余符号。
然后,根据剩余的待处理的线程块数目remainder_block和GPU中所有的SM同一周期能处理的线程块数目saturating_block,计算得到处理剩余的待处理的线程块时,SM的最后一次运行的饱和率last_efficiency_sm,具体计算公式为:efficiency_sm=remainder_block/saturating_block。接下来,还需要根据经过full_times次的处理后,是否有剩余的待处理线程块,来确定处理所有的待处理的线程块,SM的总运行次数total_times,如果有,则total_times=full_times+1,如果没有,则total_times=full_times。最后,再根据SM的总运行次数total_times、SM最后一次运行的饱和率last_efficiency_sm和SM饱和运行的周期数full_times,计算得到SM总使用效率efficiency_sm,具体计算公式为:
efficiency_sm=(full_times+last_efficiency_sm)/total_times。
在步骤104中,根据SM总使用效率,确定线程块的待使用的线程分布信息,基于待使用的线程分布信息,对第一图像执行图像处理。
在实施中,经过以上计算可以得出SM总使用效率,根据该SM总使用效率可以判断当前线程块的线程分布信息是否合理,即是否使SM总使用效率达到了预期,从而来确定出合理的线程块的待使用的线程分布信息,并根据该线程块的线程分布信息进行第一图像处理。
如图2所示,图像处理方法的处理流程可以如下:
步骤201,确定待处理的第一图像的尺寸。
步骤202,根据第一图像的尺寸和线程块的预设的线程分布信息,确定待处理的线程块数目。
步骤203,根据预设的线程分布信息,确定GPU的单个SM一次任务能处理的线程块数目。
步骤204,根据待处理的线程块数目和单个SM一次任务能处理的线程块数目,确定SM总使用效率。
步骤205,判断SM总使用效率是否大于预设阈值。如果是,则执行步骤206,如果否,则执行步骤207及其后续步骤。
在实施中,技术人员可以根据第一图像处理的实际需要,预先对SM总使用效率设置阈值,该阈值可以设置为90%,如果阈值过低,则没有价值,如果阈值过高,则可能无法达到。再将SM总使用效率与该预设阈值进行比较,如果大于该预设阈值,就将该预设的线程分布信息作为待使用的线程分布信息,如果小于该预设阈值,就对该预设的线程分布信息进行调整。
步骤206,将预设的线程分布信息确定为待使用的线程分布信息,并根据该待使用的线程分布信息对第一图像执行图像处理。执行完步骤206之后,流程结束。
步骤207,确定待处理的线程块数目和GPU中的SM数目的最小公倍数new_block。
步骤208,确定该最小公倍数除以待处理的线程块数目的商,作为对第一图像执行图像处理所需的任务执行次数。
在实施中,根据步骤207中得到的最小公倍数new_block和待处理的线程块数目num_block,计算得到处理该第一图像需要的任务执行次数num_times,具体计算公式为:nun_times=new_block/num_block。
步骤209,基于预设的线程分布信息中待调整维度对应的线程数目和任务执行次数,确定待调整维度对应的调整后的线程数目,基于待调整维度对应的调整后的线程数目,对预设的线程分布信息进行数值调整。
在实施中,根据预设的线程分布信息中待调整维度所对应的线程数目dim.y(这里待调整维度可以是x维度,可以是y维度,或者还可以是z维度,本实施例以y维度为例进行说明,其他维度的处理与此类似,在此不做赘述,因为本实施例中的预设的x维度所对应的线程数目)和处理该第一图像需要的任务执行次数num_times,计算得到y维度对应的调整后的线程数目new_y,具体计算公式为:new_y=(dim.y+num_times-1)/num_times,再根据该y维度对应的调整后的线程数目new_y,对预设的线程分布信息中的dim.y进行数值调整。
步骤210,判断待调整维度对应的调整后的线程数目相对于待调整维度对应的线程数目的变化比例是否大于预设变化比例。如果是,则执行步骤211,如果否,则转至执行步骤202。
步骤211,根据预设变化比例,对待调整维度对应的线程数目,进行重调整,得到待调整维度对应的重调整后的线程数目,将预设的线程分布信息中待调整维度对应的线程数目,调整为重调整后的线程数目,转至执行步骤202。
在实施中,将待调整维度对应的线程数目调整为正好满足预设变化比例的线程数目,并将该线程数目作为预设的线程分布信息中待调整维度对应的线程数目。再转至执行步骤202。
需要说明的是,步骤207-步骤211中提供了一种根据预设调整规则对预设的线程分布信息进行数值调整的处理方法,除此方法之外,本申请实施例还可以采用其他方法对预设的线程分布信息进行数值调整,如按照固定数值进行调整等。另外,步骤210-步骤211中提供了一种对预设的线程分布信息的调整程度进行控制的处理方法,本申请实施例中也可以不通过此方法对预设的线程分布信息的调整程度进行控制,在对预设的线程分布信息进行调整之后,直接转至执行步骤202,或者,也可以采用其他方法控制调整程度。
在上述两个处理流程中任一处理流程执行完毕之后,当计算机设备的GPU接收到第二图像处理的执行指令时,如果检测到该第二图像与第一图像尺寸相同,则可以直接利用上述处理流程中得到的待使用的线程分布信息,对第二图像执行图像处理。
基于相同的技术构思,本申请实施例还提供了一种图像处理的装置,该装置可以为上述实施例中的计算机设备,如图3所示,该装置包括:确定模块310和执行模块320。
确定模块310,用于确定待处理的第一图像的尺寸,根据所述第一图像的尺寸和线程块的预设的线程分布信息,确定待处理的线程块数目;
根据所述预设的线程分布信息,确定GPU的单个SM一次任务能处理的线程块数目;
根据所述待处理的线程块数目和所述单个SM一次任务能处理的线程块数目,确定SM总使用效率;
执行模块320,用于根据所述SM总使用效率,确定线程块的待使用的线程分布信息,基于所述待使用的线程分布信息,对所述第一图像执行图像处理。
可选的,所述确定模块310,用于:
如果所述SM总使用效率大于预设阈值,则将所述预设的线程分布信息确定为待使用的线程分布信息;
如果所述SM总使用效率小于预设阈值,则根据预设调整规则对所述预设的线程分布信息进行数值调整,转至执行根据所述线程数目和线程块的预设的线程分布信息确定待处理的线程块数目。
可选的,所述线程块是多维线程块,所述线程分布信息包括每个维度对应的线程数目,所述确定模块310,用于:
确定所述待处理的线程块数目和所述GPU中的SM数目的最小公倍数;
确定所述最小公倍数除以所述待处理的线程块数目的商,作为对所述第一图像执行图像处理所需的任务执行次数;
基于预设的线程分布信息中待调整维度对应的线程数目和所述任务执行次数,确定所述待调整维度对应的调整后的线程数目,基于所述待调整维度对应的调整后的线程数目,对所述预设的线程分布信息进行数值调整。
可选的,所述确定模块310,用于:
如果所述待调整维度对应的调整后的线程数目相对于所述待调整维度对应的线程数目的变化比例大于预设变化比例,则根据所述预设变化比例,对所述待调整维度对应的线程数目,进行重调整,得到所述待调整维度对应的重调整后的线程数目,将所述预设的线程分布信息中所述待调整维度对应的线程数目,调整为所述重调整后的线程数目;
如果所述待调整维度对应的调整后的线程数目相对于所述待调整维度对应的线程数目的变化比例小于预设变化比例,则将所述预设的线程分布信息中所述待调整维度对应的线程数目,调整为所述调整后的线程数目。
可选的,所述确定模块310,用于:
根据所述预设的线程分布信息,确定线程块中的线程数目;
根据所述线程块中的线程数目和预设的GPU的单个SM一个周期能处理的线程数目,确定所述GPU的单个SM一次任务能处理的线程块数目。
可选的,所述执行模块,还用于:
当接收到对第二图像的图像处理指令时,如果所述第二图像与第一图像尺寸相同,则基于所述待使用的线程分布信息,对所述第二图像执行图像处理。
可选的,所述图像处理为图像卷积处理。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
需要说明的是:上述实施例提供的图像处理的装置在处理图像时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的图像处理的装置与图像处理的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图4是本申请实施例提供的一种计算机设备的结构示意图,该计算机设备400可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessing units,CPU)401和一个或一个以上的存储器402,其中,所述存储器402中存储有至少一条指令,所述至少一条指令由所述处理器401加载并执行以实现上述图像处理的方法。
在示例性实施例中,还提供了一种计算机可读存储介质,存储介质中存储有至少一条指令,至少一条指令由处理器加载并执行以实现上述实施例中的识别动作类别的方法。例如,所述计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (14)
1.一种图像处理的方法,其特征在于,所述方法包括:
确定待处理的第一图像的尺寸,根据所述第一图像的尺寸和线程块的预设的线程分布信息,确定待处理的线程块数目;
根据所述预设的线程分布信息,确定GPU的单个SM一次任务能处理的线程块数目;
根据所述待处理的线程块数目和所述单个SM一次任务能处理的线程块数目,确定SM总使用效率;
根据所述SM总使用效率,确定线程块的待使用的线程分布信息,基于所述待使用的线程分布信息,对所述第一图像执行图像处理。
2.根据权利要求1所述的方法,其特征在于,所述根据所述SM总使用效率,确定线程块的待使用的线程分布信息,包括:
如果所述SM总使用效率大于预设阈值,则将所述预设的线程分布信息确定为待使用的线程分布信息;
如果所述SM总使用效率小于预设阈值,则根据预设调整规则对所述预设的线程分布信息进行数值调整,转至执行根据所述线程数目和线程块的预设的线程分布信息确定待处理的线程块数目。
3.根据权利要求2所述的方法,其特征在于,所述线程块是多维线程块,所述线程分布信息包括每个维度对应的线程数目,所述根据预设调整规则对所述预设的线程分布信息进行数值调整,包括:
确定所述待处理的线程块数目和所述GPU中的SM数目的最小公倍数;
确定所述最小公倍数除以所述待处理的线程块数目的商,作为对所述第一图像执行图像处理所需的任务执行次数;
基于预设的线程分布信息中待调整维度对应的线程数目和所述任务执行次数,确定所述待调整维度对应的调整后的线程数目,基于所述待调整维度对应的调整后的线程数目,对所述预设的线程分布信息进行数值调整。
4.根据权利要求3所述的方法,其特征在于,所述基于所述待调整维度对应的调整后的线程数目,对所述预设的线程分布信息进行数值调整,包括:
如果所述待调整维度对应的调整后的线程数目相对于所述待调整维度对应的线程数目的变化比例大于预设变化比例,则根据所述预设变化比例,对所述待调整维度对应的线程数目,进行重调整,得到所述待调整维度对应的重调整后的线程数目,将所述预设的线程分布信息中所述待调整维度对应的线程数目,调整为所述重调整后的线程数目;
如果所述待调整维度对应的调整后的线程数目相对于所述待调整维度对应的线程数目的变化比例小于预设变化比例,则将所述预设的线程分布信息中所述待调整维度对应的线程数目,调整为所述调整后的线程数目。
5.根据权利要求1所述的方法,其特征在于,所述根据所述预设的线程分布信息,确定GPU的单个SM一次任务能处理的线程块数目,包括:
根据所述预设的线程分布信息,确定线程块中的线程数目;
根据所述线程块中的线程数目和预设的GPU的单个SM一个周期能处理的线程数目,确定所述GPU的单个SM一次任务能处理的线程块数目。
6.根据权利要求1所述的方法,其特征在于,所述基于所述待使用的线程分布信息,对所述第一图像执行图像处理之后,还包括:
当接收到对第二图像的图像处理指令时,如果所述第二图像与第一图像尺寸相同,则基于所述待使用的线程分布信息,对所述第二图像执行图像处理。
7.根据权利要求1-6中任一项所述的方法,其特征在于,所述图像处理为图像卷积处理。
8.一种图像处理的装置,其特征在于,所述装置包括:
确定模块,用于确定待处理的第一图像的尺寸,根据所述第一图像的尺寸和线程块的预设的线程分布信息,确定待处理的线程块数目;
根据所述预设的线程分布信息,确定GPU的单个SM一次任务能处理的线程块数目;
根据所述待处理的线程块数目和所述单个SM一次任务能处理的线程块数目,确定SM总使用效率;
执行模块,用于根据所述SM总使用效率,确定线程块的待使用的线程分布信息,基于所述待使用的线程分布信息,对所述第一图像执行图像处理。
9.根据权利要求8所述的装置,其特征在于,所述确定模块,用于:
如果所述SM总使用效率大于预设阈值,则将所述预设的线程分布信息确定为待使用的线程分布信息;
如果所述SM总使用效率小于预设阈值,则根据预设调整规则对所述预设的线程分布信息进行数值调整,转至执行根据所述线程数目和线程块的预设的线程分布信息确定待处理的线程块数目。
10.根据权利要求9所述的装置,其特征在于,所述线程块是多维线程块,所述线程分布信息包括每个维度对应的线程数目,所述确定模块,用于:
确定所述待处理的线程块数目和所述GPU中的SM数目的最小公倍数;
确定所述最小公倍数除以所述待处理的线程块数目的商,作为对所述第一图像执行图像处理所需的任务执行次数;
基于预设的线程分布信息中待调整维度对应的线程数目和所述任务执行次数,确定所述待调整维度对应的调整后的线程数目,基于所述待调整维度对应的调整后的线程数目,对所述预设的线程分布信息进行数值调整。
11.根据权利要求10所述的装置,其特征在于,所述确定模块,用于:
如果所述待调整维度对应的调整后的线程数目相对于所述待调整维度对应的线程数目的变化比例大于预设变化比例,则根据所述预设变化比例,对所述待调整维度对应的线程数目,进行重调整,得到所述待调整维度对应的重调整后的线程数目,将所述预设的线程分布信息中所述待调整维度对应的线程数目,调整为所述重调整后的线程数目;
如果所述待调整维度对应的调整后的线程数目相对于所述待调整维度对应的线程数目的变化比例小于预设变化比例,则将所述预设的线程分布信息中所述待调整维度对应的线程数目,调整为所述调整后的线程数目。
12.根据权利要求8所述的装置,其特征在于,所述确定模块,用于:
根据所述预设的线程分布信息,确定线程块中的线程数目;
根据所述线程块中的线程数目和预设的GPU的单个SM一个周期能处理的线程数目,确定所述GPU的单个SM一次任务能处理的线程块数目。
13.根据权利要求8所述的装置,其特征在于,所述执行模块,还用于:
当接收到对第二图像的图像处理指令时,如果所述第二图像与第一图像尺寸相同,则基于所述待使用的线程分布信息,对所述第二图像执行图像处理。
14.根据权利要求8-13中任一项所述的装置,其特征在于,所述图像处理为图像卷积处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811142940.9A CN110969565B (zh) | 2018-09-28 | 2018-09-28 | 图像处理的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811142940.9A CN110969565B (zh) | 2018-09-28 | 2018-09-28 | 图像处理的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110969565A true CN110969565A (zh) | 2020-04-07 |
CN110969565B CN110969565B (zh) | 2023-05-16 |
Family
ID=70027709
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811142940.9A Active CN110969565B (zh) | 2018-09-28 | 2018-09-28 | 图像处理的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110969565B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113590275A (zh) * | 2020-04-30 | 2021-11-02 | 伊姆西Ip控股有限责任公司 | 用于处理数据的方法、电子设备和计算机程序产品 |
CN114860341A (zh) * | 2022-05-19 | 2022-08-05 | 北京百度网讯科技有限公司 | 线程配置方法、设备、装置、存储介质及程序产品 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100123717A1 (en) * | 2008-11-20 | 2010-05-20 | Via Technologies, Inc. | Dynamic Scheduling in a Graphics Processor |
CN103282888A (zh) * | 2011-12-27 | 2013-09-04 | 华为技术有限公司 | 数据处理方法、图像处理器gpu及第一节点设备 |
CN103871032A (zh) * | 2014-03-07 | 2014-06-18 | 福建工程学院 | 基于GPU的Wallis滤波器进行影像增强的方法 |
CN105653243A (zh) * | 2015-12-23 | 2016-06-08 | 北京大学 | 一种通用图形处理器多任务并发执行的任务派发方法 |
CN107544845A (zh) * | 2017-06-26 | 2018-01-05 | 新华三大数据技术有限公司 | Gpu资源调度方法及装置 |
CN107563955A (zh) * | 2017-09-12 | 2018-01-09 | 武汉锐思图科技有限公司 | 一种基于gpu的并行地图切片方法及*** |
-
2018
- 2018-09-28 CN CN201811142940.9A patent/CN110969565B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100123717A1 (en) * | 2008-11-20 | 2010-05-20 | Via Technologies, Inc. | Dynamic Scheduling in a Graphics Processor |
CN103282888A (zh) * | 2011-12-27 | 2013-09-04 | 华为技术有限公司 | 数据处理方法、图像处理器gpu及第一节点设备 |
CN103871032A (zh) * | 2014-03-07 | 2014-06-18 | 福建工程学院 | 基于GPU的Wallis滤波器进行影像增强的方法 |
CN105653243A (zh) * | 2015-12-23 | 2016-06-08 | 北京大学 | 一种通用图形处理器多任务并发执行的任务派发方法 |
CN107544845A (zh) * | 2017-06-26 | 2018-01-05 | 新华三大数据技术有限公司 | Gpu资源调度方法及装置 |
CN107563955A (zh) * | 2017-09-12 | 2018-01-09 | 武汉锐思图科技有限公司 | 一种基于gpu的并行地图切片方法及*** |
Non-Patent Citations (1)
Title |
---|
张军;何炎祥;沈凡凡;江南;李清安;: "基于2阶段同步的GPGPU线程块压缩调度方法" * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113590275A (zh) * | 2020-04-30 | 2021-11-02 | 伊姆西Ip控股有限责任公司 | 用于处理数据的方法、电子设备和计算机程序产品 |
US11657324B2 (en) * | 2020-04-30 | 2023-05-23 | EMC IP Holding Company LLC | Method, electronic device, and computer program product for processing data |
CN114860341A (zh) * | 2022-05-19 | 2022-08-05 | 北京百度网讯科技有限公司 | 线程配置方法、设备、装置、存储介质及程序产品 |
CN114860341B (zh) * | 2022-05-19 | 2023-09-22 | 北京百度网讯科技有限公司 | 线程配置方法、设备、装置、存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110969565B (zh) | 2023-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20190049593A (ko) | 콘볼루션 신경망에서의 연산들을 수행하는 방법 및 장치 | |
CN107797853B (zh) | 一种任务调度方法、装置及多核处理器 | |
WO2015157068A1 (en) | Method and device for augmenting and releasing capacity of computing resources in real-time stream computing system | |
CN110308982B (zh) | 一种共享内存复用方法及装置 | |
CN108270805B (zh) | 用于数据处理的资源分配方法及装置 | |
CN106293947B (zh) | 虚拟化云环境下gpu-cpu混合资源分配***和方法 | |
CN115237580B (zh) | 面向智能计算的流水并行训练自适应调整***、方法 | |
CN112711478A (zh) | 基于神经网络的任务处理方法、装置、服务器和存储介质 | |
CN105488134A (zh) | 大数据处理方法及大数据处理装置 | |
CN111429333A (zh) | 一种gpu动态调频的方法、装置及*** | |
Huang et al. | Novel heuristic speculative execution strategies in heterogeneous distributed environments | |
CN110969565A (zh) | 图像处理的方法和装置 | |
CN108470211B (zh) | 一种卷积计算的实现方法、设备和计算机存储介质 | |
CN111860867B (zh) | 一种混合异构***的模型训练方法、***及相关装置 | |
CN113010286A (zh) | 并行任务调度方法、装置、计算机设备和存储介质 | |
CN115934362A (zh) | 面向深度学习的服务器无感知计算集群调度方法及产品 | |
CN113010262B (zh) | 一种基于云计算的内存优化方法 | |
Abraham et al. | Group-based parallel multi-scheduler for grid computing | |
CN110413393B (zh) | 集群资源管理方法、装置、计算机集群及可读存储介质 | |
CN109086137B (zh) | Gpu并行计算资源配置方法及装置 | |
CN105468455A (zh) | 一种用于多设备的动态任务分配的方法及装置 | |
CN111580937B (zh) | 一种面向飞腾多核/众核混合集群的虚拟机自动调度方法 | |
US20170330303A1 (en) | Analysis system and method for reducing the control flow divergence in the Graphics Processing Units (GPUs) | |
CN114356550A (zh) | 一种面向三级并行中间件的计算资源自动分配方法及*** | |
CN112130977B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |