CN104077233B - 多通道卷积层处理方法和装置 - Google Patents
多通道卷积层处理方法和装置 Download PDFInfo
- Publication number
- CN104077233B CN104077233B CN201410274196.3A CN201410274196A CN104077233B CN 104077233 B CN104077233 B CN 104077233B CN 201410274196 A CN201410274196 A CN 201410274196A CN 104077233 B CN104077233 B CN 104077233B
- Authority
- CN
- China
- Prior art keywords
- threads
- data
- process unit
- graphic process
- unit sets
- 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
- 238000000034 method Methods 0.000 title claims abstract description 247
- 230000008569 process Effects 0.000 claims abstract description 201
- 238000003672 processing method Methods 0.000 claims abstract description 31
- 238000012545 processing Methods 0.000 claims description 23
- 230000015654 memory Effects 0.000 abstract description 44
- 238000005192 partition Methods 0.000 description 16
- 230000001788 irregular Effects 0.000 description 12
- 230000008901 benefit Effects 0.000 description 10
- 238000012546 transfer Methods 0.000 description 9
- 230000008520 organization Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 241001269238 Data Species 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000013507 mapping Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000003475 lamination Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/94—Hardware or software architectures specially adapted for image or video understanding
- G06V10/955—Hardware or software architectures specially adapted for image or video understanding using specific electronic processors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/20—Image enhancement or restoration using local operators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/50—Extraction of image or video features by performing operations within image blocks; by using histograms, e.g. histogram of oriented gradients [HoG]; by summing image-intensity values; Projection analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20021—Dividing image into blocks, subimages or windows
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20024—Filtering details
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20172—Image enhancement details
- G06T2207/20182—Noise reduction or smoothing in the temporal domain; Spatio-temporal filtering
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Software Systems (AREA)
- Image Processing (AREA)
- Complex Calculations (AREA)
Abstract
本发明提出单通道卷积层处理及多通道卷积层处理方法和装置。该单通道卷积层处理方法包括:将待处理数据划分为多个数据块;多个图形处理器线程组将多个数据块读取到多个图形处理器线程组的本地存储器中;多个图形处理器线程组将多个过滤器读取到多个图形处理器线程组的本地存储器中;以及多个图形处理器线程组中的多个线程同时计算多个数据块中对应的数据点与多个过滤器的卷积。该多通道卷积处理方法包括:在单通道卷积处理方法的基础上,多个图形处理器线程组中的多个线程依次进行多个通道的卷积,并将每个通道的卷积结果进行累加。从而,无需额外空间,在存储空间利用上达到最优,增加了存储器的数据重用,具有极高的性能和性能功耗比。
Description
技术领域
本发明涉及信息处理技术领域,尤其涉及一种单通道卷积层处理方法和装置、多通道卷积层处理方法和装置。
背景技术
卷积神经网络在多种应用,尤其是图像、视频应用中被广泛采用。其中,卷积层是卷积神经网络中的核心计算部分,在卷积层部分,以图像为例,多个滤波器分别作用于图像实现卷积运算。相关技术中,卷积运算主要通过以下两种方式实现:(1)滤波器直接作用于输入图像上进行卷积运算,其中,图形处理器(Graphic Processing Unit,GPU)线程组为二维格式,X维以全部图像的数量进行划分,Y维以全部滤波器的数量进行划分,每个图形处理器线程负责计算多个滤波器对多个图像的卷积,但只计算一个数据点对应的卷积核。(2)将全部图像数据按滤波器大小进行逐数据点展开,从而将卷积运算转换为稠密矩阵乘法运算。
但是,相关技术存在以下问题:前一种实现方式中,相邻输出数据点对应的输入数据点之间数据具有重叠,例如,步长为1、滤波器大小为5*5的卷积核,相邻输出数据点的输入数据点有4/5的数据重叠,导致大量数据被重复读入到本地存储中,影响性能。后一种实现方式中,需要将图像展开后存储,因此需要的存储量和卷积核的大小成正比,例如,5*5的滤波器需要25倍的额外内存,而9*9的滤波器则需要81倍的额外内存,而在实际应用中,滤波器可能会更大,图形处理器的全局存储开销也将大大增加。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的第一个目的在于提出一种单通道卷积层处理方法。该方法在存储空间利用上能够达到最优,增加了本地存储器的数据重用,增加了性能功耗比。
本发明的第二个目的在于提出一种单通道卷积层处理装置。
本发明的第三个目的在于提出一种多通道卷积层处理方法。
本发明的第四个目的在于提出一种多通道卷积层处理装置。
为了实现上述目的,本发明第一方面实施例的单通道卷积层处理方法,包括:将待处 理数据划分为多个数据块;多个图形处理器线程组将所述多个数据块读取到所述多个图形处理器线程组的本地存储器中;所述多个图形处理器线程组将多个过滤器读取到所述多个图形处理器线程组的本地存储器中;以及所述多个图形处理器线程组中的多个线程同时计算所述多个数据块中对应的数据点与所述多个过滤器的卷积。
本发明实施例的单通道卷积层处理方法,至少具有以下有益效果:(1)直接在输入数据上进行卷积,无需进行数据的逐数据点展开,从而无须额外的内存开销,在存储空间利用上能够达到最优;(2)同一图形处理器线程组中的图形处理器线程计算连续的输出数据点并使用连续的输入数据点,增加了本地存储器的数据重用,并将所需的待处理数据和卷积核数据临时保存在高速的图形处理器的本地存储器中,降低了低速的图形处理器全局存储器的读取次数,从而获得很高的性能;另外还减少了数据的移动,又大大降低了功耗,增加了性能功耗比;(3)在划分时,可以使用寄存器分块方法来减少访存计算比,虽然相关技术中也可利用寄存器分块方法,但是由于其数据组织方式导致其产生效果的条件比较严格。
为了实现上述目的,本发明第二方面实施例的单通道卷积层处理装置,包括:划分模块,用于将待处理数据划分为多个数据块;第一读取模块,用于通过多个图形处理器线程组将所述多个数据块读取到所述多个图形处理器线程组的本地存储器中;第二读取模块,用于通过所述多个图形处理器线程组将多个过滤器读取到所述多个图形处理器线程组的本地存储器中;以及计算模块,用于通过所述多个图形处理器线程组中的多个线程同时计算所述多个数据块中对应的数据点与所述多个过滤器的卷积。
本发明实施例的单通道卷积层处理装置,至少具有以下有益效果:(1)直接在输入数据上进行卷积,无需进行数据的逐数据点展开,从而无须额外的内存开销,在存储空间利用上能够达到最优;(2)同一图形处理器线程组中的图形处理器线程计算连续的输出数据点并使用连续的输入数据点,增加了本地存储器的数据重用,并将所需的待处理数据和卷积核数据临时保存在高速的图形处理器的本地存储器中,降低了低速的图形处理器全局存储器的读取次数,从而获得很高的性能;另外还减少了数据的移动,又大大降低了功耗,增加了性能功耗比;(3)在划分时,可以使用寄存器分块方法来减少访存计算比,虽然相关技术中也可利用寄存器分块方法,但是由于其数据组织方式导致其产生效果的条件比较严格。
为了实现上述目的,本发明第三方面实施例的多通道卷积层处理方法,包括:待处理数据及过滤器包含多个通道;将每个通道的待处理数据划分为多个数据块;多个图形处理器线程组同时将所述多个数据块读取到所述多个图形处理器线程组的本地存储器中;所述多个图形处理器线程组同时将多个过滤器读取到所述多个图形处理器线程组的本地存储器 中;所述多个图形处理器线程组中的多个线程同时计算所述一个通道多个数据块中对应的数据点与所述多个过滤器的卷积;所述多个图形处理器线程组中的多个线程依次进行多个通道的卷积,并将每个通道的卷积结果进行累加;将最终卷积结果写入所述多个图形处理器线程组的全局存储器中。
本发明实施例的多通道卷积层处理方法,至少具有以下有益效果:(1)直接在输入数据上进行卷积,无需进行数据的逐数据点展开,从而无须额外的内存开销,在存储空间利用上能够达到最优;(2)同一图形处理器线程组中的图形处理器线程计算连续的输出数据点并使用连续的输入数据点,增加了本地存储器的数据重用,并将所需的待处理数据和卷积核数据临时保存在高速的图形处理器的本地存储器中,降低了低速的图形处理器全局存储器的读取次数,从而获得很高的性能;另外还减少了数据的移动,又大大降低了功耗,增加了性能功耗比;(3)在划分时,可以使用寄存器分块方法来减少访存计算比,虽然相关技术中也可利用寄存器分块方法,但是由于其数据组织方式导致其产生效果的条件比较严格。
为了实现上述目的,本发明第四方面实施例的多通道卷积层处理装置,包括:划分模块,用于将每个通道的待处理数据划分为多个数据块;第一读取模块,用于通过多个图形处理器线程组同时将所述多个数据块读取到所述多个图形处理器线程组的本地存储器中;第二读取模块,用于通过所述多个图形处理器线程组同时将多个过滤器读取到所述多个图形处理器线程组的本地存储器中;计算模块,用于通过所述多个图形处理器线程组中的多个线程同时计算所述一个通道多个数据块中对应的数据点与所述多个过滤器的卷积;累加模块,用于通过所述多个图形处理器线程组中的多个线程依次进行多个通道的卷积,并将每个通道的卷积结果进行累加;写入模块,用于将最终卷积结果写入所述多个图形处理器线程组的全局存储器中。
本发明实施例的多通道卷积层处理装置,至少具有以下有益效果:(1)直接在输入数据上进行卷积,无需进行数据的逐数据点展开,从而无须额外的内存开销,在存储空间利用上能够达到最优;(2)同一图形处理器线程组中的图形处理器线程计算连续的输出数据点并使用连续的输入数据点,增加了本地存储器的数据重用,并将所需的待处理数据和卷积核数据临时保存在高速的图形处理器的本地存储器中,降低了低速的图形处理器全局存储器的读取次数,从而获得很高的性能;另外还减少了数据的移动,又大大降低了功耗,增加了性能功耗比;(3)在划分时,可以使用寄存器分块方法来减少访存计算比,虽然相关技术中也可利用寄存器分块方法,但是由于其数据组织方式导致其产生效果的条件比较严格。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明 显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中,
图1是根据本发明一个实施例的单通道卷积层处理方法的流程图;
图2是根据本发明实施例的单通道卷积层处理方法的一种示例性示意图;
图3是根据本发明另一个实施例的单通道卷积层处理方法的流程图;
图4是根据本发明实施例的非规则数据块的读取一种示例性示意图;
图5是根据本发明一个实施例的单通道卷积层处理装置的结构框图;
图6是根据本发明另一个实施例的单通道卷积层处理装置的结构框图;
图7是根据本发明一个实施例的多通道卷积层处理方法的流程图;
图8是根据本发明实施例的多通道卷积层处理方法的一种示例性示意图;
图9是根据本发明一个实施例的多通道卷积层处理装置的结构框图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
下面参考附图描述根据本发明实施例的单通道卷积层处理方法和装置、多通道卷积层处理方法和装置。
图1是根据本发明一个实施例的单通道卷积层处理方法的流程图,图2是根据本发明实施例的单通道卷积层处理方法的一种示例性示意图。
如图1所示,该单通道卷积层处理方法包括:
S101,将待处理数据划分为多个数据块。
其中,待处理数据可为图像、视频、音频、文字等各种计算机可读数据。具体地,以图像数据为例,可以根据图形处理器线程组的大小和图像的大小将图像划分为多个数据块,其中,图形处理器线程组中包括多个线程。例如,如图2所示,如果图形处理器线程组的大小32*16,图像(image0)的大小为64*64(Width=64,Height=64),则可以将图像分为8个数据块(Block0至Block7),每个数据块的大小为32*16(SizeA=32,SizeB=16),当然,也可以不平均划分,以每个图形处理器线程组能够处理为宜,对此本发明的实施例不进行限定。应理解,上述图2所示的实施例仅是示意性的,并非仅能通过该实施例来实现,也并非仅适用于该实施例,本领域技术人员可根据该实施例将其应用到根据任何大小的数据和任何大小的图形处理器线程组划分多个数据块中,这些划分多个数据块的扩展或变化,均应包含在本申请的保护范围之内。
S102,多个图形处理器线程组将多个数据块读取到多个图形处理器线程组的本地存储器中。
具体地,每个图形处理器线程组分别读取一个对应的数据块,并将对应的数据块读取到每个图形处理器线程组对应的本地存储器中。
S103,多个图形处理器线程组将多个过滤器读取到多个图形处理器线程组的本地存储器中。
具体地,每个图形处理器线程组分别将多个过滤器读取到每个图形处理器线程组对应的本地存储器中。
在本发明的一个实施例中,S103还可以在S102之前执行,或者S102和S103还可以同时执行,对此,本发明的实施例不进行限定。
S104,多个图形处理器线程组中的多个线程同时计算多个数据块中对应的数据点与多个过滤器的卷积。
其中,数据点为一个单位数据。具体地,每个图形处理器线程组分别在对应的本地存储器中存储了对应的数据块和多个过滤器,每个图形处理器线程组中的多个线程分别计算数据块中对应的数据点与多个过滤器的卷积。
本发明实施例的单通道卷积层处理方法,至少具有以下有益效果:(1)直接在输入数据上进行卷积,无需进行数据的逐数据点展开,从而无须额外的内存开销,在存储空间利用上能够达到最优;(2)同一图形处理器线程组中的图形处理器线程计算连续的输出数据点并使用连续的输入数据点,增加了本地存储器的数据重用,并将所需的待处理数据和卷积核数据临时保存在高速的图形处理器的本地存储器中,降低了低速的图形处理器全局存储器的读取次数,从而获得很高的性能;另外还减少了数据的移动,又大大降低了功耗,增加了性能功耗比;(3)在划分时,可以使用寄存器分块方法来减少访存计算比,虽然相关技术中也可利用寄存器分块方法,但是由于其数据组织方式导致其产生效果的条件比较严格。
在本发明的一个实施例中,多个数据块是非规则数据块。当然,多个数据块也可以是规则数据块,对此,本发明的实施例不进行限定。
图3是根据本发明另一个实施例的单通道卷积层处理方法的流程图,图4是根据本发明实施例的非规则数据块的读取一种示例性示意图。
如图3所示,该单通道卷积层处理方法包括:
S301,将待处理数据划分为多个数据块。
其中,待处理数据可为图像、视频、音频、文字等各种计算机可读数据。具体地,以图像数据为例,可以根据图形处理器线程组的大小和图像的大小将图像划分为多个数据块,其中,图形处理器线程组中包括多个线程。例如,如图2所示,如果图形处理器线程组的大小32*16,图像(image0)的大小为64*64(Width=64,Height=64),则可以将图像分为8个数据块(Block0至Block7),每个数据块的大小为32*16(SizeA=32,SizeB=16),当然,也可以不平均划分,以每个图形处理器线程组能够处理为宜,对此本发明的实施例不进行限定。应理解,上述图2所示的实施例仅是示意性的,并非仅能通过该实施例来实现,也并非仅适用于该实施例,本领域技术人员可根据该实施例将其应用到根据任何大小的数据和任何大小的图形处理器线程组划分多个数据块中,这些划分多个数据块的扩展或变化,均应包含在本申请的保护范围之内。
S302,将每个数据块划分为多个子数据块,其中至少一个子数据块的数据量与对应的图形处理器线程组中的线程数目匹配。
在本发明的一个实施例中,在多个图形处理器线程组将多个数据块读取到多个图形处理器线程组的本地存储器中时,还将对应的填充数据读取到本地存储器中。由于填充数据的原因,数据块的数据点多于图形处理器线程组中的总图形处理器线程数,如果将数据块的数据点与图形处理器线程做无缝的一一映射,则会带来复杂的下标运 算,增加数据传输延迟。对于这种非规则数据的读取,采用一种简单的图形处理器线线程组与非规则数据块映射,具体地,将每个数据块划分为多个子数据块,其中至少一个子数据块的数据量与对应的图形处理器线程组中的线程数目匹配。
例如,如图4所示,为一个数据块,并将该数据块划分为Block load0、Blockload1、Block load2、Block load3该4个子数据块。
S303,对应的图形处理器线程组依次将多个子数据块读取到图形处理器线程组的本地存储器中。
例如,如图4所示,灰色阴影部分为对应的图形处理器线程组第一次读取的待处理数据,之后,可以将灰色阴影部分右侧区域的数据读取,再依次分两次读取剩余部分的数据,数据块读取分为4次完成,尽管第1、2及3次读取中有大部分线程空闲,但是避免了复杂的下标运算。
S304,多个图形处理器线程组将多个过滤器读取到多个图形处理器线程组的本地存储器中。
具体地,每个图形处理器线程组分别将多个过滤器读取到每个图形处理器线程组对应的本地存储器中。
在本发明的一个实施例中,S304可以在S302之前执行,或者S304还可以和S302或S303同时执行,对此,本发明的实施例不进行限定。
S305,多个图形处理器线程组中的多个线程同时计算多个数据块中对应的数据点与多个过滤器的卷积。
其中,数据点为一个单位数据。具体地,每个图形处理器线程组分别在对应的本地存储器中存储了对应的数据块和多个过滤器,在读取数据块的同时,每个图形处理器线程组中的多个线程分别计算数据块中对应的数据点与多个过滤器的卷积。
本发明实施例的单通道卷积层处理方法,在进行数据块读取时,将每个数据块划分为多个子数据块,其中至少一个子数据块的数据量与对应的图形处理器线程组中的线程数目匹配,对应的图形处理器线程组依次将多个子数据块读取到图形处理器线程组的本地存储器中,特别适用于非规则数据块读取方法,避免了复杂的下标运算,减少了数据传输延迟。
为了实现上述实施例,本发明的实施例还提出一种单通道卷积层处理装置。
图5是根据本发明一个实施例的单通道卷积层处理装置的结构框图。
如图5所示,单通道卷积层处理装置100包括:划分模块110、第一读取模块120、第二读取模块130和计算模块140。
具体地,划分模块110用于将待处理数据划分为多个数据块。其中,待处理数据可为 图像、视频、音频、文字等各种计算机可读数据。更具体地,以图像数据为例,划分模块110可以根据图形处理器线程组的大小和图像的大小将图像划分为多个数据块,其中,图形处理器线程组中包括多个线程。例如,如图2所示,如果图形处理器线程组的大小32*16,图像(image0)的大小为64*64(Width=64,Height=64),则可以将图像分为8个数据块(Block0至Block7),每个数据块的大小为32*16(SizeA=32,SizeB=16),当然,也可以不平均划分,以每个图形处理器线程组能够处理为宜,对此本发明的实施例不进行限定。应理解,上述图2所示的实施例仅是示意性的,并非仅能通过该实施例来实现,也并非仅适用于该实施例,本领域技术人员可根据该实施例将其应用到根据任何大小的数据和任何大小的图形处理器线程组划分多个数据块中,这些划分多个数据块的扩展或变化,均应包含在本申请的保护范围之内。
第一读取模块120用于通过多个图形处理器线程组将多个数据块读取到多个图形处理器线程组的本地存储器中。更具体地,每个图形处理器线程组分别读取一个对应的数据块,并将对应的数据块读取到每个图形处理器线程组对应的本地存储器中。
第二读取模块130用于通过多个图形处理器线程组将多个过滤器读取到多个图形处理器线程组的本地存储器中。更具体地,每个图形处理器线程组分别将多个过滤器读取到每个图形处理器线程组对应的本地存储器中。
计算模块140用于通过多个图形处理器线程组中的多个线程同时计算多个数据块中对应的数据点与多个过滤器的卷积。其中,数据点为一个单位数据。更具体地,每个图形处理器线程组分别在对应的本地存储器中存储了对应的数据块和多个过滤器,在读取数据块的同时,每个图形处理器线程组中的多个线程分别计算数据块中对应的数据点与多个过滤器的卷积。
本发明实施例的单通道卷积层处理装置,至少具有以下有益效果:(1)直接在输入数据上进行卷积,无需进行数据的逐数据点展开,从而无须额外的内存开销,在存储空间利用上能够达到最优;(2)同一图形处理器线程组中的图形处理器线程计算连续的输出数据点并使用连续的输入数据点,增加了本地存储器的数据重用,并将所需的待处理数据和卷积核数据临时保存在高速的图形处理器的本地存储器中,降低了低速的图形处理器全局存储器的读取次数,从而获得很高的性能;另外还减少了数据的移动,又大大降低了功耗,增加了性能功耗比;(3)在划分时,可以使用寄存器分块方法来减少访存计算比,虽然相关技术中也可利用寄存器分块方法,但是由于其数据组织方式导致其产生效果的条件比较严格。
在本发明的一个实施例中,多个数据块是非规则数据块。当然,多个数据块也可以是规则数据块,对此,本发明的实施例不进行限定。
图6是根据本发明另一个实施例的单通道卷积层处理装置的结构框图。
如图6所示,单通道卷积层处理装置100包括:划分模块110、第一读取模块120、第二读取模块130和计算模块140,其中第一读取模块120包括划分单元121和读取单元122。
具体地,划分单元121用于将每个数据块划分为多个子数据块,其中至少一个子数据块的数据量与对应的图形处理器线程组中的线程数目匹配。
在本发明的一个实施例中,第一读取模块120在多个图形处理器线程组将多个数据块读取到多个图形处理器线程组的本地存储器中时,还用于将对应的填充数据读取到本地存储器中。由于填充数据的原因,数据块的数据点多于图形处理器线程组中的总图形处理器线程数,如果将数据块的数据点与图形处理器线程做无缝的一一映射,则会带来复杂的下标运算,增加数据传输延迟。对于这种非规则数据的读取,采用一种简单的图形处理器线线程组与非规则数据块映射,具体地,通过划分单元121将每个数据块划分为多个子数据块,其中至少一个子数据块的数据量与对应的图形处理器线程组中的线程数目匹配。
例如,如图4所示,为一个数据块,并将该数据块划分为Block load0、Blockload1、Block load2、Block load3该4个子数据块。
读取单元121用于通过对应的图形处理器线程组依次将多个子数据块读取到图形处理器线程组的本地存储器中。例如,如图4所示,灰色阴影部分为对应的图形处理器线程组第一次读取的待处理数据,之后,可以将灰色阴影部分右侧区域的数据读取,再依次分两次读取剩余部分的数据,数据块读取分为4次完成,尽管第1、2及3次读取中有大部分线程空闲,但是避免了复杂的下标运算。
本发明实施例的单通道卷积层处理装置,在进行数据块读取时,将每个数据块划分为多个子数据块,其中至少一个子数据块的数据量与对应的图形处理器线程组中的线程数目匹配,对应的图形处理器线程组依次将多个子数据块读取到图形处理器线程组的本地存储器中,特别适用于非规则数据块读取方法,避免了复杂的下标运算,减少了数据传输延迟。
本发明的实施例还提出一种多通道卷积层处理方法。
图7是根据本发明一个实施例的多通道卷积层处理方法的流程图,图8是根据本发明实施例的多通道卷积层处理方法的一种示例性示意图。
如图7所示,该多通道卷积层处理方法包括:
S701,待处理数据及过滤器包含多个通道,将每个通道的待处理数据划分为多个数据块。
其中,待处理数据可为图像、视频、音频、文字等各种计算机可读数据。具体地, 以图像数据为例,多通道卷积层处理的输入数据(待处理数据)包括多个图像和多个过滤器,且每个图像及每个过滤器具有多个通道。如图8所示,输入数据包括64个图像(Image0至Image63)和64个过滤器(Filter0至Filter63),且每个图像具有三个通道(Channel0,Channel1和Channel2),每个过滤器具有三个通道(Channel0,Channel1和Channel2),应理解,上述图8所示的实施例仅是示意性的,并非仅能通过该实施例来实现,也并非仅适用于该实施例,本领域技术人员可根据该实施例处理任何数量具有任何通道的数据和过滤器。
另外,将每个通道的待处理数据划分为多个数据块可参考上述实施例的单通道卷积层处理方法的划分方法,在此不再赘述。
S702,多个图形处理器线程组同时将多个数据块读取到多个图形处理器线程组的本地存储器中。
S703,多个图形处理器线程组同时将多个过滤器读取到多个图形处理器线程组的本地存储器中。
在本发明的一个实施例中,以图像数据为例,在S702之前还包括:将多幅图像和多个过滤器读取到图形处理器的全局存储器中。具体地,多个图像及多个过滤器存储在CPU内存(Host memory)中,首先,将多个图像及多个过滤器通过PCIE(一种总线接口)从CPU内存(Host memory)拷贝到图形处理器的全局存储器(Global memory)中(即Transfer toglobal memory);然后,图形处理器的每个计算单元(Computing unit)中多线程协作将数据从全局存储器拷贝到本地存储器(Local memory)中(即Load to local memory)。
在本发明的一个实施例中,S703还可以在S702之前执行,或者S702和S703还可以同时执行,对此,本发明的实施例不进行限定。
S704,多个图形处理器线程组中的多个线程同时计算一个通道多个数据块中对应的数据点与多个过滤器的卷积。
其中,数据点为一个单位数据。具体地,图形处理器的每个计算单元具有图形处理器线程组,每个计算单元中的每个线程利用本地存储中的待处理数据及滤波器进行卷积运算。例如,计算一个通道Channel0多个数据块中对应的数据点与多个过滤器的卷积。
S705,多个图形处理器线程组中的多个线程依次进行多个通道的卷积,并将每个通道的卷积结果进行累加。
S706,将最终卷积结果写入多个图形处理器线程组的全局存储器中。
即如图8所示,Write back to global memory。
本发明实施例的多通道卷积层处理方法,至少具有以下有益效果:(1)直接在输入数据上进行卷积,无需进行数据的逐数据点展开,从而无须额外的内存开销,在存储空间利用上能够达到最优;(2)同一图形处理器线程组中的图形处理器线程计算连续的输出数据点并使用连续的输入数据点,增加了本地存储器的数据重用,并将所需的待处理数据和卷积核数据临时保存在高速的图形处理器的本地存储器中,降低了低速的图形处理器全局存储器的读取次数,从而获得很高的性能;另外还减少了数据的移动,又大大降低了功耗,增加了性能功耗比;(3)在划分时,可以使用寄存器分块方法来减少访存计算比,虽然相关技术中也可利用寄存器分块方法,但是由于其数据组织方式导致其产生效果的条件比较严格。
在本发明的一个实施例中,在多个图形处理器线程组同时将多个数据块读取到多个图形处理器线程组的本地存储器中时,还将对应的填充数据读取到本地存储器中,填充之后的多个数据块是非规则数据块。当然,多个数据块也可以是规则数据块,对此,本发明的实施例不进行限定。
由于填充数据的原因,数据块的数据点多于图形处理器线程组中的总图形处理器线程数,如果将数据块的数据点与图形处理器线程做无缝的一一映射,则会带来复杂的下标运算,增加数据传输延迟。对于这种非规则数据的读取,采用一种简单的图形处理器线线程组与非规则数据块映射,具体地,S702具体包括以下步骤:将每个数据块划分为多个子数据块,其中至少一个子数据块的数据量与对应的图形处理器线程组中的线程数目匹配;以及对应的图形处理器线程组依次将多个子数据块读取到图形处理器线程组的本地存储器中。具体如上述单通道卷积层处理方法所述,在此不再赘述。由此,避免了复杂的下标运算,减少了数据传输延迟。
在本发明的一个实施例中,多个图形处理器线程组中的多个线程同时计算一个通道多个数据块中对应的数据点与多个过滤器的卷积包括:将多个数据块中对应的数据与多个过滤器的卷积进行寄存器划块,提高数据重用性。
为了实现上述实施例,本发明的实施例还提出一种多通道卷积层处理装置。
图9是根据本发明一个实施例的多通道卷积层处理装置的结构框图。
如图9所示,该多通道卷积层处理装置200包括:划分模块210、第一读取模块220、第二读取模块230、第三读取模块240、计算模块250、累加模块260和写入模块270。
其中,待处理数据可为图像、视频、音频、文字等各种计算机可读数据。其中,以图像数据为例,待处理数据及过滤器包含多个通道,即多通道卷积层处理的输入数据(待处理数据)包括多个图像和多个过滤器,且每个图像及每个过滤器具有多个通道。如图8所示,输入数据包括64个图像(Image0至Image63)和64个过滤器(Filter0 至Filter63),且每个图像具有三个通道(Channel0,Channel1和Channel2),每个过滤器具有三个通道(Channel0,Channel1和Channel2),应理解,上述图8所示的实施例仅是示意性的,并非仅能通过该实施例来实现,也并非仅适用于该实施例,本领域技术人员可根据该实施例处理任何数量具有任何通道的数据和过滤器。
具体地,划分模块210用于将每个通道的待处理数据划分为多个数据块,将每个通道的待处理数据划分为多个数据块可参考上述实施例的单通道卷积层处理方法的划分方法,在此不再赘述。
第一读取模块220用于通过多个图形处理器线程组同时将多个数据块读取到多个图形处理器线程组的本地存储器中。第二读取模块230用于通过多个图形处理器线程组同时将多个过滤器读取到多个图形处理器线程组的本地存储器中。
在本发明的一个实施例中,以图像数据为例,第三读取模块240用于将多幅图像和多个过滤器读取到图形处理器的全局存储器中。具体地,多个图像及多个过滤器存储在CPU内存(Host memory)中,首先,第三读取模块240将多个图像及多个过滤器通过PCIE(一种总线接口)从CPU内存(Host memory)拷贝到图形处理器的全局存储器(Global memory)中(即Transfer to global memory);然后,图形处理器的每个计算单元(Computing unit)中多线程协作将数据从全局存储器拷贝到本地存储器(Local memory)中(即Load to localmemory),即通过第一读取模块220和第二读取模块230进行读取。
计算模块250用于通过多个图形处理器线程组中的多个线程同时计算一个通道多个数据块中对应的数据点与多个过滤器的卷积。其中,数据点为一个单位数据。更具体地,图形处理器的每个计算单元具有图形处理器线程组,每个计算单元中的每个线程利用本地存储中的待处理数据及滤波器进行卷积运算。例如,计算一个通道Channel0多个数据块中对应的数据点与多个过滤器的卷积。
累加模块260用于通过多个图形处理器线程组中的多个线程依次进行多个通道的卷积,并将每个通道的卷积结果进行累加。写入模块270用于将最终卷积结果写入多个图形处理器线程组的全局存储器中。
本发明实施例的多通道卷积层处理装置,至少具有以下有益效果:(1)直接在输入数据上进行卷积,无需进行数据的逐数据点展开,从而无须额外的内存开销,在存储空间利用上能够达到最优;(2)同一图形处理器线程组中的图形处理器线程计算连续的输出数据点并使用连续的输入数据点,增加了本地存储器的数据重用,并将所需的待处理数据和卷积核数据临时保存在高速的图形处理器的本地存储器中,降低了低速的图形处理器全局存储器的读取次数,从而获得很高的性能;另外还减少了数据的移 动,又大大降低了功耗,增加了性能功耗比;(3)在划分时,可以使用寄存器分块方法来减少访存计算比,虽然相关技术中也可利用寄存器分块方法,但是由于其数据组织方式导致其产生效果的条件比较严格。
在本发明的一个实施例中,第一读取模块220在多个图形处理器线程组同时将多个数据块读取到多个图形处理器线程组的本地存储器中时,还用于将对应的填充数据读取到本地存储器中,填充之后的多个数据块是非规则数据块。当然,多个数据块也可以是规则数据块,对此,本发明的实施例不进行限定。
由于填充数据的原因,数据块的数据点多于图形处理器线程组中的总图形处理器线程数,如果将数据块的数据点与图形处理器线程做无缝的一一映射,则会带来复杂的下标运算,增加数据传输延迟。对于这种非规则数据的读取,采用一种简单的图形处理器线线程组与非规则数据块映射,具体地,第一读取模块220包括划分单元和读取单元(图中未示出),划分单元用于将每个数据块划分为多个子数据块,其中至少一个子数据块的数据量与对应的图形处理器线程组中的线程数目匹配;读取单元用于通过对应的图形处理器线程组依次将多个子数据块读取到图形处理器线程组的本地存储器中。具体如上述单通道卷积层处理方法所述,在此不再赘述。由此,避免了复杂的下标运算,减少了数据传输延迟。
在本发明的一个实施例中,计算模块250具体用于:将多个数据块中对应的数据与多个过滤器的卷积进行寄存器划块,提高数据重用性。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
Claims (10)
1.一种多通道卷积层处理方法,其特征在于,包括:
待处理数据及过滤器包含多个通道;
将每个通道的待处理数据划分为多个数据块;
多个图形处理器线程组同时将所述多个数据块读取到所述多个图形处理器线程组的本地存储器中;
所述多个图形处理器线程组同时将多个过滤器读取到所述多个图形处理器线程组的本地存储器中;
所述多个图形处理器线程组中的多个线程同时计算一个通道多个数据块中对应的数据点与所述多个过滤器的卷积;
所述多个图形处理器线程组中的多个线程依次进行多个通道的卷积,并将每个通道的卷积结果进行累加;
将最终卷积结果写入所述多个图形处理器线程组的全局存储器中。
2.根据权利要求1所述的方法,其特征在于,在所述多个图形处理器线程组同时将所述多个数据块读取到所述多个图形处理器线程组的本地存储器中时,还将对应的填充数据读取到本地存储器中,填充之后的多个数据块是非规则数据块。
3.根据权利要求1或2所述的方法,其特征在于,所述待处理数据为图像数据,所述方法进一步包括:
将多幅图像和多个过滤器读取到所述图形处理器的全局存储器中。
4.根据权利要求1或2所述的方法,其特征在于,使用多个图形处理器线程组将所述多个数据块读取到图形处理器线程的本地存储器中包括:
将每个数据块划分为多个子数据块,其中至少一个子数据块的数据量与对应的图形处理器线程组中的线程数目匹配;以及
所述对应的图形处理器线程组依次将所述多个子数据块读取到所述图形处理器线程组的本地存储器中。
5.根据权利要求1或2所述的方法,其特征在于,所述多个图形处理器线程组中的多个线程同时计算所述一个通道多个数据块中对应的数据点与所述多个过滤器的卷积包括:
将所述多个数据块中对应的数据与多个过滤器的卷积进行寄存器划块,提高数据重用性。
6.一种多通道卷积层处理装置,其特征在于,待处理数据及过滤器包含多个通道,所述装置包括:
划分模块,用于将每个通道的待处理数据划分为多个数据块;
第一读取模块,用于通过多个图形处理器线程组同时将所述多个数据块读取到所述多个图形处理器线程组的本地存储器中;
第二读取模块,用于通过所述多个图形处理器线程组同时将多个过滤器读取到所述多个图形处理器线程组的本地存储器中;
计算模块,用于通过所述多个图形处理器线程组中的多个线程同时计算一个通道多个数据块中对应的数据点与所述多个过滤器的卷积;
累加模块,用于通过所述多个图形处理器线程组中的多个线程依次进行多个通道的卷积,并将每个通道的卷积结果进行累加;
写入模块,用于将最终卷积结果写入所述多个图形处理器线程组的全局存储器中。
7.根据权利要求6所述的装置,其特征在于,所述第一读取模块在所述多个图形处理器线程组同时将所述多个数据块读取到所述多个图形处理器线程组的本地存储器中时,还用于将对应的填充数据读取到本地存储器中,填充之后的多个数据块是非规则数据块。
8.根据权利要求6或7所述的装置,其特征在于,所述待处理数据为图像数据,所述装置还包括:
第三读取模块,用于将多幅图像和多个过滤器读取到所述图形处理器的全局存储器中。
9.根据权利要求6或7所述的装置,其特征在于,所述第一读取模块包括:
划分单元,用于将每个数据块划分为多个子数据块,其中至少一个子数据块的数据量与对应的图形处理器线程组中的线程数目匹配;以及
读取单元,用于通过所述对应的图形处理器线程组依次将所述多个子数据块读取到所述图形处理器线程组的本地存储器中。
10.根据权利要求6或7所述的装置,其特征在于,所述计算模块具体用于:
将所述多个数据块中对应的数据与多个过滤器的卷积进行寄存器划块,提高数据重用性。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410274196.3A CN104077233B (zh) | 2014-06-18 | 2014-06-18 | 多通道卷积层处理方法和装置 |
US14/579,787 US9367892B2 (en) | 2014-06-18 | 2014-12-22 | Processing method and apparatus for single-channel convolution layer, and processing method and apparatus for multi-channel convolution layer |
EP14200014.0A EP2958048A3 (en) | 2014-06-18 | 2014-12-23 | Processing method and apparatus for single-channel convolution layer, and processing method and apparatus for multi-channel convolution layer |
JP2014266079A JP6147244B2 (ja) | 2014-06-18 | 2014-12-26 | シングルチャネル畳み込み層のための処理方法及び処理装置、並びにマルチチャネル畳み込み層のための処理方法及び処理装置 |
KR1020140192137A KR101687081B1 (ko) | 2014-06-18 | 2014-12-29 | 단채널 컨볼루션 레이어를 위한 처리 방법 및 장치, 및 다채널 컨볼루션 레이어를 위한 처리 방법 및 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410274196.3A CN104077233B (zh) | 2014-06-18 | 2014-06-18 | 多通道卷积层处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104077233A CN104077233A (zh) | 2014-10-01 |
CN104077233B true CN104077233B (zh) | 2017-04-05 |
Family
ID=51598501
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410274196.3A Active CN104077233B (zh) | 2014-06-18 | 2014-06-18 | 多通道卷积层处理方法和装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9367892B2 (zh) |
EP (1) | EP2958048A3 (zh) |
JP (1) | JP6147244B2 (zh) |
KR (1) | KR101687081B1 (zh) |
CN (1) | CN104077233B (zh) |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106056529B (zh) * | 2015-04-03 | 2020-06-02 | 阿里巴巴集团控股有限公司 | 一种对用于图片识别的卷积神经网络训练的方法与设备 |
US9582726B2 (en) | 2015-06-24 | 2017-02-28 | Qualcomm Incorporated | Systems and methods for image processing in a deep convolution network |
US10452971B2 (en) | 2015-06-29 | 2019-10-22 | Microsoft Technology Licensing, Llc | Deep neural network partitioning on servers |
US10970617B2 (en) | 2015-08-21 | 2021-04-06 | Institute Of Automation Chinese Academy Of Sciences | Deep convolutional neural network acceleration and compression method based on parameter quantification |
US20190073582A1 (en) * | 2015-09-23 | 2019-03-07 | Yi Yang | Apparatus and method for local quantization for convolutional neural networks (cnns) |
US10346350B2 (en) * | 2015-10-08 | 2019-07-09 | Via Alliance Semiconductor Co., Ltd. | Direct execution by an execution unit of a micro-operation loaded into an architectural register file by an architectural instruction of a processor |
CN105678379B (zh) * | 2016-01-12 | 2020-08-07 | 腾讯科技(深圳)有限公司 | 一种cnn的处理方法和装置 |
KR20180012439A (ko) | 2016-07-27 | 2018-02-06 | 삼성전자주식회사 | 회선 신경망에서 가속기 및 이의 동작 방법 |
CN106250103A (zh) * | 2016-08-04 | 2016-12-21 | 东南大学 | 一种卷积神经网络循环卷积计算数据重用的系统 |
EP3282397A1 (en) * | 2016-08-11 | 2018-02-14 | Vivante Corporation | Zero coefficient skipping convolution neural network engine |
US20180046898A1 (en) | 2016-08-11 | 2018-02-15 | Vivante Corporation | Zero Coefficient Skipping Convolution Neural Network Engine |
CN107742150B (zh) * | 2016-10-31 | 2020-05-12 | 腾讯科技(深圳)有限公司 | 一种卷积神经网络的数据处理方法和装置 |
KR102631381B1 (ko) * | 2016-11-07 | 2024-01-31 | 삼성전자주식회사 | 컨볼루션 신경망 처리 방법 및 장치 |
CN106779057B (zh) * | 2016-11-11 | 2020-04-17 | 北京旷视科技有限公司 | 基于gpu的计算二值神经网络卷积的方法及装置 |
CN110073329B (zh) * | 2016-12-16 | 2021-06-22 | 华为技术有限公司 | 访存设备、计算设备和应用于卷积神经网络运算的设备 |
KR20180073118A (ko) | 2016-12-22 | 2018-07-02 | 삼성전자주식회사 | 컨볼루션 신경망 처리 방법 및 장치 |
CN106874219B (zh) * | 2016-12-23 | 2018-11-02 | 深圳云天励飞技术有限公司 | 一种卷积神经网络的数据调度方法、系统及计算机设备 |
CN108268931B (zh) * | 2016-12-30 | 2022-10-25 | 华为技术有限公司 | 数据处理的方法、装置和系统 |
US10346944B2 (en) * | 2017-04-09 | 2019-07-09 | Intel Corporation | Machine learning sparse computation mechanism |
WO2018235357A1 (ja) * | 2017-06-22 | 2018-12-27 | 日本電気株式会社 | 演算装置、演算方法及びプログラム |
CN107885464B (zh) * | 2017-11-28 | 2021-11-02 | 北京小米移动软件有限公司 | 数据存储方法、装置及计算机可读存储介质 |
WO2019119301A1 (zh) * | 2017-12-20 | 2019-06-27 | 华为技术有限公司 | 在卷积神经网络模型中确定特征图像的方法和装置 |
CN107885700B (zh) * | 2017-12-29 | 2021-05-14 | 中国人民解放军国防科技大学 | 一种大规模矩阵卷积的多核实现方法 |
CN109993273B (zh) * | 2017-12-29 | 2021-05-11 | 深圳云天励飞技术有限公司 | 卷积神经网络的卷积实现方法及相关产品 |
CN108710941A (zh) * | 2018-04-11 | 2018-10-26 | 杭州菲数科技有限公司 | 用于电子设备的神经网络模型的硬加速方法和装置 |
CN109664620B (zh) * | 2018-12-07 | 2020-03-13 | 森大(深圳)技术有限公司 | 打印数据处理方法、装置及设备 |
KR102368364B1 (ko) * | 2019-01-23 | 2022-03-02 | 한국전자기술연구원 | 딥러닝 가속 하드웨어 장치 |
KR102185668B1 (ko) | 2019-01-30 | 2020-12-02 | 스노우 주식회사 | 이미지 파일의 픽셀 변환을 통한 압축율 향상 방법 및 시스템 |
KR102152346B1 (ko) | 2019-01-30 | 2020-09-04 | 스노우 주식회사 | 이미지 파일의 블록 간 차이를 통한 압축율 향상 방법 및 시스템 |
US11341210B2 (en) | 2019-02-15 | 2022-05-24 | Apple Inc. | Two-dimensional multi-layer convolution for deep learning |
CN109829868B (zh) * | 2019-02-28 | 2023-04-21 | 华南理工大学 | 一种轻量级深度学习模型图像去雾方法、电子设备及介质 |
CN109885407B (zh) * | 2019-03-05 | 2021-09-21 | 上海商汤智能科技有限公司 | 数据处理方法和装置、电子设备、存储介质 |
CN112541565B (zh) * | 2019-09-20 | 2023-08-29 | 腾讯科技(深圳)有限公司 | 一种卷积计算数据流映射方法及装置 |
CN111062473B (zh) * | 2019-12-16 | 2023-05-23 | 腾讯科技(深圳)有限公司 | 神经网络模型中的数据计算方法、图像处理方法及装置 |
TWI733334B (zh) | 2020-02-15 | 2021-07-11 | 財團法人工業技術研究院 | 卷積神經網路運算裝置及其運算的方法 |
CN111583095B (zh) * | 2020-05-22 | 2022-03-22 | 浪潮电子信息产业股份有限公司 | 图像数据存储方法、图像数据处理方法、系统及相关装置 |
WO2021248433A1 (en) * | 2020-06-12 | 2021-12-16 | Moffett Technologies Co., Limited | Method and system for dual-sparse convolution processing and parallelization |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103136725A (zh) * | 2011-12-05 | 2013-06-05 | 方正国际软件有限公司 | 一种图像重采样方法及系统 |
CN103530224A (zh) * | 2013-06-26 | 2014-01-22 | 郑州大学 | 一种基于GPU的Harris角点检测软件系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6084908A (en) * | 1995-10-25 | 2000-07-04 | Sarnoff Corporation | Apparatus and method for quadtree based variable block size motion estimation |
US7128266B2 (en) * | 2003-11-13 | 2006-10-31 | Metrologic Instruments. Inc. | Hand-supportable digital imaging-based bar code symbol reader supporting narrow-area and wide-area modes of illumination and image capture |
US8321849B2 (en) * | 2007-01-26 | 2012-11-27 | Nvidia Corporation | Virtual architecture and instruction set for parallel thread computing |
US8312254B2 (en) * | 2008-03-24 | 2012-11-13 | Nvidia Corporation | Indirect function call instructions in a synchronous parallel thread processor |
JP2011128978A (ja) * | 2009-12-18 | 2011-06-30 | Sony Corp | 情報処理装置、情報処理方法、及びプログラム |
-
2014
- 2014-06-18 CN CN201410274196.3A patent/CN104077233B/zh active Active
- 2014-12-22 US US14/579,787 patent/US9367892B2/en active Active
- 2014-12-23 EP EP14200014.0A patent/EP2958048A3/en not_active Ceased
- 2014-12-26 JP JP2014266079A patent/JP6147244B2/ja active Active
- 2014-12-29 KR KR1020140192137A patent/KR101687081B1/ko active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103136725A (zh) * | 2011-12-05 | 2013-06-05 | 方正国际软件有限公司 | 一种图像重采样方法及系统 |
CN103530224A (zh) * | 2013-06-26 | 2014-01-22 | 郑州大学 | 一种基于GPU的Harris角点检测软件系统 |
Non-Patent Citations (2)
Title |
---|
《Implementing Real-time Partitioned Convolution Algorithms On Conventional Operating Systems》;Eric Battenberg, etal;《Proc.of the 14th Conference Digital Audio Effects》;20110923;第313-320页 * |
《Optimizing Convolution Operations in CUDA with Adaptive Tiling》;Ben van Werkhoven, etal;《2nd Workshop on Applications for Multi and Many Core Processors》;20110604;第3-4页 * |
Also Published As
Publication number | Publication date |
---|---|
KR20150145167A (ko) | 2015-12-29 |
EP2958048A3 (en) | 2016-03-30 |
JP6147244B2 (ja) | 2017-06-14 |
CN104077233A (zh) | 2014-10-01 |
US20150371359A1 (en) | 2015-12-24 |
KR101687081B1 (ko) | 2016-12-28 |
EP2958048A2 (en) | 2015-12-23 |
JP2016004572A (ja) | 2016-01-12 |
US9367892B2 (en) | 2016-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104077233B (zh) | 多通道卷积层处理方法和装置 | |
US10140123B2 (en) | SIMD processing lanes storing input pixel operand data in local register file for thread execution of image processing operations | |
CA3101214C (en) | Modifying machine learning models to improve locality | |
EP3306478A1 (en) | Buffer addressing for a convolutional neural network | |
JP7062659B2 (ja) | 特殊目的計算ユニットを用いたハードウェアダブルバッファリング | |
EP3686816A1 (en) | Techniques for removing masks from pruned neural networks | |
US11853866B2 (en) | Implementation of a neural network in multicore hardware | |
CN103218174A (zh) | 一种用于遥感图像的io双缓存交互多核处理方法 | |
CN110333827B (zh) | 一种数据加载装置和数据加载方法 | |
CN111028360A (zh) | 一种3d图像处理中数据读写方法及系统、存储介质及终端 | |
US20230305807A1 (en) | Core group memory processsing with mac reuse | |
US20130332703A1 (en) | Shared Register Pool For A Multithreaded Microprocessor | |
US20140244977A1 (en) | Deferred Saving of Registers in a Shared Register Pool for a Multithreaded Microprocessor | |
US10824370B2 (en) | Systems and methods for implementing random access memory in a flow-based machine perception and dense algorithm integrated circuit based on computing and coalescing of indices | |
CN115668225A (zh) | 神经网络调度方法及装置 | |
GB2585810A (en) | Buffer addressing for a convolutional neural network | |
CN110390626A (zh) | 一种卷积神经网络的图像处理方法及装置 | |
CN114281554B (zh) | 用于3d图像处理的3d-cnn加速方法及装置、电子设备 | |
WO2023015560A1 (en) | Systems and methods for sparsity-aware vector processing in general purpose cpus | |
US20240281496A1 (en) | Convolution layer processor and method | |
Sherer | A Comparison of Two Architectures for Breadth-First Search on FPGA SoC Platforms | |
CN116029890A (zh) | 一种神经网络增强的图形处理器流水线架构 | |
CN116611485A (zh) | 用于生成输出特征图的方法和处理单元 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |