CN104077233A - 单通道卷积层及多通道卷积层处理方法和装置 - Google Patents

单通道卷积层及多通道卷积层处理方法和装置 Download PDF

Info

Publication number
CN104077233A
CN104077233A CN201410274196.3A CN201410274196A CN104077233A CN 104077233 A CN104077233 A CN 104077233A CN 201410274196 A CN201410274196 A CN 201410274196A CN 104077233 A CN104077233 A CN 104077233A
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.)
Granted
Application number
CN201410274196.3A
Other languages
English (en)
Other versions
CN104077233B (zh
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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and 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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201410274196.3A priority Critical patent/CN104077233B/zh
Publication of CN104077233A publication Critical patent/CN104077233A/zh
Priority to US14/579,787 priority patent/US9367892B2/en
Priority to EP14200014.0A priority patent/EP2958048A3/en
Priority to JP2014266079A priority patent/JP6147244B2/ja
Priority to KR1020140192137A priority patent/KR101687081B1/ko
Application granted granted Critical
Publication of CN104077233B publication Critical patent/CN104077233B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/94Hardware or software architectures specially adapted for image or video understanding
    • G06V10/955Hardware or software architectures specially adapted for image or video understanding using specific electronic processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/20Image enhancement or restoration by the use of local operators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/50Extraction 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20021Dividing image into blocks, subimages or windows
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20024Filtering details
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20172Image enhancement details
    • G06T2207/20182Noise 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、Block load1、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、Block load1、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 to global memory);然后,图形处理器的每个计算单元(Computingunit)中多线程协作将数据从全局存储器拷贝到本地存储器(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)拷贝到图形处理器的全局存储器(Globalmemory)中(即Transfer to global memory);然后,图形处理器的每个计算单元(Computing unit)中多线程协作将数据从全局存储器拷贝到本地存储器(Localmemory)中(即Load to local memory),即通过第一读取模块220和第二读取模块230进行读取。
计算模块250用于通过多个图形处理器线程组中的多个线程同时计算一个通道多个数据块中对应的数据点与多个过滤器的卷积。其中,数据点为一个单位数据。更具体地,图形处理器的每个计算单元具有图形处理器线程组,每个计算单元中的每个线程利用本地存储中的待处理数据及滤波器进行卷积运算。例如,计算一个通道Channel0多个数据块中对应的数据点与多个过滤器的卷积。
累加模块260用于通过多个图形处理器线程组中的多个线程依次进行多个通道的卷积,并将每个通道的卷积结果进行累加。写入模块270用于将最终卷积结果写入多个图形处理器线程组的全局存储器中。
本发明实施例的多通道卷积层处理装置,至少具有以下有益效果:(1)直接在输入数据上进行卷积,无需进行数据的逐数据点展开,从而无须额外的内存开销,在存储空间利用上能够达到最优;(2)同一图形处理器线程组中的图形处理器线程计算连续的输出数据点并使用连续的输入数据点,增加了本地存储器的数据重用,并将所需的待处理数据和卷积核数据临时保存在高速的图形处理器的本地存储器中,降低了低速的图形处理器全局存储器的读取次数,从而获得很高的性能;另外还减少了数据的移动,又大大降低了功耗,增加了性能功耗比;(3)在划分时,可以使用寄存器分块方法来减少访存计算比,虽然相关技术中也可利用寄存器分块方法,但是由于其数据组织方式导致其产生效果的条件比较严格。
在本发明的一个实施例中,第一读取模块220在多个图形处理器线程组同时将多个数据块读取到多个图形处理器线程组的本地存储器中时,还用于将对应的填充数据读取到本地存储器中,填充之后的多个数据块是非规则数据块。当然,多个数据块也可以是规则数据块,对此,本发明的实施例不进行限定。
由于填充数据的原因,数据块的数据点多于图形处理器线程组中的总图形处理器线程数,如果将数据块的数据点与图形处理器线程做无缝的一一映射,则会带来复杂的下标运算,增加数据传输延迟。对于这种非规则数据的读取,采用一种简单的图形处理器线线程组与非规则数据块映射,具体地,第一读取模块220包括划分单元和读取单元(图中未示出),划分单元用于将每个数据块划分为多个子数据块,其中至少一个子数据块的数据量与对应的图形处理器线程组中的线程数目匹配;读取单元用于通过对应的图形处理器线程组依次将多个子数据块读取到图形处理器线程组的本地存储器中。具体如上述单通道卷积层处理方法所述,在此不再赘述。由此,避免了复杂的下标运算,减少了数据传输延迟。
在本发明的一个实施例中,计算模块250具体用于:将多个数据块中对应的数据与多个过滤器的卷积进行寄存器划块,提高数据重用性。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。

Claims (18)

1.一种单通道卷积层处理方法,其特征在于,包括:
将待处理数据划分为多个数据块;
多个图形处理器线程组将所述多个数据块读取到所述多个图形处理器线程组的本地存储器中;
所述多个图形处理器线程组将多个过滤器读取到所述多个图形处理器线程组的本地存储器中;以及
所述多个图形处理器线程组中的多个线程同时计算所述多个数据块中对应的数据点与所述多个过滤器的卷积。
2.根据权利要求1所述的方法,其特征在于,所述多个数据块是非规则数据块。
3.根据权利要求1或2所述的方法,其特征在于,使用多个图形处理器线程组将所述多个数据块读取到图形处理器线程的本地存储器中包括:
将每个数据块划分为多个子数据块,其中至少一个子数据块的数据量与对应的图形处理器线程组中的线程数目匹配;以及
所述对应的图形处理器线程组依次将所述多个子数据块读取到所述图形处理器线程组的本地存储器中。
4.根据权利要求1或2所述的方法,其特征在于,在所述多个图形处理器线程组将所述多个数据块读取到所述多个图形处理器线程组的本地存储器中时,还将对应的填充数据读取到本地存储器中。
5.一种单通道卷积层处理装置,其特征在于,包括:
划分模块,用于将待处理数据划分为多个数据块;
第一读取模块,用于通过多个图形处理器线程组将所述多个数据块读取到所述多个图形处理器线程组的本地存储器中;
第二读取模块,用于通过所述多个图形处理器线程组将多个过滤器读取到所述多个图形处理器线程组的本地存储器中;以及
计算模块,用于通过所述多个图形处理器线程组中的多个线程同时计算所述多个数据块中对应的数据点与所述多个过滤器的卷积。
6.根据权利要求5所述的装置,其特征在于,所述多个数据块是非规则数据块。
7.根据权利要求5或6所述的装置,其特征在于,所述第一读取模块包括:
划分单元,用于将每个数据块划分为多个子数据块,其中至少一个子数据块的数据量与对应的图形处理器线程组中的线程数目匹配;以及
读取单元,用于通过所述对应的图形处理器线程组依次将所述多个子数据块读取到所述图形处理器线程组的本地存储器中。
8.根据权利要求5或6所述的装置,其特征在于,所述第一读取模块在所述多个图形处理器线程组将所述多个数据块读取到所述多个图形处理器线程组的本地存储器中时,还还用于将对应的填充数据读取到本地存储器中。
9.一种多通道卷积层处理方法,其特征在于,包括:
待处理数据及过滤器包含多个通道;
将每个通道的待处理数据划分为多个数据块;
多个图形处理器线程组同时将所述多个数据块读取到所述多个图形处理器线程组的本地存储器中;
所述多个图形处理器线程组同时将多个过滤器读取到所述多个图形处理器线程组的本地存储器中;
所述多个图形处理器线程组中的多个线程同时计算所述一个通道多个数据块中对应的数据点与所述多个过滤器的卷积;
所述多个图形处理器线程组中的多个线程依次进行多个通道的卷积,并将每个通道的卷积结果进行累加;
将最终卷积结果写入所述多个图形处理器线程组的全局存储器中。
10.根据权利要求9所述的方法,其特征在于,在所述多个图形处理器线程组同时将所述多个数据块读取到所述多个图形处理器线程组的本地存储器中时,还将对应的填充数据读取到本地存储器中,所述填充之后的多个数据块是非规则数据块。
11.根据权利要求9或10所述的方法,其特征在于,所述待处理数据为图像数据,所述方法进一步包括:
将所述多幅图像和多个过滤器读取到所述图形处理器的全局存储器中。
12.根据权利要求9或10所述的方法,其特征在于,使用多个图形处理器线程组将所述多个数据块读取到图形处理器线程的本地存储器中包括:
将每个数据块划分为多个子数据块,其中至少一个子数据块的数据量与对应的图形处理器线程组中的线程数目匹配;以及
所述对应的图形处理器线程组依次将所述多个子数据块读取到所述图形处理器线程组的本地存储器中。
13.根据权利要求9或10所述的方法,其特征在于,所述多个图形处理器线程组中的多个线程同时计算所述一个通道多个数据块中对应的数据点与所述多个过滤器的卷积包括:
将所述多个数据块中对应的数据与多个过滤器的卷积进行寄存器划块,提高数据重用性。
14.一种多通道卷积层处理装置,其特征在于,待处理数据及过滤器包含多个通道,所述装置包括:
划分模块,用于将每个通道的待处理数据划分为多个数据块;
第一读取模块,用于通过多个图形处理器线程组同时将所述多个数据块读取到所述多个图形处理器线程组的本地存储器中;
第二读取模块,用于通过所述多个图形处理器线程组同时将多个过滤器读取到所述多个图形处理器线程组的本地存储器中;
计算模块,用于通过所述多个图形处理器线程组中的多个线程同时计算所述一个通道多个数据块中对应的数据点与所述多个过滤器的卷积;
累加模块,用于通过所述多个图形处理器线程组中的多个线程依次进行多个通道的卷积,并将每个通道的卷积结果进行累加;
写入模块,用于将最终卷积结果写入所述多个图形处理器线程组的全局存储器中。
15.根据权利要求14所述的装置,其特征在于,所述第一读取模块在所述多个图形处理器线程组同时将所述多个数据块读取到所述多个图形处理器线程组的本地存储器中时,还用于将对应的填充数据读取到本地存储器中,所述填充之后的多个数据块是非规则数据块。
16.根据权利要求14或15所述的装置,其特征在于,所述待处理数据为图像数据,所述装置还包括:
第三读取模块,用于将所述多幅图像和多个过滤器读取到所述图形处理器的全局存储器中。
17.根据权利要求14或15所述的装置,其特征在于,所述第一读取模块包括:
划分单元,用于将每个数据块划分为多个子数据块,其中至少一个子数据块的数据量与对应的图形处理器线程组中的线程数目匹配;以及
读取单元,用于通过所述对应的图形处理器线程组依次将所述多个子数据块读取到所述图形处理器线程组的本地存储器中。
18.根据权利要求14或15所述的装置,其特征在于,所述计算模块具体用于:
将所述多个数据块中对应的数据与多个过滤器的卷积进行寄存器划块,提高数据重用性。
CN201410274196.3A 2014-06-18 2014-06-18 多通道卷积层处理方法和装置 Active CN104077233B (zh)

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 true CN104077233A (zh) 2014-10-01
CN104077233B 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)

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106056529A (zh) * 2015-04-03 2016-10-26 阿里巴巴集团控股有限公司 一种对用于图片识别的卷积神经网络训练的方法与设备
CN106250103A (zh) * 2016-08-04 2016-12-21 东南大学 一种卷积神经网络循环卷积计算数据重用的系统
US9582726B2 (en) 2015-06-24 2017-02-28 Qualcomm Incorporated Systems and methods for image processing in a deep convolution network
WO2017031630A1 (zh) * 2015-08-21 2017-03-02 中国科学院自动化研究所 基于参数量化的深度卷积神经网络的加速与压缩方法
WO2017049496A1 (en) * 2015-09-23 2017-03-30 Intel Corporation Apparatus and method for local quantization for convolutional neural networks (cnns)
CN106779057A (zh) * 2016-11-11 2017-05-31 北京旷视科技有限公司 基于gpu的计算二值神经网络卷积的方法及装置
CN106874219A (zh) * 2016-12-23 2017-06-20 深圳云天励飞技术有限公司 一种卷积神经网络的数据调度方法、系统及计算机设备
CN107885700A (zh) * 2017-12-29 2018-04-06 中国人民解放军国防科技大学 一种大规模矩阵卷积的多核实现方法
CN107885464A (zh) * 2017-11-28 2018-04-06 北京小米移动软件有限公司 数据存储方法、装置及计算机可读存储介质
WO2018077295A1 (zh) * 2016-10-31 2018-05-03 腾讯科技(深圳)有限公司 一种卷积神经网络的数据处理方法和装置
CN108268931A (zh) * 2016-12-30 2018-07-10 华为技术有限公司 数据处理的方法、装置和系统
CN108710941A (zh) * 2018-04-11 2018-10-26 杭州菲数科技有限公司 用于电子设备的神经网络模型的硬加速方法和装置
CN109664620A (zh) * 2018-12-07 2019-04-23 森大(深圳)技术有限公司 打印数据处理方法、装置及设备
CN109993273A (zh) * 2017-12-29 2019-07-09 深圳云天励飞技术有限公司 卷积神经网络的卷积实现方法及相关产品
CN110073329A (zh) * 2016-12-16 2019-07-30 华为技术有限公司 访存设备、计算设备和应用于卷积神经网络运算的设备
US10452971B2 (en) 2015-06-29 2019-10-22 Microsoft Technology Licensing, Llc Deep neural network partitioning on servers
CN111062473A (zh) * 2019-12-16 2020-04-24 腾讯科技(深圳)有限公司 神经网络模型中的数据计算方法、图像处理方法及装置
CN111247527A (zh) * 2017-12-20 2020-06-05 华为技术有限公司 在卷积神经网络模型中确定特征图像的方法和装置
CN111583095A (zh) * 2020-05-22 2020-08-25 浪潮电子信息产业股份有限公司 图像数据存储方法、图像数据处理方法、系统及相关装置
WO2021248433A1 (en) * 2020-06-12 2021-12-16 Moffett Technologies Co., Limited Method and system for dual-sparse convolution processing and parallelization
US11423292B2 (en) 2020-02-15 2022-08-23 Industrial Technology Research Institute Convolutional neural-network calculating apparatus and operation methods thereof

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10671564B2 (en) * 2015-10-08 2020-06-02 Via Alliance Semiconductor Co., Ltd. Neural network unit that performs convolutions using collective shift register among array of neural processing units
CN105678379B (zh) 2016-01-12 2020-08-07 腾讯科技(深圳)有限公司 一种cnn的处理方法和装置
KR20180012439A (ko) 2016-07-27 2018-02-06 삼성전자주식회사 회선 신경망에서 가속기 및 이의 동작 방법
EP3282398A1 (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
KR102631381B1 (ko) * 2016-11-07 2024-01-31 삼성전자주식회사 컨볼루션 신경망 처리 방법 및 장치
KR20180073118A (ko) 2016-12-22 2018-07-02 삼성전자주식회사 컨볼루션 신경망 처리 방법 및 장치
US11580193B2 (en) 2017-06-22 2023-02-14 Nec Corporation Computation device, computation method, and program
KR102368364B1 (ko) * 2019-01-23 2022-03-02 한국전자기술연구원 딥러닝 가속 하드웨어 장치
KR102152346B1 (ko) 2019-01-30 2020-09-04 스노우 주식회사 이미지 파일의 블록 간 차이를 통한 압축율 향상 방법 및 시스템
KR102185668B1 (ko) 2019-01-30 2020-12-02 스노우 주식회사 이미지 파일의 픽셀 변환을 통한 압축율 향상 방법 및 시스템
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 腾讯科技(深圳)有限公司 一种卷积计算数据流映射方法及装置

Citations (2)

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

* Cited by examiner, † Cited by third party
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 情報処理装置、情報処理方法、及びプログラム

Patent Citations (2)

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

* Cited by examiner, † Cited by third party
Title
BEN VAN WERKHOVEN, ETAL: "《Optimizing Convolution Operations in CUDA with Adaptive Tiling》", 《2ND WORKSHOP ON APPLICATIONS FOR MULTI AND MANY CORE PROCESSORS》 *
ERIC BATTENBERG, ETAL: "《Implementing Real-time Partitioned Convolution Algorithms On Conventional Operating Systems》", 《PROC.OF THE 14TH CONFERENCE DIGITAL AUDIO EFFECTS》 *
VICTOR PODLOZHNYUK: "《Image Convolution with CUDA》", 1 June 2007 *

Cited By (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106056529A (zh) * 2015-04-03 2016-10-26 阿里巴巴集团控股有限公司 一种对用于图片识别的卷积神经网络训练的方法与设备
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
WO2017031630A1 (zh) * 2015-08-21 2017-03-02 中国科学院自动化研究所 基于参数量化的深度卷积神经网络的加速与压缩方法
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
WO2017049496A1 (en) * 2015-09-23 2017-03-30 Intel Corporation Apparatus and method for local quantization for convolutional neural networks (cnns)
CN106250103A (zh) * 2016-08-04 2016-12-21 东南大学 一种卷积神经网络循环卷积计算数据重用的系统
US11593594B2 (en) 2016-10-31 2023-02-28 Tencent Technology (Shenzhen) Company Limited Data processing method and apparatus for convolutional neural network
US11222240B2 (en) 2016-10-31 2022-01-11 Tencent Technology (Shenzhen) Company Limited Data processing method and apparatus for convolutional neural network
WO2018077295A1 (zh) * 2016-10-31 2018-05-03 腾讯科技(深圳)有限公司 一种卷积神经网络的数据处理方法和装置
CN106779057A (zh) * 2016-11-11 2017-05-31 北京旷视科技有限公司 基于gpu的计算二值神经网络卷积的方法及装置
CN106779057B (zh) * 2016-11-11 2020-04-17 北京旷视科技有限公司 基于gpu的计算二值神经网络卷积的方法及装置
CN110073329B (zh) * 2016-12-16 2021-06-22 华为技术有限公司 访存设备、计算设备和应用于卷积神经网络运算的设备
CN110073329A (zh) * 2016-12-16 2019-07-30 华为技术有限公司 访存设备、计算设备和应用于卷积神经网络运算的设备
CN106874219A (zh) * 2016-12-23 2017-06-20 深圳云天励飞技术有限公司 一种卷积神经网络的数据调度方法、系统及计算机设备
WO2018113239A1 (zh) * 2016-12-23 2018-06-28 深圳云天励飞技术有限公司 一种卷积神经网络的数据调度方法、系统及计算机设备
CN108268931B (zh) * 2016-12-30 2022-10-25 华为技术有限公司 数据处理的方法、装置和系统
CN108268931A (zh) * 2016-12-30 2018-07-10 华为技术有限公司 数据处理的方法、装置和系统
CN107885464B (zh) * 2017-11-28 2021-11-02 北京小米移动软件有限公司 数据存储方法、装置及计算机可读存储介质
CN107885464A (zh) * 2017-11-28 2018-04-06 北京小米移动软件有限公司 数据存储方法、装置及计算机可读存储介质
CN111247527A (zh) * 2017-12-20 2020-06-05 华为技术有限公司 在卷积神经网络模型中确定特征图像的方法和装置
CN111247527B (zh) * 2017-12-20 2023-08-22 华为技术有限公司 在卷积神经网络模型中确定特征图像的方法和装置
CN109993273B (zh) * 2017-12-29 2021-05-11 深圳云天励飞技术有限公司 卷积神经网络的卷积实现方法及相关产品
CN107885700B (zh) * 2017-12-29 2021-05-14 中国人民解放军国防科技大学 一种大规模矩阵卷积的多核实现方法
CN109993273A (zh) * 2017-12-29 2019-07-09 深圳云天励飞技术有限公司 卷积神经网络的卷积实现方法及相关产品
CN107885700A (zh) * 2017-12-29 2018-04-06 中国人民解放军国防科技大学 一种大规模矩阵卷积的多核实现方法
CN108710941A (zh) * 2018-04-11 2018-10-26 杭州菲数科技有限公司 用于电子设备的神经网络模型的硬加速方法和装置
CN109664620A (zh) * 2018-12-07 2019-04-23 森大(深圳)技术有限公司 打印数据处理方法、装置及设备
CN111062473A (zh) * 2019-12-16 2020-04-24 腾讯科技(深圳)有限公司 神经网络模型中的数据计算方法、图像处理方法及装置
CN111062473B (zh) * 2019-12-16 2023-05-23 腾讯科技(深圳)有限公司 神经网络模型中的数据计算方法、图像处理方法及装置
US11423292B2 (en) 2020-02-15 2022-08-23 Industrial Technology Research Institute Convolutional neural-network calculating apparatus and operation methods thereof
CN111583095A (zh) * 2020-05-22 2020-08-25 浪潮电子信息产业股份有限公司 图像数据存储方法、图像数据处理方法、系统及相关装置
WO2021248433A1 (en) * 2020-06-12 2021-12-16 Moffett Technologies Co., Limited Method and system for dual-sparse convolution processing and parallelization
CN116261736A (zh) * 2020-06-12 2023-06-13 墨芯国际有限公司 用于双稀疏卷积处理和并行化的方法和系统

Also Published As

Publication number Publication date
US9367892B2 (en) 2016-06-14
KR20150145167A (ko) 2015-12-29
EP2958048A3 (en) 2016-03-30
JP6147244B2 (ja) 2017-06-14
CN104077233B (zh) 2017-04-05
JP2016004572A (ja) 2016-01-12
KR101687081B1 (ko) 2016-12-28
US20150371359A1 (en) 2015-12-24
EP2958048A2 (en) 2015-12-23

Similar Documents

Publication Publication Date Title
CN104077233A (zh) 单通道卷积层及多通道卷积层处理方法和装置
US11574171B2 (en) Neural network architecture using convolution engines
US10140123B2 (en) SIMD processing lanes storing input pixel operand data in local register file for thread execution of image processing operations
TWI494761B (zh) 分割實體區塊之方法及記憶體系統
US20150347475A1 (en) Processor and data gathering method
US8392669B1 (en) Systems and methods for coalescing memory accesses of parallel threads
GB2458554A (en) Coalescing memory accesses from multiple threads in a parallel processing system
CN103218348B (zh) 快速傅里叶变换处理方法和系统
KR20140043455A (ko) 미디어 프로세싱 가속기들을 위한 수집 방법 및 장치
KR20140050941A (ko) 비휘발성 메모리 장치의 데이터 관리 방법
CN103970720A (zh) 基于大规模粗粒度嵌入式可重构系统及其处理方法
CN103927270A (zh) 一种面向多个粗粒度动态可重构阵列的共享数据缓存装置及控制方法
US20150074360A1 (en) Scheduler for memory
US20150143061A1 (en) Partitioned register file
CN102279728B (zh) 数据存储设备及数据计算方法
US9928033B2 (en) Single-pass parallel prefix scan with dynamic look back
KR20210084220A (ko) 부분 판독/기입을 갖는 재구성 가능한 시스톨릭 어레이를 위한 시스템 및 방법
US11467973B1 (en) Fine-grained access memory controller
CN103577349A (zh) 在高速缓存中选择数据进行刷盘的方法和装置
CN110554886B (zh) 数据拆分结构、方法及其片上实现
Shao et al. Processing grid-format real-world graphs on DRAM-based FPGA accelerators with application-specific caching mechanisms
CN111368250B (zh) 基于傅里叶变换/逆变换的数据处理系统、方法及设备
CN112396072A (zh) 基于asic与vgg16的图像分类加速方法及装置
US10250278B2 (en) Compression of a set of integers
CN113325999B (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