CN110147252A - 一种卷积神经网络的并行计算方法及装置 - Google Patents
一种卷积神经网络的并行计算方法及装置 Download PDFInfo
- Publication number
- CN110147252A CN110147252A CN201910348849.0A CN201910348849A CN110147252A CN 110147252 A CN110147252 A CN 110147252A CN 201910348849 A CN201910348849 A CN 201910348849A CN 110147252 A CN110147252 A CN 110147252A
- Authority
- CN
- China
- Prior art keywords
- convolution
- dsp
- pixel
- image data
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 238000013527 convolutional neural network Methods 0.000 title claims abstract description 27
- 230000008707 rearrangement Effects 0.000 claims description 22
- 230000015654 memory Effects 0.000 claims description 19
- 238000009825 accumulation Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 11
- 230000008569 process Effects 0.000 claims description 8
- 238000004422 calculation algorithm Methods 0.000 abstract description 22
- 238000010586 diagram Methods 0.000 description 12
- 239000011159 matrix material Substances 0.000 description 8
- 230000001186 cumulative effect Effects 0.000 description 6
- 235000013399 edible fruits Nutrition 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 3
- 102100030148 Integrator complex subunit 8 Human genes 0.000 description 2
- 101710092891 Integrator complex subunit 8 Proteins 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 1
- 241001269238 Data Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000035800 maturation Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 210000005036 nerve Anatomy 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Complex Calculations (AREA)
- Image Processing (AREA)
Abstract
一种卷积神经网络的并行计算方法及装置,用于提高卷积运算效率。其中的一种卷积神经网络的并行计算方法包括:获取待卷积的图像数据,其中,所述待卷积的图像数据中的任一像素点数据是由原图像数据中对应所述任一像素点数据所在位置的第一像素点数据与相隔N个像素点数据的至少一个第二像素点数据合并得到的,所述第一像素点数据和所述至少一个第二像素点数据位于同一行,N由第一卷积步长确定;将所述待卷积的图像数据与权重数据进行卷积,得到至少两个卷积结果。
Description
技术领域
本申请涉及卷积神经网络加速技术领域,尤其涉及一种卷积神经网络的并行计算方法及装置。
背景技术
随着深度学习技术的不断成熟,卷积神经网络(Convolutional Neural Network,CNN)被广泛用于计算机视觉、语音识别、自然语言处理等领域,其中,卷积神经网络的本质在于卷积运算。
目前,用于卷积计算的基本单元是处理单元(Processing Element,PE),一个PE包括多个数字信号处理(Digital Signal Processing,DSP)元器件,一个DSP可以做一个图像像素点的卷积运算,例如,一个DSP可以做一个位宽为16bit(比特)的图像像素点的卷积运算。
而随着更精确的深度学习模型被开发出来,目标检测、图像识别等许多应用问题只需要INT8或更低定点计算精度来保持可接受的识别准确性,对比INT16数据位宽降低了一半,数据存储空间也减半。在相同的硬件资源下,若继续采用上述传统的计算方式进行运算,运算效率低下,对存储资源也是极大浪费。
发明内容
本申请实施例提供一种卷积神经网络的并行计算方法及装置,用于提高卷积神经网络的运算效率。
第一方面,本申请提供一种卷积神经网络的并行计算方法,包括:获取待卷积的图像数据,其中,所述待卷积的图像数据中的任一像素点数据是由原图像数据中对应所述任一像素点数据所在位置的第一像素点数据与相隔N个像素点数据的至少一个第二像素点数据合并得到的,所述第一像素点数据和所述至少一个第二像素点数据位于同一行,N由第一卷积步长确定;将所述待卷积的图像数据与权重数据进行卷积,得到至少两个卷积结果。
在本申请实施例中,由于待卷积的图像数据中的任一像素点数据是由原图像数据中对应该像素点数据所在位置的第一像素点数据和至少一个第二像素点数据合并得到的,因此,在对该像素点数据进行卷积运算时,实际是进行了原图像数据中至少两个像素点数据的卷积运算,相较于现有技术中一个时钟周期仅进行一个像素点数据的卷积运算,提高了运算效率。
在一个可能的设计中,所述任一像素点数据是由所述第一像素点数据与相隔N个像素点数据的第二像素点数据合并得到的;
获取待卷积的图像数据,包括:将所述原图像数据的每一行中每相隔N个像素点数据的两个像素点数据合并为一个像素点数据,得到重排后的图像数据;从所述重排后的图像数据中获取待卷积的图像数据。
在本申请实施例中,可以先对原图像数据进行重排,进而获取待卷积的图像数据,也可以是在需要进行卷积运算时,直接从原图像数据上读取第一像素点数据和第二像素点数据,本领域普通技术人员可以根据实际需要选择,在此不做限制。
在一个可能的设计中,所述重排后的图像数据对应的第二卷积步长是所述第一卷积步长的两倍。
在一个可能的设计中,所述任一像素点数据是由所述第一像素点数据与相隔N个像素点数据的第二像素点数据合并得到的;将所述待卷积的图像数据与权重数据进行卷积,得到至少两个卷积结果,包括:将所述待卷积的图像数据中第i个像素点数据对应的第i个第一像素点数据输入第i个DSP的第一端口的高位,将相隔N个像素点数据的第i个第二像素点数据输入所述第i个数字信号处理DSP的第二端口的低位,以及将所述权重数据中与所述第i个像素点数据对应的第i个权重数据输入所述第i个DSP的第三端口的低位,将i从1遍历至M,共得到2×M个乘累加结果,M为所述权重数据的个数;对所述2×M个累加结果进行累加,得到两个卷积结果。
在一个可能的设计中,所述M个DSP中每八个DSP级联为一组;对所述2×M个累加结果进行累加,得到两个卷积结果,包括:将每八个DSP中的第j个DSP的乘累加结果累加至第j+1个DSP的乘累加结果上,j从1遍历至8,共得到M/8个中间累加值;通过除所述M个DSP外的DSP对所述M/8个中间累加值进行累加,得到两个卷积结果。
在本申请实施例中,一组八个DSP加上除M个DSP外的DSP,也就是一共九个DSP,便可以实现2×8个乘加运算,其运算效率16/9=1.77,相较于现有技术中一个时钟周期完成一个像素点数据运算,运算效率提高了近2倍。
在一个可能的设计中,所述第j+1个DSP输出乘累加结果的时刻与所述第j个DSP输出乘累加结果的时刻之间的时间间隔为第一预设间隔;第k组DSP输出中间累加值的时刻与第k+1组DSP输出中间累加值的时刻之间的时间间隔为第二预设时间间隔,其中,k为1-M/8中任一整数。
在本申请实施例中,由于DSP中需要进行乘和加运算,因此,后一组DSP要比上一组DSP延迟一拍,组内中的后一DSP要比前一DSP延迟一拍。
在一个可能的设计中,
所述重排后的图像数据所对应的卷积步长为所述原图像数据所对应的卷积步长的两倍。
第二方面,本申请实施例提供一种卷积神经网络的并行计算装置,包括:
存储器,用于存储指令;
处理器,用于读取所述存储器中的指令,执行下列过程:
获取待卷积的图像数据,其中,所述待卷积的图像数据中的任一像素点数据是由原图像数据中对应所述任一像素点数据所在位置的第一像素点数据与相隔N个像素点数据的至少一个第二像素点数据合并得到的,所述第一像素点数据和所述至少一个第二像素点数据位于同一行,N由第一卷积步长确定;
将所述待卷积的图像数据与权重数据进行卷积,得到至少两个卷积结果。
在一个可能的设计中,所述任一像素点数据是由所述第一像素点数据与相隔N个像素点数据的第二像素点数据合并得到的;
在所述处理器获取待卷积的图像数据时,具体用于:
将所述原图像数据的每一行中每相隔N个像素点数据的两个像素点数据合并为一个像素点数据,得到重排后的图像数据;
从所述重排后的图像数据中获取待卷积的图像数据。
在一个可能的设计中,所述重排后的图像数据对应的第二卷积步长是所述第一卷积步长的两倍。
在一个可能的设计中,所述任一像素点数据是由所述第一像素点数据与相隔N个像素点数据的第二像素点数据合并得到的;
在所述处理器将所述待卷积的图像数据与权重数据进行卷积,得到至少两个卷积结果时,具体用于:
将所述待卷积的图像数据中第i个像素点数据对应的第i个第一像素点数据输入第i个DSP的第一端口的高位,将相隔N个像素点数据的第i个第二像素点数据输入所述第i个数字信号处理DSP的第二端口的低位,以及将所述权重数据中与所述第i个像素点数据对应的第i个权重数据输入所述第i个DSP的第三端口的低位,将i从1遍历至M,共得到2×M个乘累加结果,M为所述权重数据的个数;
对所述2×M个累加结果进行累加,得到两个卷积结果。
在一个可能的设计中,所述M个DSP中每八个DSP级联为一组;
在所述处理器对所述2×M个累加结果进行累加,得到两个卷积结果时,具体用于:
将每八个DSP中的第j个DSP的乘累加结果累加至第j+1个DSP的乘累加结果上,j从1遍历至8,共得到M/8个中间累加值;
通过除所述M个DSP外的DSP对所述M/8个中间累加值进行累加,得到两个卷积结果。
在一个可能的设计中,
所述第j+1个DSP输出乘累加结果的时刻与所述第j个DSP输出乘累加结果的时刻之间的时间间隔为第一预设间隔;
第k组DSP输出中间累加值的时刻与第k+1组DSP输出中间累加值的时刻之间的时间间隔为第二预设时间间隔,其中,k为1-M/8中任一整数。
第三方面,本申请实施例提供一种卷积神经网络的并行计算装置,包括:
获取单元,用于获取待卷积的图像数据,其中,所述待卷积的图像数据中的任一像素点数据是由原图像数据中对应所述任一像素点数据所在位置的第一像素点数据与相隔N个像素点数据的至少一个第二像素点数据合并得到的,所述第一像素点数据和所述至少一个第二像素点数据位于同一行,N由第一卷积步长确定;
卷积单元,用于将所述待卷积的图像数据与权重数据进行卷积,得到至少两个卷积结果。
在一个可能的设计中,所述任一像素点数据是由所述第一像素点数据与相隔N个像素点数据的第二像素点数据合并得到的;
所述获取单元用于:
将所述原图像数据的每一行中每相隔N个像素点数据的两个像素点数据合并为一个像素点数据,得到重排后的图像数据;
从所述重排后的图像数据中获取待卷积的图像数据。
在一个可能的设计中,所述重排后的图像数据对应的第二卷积步长至少是所述第一卷积步长的两倍。
在一个可能的设计中,所述任一像素点数据是由所述第一像素点数据与相隔N个像素点数据的第二像素点数据合并得到的;
所述卷积单元用于:
将所述待卷积的图像数据中第i个像素点数据对应的第i个第一像素点数据输入第i个DSP的第一端口的高位,将相隔N个像素点数据的第i个第二像素点数据输入所述第i个数字信号处理DSP的第二端口的低位,以及将所述权重数据中与所述第i个像素点数据对应的第i个权重数据输入所述第i个DSP的第三端口的低位,将i从1遍历至M,共得到2×M个乘累加结果,M为所述权重数据的个数;
对所述2×M个累加结果进行累加,得到两个卷积结果。
在一个可能的设计中,所述M个DSP中每八个DSP级联为一组;
所述卷积单元用于:
将每八个DSP中的第j个DSP的乘累加结果累加至第j+1个DSP的乘累加结果上,j从1遍历至8,共得到M/8个中间累加值;
通过除所述M个DSP外的DSP对所述M/8个中间累加值进行累加,得到两个卷积结果。
在一个可能的设计中,
所述第j+1个DSP输出乘累加结果的时刻与所述第j个DSP输出乘累加结果的时刻之间的时间间隔为第一预设间隔;
第k组DSP输出中间累加值的时刻与第k+1组DSP输出中间累加值的时刻之间的时间间隔为第二预设时间间隔,其中,k为1-M/8中任一整数。
第四方面,本发申请施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被计算机执行时,使所述计算机执行第一方面或上述第一方面的任意一种可能的设计的方法。
第五方面,本申请实施例提供一种计算机程序产品,所述计算机程序产品存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被计算机执行时,使所述计算机执行第一方面或上述第一方面的任意一种可能的设计的方法。
在本申请实施例中,由于待卷积的图像数据中的任一像素点数据是由原图像数据中对应该像素点数据所在位置的第一像素点数据和至少一个第二像素点数据合并得到的,因此,在对该像素点数据进行卷积运算时,实际是进行了原图像数据中至少两个像素点数据的卷积运算,相较于现有技术中一个时钟周期仅进行一个像素点数据的卷积运算,提高了运算效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所介绍的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中卷积运算的示意图;
图2为本申请实施例提供的一种系统框图的示意图;
图3为现有技术中yolov3tiny神经网络的每一层数据结构及参数分布;
图4为本申请提供的并行计算模块的结构示意图;
图5为本申请实施例提供的PE阵列的结构示意图;
图6为本申请实施例提供的PE的结构示意图;
图7为本申请实施例提供的DSP的结构示意图;
图8为本申请实施例提供的一种卷积神经网络的并行计算方法的流程示意图;
图9为本申请实施例提供的重排的图像数据的示意图;
图10为本申请实施例提供的第i个像素点数据进行卷积的示意图;
图11为本申请实施例提供的重排后的图像数据与权重数据进行卷积后得到的卷积结果的示意图;
图12为本申请实施例提供的一种卷积神经网络的并行计算装置;
图13为本申请实施例提供的另一种卷积神经网络的并行计算装置。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
以下,对本申请实施例中的部分用语进行解释说明,以便于本领域技术人员理解。
(1)卷积运算
假设输入是6×6×1的图像矩阵,卷积核是3×3×1权重矩阵,则图像矩阵与权重矩阵的卷积运算过程具体如下:
请参见图1,从6×6×1的图像矩阵中选取p1,p2,p3,p7,p8,p9,p13,p14,p15共9个像素点,将该9个像素点与卷积核的权重矩阵中的对应点相乘后相加,得到卷积结果V1,计算过程如下:
V1=p1*k1+p2*k2+p3*k3+p7*k4+p8*k5+p9*k6+p14*k7+p15*k8+p16*k9;
同理,可以计算得到:
V2=p2*k1+p3*k2+p4*k3+p8*k4+p9*k5+p10*k6+p13*k7+p14*k8+p15*k9;
V3=p3*k1+p4*k2+p5*k3+p9*k4+p10*k5+p11*k6+p15*k7+p16*k8+p17*k9;
…
V16=p22*k1+p23*k2+p24*k3+p28*k4+p29*k5+p30*k6+p34*k7+p35*k8+p36*k9。
通过上面的运算过程,得到一个4×4×1的输出矩阵。在具体实现过程中,若要保证输出矩阵与图像矩阵的尺寸一样大,则可以对图像矩阵进行补零操作,也就是在图像矩阵的周围补零,变成8×8×1图像矩阵。这样,用一个3×3×1的卷积核去卷积一个8×8×1的图像矩阵之后,便可以得到一个大小为6×6×1的输出矩阵。
在上述卷积运算过程中,卷积核的个数是1个。当然,根据实际需要,卷积核的个数也可以是3,16,32,64,128,255,256,512,或者为其它值。卷积处理后的输出矩阵的通道数等于卷积核的个数,也就是输出矩阵的深度等于卷积核的个数。
请参见图2,为本申请实施例提供的一种系统框图。具体为片上系统(System-on-aChip,SoC),包括:内嵌处理器(Processing System,PS)端和现场可编程门阵列(Field-Programmable Gate Array,FPGA)可编程逻辑资源(Programmable logic,PL)端。其中,PS端包括:加速处理器(Accelerated Processing Units,APU)、图形处理器(GraphicsProcessing Unit,GPU)和双倍速率(Double Data Rate,DDR)控制器;PL端包括:并行计算模块(Computation)、捕获(Capture)模块及DDR控制器。
继续参见图2,图2中还可以包括安全数码卡(Secure Digital Memory,SD)、PS_DDR存储器、PL_DDR存储器,以及摄像头。其中,SD卡中存储有训练好的卷积神经网络的权重参数和配置参数,权重参数和配置参数中每个参数为8bit。在系统上电后,APU从SD卡中加载权重参数和配置参数至PS_DDR存储器。Capture将通过摄像头采集的图像数据缓存在内部缓存器(buffer)中,然后启动并行计算模块开始卷积神经网络的计算,在计算完成后,将提取到的特征图像数据通过AXI4(Advanced eXtensible Interface)总线写入PS_DDR存储器中,APU和GPU从PS_DDR存储器获取原始图像数据和特征图像数据进行后处理和显示。
在本申请实施例中,APU可以从SD卡中加载权重参数和配置参数,而无需再通过个人计算机(PersonalComputer,PC)端导入,从而能够实现完全脱离PC机进行计算,从而能够简化整个系统架构。另外,在此需要说明的是,PL端中的捕获模块不是必须的,因为原始图像数据可以是从服务器端获取,存储在SD卡中,在需要进行卷积运算时,从SD卡中调取。这样,在捕获模块不是必须的情况下,摄像头也就不是必须的。因此,本领域普通技术人员可以根据本申请提出的技术方案以实际需求对图2所示的系统框架进行适应性的调整。
接着,下面将详细介绍图2所示的系统架构中的并行计算模块。以yolov3tiny神经网络的特征提取为例,请参见图3,图3是yolov3tiny神经网络的每一层数据结构及参数分布,从图3中可以看出该网络共20层,有13层卷积层、6层池化(Pooling)层和1层上采样(upsample)层,其中卷积层卷积乘加运算总计为5564961792次。由于该卷积神经网络结构复杂,计算数据量巨大,在具体实现过程中,并行计算模块可以通过PE阵列实现,例如,并行计算模块可以包括输入缓存模块(Input Buffer)、PE阵列及输出缓存模块(Out Buffer),具体请参见图4。
在本申请实施例中,由于PL侧的硬件资源含有DSP 1728个,外挂4片DDR4存储器x16bit,依据计算与存储带宽匹配原则,可以在PE阵列模块中设置16个PE,具体请参见图5。其中每个PE负责一个通道方向的卷积计算,一个PE包括64个DSP,具体请参见图6,图6中所示的64个DSP采用级联的结构,也就是将64个DSP分为8组进行部署,每8个DSP级联为一组,这样的级联结构能够减少加法树的使用,同时也减少了PFGA布线资源的消耗。
下面将接着则介绍DSP,每个DSP负责深度方向上每个像素点数据的乘累加运算。DSP的内部结构请参见图7,作为一个示例,图7中所示的DSP包括四个端口、预加器、乘法器以及加法器,其中,四个端口可以是端口A、端口B、端口C及端口D,加法器是用于与其它DSP的乘累加结果进行累加。例如,端口A的输入和端口D输入通过预加器相加后,可以与端口B的输入做乘法运算。此处,端口A的位数可以是27bit,端口D的位数可以是27bit,端口B的位数可以是18bit,当然,随着DSP技术的不断发展,DSP不同端口的位数也可以为其它值,在此仅仅是举例示意,并不对DSP端口的位数进行限制。
下面结合附图介绍本申请实施例提供的技术方案,在下面的介绍过程中,以将本申请提供的技术方案应用在图2所示的系统框架中为例。
请参见图8,本申请一实施例提供一种卷积神经网络的并行计算方法,该方法的流程描述如下:
S801:获取待卷积的图像数据,其中,所述待卷积的图像数据中的任一像素点数据是由原图像数据中对应所述任一像素点数据所在位置的第一像素点数据与相隔N个像素点数据的至少一个第二像素点数据合并得到,所述第一像素点数据和所述至少一个第二像素点数据位于同一行,N由第一卷积步长确定。
在本申请实施例中,由于待卷积的图像数据中的任一像素点数据是由原图像数据中对应任一像素点数据所在位置的第一像素点数据与相隔N个像素点数据的至少一个第二像素点数据合并得到的,因此,在该任一像素点数据与对应的权重数据进行卷积时,实际是同时进行了原图像数据中的两个像素点数据的卷积,这样相较于现有技术中一次只能进行一个像素点数据的卷积的运算,提高了卷积运算的效率。
在本申请实施例中,N由第一卷积步长确定,若第一卷积步长以S表示,则N=S-1。
作为一个示例,若S=1,则N=S-1=1-1=0,这表明第一像素点数据与至少一个第二像素点数据是相邻的两个像素点数据。以原图像数据的尺寸是4×4×3,卷积核的尺寸是3×3×3为例,若第一像素点数据是原图像数据中1,则至少一个第二像素点数据可以是原图像数据中的4或原图像数据中的4和7;若第一像素点数据是原图像数据中的4,则至少一个第二像素点数据可以是原像素数据中的7或原图像数据中的7和10。
作为另一示例,若S=2,则N=S-1=2-1=1,则表明第一像素点数据与至少一个第二像素点数据是非相邻的,中间间隔一个像素点数据。继续沿用上述举例,若第一像素点数据是原图像数据中的1,则至少一个第二像素点数据可以是原图像数据中的7或原图像数据中的7和10,若第一像素点数据是原图像数据中的4,则至少一个第二像素点数据可以是原图像数据中的10或原图像数据中的10和13。
在下面介绍过程中,则以任一像素点数据是由所述第一像素点数据与相隔N个像素点数据的第二像素点数据合并得到的为例。
本申请实施例中,获取待卷积的图像数据的方式包括但不限于以下两种,下面分别进行介绍:
方式一
将所述原图像数据的每一行中每相隔N个像素点数据的两个像素点数据合并为一个像素点数据,得到重排后的图像数据;从所述重排后的图像数据中获取待卷积的图像数据。
在具体实现过程中,请参见图9,以S=1,原图像数据的第一行为例,在该假设条件下,就是将该行中两两相邻的两个像素点数据合并为一个像素点数据,具体的将第一行中的像素点数据1、4合并为一个像素点数据(1,4),将像素点数据4、7合并为一个像素点数据(4,7),将像素点数据7、10合并为一个像素点数据(7,10),将像素点数据10、13合并为像素点数据(10,13),将像素点数据13、16合并为像素点数据(13,16);按照上述示例,对于深度方向上的第二行,则将像素点数据2、5合并为一个像素点数据(2,5),将像素点数据5、8合并为一个像素点数据(5,8),将像素点数据8、11合并为一个像素点数据(8,11),将像素点数据14、17合并为一个像素点数据(14,17),依次类推,将原图像数据转化为3×3×3的重排后的图像数据。
在获得重排后的图像数据之后,则从重排后的图像数据中获取待卷积的图像数据,在本申请实施例中,由于一个PE阵列包括16个PE,一个PE负责一个通道方向上的卷积计算,因此,获取的待卷积数据是该通道方向上的卷积核在重排后的图像上的初始位置上对应的图像数据,或者是以卷积步长移动一次后所对应的图像数据。
方式二
在本申请实施例中,也可以不用事先对原图像数据进行转化,而是在需要进行卷积计算时,直接从原图像数据读取任一像素点数据所在位置的第一像素点数据与相隔N个像素点数据的至少一个第二像素点数据。
本领域普通技术人员可以根据实际需要选择上述方式一或方式二中的实现方式,在此不做限制。
S802:将所述待卷积的图像数据与权重数据进行卷积,得到至少两个卷积结果。其中,至少两个卷积结果为原图像数据与权重数据进行卷积之后得到的卷积结果中的同一行上相邻的两个像素点数据。
在本申请实施例中,由于一个DSP负责深度方向上一个像素点数据的卷积运算,也就是一个DSP对应一个像素点数据。因此,在具体实现过程中,以第i个像素点数据为例,则是将待卷积的图像数据中第i个像素点数据对应的第i个第一像素点数据输入第i个DSP的第一端口的高位,将相隔N个像素点数据的第i个第二像素点数据输入第i个DSP的第二端口的低位,以及将权重数据中与第i个像素点数据对应的第i个权重数据输入第i个DSP的第三端口的低位,将i从1遍历至M,共得到2×M个乘累加结果,M为权重数据的个数;对所述2×M个累加结果进行累加,得到两个卷积结果。其中,第一端口可以是图7所示的端口A,第二端口可以是图7所示的端口D,第三端口可以是图7所示的端口B。
继续沿用上述举例,以原图像数据中每个像素点数据的位数是8位,权重数据的位数也是8位,以待卷积的图像数据中的第i个像素点数据是(1,4)为例,则将像素点数据1对应的8bit输入到端口A的高8位,并在低19位补零,将像素点数据4对应的8bit数据输入到端口D的低8位,并在高19位补零,将权重数据中对应像素点数据1的8bit数据输入到端口B的低8位,并在高10位补零,这样经过DSP的预加器及乘法器,便能够实现A×B+D×B的运算,具体请参见图10。
在本申请实施例中,上述中的第i个像素点数据(1,4)可以是理解为在一个通道方向上,卷积核在原图像数据上处于第一位置时对应的第一点以及在原图像数据上按照卷积步长进行移动后处于第二位置时对应的第一点,这样,就实现了一次进行两个像素点数据的卷积运算,从而能够提高卷积运算的效率。
在i从1遍历至M,则可以得到2×M个乘累加结果。在对2×M个乘累加结果进行累加后,便可得到两个卷积结果,具体实现过程如下:
将每八个DSP中的第j个DSP的乘累加结果累加至第j+1个DSP的乘累加结果上,j从1遍历至8,共得到M/8个中间累加值;
通过除所述M个DSP外的DSP对所述M/8个中间累加值进行累加,得到两个卷积结果。
在本申请实施例中,由于DSP中包括有加法器,因此可以实现DSP运算结果的累加,然而DSP的乘累加结果中高位项和低位项之间时钟保持间隔3位,这样在保证在低位不溢出的情况下每个DSP最多累加8个乘积项,在8个乘积项之后,需要使用额外的DSP来进行累加。因此,在本申请实施例中,在DSP实现8个乘积项累加之后,则需要使用除M个DSP外的DSP来对M/8个中间累加值进一步累加。
所以,基于上述分析,本申请实施例中,9个DSP可以执行8×2INT8乘加运算,相比一个时钟周期计算1个像素点数据的乘加运算,运算性能提高了16/9=1.77倍,也就是可以将卷积神经网络的计算性能提升近2倍,并且所有的输入图像数据和权重数据均为INT8相比于INT16存储空间和存储带宽也明显降低了一半。
在此,需要说明的是,在DSP的端口A和端口B的位数为27bit,原图像数据的每个像素点数据为8位时,通过本申请提供的技术方案,可以实现一个时钟周期计算2个像素点数据的乘加运算,而在DSP端口的位数增加,或者原图像数据的每个像素点数据位数降低时,还可以实现一个时钟周期计算2个以上的像素点数据的乘加运算。
在此需要说明的是,对于重排后的图像数据,卷积步长为第二卷积步长,是第一卷积步长的2倍。例如,第一卷积步长是1,则第二卷积步长是2。
在每个PE处理完对应通道的卷积核的卷积运算后,便能够得到原图像数据与权重数据进行卷积运算的卷积结果,具体请参见图11。对于图11中,原图像数据的尺寸是D×W×H,卷积核的个数是P个,也就是说通道数是P,卷积核的尺寸是K×K×D,原图像数据与卷积核对应的像素点数据进行卷积运算后输出R×C×N,其中,R=(W+2p-K)/S+1,C=(H+2p-K)/S+1,p为补零填充的行或列的数据,p=1。S为第一卷积步长。为适用上述提出的并行计算方法,首先要将原数据图像按照图9所示的重排方法,将原图像数据转化为重排后的图像数据,在这时,卷积步长需要调整为第二卷积步长,为第一卷积步长的两倍。
进一步,在本申请实施例中,所述第j+1个DSP输出乘累加结果的时刻与所述第j个DSP输出乘累加结果的时刻之间的时间间隔为第一预设间隔;
第k组DSP输出中间累加值的时刻与第k+1组DSP输出中间累加值的时刻之间的时间间隔为第二预设时间间隔,其中,k为1-M/8中任一整数。
在本申请实施例中,第一预设时间间隔和第二预设时间间隔可以是一个时钟周期。由于DSP要完成乘法和加法运算,因此,为了使后一个DSP能够与前一个DSP输出的乘累加结果进行累加,则需要将后一个DSP延迟一拍,也就是延迟一个时钟周期,而对于每一组最后一个DSP输出结果是通过除M个DSP外的DSP进行累加,也就是累加DSP,而累加DSP有一个输入端口,因此为了完成各组DSP输出的中间累加值的累加,则将后一组DSP比前一组DSP延迟一拍,也就是延迟一个时钟周期。
最后,需要说明的是,本申请提供的卷积神经网络的并行计算方法,应用至上述yolov3tiny神经网络时,对于前面3层卷积层深度方向不够64时,需要在原图像数据和权重数据的调度上进行重新排列或者补零,从第4层卷积层开始就无需额外的数据调度进行卷积运算了。
下面结合附图介绍本申请实施例提供的装置。
请参见图12,为本申请提供的一种卷积神经网络的并行计算装置1200,包括:
存储器1201,用于存储指令;
处理器1202,用于读取所述存储器中的指令,执行下列过程:
获取待卷积的图像数据,其中,所述待卷积的图像数据中的任一像素点数据是由原图像数据中对应所述任一像素点数据所在位置的第一像素点数据与相隔N个像素点数据的至少一个第二像素点数据合并得到的,所述第一像素点数据和所述至少一个第二像素点数据位于同一行,N由卷积步长确定;
将所述待卷积的图像数据与权重数据进行卷积,得到至少两个卷积结果。
在本申请实施例中,处理器1202可以是中央处理器(central processing unit,CPU),或特定应用集成电路(application-specific integrated circuit,ASIC),可以是一个或多个用于控制程序执行的集成电路,可以是基带芯片,等等。存储器1201的数量可以是一个或多个,存储器可以是只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)或磁盘存储器,等等。
在一个可能的设计中,所述任一像素点数据是由所述第一像素点数据与相隔N个像素点数据的第二像素点数据合并得到的;
在所述处理器1202获取待卷积的图像数据时,具体用于:
将所述原图像数据的每一行中每相隔N个像素点数据的两个像素点数据合并为一个像素点数据,得到重排后的图像数据;
从所述重排后的图像数据中获取待卷积的图像数据。
在一个可能的设计中,所述重排后的图像数据对应的第二卷积步长是所述第一卷积步长的两倍。
在一个可能的设计中,所述任一像素点数据是由所述第一像素点数据与相隔N个像素点数据的第二像素点数据合并得到的;
在所述处理器1202将所述待卷积的图像数据与权重数据进行卷积,得到至少两个卷积结果时,具体用于:
将所述待卷积的图像数据中第i个像素点数据对应的第i个第一像素点数据输入第i个DSP的第一端口的高位,将相隔N个像素点数据的第i个第二像素点数据输入所述第i个数字信号处理DSP的第二端口的低位,以及将所述权重数据中与所述第i个像素点数据对应的第i个权重数据输入所述第i个DSP的第三端口的低位,将i从1遍历至M,共得到2×M个乘累加结果,M为所述权重数据的个数;
对所述2×M个累加结果进行累加,得到两个卷积结果。
在一个可能的设计中,所述M个DSP中每八个DSP级联为一组;
在所述处理器1202对所述2×M个累加结果进行累加,得到两个卷积结果时,具体用于:
将每八个DSP中的第j个DSP的乘累加结果累加至第j+1个DSP的乘累加结果上,j从1遍历至8,共得到M/8个中间累加值;
通过除所述M个DSP外的DSP对所述M/8个中间累加值进行累加,得到两个卷积结果。
在一个可能的设计中,
所述第j+1个DSP输出乘累加结果的时刻与所述第j个DSP输出乘累加结果的时刻之间的时间间隔为第一预设间隔;
第k组DSP输出中间累加值的时刻与第k+1组DSP输出中间累加值的时刻之间的时间间隔为第二预设时间间隔,其中,k为1-M/8中任一整数。
请参见图13,为本申请提供的一种卷积神经网络的并行计算装置1300,包括:
获取单元1301,用于获取待卷积的图像数据,其中,所述待卷积的图像数据中的任一像素点数据是由原图像数据中对应所述任一像素点数据所在位置的第一像素点数据与相隔N个像素点数据的至少一个第二像素点数据合并得到的,所述第一像素点数据和所述至少一个第二像素点数据位于同一行,N由卷积步长确定;
卷积单元1302,用于将所述待卷积的图像数据与权重数据进行卷积,得到至少两个卷积结果。
在一个可能的设计中,所述任一像素点数据是由所述第一像素点数据与相隔N个像素点数据的第二像素点数据合并得到的;
所述获取单元1301用于:
将所述原图像数据的每一行中每相隔N个像素点数据的两个像素点数据合并为一个像素点数据,得到重排后的图像数据;
从所述重排后的图像数据中获取待卷积的图像数据。
在一个可能的设计中,所述重排后的图像数据对应的第二卷积步长是所述第一卷积步长的两倍。
在一个可能的设计中,所述任一像素点数据是由所述第一像素点数据与相隔N个像素点数据的第二像素点数据合并得到的;
所述卷积单元1302用于:
将所述待卷积的图像数据中第i个像素点数据对应的第i个第一像素点数据输入第i个DSP的第一端口的高位,将相隔N个像素点数据的第i个第二像素点数据输入所述第i个数字信号处理DSP的第二端口的低位,以及将所述权重数据中与所述第i个像素点数据对应的第i个权重数据输入所述第i个DSP的第三端口的低位,将i从1遍历至M,共得到2×M个乘累加结果,M为所述权重数据的个数;
对所述2×M个累加结果进行累加,得到两个卷积结果。
在一个可能的设计中,所述M个DSP中每八个DSP级联为一组;
所述卷积单元1302用于:
将每八个DSP中的第j个DSP的乘累加结果累加至第j+1个DSP的乘累加结果上,j从1遍历至8,共得到M/8个中间累加值;
通过除所述M个DSP外的DSP对所述M/8个中间累加值进行累加,得到两个卷积结果。
在一个可能的设计中,
所述第j+1个DSP输出乘累加结果的时刻与所述第j个DSP输出乘累加结果的时刻之间的时间间隔为第一预设间隔;
第k组DSP输出中间累加值的时刻与第k+1组DSP输出中间累加值的时刻之间的时间间隔为第二预设时间间隔,其中,k为1-M/8中任一整数。
以上所述,以上实施例仅用以对本申请的技术方案进行了详细介绍,但以上实施例的说明只是用于帮助理解本发明实施例的方法,不应理解为对本发明实施例的限制。本技术领域的技术人员可轻易想到的变化或替换,都应涵盖在本发明实施例的保护范围之内。
Claims (14)
1.一种卷积神经网络的并行计算方法,其特征在于,所述方法包括:
获取待卷积的图像数据,其中,所述待卷积的图像数据中的任一像素点数据是由原图像数据中对应所述任一像素点数据所在位置的第一像素点数据与相隔N个像素点数据的至少一个第二像素点数据合并得到的,所述第一像素点数据和所述至少一个第二像素点数据位于同一行,N由第一卷积步长确定;
将所述待卷积的图像数据与权重数据进行卷积,得到至少两个卷积结果。
2.根据权利要求1所述的方法,其特征在于,所述任一像素点数据是由所述第一像素点数据与相隔N个像素点数据的第二像素点数据合并得到的;
获取待卷积的图像数据,包括:
将所述原图像数据的每一行中每相隔N个像素点数据的两个像素点数据合并为一个像素点数据,得到重排后的图像数据;
从所述重排后的图像数据中获取待卷积的图像数据。
3.根据权利要求2所述的方法,其特征在于,
所述重排后的图像数据对应的第二卷积步长是所述第一卷积步长的两倍。
4.根据权利要求1所述的方法,其特征在于,所述任一像素点数据是由所述第一像素点数据与相隔N个像素点数据的第二像素点数据合并得到的;
将所述待卷积的图像数据与权重数据进行卷积,得到至少两个卷积结果,包括:
将所述待卷积的图像数据中第i个像素点数据对应的第i个第一像素点数据输入第i个DSP的第一端口的高位,将相隔N个像素点数据的第i个第二像素点数据输入所述第i个数字信号处理DSP的第二端口的低位,以及将所述权重数据中与所述第i个像素点数据对应的第i个权重数据输入所述第i个DSP的第三端口的低位,将i从1遍历至M,共得到2×M个乘累加结果,M为所述权重数据的个数;
对所述2×M个累加结果进行累加,得到两个卷积结果。
5.根据权利要求4所述的方法,其特征在于,所述M个DSP中每八个DSP级联为一组;
对所述2×M个累加结果进行累加,得到两个卷积结果,包括:
将每八个DSP中的第j个DSP的乘累加结果累加至第j+1个DSP的乘累加结果上,j从1遍历至8,共得到M/8个中间累加值;
通过除所述M个DSP外的DSP对所述M/8个中间累加值进行累加,得到两个卷积结果。
6.根据权利要求5所述的方法,其特征在于,
所述第j+1个DSP输出乘累加结果的时刻与所述第j个DSP输出乘累加结果的时刻之间的时间间隔为第一预设间隔;
第k组DSP输出中间累加值的时刻与第k+1组DSP输出中间累加值的时刻之间的时间间隔为第二预设时间间隔,其中,k为1-M/8中任一整数。
7.一种卷积神经网络的并行计算装置,其特征在于,包括:
存储器,用于存储指令;
处理器,用于读取所述存储器中的指令,执行下列过程:
获取待卷积的图像数据,其中,所述待卷积的图像数据中的任一像素点数据是由原图像数据中对应所述任一像素点数据所在位置的第一像素点数据与相隔N个像素点数据的至少一个第二像素点数据合并得到的,所述第一像素点数据和所述至少一个第二像素点数据位于同一行,N由第一卷积步长确定;
将所述待卷积的图像数据与权重数据进行卷积,得到至少两个卷积结果。
8.根据权利要求7所述的装置,其特征在于,所述任一像素点数据是由所述第一像素点数据与相隔N个像素点数据的第二像素点数据合并得到的;
在所述处理器获取待卷积的图像数据时,具体用于:
将所述原图像数据的每一行中每相隔N个像素点数据的两个像素点数据合并为一个像素点数据,得到重排后的图像数据;
从所述重排后的图像数据中获取待卷积的图像数据。
9.根据权利要求8所述的装置,其特征在于,
所述重排后的图像数据对应的第二卷积步长是所述第一卷积步长的两倍。
10.根据权利要求7所述的装置,其特征在于,所述任一像素点数据是由所述第一像素点数据与相隔N个像素点数据的第二像素点数据合并得到的;
在所述处理器将所述待卷积的图像数据与权重数据进行卷积,得到至少两个卷积结果时,具体用于:
将所述待卷积的图像数据中第i个像素点数据对应的第i个第一像素点数据输入第i个DSP的第一端口的高位,将相隔N个像素点数据的第i个第二像素点数据输入所述第i个数字信号处理DSP的第二端口的低位,以及将所述权重数据中与所述第i个像素点数据对应的第i个权重数据输入所述第i个DSP的第三端口的低位,将i从1遍历至M,共得到2×M个乘累加结果,M为所述权重数据的个数;
对所述2×M个累加结果进行累加,得到两个卷积结果。
11.根据权利要求10所述的装置,其特征在于,所述M个DSP中每八个DSP级联为一组;
在所述处理器对所述2×M个累加结果进行累加,得到两个卷积结果时,具体用于:
将每八个DSP中的第j个DSP的乘累加结果累加至第j+1个DSP的乘累加结果上,j从1遍历至8,共得到M/8个中间累加值;
通过除所述M个DSP外的DSP对所述M/8个中间累加值进行累加,得到两个卷积结果。
12.根据权利要求11所述的装置,其特征在于,
所述第j+1个DSP输出乘累加结果的时刻与所述第j个DSP输出乘累加结果的时刻之间的时间间隔为第一预设间隔;
第k组DSP输出中间累加值的时刻与第k+1组DSP输出中间累加值的时刻之间的时间间隔为第二预设时间间隔,其中,k为1-M/8中任一整数。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被计算机执行时,使所述计算机执行如权利要求1-6中任一所述的方法。
14.一种计算机程序产品,其特征在于,所述计算机程序产品存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被计算机执行时,使所述计算机执行如权利要求1-6中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910348849.0A CN110147252A (zh) | 2019-04-28 | 2019-04-28 | 一种卷积神经网络的并行计算方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910348849.0A CN110147252A (zh) | 2019-04-28 | 2019-04-28 | 一种卷积神经网络的并行计算方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110147252A true CN110147252A (zh) | 2019-08-20 |
Family
ID=67594002
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910348849.0A Pending CN110147252A (zh) | 2019-04-28 | 2019-04-28 | 一种卷积神经网络的并行计算方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110147252A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110930290A (zh) * | 2019-11-13 | 2020-03-27 | 东软睿驰汽车技术(沈阳)有限公司 | 一种数据处理方法及装置 |
CN112200300A (zh) * | 2020-09-15 | 2021-01-08 | 厦门星宸科技有限公司 | 卷积神经网络运算方法及装置 |
CN112329681A (zh) * | 2020-11-13 | 2021-02-05 | 北京思比科微电子技术股份有限公司 | 一种应用于指纹识别的滤波方法 |
CN112668708A (zh) * | 2020-12-28 | 2021-04-16 | 中国电子科技集团公司第五十二研究所 | 一种提高数据利用率的卷积运算装置 |
WO2021184143A1 (zh) * | 2020-03-16 | 2021-09-23 | 华为技术有限公司 | 一种数据处理装置以及数据处理方法 |
CN113743602A (zh) * | 2020-05-27 | 2021-12-03 | 合肥君正科技有限公司 | 一种提高模型后处理速度的方法 |
CN114119344A (zh) * | 2021-11-30 | 2022-03-01 | 中国科学院半导体研究所 | 数据处理方法及数据处理装置 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1506807A (zh) * | 2002-10-25 | 2004-06-23 | ض� | 用于数据的并行右移位合并的方法和装置 |
CN107341127A (zh) * | 2017-07-05 | 2017-11-10 | 西安电子科技大学 | 基于OpenCL标准的卷积神经网络加速方法 |
US20170347060A1 (en) * | 2015-02-19 | 2017-11-30 | Magic Pony Technology Limited | Visual Processing Using Sub-Pixel Convolutions |
CN107609601A (zh) * | 2017-09-28 | 2018-01-19 | 北京计算机技术及应用研究所 | 一种基于多层卷积神经网络的舰船目标识别方法 |
CN107622427A (zh) * | 2016-07-13 | 2018-01-23 | 阿里巴巴集团控股有限公司 | 深度学习的方法、装置及系统 |
CN108154192A (zh) * | 2018-01-12 | 2018-06-12 | 西安电子科技大学 | 基于多尺度卷积与特征融合的高分辨sar地物分类方法 |
CN108229379A (zh) * | 2017-12-29 | 2018-06-29 | 广东欧珀移动通信有限公司 | 图像识别方法、装置、计算机设备和存储介质 |
CN109032781A (zh) * | 2018-07-13 | 2018-12-18 | 重庆邮电大学 | 一种卷积神经网络算法的fpga并行系统 |
CN109063825A (zh) * | 2018-08-01 | 2018-12-21 | 清华大学 | 卷积神经网络加速装置 |
CN109492615A (zh) * | 2018-11-29 | 2019-03-19 | 中山大学 | 基于cnn低层语义特征密度图的人群密度估计方法 |
-
2019
- 2019-04-28 CN CN201910348849.0A patent/CN110147252A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1506807A (zh) * | 2002-10-25 | 2004-06-23 | ض� | 用于数据的并行右移位合并的方法和装置 |
US20170347060A1 (en) * | 2015-02-19 | 2017-11-30 | Magic Pony Technology Limited | Visual Processing Using Sub-Pixel Convolutions |
CN107622427A (zh) * | 2016-07-13 | 2018-01-23 | 阿里巴巴集团控股有限公司 | 深度学习的方法、装置及系统 |
CN107341127A (zh) * | 2017-07-05 | 2017-11-10 | 西安电子科技大学 | 基于OpenCL标准的卷积神经网络加速方法 |
CN107609601A (zh) * | 2017-09-28 | 2018-01-19 | 北京计算机技术及应用研究所 | 一种基于多层卷积神经网络的舰船目标识别方法 |
CN108229379A (zh) * | 2017-12-29 | 2018-06-29 | 广东欧珀移动通信有限公司 | 图像识别方法、装置、计算机设备和存储介质 |
CN108154192A (zh) * | 2018-01-12 | 2018-06-12 | 西安电子科技大学 | 基于多尺度卷积与特征融合的高分辨sar地物分类方法 |
CN109032781A (zh) * | 2018-07-13 | 2018-12-18 | 重庆邮电大学 | 一种卷积神经网络算法的fpga并行系统 |
CN109063825A (zh) * | 2018-08-01 | 2018-12-21 | 清华大学 | 卷积神经网络加速装置 |
CN109492615A (zh) * | 2018-11-29 | 2019-03-19 | 中山大学 | 基于cnn低层语义特征密度图的人群密度估计方法 |
Non-Patent Citations (1)
Title |
---|
常亮等: "图像理解中的卷积神经网络", 《自动化学报》 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110930290A (zh) * | 2019-11-13 | 2020-03-27 | 东软睿驰汽车技术(沈阳)有限公司 | 一种数据处理方法及装置 |
CN110930290B (zh) * | 2019-11-13 | 2023-07-07 | 东软睿驰汽车技术(沈阳)有限公司 | 一种数据处理方法及装置 |
WO2021184143A1 (zh) * | 2020-03-16 | 2021-09-23 | 华为技术有限公司 | 一种数据处理装置以及数据处理方法 |
CN113743602A (zh) * | 2020-05-27 | 2021-12-03 | 合肥君正科技有限公司 | 一种提高模型后处理速度的方法 |
CN113743602B (zh) * | 2020-05-27 | 2024-05-03 | 合肥君正科技有限公司 | 一种提高模型后处理速度的方法 |
CN112200300A (zh) * | 2020-09-15 | 2021-01-08 | 厦门星宸科技有限公司 | 卷积神经网络运算方法及装置 |
CN112200300B (zh) * | 2020-09-15 | 2024-03-01 | 星宸科技股份有限公司 | 卷积神经网络运算方法及装置 |
CN112329681A (zh) * | 2020-11-13 | 2021-02-05 | 北京思比科微电子技术股份有限公司 | 一种应用于指纹识别的滤波方法 |
CN112668708A (zh) * | 2020-12-28 | 2021-04-16 | 中国电子科技集团公司第五十二研究所 | 一种提高数据利用率的卷积运算装置 |
CN112668708B (zh) * | 2020-12-28 | 2022-10-14 | 中国电子科技集团公司第五十二研究所 | 一种提高数据利用率的卷积运算装置 |
CN114119344A (zh) * | 2021-11-30 | 2022-03-01 | 中国科学院半导体研究所 | 数据处理方法及数据处理装置 |
CN114119344B (zh) * | 2021-11-30 | 2025-02-28 | 中国科学院半导体研究所 | 数据处理方法及数据处理装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110147252A (zh) | 一种卷积神经网络的并行计算方法及装置 | |
CN111684473B (zh) | 提高神经网络阵列的性能 | |
CN110050267B (zh) | 用于数据管理的系统和方法 | |
CN108205701B (zh) | 一种执行卷积计算的系统及方法 | |
CN113033794B (zh) | 基于深度可分离卷积的轻量级神经网络硬件加速器 | |
CN108229645A (zh) | 卷积加速和计算处理方法、装置、电子设备及存储介质 | |
CN112200300B (zh) | 卷积神经网络运算方法及装置 | |
CN106951395A (zh) | 面向压缩卷积神经网络的并行卷积运算方法及装置 | |
CN110188869B (zh) | 一种基于卷积神经网络算法的集成电路加速计算的方法及系统 | |
CN110780923A (zh) | 应用于二值化卷积神经网络的硬件加速器及其数据处理方法 | |
CN115880132B (zh) | 图形处理器、矩阵乘法任务处理方法、装置及存储介质 | |
CN113469350A (zh) | 一种适于npu的深度卷积神经网络加速方法和系统 | |
US20230267740A1 (en) | Video data processing method and system, and relevant assemblies | |
EP4542446A2 (en) | Processing for multiple input data sets | |
CN107516131A (zh) | 卷积计算的加速方法和装置、电子设备和存储介质 | |
CN115238863A (zh) | 一种卷积神经网络卷积层的硬件加速方法、系统及应用 | |
WO2025044276A1 (zh) | 数据处理方法、装置、计算机设备及存储介质 | |
CN110414672B (zh) | 卷积运算方法、装置及系统 | |
CN110009644B (zh) | 一种特征图行像素分段的方法和装置 | |
US20210303992A1 (en) | Executing neural networks on electronic devices | |
CN109063822B (zh) | 一种计算方法及计算装置 | |
US11995569B2 (en) | Architecture to support tanh and sigmoid operations for inference acceleration in machine learning | |
CN115293978A (zh) | 卷积运算电路和方法、图像处理设备 | |
CN108415881A (zh) | 卷积神经网络的运算装置及方法 | |
KR102810918B1 (ko) | 뉴럴 네트워크 프로세서에서의 3차원 콘볼루션 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190820 |