CN113495786B - 一种图像卷积处理方法和电子设备 - Google Patents
一种图像卷积处理方法和电子设备 Download PDFInfo
- Publication number
- CN113495786B CN113495786B CN202010196706.5A CN202010196706A CN113495786B CN 113495786 B CN113495786 B CN 113495786B CN 202010196706 A CN202010196706 A CN 202010196706A CN 113495786 B CN113495786 B CN 113495786B
- Authority
- CN
- China
- Prior art keywords
- convolution
- image
- block
- matrix
- block mode
- 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.)
- Active
Links
Classifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5017—Task decomposition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
-
- 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
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Image Processing (AREA)
Abstract
本申请实施例提供了一种图像卷积处理方法和电子设备,获取待卷积图像和卷积核;判断当前硬件平台的硬件资源,是否满足使用第一目标预设卷积分块方式进行图像卷积处理时对硬件资源的需求;若满足,使用第一目标预设卷积分块方式,对待卷积图像和卷积核进行图像卷积处理;若不满足,根据预先设定的卷积核的个数与卷积分块方式的对应关系,从除第一目标预设卷积分块方式之外的其他预设卷积分块方式中,选择与卷积核的个数对应的第二目标预设卷积分块方式,使用第二目标预设卷积分块方式对待卷积图像和卷积核进行图像卷积处理。本申请实施例中,在多种卷积分块方式中选择目标卷积分块方式,提高了图像卷积处理的效率。
Description
技术领域
本申请涉及图像处理技术领域,特别是涉及一种图像卷积处理方法和电子设备。
背景技术
在图像处理技术领域,经常需要对图像中的数据进行卷积处理,从而达到特征提取的目的。卷积处理的过程为:分别将待卷积图像和卷积核映射为两个矩阵:待卷积图像矩阵和卷积核矩阵,从而将待卷积图像与卷积核之间的卷积运算,转化为上述待卷积图像矩阵和卷积核矩阵的乘法运算,并对矩阵乘法运算得到的乘积矩阵进行反向映射,从而得到图像卷积结果。
目前,一般采用分块卷积的方法获得卷积结果,具体的:按照预先设定的划分方法,将待卷积图像矩阵和卷积核矩阵分别划分为多个待卷积图像分块矩阵和多个卷积核分块矩阵,然后分别计算各待卷积图像分块矩阵和各卷积核分块矩阵的乘积,得到多个分块乘积矩阵,并对上述多个分块乘积矩阵进行累加运算,得到乘积矩阵,再对乘积矩阵进行反向映射,从而得到图像卷积结果。
上述分块卷积方法中,对于任意尺寸的待卷积图像或者卷积核,分块方法是固定的,即:对于任意尺寸的待卷积图像或者卷积核,分块得到的待卷积图像分块矩阵的尺寸均是相同的,卷积核分块矩阵的尺寸均是相同的,相应的,分块乘积矩阵的尺寸也是相同的,而在实际处理过程中,针对部分尺寸的待卷积图像或者卷积核,采用上述分块卷积方法,处理效率较低。
发明内容
本申请实施例的目的在于提供一种图像卷积处理方法、装置、电子设备及存储介质,以提高图像卷积处理的效率。具体技术方案如下:
第一方面,本申请实施例提供了一种图像卷积处理方法,包括:
获取待卷积图像和卷积核;
判断当前硬件平台的硬件资源,是否满足使用第一目标预设卷积分块方式进行图像卷积处理时对硬件资源的需求;其中,所述第一目标预设卷积分块方式为多种预设卷积分块方式中,使得分块尺寸最小的卷积分块方式;
若满足,则使用所述第一目标预设卷积分块方式,对所述待卷积图像和卷积核进行图像卷积处理,得到图像卷积结果;
若不满足,则根据预先设定的卷积核的个数与卷积分块方式的对应关系,从除所述第一目标预设卷积分块方式之外的其他预设卷积分块方式中,选择与所述卷积核的个数对应的第二目标预设卷积分块方式,使用所述第二目标预设卷积分块方式对所述待卷积图像和卷积核进行图像卷积处理,得到图像卷积结果。
进一步的,在所述判断当前硬件平台的硬件资源,是否满足使用第一目标预设卷积分块方式进行图像卷积处理时对硬件资源的需求的步骤之前,还包括:
将所述待卷积图像和卷积核分别映射为待卷积图像矩阵和卷积核矩阵;
所述判断当前硬件平台的硬件资源,是否满足使用第一目标预设卷积分块方式进行图像卷积处理时对硬件资源的需求的步骤,包括:
计算使用所述第一目标预设卷积分块方式进行图像卷积处理时,需要的线程块的第一线程块数量;其中,一个线程块用于对所述待卷积图像矩阵中的一个分块矩阵和所述卷积核矩阵中的一个分块矩阵进行矩阵乘法运算;
计算使用所述第一目标预设卷积分块方式进行图像卷积处理时,基于当前硬件平台的硬件资源所能够运行的线程块的第二线程块数量;
如果所述第二线程块数量大于或者等于所述第一线程块数量,则确定当前硬件平台的硬件资源,满足使用所述第一目标预设卷积分块方式进行图像卷积处理时对硬件资源的需求;
如果所述第二线程块数量小于所述第一线程块数量,则确定当前硬件平台的硬件资源,不满足使用所述第一目标预设卷积分块方式进行图像卷积处理时对硬件资源的需求。
进一步的,所述计算使用所述第一目标预设卷积分块方式进行图像卷积处理时,需要的线程块的第一线程块数量的步骤,包括:
基于使用所述第一目标预设卷积分块方式进行图像卷积处理时,所述待卷积图像矩阵的一个分块矩阵的尺寸和所述卷积核矩阵的一个分块矩阵的尺寸,确定第一分块乘积矩阵的尺寸;所述第一分块乘积矩阵为使用所述第一目标预设卷积分块方式进行图像卷积处理时,所述待卷积图像矩阵的一个分块矩阵和所述卷积核矩阵的一个分块矩阵的乘积;
对所述待卷积图像矩阵的行数与所述第一分块乘积矩阵的行数的比值进行向上取整操作,得到第一比值;
对所述卷积核矩阵的列数与第一分块乘积矩阵的列数的比值进行向上取整操作,得到第二比值;
将所述第一比值和所述第二比值的乘积,确定为使用所述第一目标预设卷积分块方式进行图像卷积处理时,需要的线程块的第一线程块数量。
进一步的,所述使用所述第一目标预设卷积分块方式,对所述待卷积图像和卷积核进行图像卷积处理,得到图像卷积结果的步骤,包括:
按照所述第一目标预设卷积分块方式中的划分方法,将所述待卷积图像矩阵和所述卷积核矩阵分别划分为多个第一待卷积图像分块矩阵和多个第一卷积核分块矩阵;
分别计算所述多个第一待卷积图像分块矩阵和所述多个第一卷积核分块矩阵的乘积,得到多个所述第一分块乘积矩阵;
对所述多个第一分块乘积矩阵进行累加运算,得到乘积矩阵;
对所述乘积矩阵进行反向映射处理,得到图像卷积结果;
所述使用所述第二目标预设卷积分块方式对所述待卷积图像和卷积核进行图像卷积处理,得到图像卷积结果的步骤,包括:
按照所述第二目标预设卷积分块方式中的划分方法,将所述待卷积图像矩阵和所述卷积核矩阵分别划分为多个第二待卷积图像分块矩阵和多个第二卷积核分块矩阵;
分别计算所述多个第二待卷积图像分块矩阵和所述多个第二卷积核分块矩阵的乘积,得到多个第二分块乘积矩阵;
对所述多个第二分块乘积矩阵进行累加运算,得到乘积矩阵;
对所述乘积矩阵进行反向映射处理,得到图像卷积结果。
进一步的,所述硬件平台为显示芯片GPU平台;所述多种预设卷积分块方式分别为:第一预设卷积分块方式、第二预设卷积分块方式、第三预设卷积分块方式、第四预设卷积分块方式以及第五预设卷积分块方式;
其中,按照所述第一预设卷积分块方式中的划分方法,得到的分块乘积矩阵的尺寸为64×32;按照所述第二预设卷积分块方式中的划分方法,得到的分块乘积矩阵的尺寸为64×64;按照所述第三预设卷积分块方式中的划分方法,得到的分块乘积矩阵的尺寸为128×64;按照所述第四预设卷积分块方式中的划分方法,得到的分块乘积矩阵的尺寸为128×128;按照所述第五预设卷积分块方式中的划分方法,得到的分块乘积矩阵的尺寸为256×128;
所述计算使用所述第一目标预设卷积分块方式进行图像卷积处理时,基于当前硬件平台的硬件资源所能够运行的线程块的第二线程块数量的步骤,包括:
获取使用所述第一目标预设卷积分块方式进行图像卷积运算时,单个线程所需要的寄存器使用量和单个线程所需要的共享内存使用量;
将所述单个线程所需要的寄存器使用量与单个流多处理器线程块中包括的单个线程的数量的乘积,确定为所述单个流多处理器线程块所需要的寄存器使用量;
获取所述GPU平台中单个流多处理器中的额定寄存器容量和单个流多处理器中的额定共享内存容量;
计算所述额定寄存器容量与所述单个流多处理器线程块所需要的寄存器使用量的比值,作为第三比值;
计算所述额定共享内存容量与所述共享内存使用量的比值,作为第四比值;
对所述第三比值和所述第四比值中的最小比值进行向下取整操作,得到使用所述第一目标预设卷积分块方式进行图像卷积处理时,基于所述GPU平台的单个流多处理器所能够运行的线程块的数量;
将所述基于所述GPU平台的单个流多处理器所能够运行的线程块的数量与所述GPU平台中包含的流多处理器数量的乘积,确定为使用所述第一目标预设卷积分块方式进行图像卷积处理时,基于当前硬件平台的硬件资源所能够运行的线程块的第二线程块数量;
所述根据预先设定的卷积核的个数与卷积分块方式的对应关系,从除所述第一目标预设卷积分块方式之外的其他预设卷积分块方式中,选择与所述卷积核的个数对应的第二目标预设卷积分块方式,使用所述第二目标预设卷积分块方式对所述待卷积图像和卷积核进行卷积处理,得到图像卷积结果的步骤,包括:
当所述卷积核的个数小于或者等于64时,选择所述第二预设卷积分块方式作为第二目标预设卷积分块方式,使用所述第二目标预设卷积分块方式对所述待卷积图像和卷积核进行卷积处理,得到图像卷积结果;
当所述卷积核的个数大于64,且小于128时,选择所述第三预设卷积分块方式作为第二目标预设卷积分块方式,使用所述第二目标预设卷积分块方式对所述待卷积图像和卷积核进行卷积处理,得到图像卷积结果;
当所述卷积核的个数大于或者等于128,且小于或者等于256时,选择所述第四预设卷积分块方式作为第二目标预设卷积分块方式,使用所述第二目标预设卷积分块方式对所述待卷积图像和卷积核进行卷积处理,得到图像卷积结果;
当所述卷积核的个数大于256时,选择所述第五预设卷积分块方式作为第二目标预设卷积分块方式,使用所述第二目标预设卷积分块方式对所述待卷积图像和卷积核进行卷积处理,得到图像卷积结果。
第二方面,本申请实施例提供了一种图像卷积处理装置,包括:
获取模块,用于获取待卷积图像和卷积核;
第一判断模块,用于判断当前硬件平台的硬件资源,是否满足使用第一目标预设卷积分块方式进行图像卷积处理时对硬件资源的需求;其中,所述第一目标预设卷积分块方式为多种预设卷积分块方式中,使得分块尺寸最小的卷积分块方式;若满足,触发第一图像卷积处理模块;若不满足,触发第二图像卷积处理模块;
所述第一图像卷积处理模块,用于使用所述第一目标预设卷积分块方式,对所述待卷积图像和卷积核进行图像卷积处理,得到图像卷积结果;
所述第二图像卷积处理模块,用于根据预先设定的卷积核的个数与卷积分块方式的对应关系,从除所述第一目标预设卷积分块方式之外的其他预设卷积分块方式中,选择与所述卷积核的个数对应的第二目标预设卷积分块方式,使用所述第二目标预设卷积分块方式对所述待卷积图像和卷积核进行图像卷积处理,得到图像卷积结果。
进一步的,所述装置,还包括:
映射模块,用于在判断当前硬件平台的硬件资源,是否满足使用第一目标预设卷积分块方式进行图像卷积处理时对硬件资源的需求之前,将所述待卷积图像和卷积核分别映射为待卷积图像矩阵和卷积核矩阵;
所述第一判断模块,包括:第一线程块数量计算子模块、第二线程块数量计算子模块、第一确定子模块和第二确定子模块;
所述第一线程块数量计算子模块,用于计算使用所述第一目标预设卷积分块方式进行图像卷积处理时,需要的线程块的第一线程块数量;其中,一个线程块用于对所述待卷积图像矩阵中的一个分块矩阵和所述卷积核矩阵中的一个分块矩阵进行矩阵乘法运算;
所述第二线程块数量计算子模块,用于计算使用所述第一目标预设卷积分块方式进行图像卷积处理时,基于当前硬件平台的硬件资源所能够运行的线程块的第二线程块数量;
所述第一确定子模块,用于如果所述第二线程块数量大于或者等于所述第一线程块数量,则确定当前硬件平台的硬件资源,满足使用所述第一目标预设卷积分块方式进行图像卷积处理时对硬件资源的需求;
所述第二确定子模块,如果所述第二线程块数量小于所述第一线程块数量,则确定当前硬件平台的硬件资源,不满足使用所述第一目标预设卷积分块方式进行图像卷积处理时对硬件资源的需求。
进一步的,所述第一线程块数量计算子模块,具体用于:
基于使用所述第一目标预设卷积分块方式进行图像卷积处理时,所述待卷积图像矩阵的一个分块矩阵的尺寸和所述卷积核矩阵的一个分块矩阵的尺寸,确定第一分块乘积矩阵的尺寸;所述第一分块乘积矩阵为使用所述第一目标预设卷积分块方式进行图像卷积处理时,所述待卷积图像矩阵的一个分块矩阵和所述卷积核矩阵的一个分块矩阵的乘积;
对所述待卷积图像矩阵的行数与所述第一分块乘积矩阵的行数的比值进行向上取整操作,得到第一比值;
对所述卷积核矩阵的列数与第一分块乘积矩阵的列数的比值进行向上取整操作,得到第二比值;
将所述第一比值和所述第二比值的乘积,确定为使用所述第一目标预设卷积分块方式进行图像卷积处理时,需要的线程块的第一线程块数量。
进一步的,所述第一图像卷积处理模块,具体用于:
按照所述第一目标预设卷积分块方式中的划分方法,将所述待卷积图像矩阵和所述卷积核矩阵分别划分为多个第一待卷积图像分块矩阵和多个第一卷积核分块矩阵;
分别计算所述多个第一待卷积图像分块矩阵和所述多个第一卷积核分块矩阵的乘积,得到多个所述第一分块乘积矩阵;
对所述多个第一分块乘积矩阵进行累加运算,得到乘积矩阵;
对所述乘积矩阵进行反向映射处理,得到图像卷积结果;
所述第二图像卷积处理模块,具体用于:
按照所述第二目标预设卷积分块方式中的划分方法,将所述待卷积图像矩阵和所述卷积核矩阵分别划分为多个第二待卷积图像分块矩阵和多个第二卷积核分块矩阵;
分别计算所述多个第二待卷积图像分块矩阵和所述多个第二卷积核分块矩阵的乘积,得到多个第二分块乘积矩阵;
对所述多个第二分块乘积矩阵进行累加运算,得到乘积矩阵;
对所述乘积矩阵进行反向映射处理,得到图像卷积结果。
进一步的,所述硬件平台为显示芯片GPU平台;所述多种预设卷积分块方式分别为:第一预设卷积分块方式、第二预设卷积分块方式、第三预设卷积分块方式、第四预设卷积分块方式以及第五预设卷积分块方式;
其中,按照所述第一预设卷积分块方式中的划分方法,得到的分块乘积矩阵的尺寸为64×32;按照所述第二预设卷积分块方式中的划分方法,得到的分块乘积矩阵的尺寸为64×64;按照所述第三预设卷积分块方式中的划分方法,得到的分块乘积矩阵的尺寸为128×64;按照所述第四预设卷积分块方式中的划分方法,得到的分块乘积矩阵的尺寸为128×128;按照所述第五预设卷积分块方式中的划分方法,得到的分块乘积矩阵的尺寸为256×128;
所述第二线程块数量计算子模块,具体用于:
获取使用所述第一目标预设卷积分块方式进行图像卷积运算时,单个线程所需要的寄存器使用量和单个线程所需要的共享内存使用量;
将所述单个线程所需要的寄存器使用量与单个流多处理器线程块中包括的单个线程的数量的乘积,确定为所述单个流多处理器线程块所需要的寄存器使用量;
获取所述GPU平台中单个流多处理器中的额定寄存器容量和单个流多处理器中的额定共享内存容量;
计算所述额定寄存器容量与所述单个流多处理器线程块所需要的寄存器使用量的比值,作为第三比值;
计算所述额定共享内存容量与所述共享内存使用量的比值,作为第四比值;
对所述第三比值和所述第四比值中的最小比值进行向下取整操作,得到使用所述第一目标预设卷积分块方式进行图像卷积处理时,基于所述GPU平台的单个流多处理器所能够运行的线程块的数量;
将所述基于所述GPU平台的单个流多处理器所能够运行的线程块的数量与所述GPU平台中包含的流多处理器数量的乘积,确定为使用所述第一目标预设卷积分块方式进行图像卷积处理时,基于当前硬件平台的硬件资源所能够运行的线程块的第二线程块数量;
所述第二图像卷积处理模块,具体用于:
当所述卷积核的个数小于或者等于64时,选择所述第二预设卷积分块方式作为第二目标预设卷积分块方式,使用所述第二目标预设卷积分块方式对所述待卷积图像和卷积核进行卷积处理,得到图像卷积结果;
当所述卷积核的个数大于64,且小于128时,选择所述第三预设卷积分块方式作为第二目标预设卷积分块方式,使用所述第二目标预设卷积分块方式对所述待卷积图像和卷积核进行卷积处理,得到图像卷积结果;
当所述卷积核的个数大于或者等于128,且小于或者等于256时,选择所述第四预设卷积分块方式作为第二目标预设卷积分块方式,使用所述第二目标预设卷积分块方式对所述待卷积图像和卷积核进行卷积处理,得到图像卷积结果;
当所述卷积核的个数大于256时,选择所述第五预设卷积分块方式作为第二目标预设卷积分块方式,使用所述第二目标预设卷积分块方式对所述待卷积图像和卷积核进行卷积处理,得到图像卷积结果。
第三方面,本申请实施例提供了一种电子设备,包括:存储器和至少一个处理器,其中,
所述存储器,用于存放计算机程序;
所述至少一个处理器,用于执行所述存储器上所存放的程序时,实现如下步骤:
获取待卷积图像和卷积核;
判断当前硬件平台的硬件资源,是否满足使用第一目标预设卷积分块方式进行图像卷积处理时对硬件资源的需求;其中,所述第一目标预设卷积分块方式为多种预设卷积分块方式中,使得分块尺寸最小的卷积分块方式,其中,所述当前硬件平台为所述一个处理器或所述一个处理器的一部分;
若满足,则使用所述第一目标预设卷积分块方式,对所述待卷积图像和卷积核进行图像卷积处理,得到图像卷积结果;
若不满足,则根据预先设定的卷积核的个数与卷积分块方式的对应关系,从除所述第一目标预设卷积分块方式之外的其他预设卷积分块方式中,选择与所述卷积核的个数对应的第二目标预设卷积分块方式,使用所述第二目标预设卷积分块方式对所述待卷积图像和卷积核进行图像卷积处理,得到图像卷积结果。
进一步的,所述至少一个处理器包括:中央处理器CPU和图像处理器GPU;
所述CPU,用于执行所述存储器上所存放的程序时,实现如下步骤:
获取待卷积图像和卷积核;
判断所述GPU的硬件资源,是否满足使用第一目标预设卷积分块方式进行图像卷积处理时对硬件资源的需求,并将判断结果发送至所述GPU;其中,所述第一目标预设卷积分块方式为多种预设卷积分块方式中,使得分块尺寸最小的卷积分块方式;
所述GPU,用于执行所述存储器上所存放的程序时,实现如下步骤:
接收所述CPU发送的所述判断结果;
若所述GPU的硬件资源,满足使用第一目标预设卷积分块方式进行图像卷积处理时对硬件资源的需求,则使用所述第一目标预设卷积分块方式,对所述待卷积图像和卷积核进行图像卷积处理,得到图像卷积结果;
若所述GPU的硬件资源,不满足使用第一目标预设卷积分块方式进行图像卷积处理时对硬件资源的需求,则根据预先设定的卷积核的个数与卷积分块方式的对应关系,从除所述第一目标预设卷积分块方式之外的其他预设卷积分块方式中,选择与所述卷积核的个数对应的第二目标预设卷积分块方式,使用所述第二目标预设卷积分块方式对所述待卷积图像和卷积核进行图像卷积处理,得到图像卷积结果。
进一步的,所述CPU在实现所述判断所述GPU的硬件资源,是否满足使用第一目标预设卷积分块方式进行图像卷积处理时对硬件资源的需求的步骤之前,还实现如下步骤:
将所述待卷积图像和卷积核分别映射为待卷积图像矩阵和卷积核矩阵;
所述CPU在实现所述判断所述GPU的硬件资源,是否满足使用第一目标预设卷积分块方式进行图像卷积处理时对硬件资源的需求的步骤时,具体包括:
计算使用所述第一目标预设卷积分块方式进行图像卷积处理时,需要的线程块的第一线程块数量;其中,一个线程块用于对所述待卷积图像矩阵中的一个分块矩阵和所述卷积核矩阵中的一个分块矩阵进行矩阵乘法运算;
计算使用所述第一目标预设卷积分块方式进行图像卷积处理时,基于所述GPU的硬件资源所能够运行的线程块的第二线程块数量;
如果所述第二线程块数量大于或者等于所述第一线程块数量,则确定所述GPU的硬件资源,满足使用所述第一目标预设卷积分块方式进行图像卷积处理时对硬件资源的需求;
如果所述第二线程块数量小于所述第一线程块数量,则确定所述GPU的硬件资源,不满足使用所述第一目标预设卷积分块方式进行图像卷积处理时对硬件资源的需求。
进一步的,所述CPU在实现所述计算使用所述第一目标预设卷积分块方式进行图像卷积处理时,需要的线程块的第一线程块数量的步骤时,具体包括:
基于使用所述第一目标预设卷积分块方式进行图像卷积处理时,所述待卷积图像矩阵的一个分块矩阵的尺寸和所述卷积核矩阵的一个分块矩阵的尺寸,确定第一分块乘积矩阵的尺寸;所述第一分块乘积矩阵为使用所述第一目标预设卷积分块方式进行图像卷积处理时,所述待卷积图像矩阵的一个分块矩阵和所述卷积核矩阵的一个分块矩阵的乘积;
对所述待卷积图像矩阵的行数与所述第一分块乘积矩阵的行数的比值进行向上取整操作,得到第一比值;
对所述卷积核矩阵的列数与第一分块乘积矩阵的列数的比值进行向上取整操作,得到第二比值;
将所述第一比值和所述第二比值的乘积,确定为使用所述第一目标预设卷积分块方式进行图像卷积处理时,需要的线程块的第一线程块数量。
进一步的,所述CPU在实现所述使用所述第一目标预设卷积分块方式,对所述待卷积图像和卷积核进行图像卷积处理,得到图像卷积结果的步骤时,具体包括:
按照所述第一目标预设卷积分块方式中的划分方法,将所述待卷积图像矩阵和所述卷积核矩阵分别划分为多个第一待卷积图像分块矩阵和多个第一卷积核分块矩阵;
分别计算所述多个第一待卷积图像分块矩阵和所述多个第一卷积核分块矩阵的乘积,得到多个所述第一分块乘积矩阵;
对所述多个第一分块乘积矩阵进行累加运算,得到乘积矩阵;
对所述乘积矩阵进行反向映射处理,得到图像卷积结果;
所述CPU在实现所述使用所述第二目标预设卷积分块方式对所述待卷积图像和卷积核进行图像卷积处理,得到图像卷积结果的步骤时,具体包括:
按照所述第二目标预设卷积分块方式中的划分方法,将所述待卷积图像矩阵和所述卷积核矩阵分别划分为多个第二待卷积图像分块矩阵和多个第二卷积核分块矩阵;
分别计算所述多个第二待卷积图像分块矩阵和所述多个第二卷积核分块矩阵的乘积,得到多个第二分块乘积矩阵;
对所述多个第二分块乘积矩阵进行累加运算,得到乘积矩阵;
对所述乘积矩阵进行反向映射处理,得到图像卷积结果。
第四方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行上述任一图像卷积处理方法。
第五方面,本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一图像卷积处理方法。
本申请实施例提供的图像卷积处理方法、装置、电子设备及存储介质,获取待卷积图像和卷积核;判断当前硬件平台的硬件资源,是否满足使用第一目标预设卷积分块方式进行图像卷积处理时对硬件资源的需求;其中,所述第一目标预设卷积分块方式为多种预设卷积分块方式中,使得分块尺寸最小的卷积分块方式;若满足,则使用所述第一目标预设卷积分块方式,对所述待卷积图像和卷积核进行图像卷积处理,得到图像卷积结果;若不满足,则根据预先设定的卷积核的个数与卷积分块方式的对应关系,从除所述第一目标预设卷积分块方式之外的其他预设卷积分块方式中,选择与所述卷积核的个数对应的第二目标预设卷积分块方式,使用所述第二目标预设卷积分块方式对所述待卷积图像和卷积核进行图像卷积处理,得到图像卷积结果。本申请实施例中,提供了多种卷积分块方式,不同的卷积分块方式得到的分块尺寸不同,在进行图像卷积处理时,先判断当前硬件平台的硬件资源是否满足使得分块尺寸最小的第一目标卷积分块方式的要求,若满足,则使用所述第一目标预设卷积分块方式进行图像卷积处理,若不满足,则根据卷积核的个数,重新选择对应的卷积分块方式作为第二目标预设卷积分块方式进行图像卷积处理,即:本申请实施例中从当前硬件平台的硬件资源是否满足要求,以及待卷积图像或者卷积核尺寸的不同,两个方面考虑,从而在多种卷积分块方式中选择目标卷积分块方式,因此,提高了图像卷积处理的效率。
当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的图像卷积处理方法的一种流程示意图;
图2为本申请实施例提供的图像卷积处理方法的另一种流程示意图;
图3为对待卷积图像和卷积核分别进行映射操作的示意图;
图4为本申请实施例提供的图像卷积处理装置的结构示意图;
图5为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了提高图像卷积处理的效率,本申请实施例提供了一种图像卷积处理方法、装置、电子设备、存储介质和计算机程序产品。
参见图1,图1为本申请实施例提供的图像卷积处理方法的一种流程示意图,具体包括如下步骤:
步骤101,获取待卷积图像和卷积核。
步骤102,判断当前硬件平台的硬件资源,是否满足使用第一目标预设卷积分块方式进行图像卷积处理时对硬件资源的需求。若满足,执行步骤103;若不满足,执行步骤104。
分块卷积方法需要使用硬件平台的共享内存,因此,本申请实施例中的硬件平台可以为任一具有共享内存的硬件平台,例如:GPU(Graphics Processing Unit,显示芯片)平台、CPU(Central Processing Unit,中央处理器)平台等。
步骤103,使用第一目标预设卷积分块方式,对待卷积图像和卷积核进行图像卷积处理,得到图像卷积结果。
步骤104,根据预先设定的卷积核的个数与卷积分块方式的对应关系,从除第一目标预设卷积分块方式之外的其他预设卷积分块方式中,选择与卷积核的个数对应的第二目标预设卷积分块方式,使用第二目标预设卷积分块方式对待卷积图像和卷积核进行图像卷积处理,得到图像卷积结果。
本申请实施例中,提供了多种卷积分块方式,不同的卷积分块方式得到的分块尺寸不同,在进行图像卷积处理时,先判断当前硬件平台的硬件资源是否满足使得分块尺寸最小的第一目标卷积分块方式的要求,若满足,则使用第一目标预设卷积分块方式进行图像卷积处理,若不满足,则根据卷积核的个数,重新选择对应的卷积分块方式作为第二目标预设卷积分块方式进行图像卷积处理,即:本申请实施例中从当前硬件平台的硬件资源是否满足要求,以及待卷积图像或者卷积核尺寸的不同,两个方面考虑,从而在多种卷积分块方式中选择目标卷积分块方式,因此,提高了图像卷积处理的效率。
参见图2,图2为本申请实施例提供的图像卷积处理方法的另一种流程示意图,具体包括如下步骤:
步骤201,获取待卷积图像和卷积核。
步骤202,将待卷积图像和卷积核分别映射为待卷积图像矩阵和卷积核矩阵。
具体的,例如,图3所示,待卷积图像的个数为N,每个待卷积图像的维度均为H*W,通道数为C,卷积核的个数为M,每个卷积核的维度均为Ks*Ks,通道数也为C,则分别对待卷积图像和卷积核进行映射操作之后,得到的待卷积图像矩阵A的尺寸为(N*H*W,Ks*C),卷积核矩阵B的尺寸为(Ks*Ks*C,M)。
对待卷积图像矩阵和卷积核矩阵进行乘积运算,得到乘积矩阵,并对乘积矩阵进行反向映射,即得到待卷积图像与卷积核的图像卷积结果。
步骤203,计算使用第一目标预设卷积分块方式进行图像卷积处理时,需要的线程块的第一线程块数量。
其中,一个线程块用于对待卷积图像矩阵中的一个分块矩阵和卷积核矩阵中的一个分块矩阵进行矩阵乘法运算;第一目标预设卷积分块方式为多种预设卷积分块方式中,使得分块尺寸最小的卷积分块方式。
进一步的,可以通过如下方式计算上述第一线程块数量:
基于使用第一目标预设卷积分块方式进行图像卷积处理时,待卷积图像矩阵的一个分块矩阵的尺寸和卷积核矩阵的一个分块矩阵的尺寸,确定第一分块乘积矩阵的尺寸;第一分块乘积矩阵为使用第一目标预设卷积分块方式进行图像卷积处理时,待卷积图像矩阵的一个分块矩阵和卷积核矩阵的一个分块矩阵的乘积;
对待卷积图像矩阵的行数与第一分块乘积矩阵的行数的比值进行向上取整操作,得到第一比值;
对卷积核矩阵的列数与第一分块乘积矩阵的列数的比值进行向上取整操作,得到第二比值;
将第一比值和第二比值的乘积,确定为使用第一目标预设卷积分块方式进行图像卷积处理时,需要的线程块的第一线程块数量。
具体的,由于乘积矩阵为待卷积图像矩阵与卷积核矩阵的乘积,因此,待卷积图像矩阵的行数即为乘积矩阵的行数,第一比值即为乘积矩阵在列向所包含的第一分块乘积矩阵的个数;卷积核矩阵的列数即为乘积矩阵的列数,第二比值即为乘积矩阵在行向所包含的第一分块乘积矩阵的个数,第一比值和第二比值的乘积即为使用第一目标预设卷积分块方式进行图像卷积处理时,需要的线程块的第一线程块数量。
步骤204,计算使用第一目标预设卷积分块方式进行图像卷积处理时,基于当前硬件平台的硬件资源所能够运行的线程块的第二线程块数量。
步骤205,如果第二线程块数量大于或者等于第一线程块数量,则确定当前硬件平台的硬件资源,满足使用第一目标预设卷积分块方式进行图像卷积处理时对硬件资源的需求。之后,执行步骤207。
步骤206,如果第二线程块数量小于第一线程块数量,则确定当前硬件平台的硬件资源,不满足使用第一目标预设卷积分块方式进行图像卷积处理时对硬件资源的需求。之后,执行步骤208。
步骤207,使用第一目标预设卷积分块方式,对待卷积图像和卷积核进行图像卷积处理,得到图像卷积结果。
进一步的,使用第一目标预设卷积分块方式,对待卷积图像和卷积核进行图像卷积处理,得到图像卷积结果的过程可以包括:
按照第一目标预设卷积分块方式中的划分方法,将待卷积图像矩阵和卷积核矩阵分别划分为多个第一待卷积图像分块矩阵和多个第一卷积核分块矩阵;
分别计算多个第一待卷积图像分块矩阵和多个第一卷积核分块矩阵的乘积,得到多个第一分块乘积矩阵;
对多个第一分块乘积矩阵进行累加运算,得到乘积矩阵;
对乘积矩阵进行反向映射处理,得到图像卷积结果。
步骤208,根据预先设定的卷积核的个数与卷积分块方式的对应关系,从除第一目标预设卷积分块方式之外的其他预设卷积分块方式中,选择与卷积核的个数对应的第二目标预设卷积分块方式,使用第二目标预设卷积分块方式对待卷积图像和卷积核进行图像卷积处理,得到图像卷积结果。
进一步的,使用第二目标预设卷积分块方式对待卷积图像和卷积核进行图像卷积处理,得到图像卷积结果的过程可以包括:
按照第二目标预设卷积分块方式中的划分方法,将待卷积图像矩阵和卷积核矩阵分别划分为多个第二待卷积图像分块矩阵和多个第二卷积核分块矩阵;
分别计算多个第二待卷积图像分块矩阵和多个第二卷积核分块矩阵的乘积,得到多个第二分块乘积矩阵;
对多个第二分块乘积矩阵进行累加运算,得到乘积矩阵;
对乘积矩阵进行反向映射处理,得到图像卷积结果。
进一步的,当硬件平台为显示芯片GPU平台时,多种预设卷积分块方式可以分别为:第一预设卷积分块方式、第二预设卷积分块方式、第三预设卷积分块方式、第四预设卷积分块方式以及第五预设卷积分块方式;
其中,按照第一预设卷积分块方式中的划分方法,得到的分块乘积矩阵的尺寸为64×32;按照第二预设卷积分块方式中的划分方法,得到的分块乘积矩阵的尺寸为64×64;按照第三预设卷积分块方式中的划分方法,得到的分块乘积矩阵的尺寸为128×64;按照第四预设卷积分块方式中的划分方法,得到的分块乘积矩阵的尺寸为128×128;按照第五预设卷积分块方式中的划分方法,得到的分块乘积矩阵的尺寸为256×128;
由于上述五种预设卷积分块方式中,只对得到的分块乘积矩阵的尺寸进行了预先设定,而分块乘积矩阵则是待卷积图像分块矩阵和卷积核分块矩阵的乘积,因此,上述五种预设卷积分块方式中,对划分得到的待卷积图像分块矩阵的行数和卷积核分块矩阵的列数进行了预先设定,而待卷积图像分块矩阵的列数和卷积核分块矩阵的行数则可以有多种选择,例如,针对第四预设卷积分块方式,其中设定了分块乘积矩阵的尺寸为128×128,则表明采用该卷积分块方式,得到的待卷积图像分块矩阵的行数为128,卷积核分块矩阵的列数也为128,而待卷积图像分块矩阵的列数和卷积核分块矩阵的行数可以有多种选择,例如,可以取16,也可以取32等,经试验验证,针对第四预设卷积分块方式,待卷积图像分块矩阵的列数和卷积核分块矩阵的行数均取8时,图像卷积处理效率较高。
当硬件平台为显示芯片GPU平台时,步骤204中,计算第二线程块数量的方法,可以包括:
获取使用第一目标预设卷积分块方式进行图像卷积运算时,单个线程所需要的寄存器使用量和单个线程所需要的共享内存使用量;
将单个线程所需要的寄存器使用量与单个流多处理器线程块中包括的单个线程的数量的乘积,确定为单个流多处理器线程块所需要的寄存器使用量;
获取GPU平台中单个流多处理器中的额定寄存器容量和单个流多处理器中的额定共享内存容量;
计算额定寄存器容量与单个流多处理器线程块所需要的寄存器使用量的比值,作为第三比值;
计算额定共享内存容量与共享内存使用量的比值,作为第四比值;
对第三比值和第四比值中的最小比值进行向下取整操作,得到使用第一目标预设卷积分块方式进行图像卷积处理时,基于GPU平台的单个流多处理器所能够运行的线程块的数量;
将基于GPU平台的单个流多处理器所能够运行的线程块的数量与GPU平台中包含的流多处理器数量的乘积,确定为使用第一目标预设卷积分块方式进行图像卷积处理时,基于当前硬件平台的硬件资源所能够运行的线程块的第二线程块数量。
上述第二线程块数量的计算方法中,是从GPU平台中的寄存器和共享内存两种硬件资源角度出发的,在本申请的其他实施例中,还可以同时以GPU平台中的寄存器、共享内存以及常量内存这三种硬件资源角度出发,计算使用第一目标预设卷积分块方式进行图像卷积处理时,基于上述三种硬件资源所能够运行的线程块的第二线程块数量;也可从上述三种硬件资源中的任意一种或者两种硬件资源角度出发,计算所能够运行的线程块的第二线程块数量,此处,对于计算第二线程块数量所基于的硬件资源的具体内容不作限定。
为便于理解,下面通过举例的方式,详细说明上述第二线程块数量的计算过程:
表1
假设硬件平台为显示芯片GPU Tesla T4,该芯片可以通过Tensor Core硬件加速单元进行卷积处理操作,参见表1,表1为第二线程块数量计算时的相关参数表,其中,上述表1第一列中的“一”、“二”、“三”、“四”以及“五”,分别表示第一预设卷积分块方式、第二预设卷积分块方式、第三预设卷积分块方式、第四预设卷积分块方式以及第五预设卷积分块方式。
由于第一预设卷积分块方式使得分块尺寸最小,因此,第一预设卷积分块方式即为第一目标预设卷积分块方式。
使用该预设卷积分块方式进行图像卷积运算时,单个线程所需要的寄存器使用量为90Bytes,而单个流多处理器线程块中包括的线程的数量为128,因此,单个流多处理器线程块所需要的寄存器使用量为90*128=11520Bytes,同时,由于单个流多处理器线程块中的线程共用共享内存,因此,单个流多处理器线程块所需要的共享内存使用量仍为8448Bytes,同时,GPU Tesla T4而言,单个流多处理器中的额定寄存器容量和单个流多处理器中的额定共享内存容量均为65536Bytes,因此,第三比值为65536/11520=5.7,第四比值为65536/8448=7.8,故,对第三比值和第四比值中的最小比值5.7进行向下取整操作,得到使用第一目标预设卷积分块方式进行图像卷积处理时,基于GPU Tesla T4平台的单个流多处理器所能够运行的线程块的数量:5,由于GPU Tesla T4中包含的流多处理器数量为40,因此,使用第一目标预设卷积分块方式进行图像卷积处理时,基于当前硬件平台的硬件资源所能够运行的线程块的第二线程块数量为:5*40=200。
步骤208中,从上述五种预设卷积分块方式中,选择与卷积核的个数对应的第二目标预设卷积分块方式,使用第二目标预设卷积分块方式对待卷积图像和卷积核进行卷积处理,得到图像卷积结果的方法,可以为:
当卷积核的个数小于或者等于64时,选择第二预设卷积分块方式作为第二目标预设卷积分块方式,使用第二目标预设卷积分块方式对待卷积图像和卷积核进行卷积处理,得到图像卷积结果;
当卷积核的个数大于64,且小于128时,选择第三预设卷积分块方式作为第二目标预设卷积分块方式,使用第二目标预设卷积分块方式对待卷积图像和卷积核进行卷积处理,得到图像卷积结果;
当卷积核的个数大于或者等于128,且小于或者等于256时,选择第四预设卷积分块方式作为第二目标预设卷积分块方式,使用第二目标预设卷积分块方式对待卷积图像和卷积核进行卷积处理,得到图像卷积结果;
当卷积核的个数大于256时,选择第五预设卷积分块方式作为第二目标预设卷积分块方式,使用第二目标预设卷积分块方式对待卷积图像和卷积核进行卷积处理,得到图像卷积结果。
在图2所示的实施例中,提供了多种卷积分块方式,不同的卷积分块方式得到的分块尺寸不同,在进行图像卷积处理时,先判断当前硬件平台的硬件资源是否满足使得分块尺寸最小的第一目标卷积分块方式的要求,若满足,则使用第一目标预设卷积分块方式进行图像卷积处理,若不满足,则根据卷积核的个数,重新选择对应的卷积分块方式作为第二目标预设卷积分块方式进行图像卷积处理,即:本申请实施例中从当前硬件平台的硬件资源是否满足要求,以及待卷积图像或者卷积核尺寸的不同,两个方面考虑,从而在多种卷积分块方式中选择目标卷积分块方式,因此,提高了图像卷积处理的效率。
基于同一发明构思,根据本申请上述实施例提供的图像卷积处理方法,相应地,本申请实施例还提供了一种图像卷积处理装置,该装置的结构示意图如图4所示,包括:
获取模块401,用于获取待卷积图像和卷积核;
第一判断模块402,用于判断当前硬件平台的硬件资源,是否满足使用第一目标预设卷积分块方式进行图像卷积处理时对硬件资源的需求;其中,第一目标预设卷积分块方式为多种预设卷积分块方式中,使得分块尺寸最小的卷积分块方式;若满足,触发第一图像卷积处理模块;若不满足,触发第二图像卷积处理模块;
第一图像卷积处理模块403,用于使用第一目标预设卷积分块方式,对待卷积图像和卷积核进行图像卷积处理,得到图像卷积结果;
第二图像卷积处理模块404,用于根据预先设定的卷积核的个数与卷积分块方式的对应关系,从除第一目标预设卷积分块方式之外的其他预设卷积分块方式中,选择与卷积核的个数对应的第二目标预设卷积分块方式,使用第二目标预设卷积分块方式对待卷积图像和卷积核进行图像卷积处理,得到图像卷积结果。
进一步的,装置,还包括:
映射模块,用于在判断当前硬件平台的硬件资源,是否满足使用第一目标预设卷积分块方式进行图像卷积处理时对硬件资源的需求之前,将待卷积图像和卷积核分别映射为待卷积图像矩阵和卷积核矩阵;
第一判断模块402,包括:第一线程块数量计算子模块、第二线程块数量计算子模块、第一确定子模块和第二确定子模块;
第一线程块数量计算子模块,用于计算使用第一目标预设卷积分块方式进行图像卷积处理时,需要的线程块的第一线程块数量;其中,一个线程块用于对待卷积图像矩阵中的一个分块矩阵和卷积核矩阵中的一个分块矩阵进行矩阵乘法运算;
第二线程块数量计算子模块,用于计算使用第一目标预设卷积分块方式进行图像卷积处理时,基于当前硬件平台的硬件资源所能够运行的线程块的第二线程块数量;
第一确定子模块,用于如果第二线程块数量大于或者等于第一线程块数量,则确定当前硬件平台的硬件资源,满足使用第一目标预设卷积分块方式进行图像卷积处理时对硬件资源的需求;
第二确定子模块,如果第二线程块数量小于第一线程块数量,则确定当前硬件平台的硬件资源,不满足使用第一目标预设卷积分块方式进行图像卷积处理时对硬件资源的需求。
进一步的,第一线程块数量计算子模块,具体用于:
基于使用第一目标预设卷积分块方式进行图像卷积处理时,待卷积图像矩阵的一个分块矩阵的尺寸和卷积核矩阵的一个分块矩阵的尺寸,确定第一分块乘积矩阵的尺寸;第一分块乘积矩阵为使用第一目标预设卷积分块方式进行图像卷积处理时,待卷积图像矩阵的一个分块矩阵和卷积核矩阵的一个分块矩阵的乘积;
对待卷积图像矩阵的行数与第一分块乘积矩阵的行数的比值进行向上取整操作,得到第一比值;
对卷积核矩阵的列数与第一分块乘积矩阵的列数的比值进行向上取整操作,得到第二比值;
将第一比值和第二比值的乘积,确定为使用第一目标预设卷积分块方式进行图像卷积处理时,需要的线程块的第一线程块数量。
进一步的,第一图像卷积处理模块403,具体用于:
按照第一目标预设卷积分块方式中的划分方法,将待卷积图像矩阵和卷积核矩阵分别划分为多个第一待卷积图像分块矩阵和多个第一卷积核分块矩阵;
分别计算多个第一待卷积图像分块矩阵和多个第一卷积核分块矩阵的乘积,得到多个第一分块乘积矩阵;
对多个第一分块乘积矩阵进行累加运算,得到乘积矩阵;
对乘积矩阵进行反向映射处理,得到图像卷积结果;
第二图像卷积处理模块404,具体用于:
按照第二目标预设卷积分块方式中的划分方法,将待卷积图像矩阵和卷积核矩阵分别划分为多个第二待卷积图像分块矩阵和多个第二卷积核分块矩阵;
分别计算多个第二待卷积图像分块矩阵和多个第二卷积核分块矩阵的乘积,得到多个第二分块乘积矩阵;
对多个第二分块乘积矩阵进行累加运算,得到乘积矩阵;
对乘积矩阵进行反向映射处理,得到图像卷积结果。
进一步的,硬件平台为显示芯片GPU平台;多种预设卷积分块方式分别为:第一预设卷积分块方式、第二预设卷积分块方式、第三预设卷积分块方式、第四预设卷积分块方式以及第五预设卷积分块方式;
其中,按照第一预设卷积分块方式中的划分方法,得到的分块乘积矩阵的尺寸为64×32;按照第二预设卷积分块方式中的划分方法,得到的分块乘积矩阵的尺寸为64×64;按照第三预设卷积分块方式中的划分方法,得到的分块乘积矩阵的尺寸为128×64;按照第四预设卷积分块方式中的划分方法,得到的分块乘积矩阵的尺寸为128×128;按照第五预设卷积分块方式中的划分方法,得到的分块乘积矩阵的尺寸为256×128;
第二线程块数量计算子模块,具体用于:
获取使用第一目标预设卷积分块方式进行图像卷积运算时,单个线程所需要的寄存器使用量和单个线程所需要的共享内存使用量;
将单个线程所需要的寄存器使用量与单个流多处理器线程块中包括的单个线程的数量的乘积,确定为单个流多处理器线程块所需要的寄存器使用量;
获取GPU平台中单个流多处理器中的额定寄存器容量和单个流多处理器中的额定共享内存容量;
计算额定寄存器容量与单个流多处理器线程块所需要的寄存器使用量的比值,作为第三比值;
计算额定共享内存容量与共享内存使用量的比值,作为第四比值;
对第三比值和第四比值中的最小比值进行向下取整操作,得到使用第一目标预设卷积分块方式进行图像卷积处理时,基于GPU平台的单个流多处理器所能够运行的线程块的数量;
将基于GPU平台的单个流多处理器所能够运行的线程块的数量与GPU平台中包含的流多处理器数量的乘积,确定为使用第一目标预设卷积分块方式进行图像卷积处理时,基于当前硬件平台的硬件资源所能够运行的线程块的第二线程块数量;
第二图像卷积处理模块404,具体用于:
当卷积核的个数小于或者等于64时,选择第二预设卷积分块方式作为第二目标预设卷积分块方式,使用第二目标预设卷积分块方式对待卷积图像和卷积核进行卷积处理,得到图像卷积结果;
当卷积核的个数大于64,且小于128时,选择第三预设卷积分块方式作为第二目标预设卷积分块方式,使用第二目标预设卷积分块方式对待卷积图像和卷积核进行卷积处理,得到图像卷积结果;
当卷积核的个数大于或者等于128,且小于或者等于256时,选择第四预设卷积分块方式作为第二目标预设卷积分块方式,使用第二目标预设卷积分块方式对待卷积图像和卷积核进行卷积处理,得到图像卷积结果;
当卷积核的个数大于256时,选择第五预设卷积分块方式作为第二目标预设卷积分块方式,使用第二目标预设卷积分块方式对待卷积图像和卷积核进行卷积处理,得到图像卷积结果。
在本申请图4所示实施例中,从当前硬件平台的硬件资源是否满足要求,以及待卷积图像或者卷积核尺寸的不同,两个方面考虑,从而在多种卷积分块方式中选择目标卷积分块方式,因此,提高了图像卷积处理的效率。
本申请实施例还提供了一种电子设备,如图5所示,包括至少一个处理器501、通信接口502、存储器503和通信总线504,其中,处理器501,通信接口502,存储器503通过通信总线504完成相互间的通信,
存储器503,用于存放计算机程序;
处理器501,用于执行存储器503上所存放的程序时,实现如下步骤:
获取待卷积图像和卷积核;
判断当前硬件平台的硬件资源,是否满足使用第一目标预设卷积分块方式进行图像卷积处理时对硬件资源的需求;其中,第一目标预设卷积分块方式为多种预设卷积分块方式中,使得分块尺寸最小的卷积分块方式;
若满足,则使用第一目标预设卷积分块方式,对待卷积图像和卷积核进行图像卷积处理,得到图像卷积结果;
若不满足,则根据预先设定的卷积核的个数与卷积分块方式的对应关系,从除第一目标预设卷积分块方式之外的其他预设卷积分块方式中,选择与卷积核的个数对应的第二目标预设卷积分块方式,使用第二目标预设卷积分块方式对待卷积图像和卷积核进行图像卷积处理,得到图像卷积结果。
进一步的,至少一个处理器包括:中央处理器CPU和图像处理器GPU;
CPU,用于执行存储器上所存放的程序时,实现如下步骤:
获取待卷积图像和卷积核;
判断GPU的硬件资源,是否满足使用第一目标预设卷积分块方式进行图像卷积处理时对硬件资源的需求,并将判断结果发送至GPU;其中,第一目标预设卷积分块方式为多种预设卷积分块方式中,使得分块尺寸最小的卷积分块方式;
GPU,用于执行存储器上所存放的程序时,实现如下步骤:
接收CPU发送的判断结果;
若GPU的硬件资源,满足使用第一目标预设卷积分块方式进行图像卷积处理时对硬件资源的需求,则使用第一目标预设卷积分块方式,对待卷积图像和卷积核进行图像卷积处理,得到图像卷积结果;
若GPU的硬件资源,不满足使用第一目标预设卷积分块方式进行图像卷积处理时对硬件资源的需求,则根据预先设定的卷积核的个数与卷积分块方式的对应关系,从除第一目标预设卷积分块方式之外的其他预设卷积分块方式中,选择与卷积核的个数对应的第二目标预设卷积分块方式,使用第二目标预设卷积分块方式对待卷积图像和卷积核进行图像卷积处理,得到图像卷积结果。
具体的,本申请实施例提供的电子设备中,图像处理器GPU可以通过Tensor Core硬件处理单元来执行如下步骤:
接收CPU发送的判断结果;
若GPU的硬件资源,满足使用第一目标预设卷积分块方式进行图像卷积处理时对硬件资源的需求,则使用第一目标预设卷积分块方式,对待卷积图像和卷积核进行图像卷积处理,得到图像卷积结果;
若GPU的硬件资源,不满足使用第一目标预设卷积分块方式进行图像卷积处理时对硬件资源的需求,则根据预先设定的卷积核的个数与卷积分块方式的对应关系,从除第一目标预设卷积分块方式之外的其他预设卷积分块方式中,选择与卷积核的个数对应的第二目标预设卷积分块方式,使用第二目标预设卷积分块方式对待卷积图像和卷积核进行图像卷积处理,得到图像卷积结果。
进一步的,CPU在实现判断GPU的硬件资源,是否满足使用第一目标预设卷积分块方式进行图像卷积处理时对硬件资源的需求的步骤之前,还实现如下步骤:
将待卷积图像和卷积核分别映射为待卷积图像矩阵和卷积核矩阵;
CPU在实现判断GPU的硬件资源,是否满足使用第一目标预设卷积分块方式进行图像卷积处理时对硬件资源的需求的步骤时,具体包括:
计算使用第一目标预设卷积分块方式进行图像卷积处理时,需要的线程块的第一线程块数量;其中,一个线程块用于对待卷积图像矩阵中的一个分块矩阵和卷积核矩阵中的一个分块矩阵进行矩阵乘法运算;
计算使用第一目标预设卷积分块方式进行图像卷积处理时,基于GPU的硬件资源所能够运行的线程块的第二线程块数量;
如果第二线程块数量大于或者等于第一线程块数量,则确定GPU的硬件资源,满足使用第一目标预设卷积分块方式进行图像卷积处理时对硬件资源的需求;
如果第二线程块数量小于第一线程块数量,则确定GPU的硬件资源,不满足使用第一目标预设卷积分块方式进行图像卷积处理时对硬件资源的需求。
进一步的,CPU在实现计算使用第一目标预设卷积分块方式进行图像卷积处理时,需要的线程块的第一线程块数量的步骤时,具体包括:
基于使用第一目标预设卷积分块方式进行图像卷积处理时,待卷积图像矩阵的一个分块矩阵的尺寸和卷积核矩阵的一个分块矩阵的尺寸,确定第一分块乘积矩阵的尺寸;第一分块乘积矩阵为使用第一目标预设卷积分块方式进行图像卷积处理时,待卷积图像矩阵的一个分块矩阵和卷积核矩阵的一个分块矩阵的乘积;
对待卷积图像矩阵的行数与第一分块乘积矩阵的行数的比值进行向上取整操作,得到第一比值;
对卷积核矩阵的列数与第一分块乘积矩阵的列数的比值进行向上取整操作,得到第二比值;
将第一比值和第二比值的乘积,确定为使用第一目标预设卷积分块方式进行图像卷积处理时,需要的线程块的第一线程块数量。
进一步的,CPU在实现使用第一目标预设卷积分块方式,对待卷积图像和卷积核进行图像卷积处理,得到图像卷积结果的步骤时,具体包括:
按照第一目标预设卷积分块方式中的划分方法,将待卷积图像矩阵和卷积核矩阵分别划分为多个第一待卷积图像分块矩阵和多个第一卷积核分块矩阵;
分别计算多个第一待卷积图像分块矩阵和多个第一卷积核分块矩阵的乘积,得到多个第一分块乘积矩阵;
对多个第一分块乘积矩阵进行累加运算,得到乘积矩阵;
对乘积矩阵进行反向映射处理,得到图像卷积结果;
CPU在实现使用第二目标预设卷积分块方式对待卷积图像和卷积核进行图像卷积处理,得到图像卷积结果的步骤时,具体包括:
按照第二目标预设卷积分块方式中的划分方法,将待卷积图像矩阵和卷积核矩阵分别划分为多个第二待卷积图像分块矩阵和多个第二卷积核分块矩阵;
分别计算多个第二待卷积图像分块矩阵和多个第二卷积核分块矩阵的乘积,得到多个第二分块乘积矩阵;
对多个第二分块乘积矩阵进行累加运算,得到乘积矩阵;
对乘积矩阵进行反向映射处理,得到图像卷积结果。
在图5所示实施例中,从当前硬件平台的硬件资源是否满足要求,以及待卷积图像或者卷积核尺寸的不同,两个方面考虑,从而在多种卷积分块方式中选择目标卷积分块方式,因此,提高了图像卷积处理的效率。
上述被电子设备提到的通信总线可以是外设部件互连标准(PeripheralComponent Interconnect Express,简称PCIE)总线或扩展工业标准结构(ExtendedIndustry Standard Architecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一的图像卷积处理方法以达到相同的效果。
在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一的图像卷积处理方法以达到相同的效果。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质和计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。
Claims (8)
1.一种图像卷积处理方法,其特征在于,包括:
获取待卷积图像和卷积核;
判断当前硬件平台的硬件资源,是否满足使用第一目标预设卷积分块方式进行图像卷积处理时对硬件资源的需求;其中,所述第一目标预设卷积分块方式为多种预设卷积分块方式中,使得分块尺寸最小的卷积分块方式;
若满足,则使用所述第一目标预设卷积分块方式,对所述待卷积图像和卷积核进行图像卷积处理,得到图像卷积结果;
若不满足,则根据预先设定的卷积核的个数与卷积分块方式的对应关系,从除所述第一目标预设卷积分块方式之外的其他预设卷积分块方式中,选择与所述卷积核的个数对应的第二目标预设卷积分块方式,使用所述第二目标预设卷积分块方式对所述待卷积图像和卷积核进行图像卷积处理,得到图像卷积结果;
在所述判断当前硬件平台的硬件资源,是否满足使用第一目标预设卷积分块方式进行图像卷积处理时对硬件资源的需求的步骤之前,还包括:
将所述待卷积图像和卷积核分别映射为待卷积图像矩阵和卷积核矩阵;
所述判断当前硬件平台的硬件资源,是否满足使用第一目标预设卷积分块方式进行图像卷积处理时对硬件资源的需求的步骤,包括:
计算使用所述第一目标预设卷积分块方式进行图像卷积处理时,需要的线程块的第一线程块数量;其中,一个线程块用于对所述待卷积图像矩阵中的一个分块矩阵和所述卷积核矩阵中的一个分块矩阵进行矩阵乘法运算;
计算使用所述第一目标预设卷积分块方式进行图像卷积处理时,基于当前硬件平台的硬件资源所能够运行的线程块的第二线程块数量;
如果所述第二线程块数量大于或者等于所述第一线程块数量,则确定当前硬件平台的硬件资源,满足使用所述第一目标预设卷积分块方式进行图像卷积处理时对硬件资源的需求;
如果所述第二线程块数量小于所述第一线程块数量,则确定当前硬件平台的硬件资源,不满足使用所述第一目标预设卷积分块方式进行图像卷积处理时对硬件资源的需求。
2.根据权利要求1所述的方法,其特征在于,
所述计算使用所述第一目标预设卷积分块方式进行图像卷积处理时,需要的线程块的第一线程块数量的步骤,包括:
基于使用所述第一目标预设卷积分块方式进行图像卷积处理时,所述待卷积图像矩阵的一个分块矩阵的尺寸和所述卷积核矩阵的一个分块矩阵的尺寸,确定第一分块乘积矩阵的尺寸;所述第一分块乘积矩阵为使用所述第一目标预设卷积分块方式进行图像卷积处理时,所述待卷积图像矩阵的一个分块矩阵和所述卷积核矩阵的一个分块矩阵的乘积;
对所述待卷积图像矩阵的行数与所述第一分块乘积矩阵的行数的比值进行向上取整操作,得到第一比值;
对所述卷积核矩阵的列数与第一分块乘积矩阵的列数的比值进行向上取整操作,得到第二比值;
将所述第一比值和所述第二比值的乘积,确定为使用所述第一目标预设卷积分块方式进行图像卷积处理时,需要的线程块的第一线程块数量。
3.根据权利要求1或2所述的方法,其特征在于,
所述使用所述第一目标预设卷积分块方式,对所述待卷积图像和卷积核进行图像卷积处理,得到图像卷积结果的步骤,包括:
按照所述第一目标预设卷积分块方式中的划分方法,将所述待卷积图像矩阵和所述卷积核矩阵分别划分为多个第一待卷积图像分块矩阵和多个第一卷积核分块矩阵;
分别计算所述多个第一待卷积图像分块矩阵和所述多个第一卷积核分块矩阵的乘积,得到多个第一分块乘积矩阵;
对所述多个第一分块乘积矩阵进行累加运算,得到乘积矩阵;
对所述乘积矩阵进行反向映射处理,得到图像卷积结果;
所述使用所述第二目标预设卷积分块方式对所述待卷积图像和卷积核进行图像卷积处理,得到图像卷积结果的步骤,包括:
按照所述第二目标预设卷积分块方式中的划分方法,将所述待卷积图像矩阵和所述卷积核矩阵分别划分为多个第二待卷积图像分块矩阵和多个第二卷积核分块矩阵;
分别计算所述多个第二待卷积图像分块矩阵和所述多个第二卷积核分块矩阵的乘积,得到多个第二分块乘积矩阵;
对所述多个第二分块乘积矩阵进行累加运算,得到乘积矩阵;
对所述乘积矩阵进行反向映射处理,得到图像卷积结果。
4.根据权利要求3所述的方法,其特征在于,所述硬件平台为显示芯片GPU平台;所述多种预设卷积分块方式分别为:第一预设卷积分块方式、第二预设卷积分块方式、第三预设卷积分块方式、第四预设卷积分块方式以及第五预设卷积分块方式;
其中,按照所述第一预设卷积分块方式中的划分方法,得到的分块乘积矩阵的尺寸为64×32;按照所述第二预设卷积分块方式中的划分方法,得到的分块乘积矩阵的尺寸为64×64;按照所述第三预设卷积分块方式中的划分方法,得到的分块乘积矩阵的尺寸为128×64;按照所述第四预设卷积分块方式中的划分方法,得到的分块乘积矩阵的尺寸为128×128;按照所述第五预设卷积分块方式中的划分方法,得到的分块乘积矩阵的尺寸为256×128;
所述计算使用所述第一目标预设卷积分块方式进行图像卷积处理时,基于当前硬件平台的硬件资源所能够运行的线程块的第二线程块数量的步骤,包括:
获取使用所述第一目标预设卷积分块方式进行图像卷积运算时,单个线程所需要的寄存器使用量和单个线程所需要的共享内存使用量;
将所述单个线程所需要的寄存器使用量与单个流多处理器线程块中包括的单个线程的数量的乘积,确定为所述单个流多处理器线程块所需要的寄存器使用量;
获取所述GPU平台中单个流多处理器中的额定寄存器容量和单个流多处理器中的额定共享内存容量;
计算所述额定寄存器容量与所述单个流多处理器线程块所需要的寄存器使用量的比值,作为第三比值;
计算所述额定共享内存容量与所述共享内存使用量的比值,作为第四比值;
对所述第三比值和所述第四比值中的最小比值进行向下取整操作,得到使用所述第一目标预设卷积分块方式进行图像卷积处理时,基于所述GPU平台的单个流多处理器所能够运行的线程块的数量;
将所述基于所述GPU平台的单个流多处理器所能够运行的线程块的数量与所述GPU平台中包含的流多处理器数量的乘积,确定为使用所述第一目标预设卷积分块方式进行图像卷积处理时,基于当前硬件平台的硬件资源所能够运行的线程块的第二线程块数量;
所述根据预先设定的卷积核的个数与卷积分块方式的对应关系,从除所述第一目标预设卷积分块方式之外的其他预设卷积分块方式中,选择与所述卷积核的个数对应的第二目标预设卷积分块方式,使用所述第二目标预设卷积分块方式对所述待卷积图像和卷积核进行卷积处理,得到图像卷积结果的步骤,包括:
当所述卷积核的个数小于或者等于64时,选择所述第二预设卷积分块方式作为第二目标预设卷积分块方式,使用所述第二目标预设卷积分块方式对所述待卷积图像和卷积核进行卷积处理,得到图像卷积结果;
当所述卷积核的个数大于64,且小于128时,选择所述第三预设卷积分块方式作为第二目标预设卷积分块方式,使用所述第二目标预设卷积分块方式对所述待卷积图像和卷积核进行卷积处理,得到图像卷积结果;
当所述卷积核的个数大于或者等于128,且小于或者等于256时,选择所述第四预设卷积分块方式作为第二目标预设卷积分块方式,使用所述第二目标预设卷积分块方式对所述待卷积图像和卷积核进行卷积处理,得到图像卷积结果;
当所述卷积核的个数大于256时,选择所述第五预设卷积分块方式作为第二目标预设卷积分块方式,使用所述第二目标预设卷积分块方式对所述待卷积图像和卷积核进行卷积处理,得到图像卷积结果。
5.一种电子设备,其特征在于,包括:存储器和至少一个处理器,其中,
所述存储器,用于存放计算机程序;
所述至少一个处理器,用于执行所述存储器上所存放的程序时,实现如下步骤:
获取待卷积图像和卷积核;
判断当前硬件平台的硬件资源,是否满足使用第一目标预设卷积分块方式进行图像卷积处理时对硬件资源的需求;其中,所述第一目标预设卷积分块方式为多种预设卷积分块方式中,使得分块尺寸最小的卷积分块方式,其中,所述当前硬件平台为所述一个处理器或所述一个处理器的一部分;
若满足,则使用所述第一目标预设卷积分块方式,对所述待卷积图像和卷积核进行图像卷积处理,得到图像卷积结果;
若不满足,则根据预先设定的卷积核的个数与卷积分块方式的对应关系,从除所述第一目标预设卷积分块方式之外的其他预设卷积分块方式中,选择与所述卷积核的个数对应的第二目标预设卷积分块方式,使用所述第二目标预设卷积分块方式对所述待卷积图像和卷积核进行图像卷积处理,得到图像卷积结果;
所述至少一个处理器包括:中央处理器CPU和图像处理器GPU;
所述CPU在实现所述判断所述GPU的硬件资源,是否满足使用第一目标预设卷积分块方式进行图像卷积处理时对硬件资源的需求的步骤之前,还实现如下步骤:
将所述待卷积图像和卷积核分别映射为待卷积图像矩阵和卷积核矩阵;
所述CPU在实现所述判断所述GPU的硬件资源,是否满足使用第一目标预设卷积分块方式进行图像卷积处理时对硬件资源的需求的步骤时,具体包括:
计算使用所述第一目标预设卷积分块方式进行图像卷积处理时,需要的线程块的第一线程块数量;其中,一个线程块用于对所述待卷积图像矩阵中的一个分块矩阵和所述卷积核矩阵中的一个分块矩阵进行矩阵乘法运算;
计算使用所述第一目标预设卷积分块方式进行图像卷积处理时,基于所述GPU的硬件资源所能够运行的线程块的第二线程块数量;
如果所述第二线程块数量大于或者等于所述第一线程块数量,则确定所述GPU的硬件资源,满足使用所述第一目标预设卷积分块方式进行图像卷积处理时对硬件资源的需求;
如果所述第二线程块数量小于所述第一线程块数量,则确定所述GPU的硬件资源,不满足使用所述第一目标预设卷积分块方式进行图像卷积处理时对硬件资源的需求。
6.根据权利要求5所述的电子设备,其特征在于,
所述CPU,用于执行所述存储器上所存放的程序时,实现如下步骤:
获取待卷积图像和卷积核;
判断所述GPU的硬件资源,是否满足使用第一目标预设卷积分块方式进行图像卷积处理时对硬件资源的需求,并将判断结果发送至所述GPU;其中,所述第一目标预设卷积分块方式为多种预设卷积分块方式中,使得分块尺寸最小的卷积分块方式;
所述GPU,用于执行所述存储器上所存放的程序时,实现如下步骤:
接收所述CPU发送的所述判断结果;
若所述GPU的硬件资源,满足使用第一目标预设卷积分块方式进行图像卷积处理时对硬件资源的需求,则使用所述第一目标预设卷积分块方式,对所述待卷积图像和卷积核进行图像卷积处理,得到图像卷积结果;
若所述GPU的硬件资源,不满足使用第一目标预设卷积分块方式进行图像卷积处理时对硬件资源的需求,则根据预先设定的卷积核的个数与卷积分块方式的对应关系,从除所述第一目标预设卷积分块方式之外的其他预设卷积分块方式中,选择与所述卷积核的个数对应的第二目标预设卷积分块方式,使用所述第二目标预设卷积分块方式对所述待卷积图像和卷积核进行图像卷积处理,得到图像卷积结果。
7.根据权利要求6所述的电子设备,其特征在于,所述CPU在实现所述计算使用所述第一目标预设卷积分块方式进行图像卷积处理时,需要的线程块的第一线程块数量的步骤时,具体包括:
基于使用所述第一目标预设卷积分块方式进行图像卷积处理时,所述待卷积图像矩阵的一个分块矩阵的尺寸和所述卷积核矩阵的一个分块矩阵的尺寸,确定第一分块乘积矩阵的尺寸;所述第一分块乘积矩阵为使用所述第一目标预设卷积分块方式进行图像卷积处理时,所述待卷积图像矩阵的一个分块矩阵和所述卷积核矩阵的一个分块矩阵的乘积;
对所述待卷积图像矩阵的行数与所述第一分块乘积矩阵的行数的比值进行向上取整操作,得到第一比值;
对所述卷积核矩阵的列数与第一分块乘积矩阵的列数的比值进行向上取整操作,得到第二比值;
将所述第一比值和所述第二比值的乘积,确定为使用所述第一目标预设卷积分块方式进行图像卷积处理时,需要的线程块的第一线程块数量。
8.根据权利要求5或6所述的电子设备,其特征在于,所述CPU在实现所述使用所述第一目标预设卷积分块方式,对所述待卷积图像和卷积核进行图像卷积处理,得到图像卷积结果的步骤时,具体包括:
按照所述第一目标预设卷积分块方式中的划分方法,将所述待卷积图像矩阵和所述卷积核矩阵分别划分为多个第一待卷积图像分块矩阵和多个第一卷积核分块矩阵;
分别计算所述多个第一待卷积图像分块矩阵和所述多个第一卷积核分块矩阵的乘积,得到多个第一分块乘积矩阵;
对所述多个第一分块乘积矩阵进行累加运算,得到乘积矩阵;
对所述乘积矩阵进行反向映射处理,得到图像卷积结果;
所述CPU在实现所述使用所述第二目标预设卷积分块方式对所述待卷积图像和卷积核进行图像卷积处理,得到图像卷积结果的步骤时,具体包括:
按照所述第二目标预设卷积分块方式中的划分方法,将所述待卷积图像矩阵和所述卷积核矩阵分别划分为多个第二待卷积图像分块矩阵和多个第二卷积核分块矩阵;
分别计算所述多个第二待卷积图像分块矩阵和所述多个第二卷积核分块矩阵的乘积,得到多个第二分块乘积矩阵;
对所述多个第二分块乘积矩阵进行累加运算,得到乘积矩阵;对所述乘积矩阵进行反向映射处理,得到图像卷积结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010196706.5A CN113495786B (zh) | 2020-03-19 | 2020-03-19 | 一种图像卷积处理方法和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010196706.5A CN113495786B (zh) | 2020-03-19 | 2020-03-19 | 一种图像卷积处理方法和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113495786A CN113495786A (zh) | 2021-10-12 |
CN113495786B true CN113495786B (zh) | 2023-10-13 |
Family
ID=77993583
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010196706.5A Active CN113495786B (zh) | 2020-03-19 | 2020-03-19 | 一种图像卷积处理方法和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113495786B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104915322A (zh) * | 2015-06-09 | 2015-09-16 | 中国人民解放军国防科学技术大学 | 一种卷积神经网络硬件加速方法及其axi总线ip核 |
CN107437110A (zh) * | 2017-07-11 | 2017-12-05 | 中国科学院自动化研究所 | 卷积神经网络的分块卷积优化方法及装置 |
CN107657581A (zh) * | 2017-09-28 | 2018-02-02 | 中国人民解放军国防科技大学 | 一种卷积神经网络cnn硬件加速器及加速方法 |
CN110175670A (zh) * | 2019-04-09 | 2019-08-27 | 华中科技大学 | 一种基于FPGA实现YOLOv2检测网络的方法及系统 |
CN110782009A (zh) * | 2019-10-17 | 2020-02-11 | 湖南大学 | 基于ARMv8体系的计算内核优化方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160239706A1 (en) * | 2015-02-13 | 2016-08-18 | Qualcomm Incorporated | Convolution matrix multiply with callback for deep tiling for deep convolutional neural networks |
-
2020
- 2020-03-19 CN CN202010196706.5A patent/CN113495786B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104915322A (zh) * | 2015-06-09 | 2015-09-16 | 中国人民解放军国防科学技术大学 | 一种卷积神经网络硬件加速方法及其axi总线ip核 |
CN107437110A (zh) * | 2017-07-11 | 2017-12-05 | 中国科学院自动化研究所 | 卷积神经网络的分块卷积优化方法及装置 |
CN107657581A (zh) * | 2017-09-28 | 2018-02-02 | 中国人民解放军国防科技大学 | 一种卷积神经网络cnn硬件加速器及加速方法 |
CN110175670A (zh) * | 2019-04-09 | 2019-08-27 | 华中科技大学 | 一种基于FPGA实现YOLOv2检测网络的方法及系统 |
CN110782009A (zh) * | 2019-10-17 | 2020-02-11 | 湖南大学 | 基于ARMv8体系的计算内核优化方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113495786A (zh) | 2021-10-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112214726B (zh) | 运算加速器 | |
KR101400577B1 (ko) | Gpu를 이용한 희소행렬 곱셈 방법 | |
CN111158874A (zh) | 数据处理方法和装置、电子设备及存储介质 | |
WO2016123808A1 (zh) | 数据处理系统、计算节点和数据处理的方法 | |
CN107580698B (zh) | 用于确定并行处理器内核的调度大小的并发因子的系统和方法 | |
CN111738423A (zh) | 神经网络模型的编译方法、装置、存储介质及电子设备 | |
CN110633900A (zh) | 一种虚拟资源的分配方法、装置及电子设备 | |
CN110543279B (zh) | 一种数据存储、处理方法、装置及系统 | |
CN111709415B (zh) | 目标检测方法、装置、计算机设备和存储介质 | |
CN109800078B (zh) | 一种任务处理方法、任务分发终端及任务执行终端 | |
CN113495786B (zh) | 一种图像卷积处理方法和电子设备 | |
CN116578245B (zh) | 存储器访问电路及存储器访问方法、集成电路和电子设备 | |
CN116263858A (zh) | 一种生成码流文件的方法、装置、计算机存储介质及终端 | |
CN111507923B (zh) | 一种视频图像的噪声处理方法、装置、设备和介质 | |
CN111127480B (zh) | 一种图像处理方法、装置、电子设备及存储介质 | |
CN111767243A (zh) | 数据处理方法、相关设备及计算机可读介质 | |
CN113568733A (zh) | 资源分配方法、装置、电子设备及存储介质 | |
CN110032564B (zh) | 一种数据表关联关系的确定方法和装置 | |
CN109544664B (zh) | 动画数据处理方法、装置、电子设备及可读存储介质 | |
CN115270710A (zh) | 排版方法、排版装置 | |
KR101989033B1 (ko) | 플랫폼 관리 장치 및 방법 | |
CN117608862B (zh) | 数据分发控制方法、装置、设备及介质 | |
CN111858036B (zh) | 基于FPGA设备的TensorFlow系统加速方法、装置、设备及存储介质 | |
CN112686269B (zh) | 池化方法、装置、设备和存储介质 | |
CN113068043B (zh) | 一种png图像压缩方法、装置、电子设备及存储介质 |
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 |