CN106951395B - 面向压缩卷积神经网络的并行卷积运算方法及装置 - Google Patents

面向压缩卷积神经网络的并行卷积运算方法及装置 Download PDF

Info

Publication number
CN106951395B
CN106951395B CN201710077750.2A CN201710077750A CN106951395B CN 106951395 B CN106951395 B CN 106951395B CN 201710077750 A CN201710077750 A CN 201710077750A CN 106951395 B CN106951395 B CN 106951395B
Authority
CN
China
Prior art keywords
convolution
convolutional calculation
offset
register
deconvolution parameter
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
Application number
CN201710077750.2A
Other languages
English (en)
Other versions
CN106951395A (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.)
China Exchange Gold Flow Supply Chain Technology (Shanghai) Co., Ltd.
Jiangsu Variable Supercomputer Tech Co ltd
Original Assignee
Shanghai Guest Heron Information 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 Shanghai Guest Heron Information Technology Co Ltd filed Critical Shanghai Guest Heron Information Technology Co Ltd
Priority to CN201710077750.2A priority Critical patent/CN106951395B/zh
Publication of CN106951395A publication Critical patent/CN106951395A/zh
Application granted granted Critical
Publication of CN106951395B publication Critical patent/CN106951395B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/15Correlation function computation including computation of convolution operations
    • G06F17/153Multidimensional correlation or convolution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology

Abstract

本发明提供了一种面向压缩卷积神经网络的并行卷积运算方法及装置,包括:根据输入控制信号卷积数据移位链长度选择、累加偏移量使能以及卷积计算使能决定所采用的操作方式。采用两条串行移位寄存器链,分别输入卷积数据和卷积参数与通道偏移量,在同一输入卷积数据流同时进行3×3和1×1卷积运算。本发明的方法在原有的基于串行移位寄存器链的3×3卷积运算的基础上仅仅增加了一个乘法器、一个累加器、一个参数寄存器和一个偏移量寄存器,实现方法简单,执行效率高,能够有效加快压缩神经网络算法中卷积运算。本发明中的装置可通过简单的硬件单元扩展和复制,可同时输出多个特征图,功耗低、功能单元利用率高,处理速率快的优点。

Description

面向压缩卷积神经网络的并行卷积运算方法及装置
技术领域
本发明涉及数字信号处理以及专用硬件加速器领域,具体地,涉及面向压缩卷积神经网络的并行卷积运算方法及装置。
背景技术
近年来,卷积神经网络(Convolutional Neural Network,CNN)在深度学习中取得了重大的进展。最著名的是在2012年Alex Krizhevsky等人提出了一个经典的CNN计算结构AlexNet,在图像分类和识别中获得了巨大成功。如图1所示,AlexNet的输入为一个3通道的227×227图片数据,其整个处理过程总共包括8层运算,前五层为卷积层,后三层为全连接层,其中第一层卷积采用3×11×11宽度的卷积核,卷积核个数为96,第二层卷积采用96×5×5宽度的卷积核,卷积核个数为256,余下三层卷积都采用不同通道数的3×3宽度卷积核。AlexNet的总参数量超过了8MB,并且单通道卷积核大小不一致,运算复杂,不适合在存储器和计算资源受限的平台上实现。在AlexNet取得成功后,研究人员又提出了其他的更为完善和优化的方法,其中最著名结构有ZFNet[2013年],VGGNet[2014年],GoogleNet[2015年]和SqueezeNet(压缩卷积神经网络)[2016年]等,它们从性能和资源使用率等不同的方面进行优化,不同的CNN结构具有不同的卷积层数、通道维度、卷积核大小、以及每一层卷积核个数等。其中SqueezeNet主要是为了降低CNN模型的参数数量而设计的,它将整个网络封装成多级Fire模块,如图2所示,Fire模块是它的核心构件,将原来AlexNet简单的一层卷积变成两层:压缩层(squeeze)和扩展层(expand),并各自带上Relu激活层。在Squeeze层里全是1×1的卷积核;在expand层里面有数量相等的1×1和3×3的卷积核,expand层之后将1×1和3×3的卷积输出特征图(feature maps)在通道维度拼接起来。SqueezeNet通过将部分3×3卷积替换成1×1的卷积核,将卷积核参数缩小至2MB,相对于AlexNet,其性能并没有明显下降,使得SqueezeNet能够在FPGA和DSP等存储资源受限的设备上高效运行。
卷积运算是CNN计算结构中最为关键的运算,其运算量占据整个网络的90%以上。卷积运算公式为其中1≤i≤nout分别表示第i个输出和第j个输入的feature map,gij表示卷积核,表示卷积运算,bi表示偏移量,nout表示输出feature map的通道数,nin表示输入feature map的通道数。图4显示一个单通道3×3卷积核与一个单通道7×7输入feature map的卷积操作示意图,卷积运算相当于卷积核在二维的feature map上从左至右,从上至下的划窗操作,窗口内的数据与卷积核进行乘累加操作。多通道的输入feature map和卷积核进行卷积运算可以拆分成多个图3所示的单通道卷积运算。针对这种划窗操作,作者Bernard Bosi和Guy Bois提出了一种通过移位寄存器链来实现卷积运算(参考文献:Bernard Bosi和Guy Bois的“Reconfigurable Pipelined 2-D Convolversfor Fast Digital Signal Processing”),如图4所示,其通过一条卷积参数移位寄存器链和一条卷积数据移位寄存器链分别将卷积参数和卷积数据(输入特征图)串行地输入到对应的移位寄存器链当中,其中卷积参数移位寄存器链的长度等于单通道卷积核数据的个数9;卷积数据移位寄存器链分成三层,第一层移位寄存器链长度等于卷积核宽度3,第二和第三层移位寄存器链长度等于输入卷积数据宽度L(L=68),因此卷积数据移位寄存器链的总长度为2L+3,其一次性最大能够支持宽度为68的feature map数据输入进行卷积运算。移位寄存器链每个时钟周期输入一个数据,开始先通过输入端口(input port)串行输入9个卷积核参数至卷积参数移位寄存器链中,然后将输入feature map数据串行地输入到卷积数据移位寄存器链中,当输入数据填满卷积数据移位寄存器链时,每一层卷积数据移位寄存器链中的最后三个寄存器的输出组成一个3×3数据矩阵,它们分别与9个卷积核数据对应相乘并累加,得到输出feature map的第一个数据或者中间数据。这个结构最大的优点是当填满卷积数据移位寄存器链之后,每一个时钟周期输出一个输出feature map的数据,并对输入数据带宽要求不高,适合在资源受限的平台上应用。其缺点是如果输入数据移位寄存器链过长,会导致填充时间加长,但是可以通过将输入feature map分块计算,减少输入卷积数据移位寄存器链的长度。
另外,CNN的每一层有多个卷积核,并且共享同一输入feature maps,可同时加载多个卷积核同时展开卷积运算。传统的方法是利用多个单独的卷积运算单元(包括3×3卷积运算单元、1×1卷积运算单元)并行执行卷积运算,每个卷积运算单元需要加载同一组输入feature map的数据,可能造成输入数据带宽瓶颈或者数据的重复输入,降低系统的效率。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种面向压缩卷积神经网络的并行卷积运算方法及装置。
根据本发明提供的面向压缩卷积神经网络的并行卷积运算方法,包括如下步骤:
构建面向压缩卷积神经网络的并行卷积运算装置,根据输入控制信号卷积数据移位链长度选择、累加偏移量使能以及卷积计算使能决定所采用的操作方式。
优选地,在没有使能1×1卷积计算功能和增加偏移量功能时,从卷积参数存储器读取3×3卷积核的9个参数,串行地写入到卷积参数移位寄存器链中,3×3卷积计算单元读取卷积数据移位链输出的3×3矩阵窗口数据和卷积参数移位寄存器的值进行3×3卷积运算,并将卷积结果输出到外部存储器当中。
优选地,在没有使能1×1卷积计算功能、有使能增加偏移量功能时,从卷积参数存储器读取3×3卷积核的9个参数和3×3卷积计算偏移量,串行地写入到卷积参数移位寄存器链和3×3卷积计算偏移量寄存器中,3×3卷积计算单元读取卷积数据移位链输出的3×3矩阵窗口数据和卷积参数移位寄存器的值进行3×3卷积运算,并将卷积结果累加上偏移量,然后输出到外部存储器当中。
优选地,在有使能1×1卷积计算功能、没有使能累加偏移量功能时,从卷积参数存储器中读取3×3卷积核的9个参数和1×1卷积核的1个参数,串行地写入到卷积参数移位寄存器链和1×1卷积参数寄存器中,3×3卷积计算单元读取卷积数据移位链输出的3×3矩阵窗口数据和卷积参数移位寄存器的值进行3×3卷积运算,并将卷积结果输出到外部存储器当中;1×1卷积计算单元读取卷积数据移位链输出的3×3矩阵窗口数据的中间数据和1×1卷积参数寄存器的值进行1×1卷积运算,并将卷积结果输出到外部存储器当中。
优选地,在有使能1×1卷积计算功能和累加偏移量功能时,从卷积参数存储器中读取3×3卷积核的9个参数、1个3×3卷积计算偏移量、1个1×1卷积核的参数和1个1×1卷积计算偏移量,串行地写入到卷积参数移位寄存器链、3×3卷积计算偏移量寄存器、1×1卷积参数寄存器、以及1×1卷积计算偏移量寄存器中,3×3卷积计算单元读取卷积数据移位链输出的3×3矩阵窗口数据和卷积参数移位寄存器的值进行3×3卷积运算,并将卷积结果累加上偏移量,然后输出到外部存储器当中;1×1卷积计算单元读取卷积数据移位链输出的3×3矩阵窗口数据的中间数据和1×1卷积参数寄存器的值进行1×1卷积运算,并将卷积结果累加上偏移量,然后输出到外部存储器当中。
根据本发明提供的面向压缩卷积神经网络的并行卷积运算装置,包括:基于移位寄存器链的3×3卷积计算模块,所述3×3卷积计算模块中设置有3×3卷积计算偏移量寄存器、1×1卷积计算参数寄存器、1×1卷积计算偏移量寄存器;所述3×3卷积计算偏移量寄存器、1×1卷积计算参数寄存器、1×1卷积计算偏移量寄存器与原有的3×3卷积参数移位寄存器串联;且3×3卷积计算偏移量、1×1卷积计算参数以及1×1卷积计算偏移量统一存放在卷积参数存储器中。
优选地,所述基于移位寄存器链的3×3卷积计算模块还包括:1×1卷积计算单元,所述1×1卷积计算单元中的乘法器的两个输入端分别与1×1卷积计算参数寄存器和卷积数据移位链输出的3×3矩阵窗口的中间数据相连。
与现有技术相比,本发明具有如下的有益效果:
1、本发明针对压缩卷积神经网络中expand层需要计算相同数量的3×3和1×1卷积运算,提供一种并行执行3×3和1×1卷积运算的方法及装置,减少了对输入数据的重复读取,提高卷积运算性能和功能单元利用率,并降低计算功耗。
2、本发明中的方法简单,执行效率高,能够有效加快压缩神经网络算法中卷积运算;本发明中的装置包括输入卷积数据移位链、输入卷积参数移位链、3×3卷积运算单元和1×1卷积运算单元,可通过简单的硬件单元扩展和复制同时输出多个特征图,具有性能好、功耗低、功能单元利用率高、处理速率快的优点。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为AlexNet结构示意图;
图2为SqueezeNet中Fire模块结构示意图;
图3为3×3卷积示意图;
图4为基于移位寄存器链的3×3卷积运算硬件结构示意图;
图5为本发明的并行3×3和1×1并行卷积运算结构示意图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
根据本发明提供的面向压缩卷积神经网络的并行卷积运算装置,包括:基于移位寄存器链的3×3卷积计算模块,所述3×3卷积计算模块中设置有3×3卷积计算偏移量寄存器、1×1卷积计算参数寄存器、1×1卷积计算偏移量寄存器;所述3×3卷积计算偏移量寄存器、1×1卷积计算参数寄存器、1×1卷积计算偏移量寄存器与原有的3×3卷积参数移位寄存器串联;且3×3卷积计算偏移量、1×1卷积计算参数以及1×1卷积计算偏移量统一存放在卷积参数存储器中。
所述基于移位寄存器链的3×3卷积计算模块还包括:1×1卷积计算单元,所述1×1卷积计算单元中的乘法器的两个输入端分别与1×1卷积计算参数寄存器和卷积数据移位链输出的3×3矩阵窗口的中间数据相连。
以下结合附图和具体实施例对本发明作进一步详细说明。
图1显示了AlexNet数据流图,其输入为一个3通道的227×227图片数据,整个处理过程总共包括8层运算,前五层为卷积层,后三层为全连接层,其中第一层卷积采用3×11×11宽度的卷积核,卷积核个数为96,第二层卷积采用96×5×5宽度的卷积核,卷积核个数为256,第三层卷积采用128×3×3宽度卷积核,卷积核个数为384;第四层卷积采用192×3×3卷积核,卷积核个数为384;第五层卷积采用192×3×3卷积核,卷积核个数为128。最后两层全连接层采用2048×2048个参数,最后一层全连接层采用1000×2048个参数。AlexNet对参数需求较大,并且卷积核宽度大小不一致,需要多种卷积计算单元,不适合在资源受限的平台上执行。
图2是SqueezeNet中Fire模块结构。Fire模块是SqueezeNet的核心构件,其将原来AlexNet简单的一层卷积变成两层:压缩层(squeeze)和扩展层(expand),并各自带上Relu激活层。在Squeeze层里全是1×1的卷积核;在expand层里面有数量相等的1×1和3×3的卷积核,expand层之后将1×1和3×3的卷积输出特征图(feature maps)在通道维度拼接起来。SqueezeNet通过将部分3×3卷积替换成1×1的卷积核,将卷积核参数缩小至2MB。本发明能够同时并行地执行expand层的一个3×3卷积运算和1×1卷积运算,加快卷积运算速度,减少输入数据的重复读取。
卷积运算公式为其中1≤i≤nout分别表示第i个输出和第j个输入的feature map,gi,j表示卷积核,表示卷积运算,bi表示偏移量,nout表示输出feature map的通道数,nin表示输入feature map的通道数。
图3是单通道数据的卷积示意图,卷积运算相当于卷积核在二维的feature map上从左至右,从上至下的划窗操作,窗口内的数据与卷积核进行乘累加操作。多通道的输入feature map进行卷积运算可以拆分成多个单通道卷积运算。
图4是由Bernard Bosi和Guy Bois提出了一种通过移位寄存器链来实现卷积运算,其通过一条卷积参数移位寄存器链和一条卷积数据移位寄存器链分别将卷积参数和卷积数据(输入特征图)串行地输入到对应的移位寄存器链当中,其中卷积参数移位寄存器链的长度等于单通道卷积核数据的个数9;卷积数据移位寄存器链分成三层,第一层移位寄存器链长度等于卷积核宽度3,第二和第三层移位寄存器链长度等于输入卷积数据宽度L(L=68),因此卷积数据移位寄存器链的总长度为2L+3,其一次性最大能够支持宽度为68的feature map数据输入进行卷积运算。移位寄存器链每个时钟周期输入一个数据,开始先通过输入端口(input port)串行输入9个卷积核参数至卷积参数移位寄存器链中,然后将输入feature map数据串行地输入到卷积数据移位寄存器链中,当输入数据填满卷积数据移位寄存器链时,每一层卷积数据移位寄存器链中的最后三个寄存器的值组成一个3×3数据矩阵,它们分别与9个卷积核数据对应相乘并累加,得到输出feature map的第一个数据或者中间数据。这个结构最大的优点是当填满卷积数据移位寄存器链之后,每一个时钟周期输出一个输出feature map的数据,并对输入数据带宽要求不高,适合在资源受限的平台上应用。针对SqueezeNet中Fire模块内的expand层,需要单独设置支持1×1和3×3的卷积计算单元,expand层内所有的卷积核共享一组输入数据,这会造成对输入feature map数据的重复读写,同时降低了功能单元的效率。
图5是本发明的支持3×3和1×1并行卷积运算的结构示意图,其包括卷积数据移位链,卷积参数移位链,3×3卷积计算单元,1×1卷积计算单元,其中卷积数据移位链输出一个3×3的数据矩阵卷积参数移位链包括9个3×3卷积参数寄存器(W11~W33)、1个3×3卷积偏移量寄存器(Bias3x3),1个1×1卷积参数寄存器(W1),以及一个1×1卷积偏移量寄存器(Bias1x1)。其运行模式有外部输入控制信号卷积数据移位链长度选择(MUX_sel)、累加偏移量使能(Addbias_en)、以及1×1卷积计算使能(conv1x1_en)决定,其中MUX_sel根据输入feature map数据的宽度控制卷积数据移位链的长度;3×3卷积计算单元和1×1卷积计算单元根据Addbias_en以及conv1x1_en进行不同的操作:
1)在没有使能1×1卷积计算功能和增加偏移量功能时,从卷积参数存储器读取3×3卷积核的9个参数,串行地写入到卷积参数移位寄存器链中,3×3卷积计算单元读取卷积数据移位链输出的3×3矩阵窗口数据和卷积参数移位寄存器的值进行3×3卷积运算,并将卷积结果输出到外部存储器当中;
2)在没有使能1×1卷积计算功能、使能增加偏移量功能时,从卷积参数存储器读取3×3卷积核的9个参数和3×3卷积计算偏移量,串行地写入到卷积参数移位寄存器链和3×3卷积计算偏移量寄存器中,3×3卷积计算单元读取卷积数据移位链输出的3×3矩阵窗口数据和卷积参数移位寄存器的值进行3×3卷积运算,并将卷积结果累加上偏移量,然后输出到外部存储器当中;
3)在使能1×1卷积计算功能、没有使能累加偏移量功能时,从卷积参数存储器中读取3×3卷积核的9个参数和1×1卷积核的1个参数,串行地写入到卷积参数移位寄存器链和1×1卷积参数寄存器中,3×3卷积计算单元读取卷积数据移位链输出的3×3矩阵窗口数据和卷积参数移位寄存器的值进行3×3卷积运算,并将卷积结果输出到外部存储器当中;1×1卷积计算单元读取卷积数据移位链输出的3×3矩阵窗口数据的中间数据D22和1×1卷积参数寄存器的值进行1×1卷积运算,并将卷积结果输出到外部存储器当中;
4)在使能1×1卷积计算功能和累加偏移量功能时,从卷积参数存储器中读取3×3卷积核的9个参数、1个3×3卷积计算偏移量、1个1×1卷积核的参数和1个1×1卷积计算偏移量,串行地写入到卷积参数移位寄存器链、3×3卷积计算偏移量寄存器、1×1卷积参数寄存器、以及1×1卷积计算偏移量寄存器中,3×3卷积计算单元读取卷积数据移位链输出的3×3矩阵窗口数据和卷积参数移位寄存器的值进行3×3卷积运算,并将卷积结果累加上偏移量,然后输出到外部存储器当中;1×1卷积计算单元读取卷积数据移位链输出的3×3矩阵窗口数据的中间数据D22和1×1卷积参数寄存器的值进行1×1卷积运算,并将卷积结果累加上偏移量,然后输出到外部存储器当中。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

Claims (3)

1.一种面向压缩卷积神经网络的并行卷积运算方法,其特征在于,包括如下步骤:
构建面向压缩卷积神经网络的并行卷积运算装置,根据输入控制信号卷积数据移位链长度选择、累加偏移量使能以及卷积计算使能决定所采用的操作方式;
其中,在没有使能1×1卷积计算功能和增加偏移量功能时,从卷积参数存储器读取3×3卷积核的9个参数,串行地写入到卷积参数移位寄存器链中,3×3卷积计算单元读取卷积数据移位链输出的3×3矩阵窗口数据和卷积参数移位寄存器的值进行3×3卷积运算,并将卷积结果输出到外部存储器当中;
在没有使能1×1卷积计算功能、有使能增加偏移量功能时,从卷积参数存储器读取3×3卷积核的9个参数和3×3卷积计算偏移量,串行地写入到卷积参数移位寄存器链和3×3卷积计算偏移量寄存器中,3×3卷积计算单元读取卷积数据移位链输出的3×3矩阵窗口数据和卷积参数移位寄存器的值进行3×3卷积运算,并将卷积结果累加上偏移量,然后输出到外部存储器当中;
在有使能1×1卷积计算功能、没有使能累加偏移量功能时,从卷积参数存储器中读取3×3卷积核的9个参数和1×1卷积核的1个参数,串行地写入到卷积参数移位寄存器链和1×1卷积参数寄存器中,3×3卷积计算单元读取卷积数据移位链输出的3×3矩阵窗口数据和卷积参数移位寄存器的值进行3×3卷积运算,并将卷积结果输出到外部存储器当中;1×1卷积计算单元读取卷积数据移位链输出的3×3矩阵窗口数据的中间数据和1×1卷积参数寄存器的值进行1×1卷积运算,并将卷积结果输出到外部存储器当中;
在有使能1×1卷积计算功能和累加偏移量功能时,从卷积参数存储器中读取3×3卷积核的9个参数、1个3×3卷积计算偏移量、1个1×1卷积核的参数和1个1×1卷积计算偏移量,串行地写入到卷积参数移位寄存器链、3×3卷积计算偏移量寄存器、1×1卷积参数寄存器、以及1×1卷积计算偏移量寄存器中,3×3卷积计算单元读取卷积数据移位链输出的3×3矩阵窗口数据和卷积参数移位寄存器的值进行3×3卷积运算,并将卷积结果累加上偏移量,然后输出到外部存储器当中;1×1卷积计算单元读取卷积数据移位链输出的3×3矩阵窗口数据的中间数据和1×1卷积参数寄存器的值进行1×1卷积运算,并将卷积结果累加上偏移量,然后输出到外部存储器当中。
2.一种面向压缩卷积神经网络的并行卷积运算装置,其特征在于,包括:基于移位寄存器链的3×3卷积计算模块,所述3×3卷积计算模块中设置有3×3卷积计算偏移量寄存器、1×1卷积计算参数寄存器、1×1卷积计算偏移量寄存器;所述3×3卷积计算偏移量寄存器、1×1卷积计算参数寄存器、1×1卷积计算偏移量寄存器与3×3卷积参数移位寄存器串联;且3×3卷积计算偏移量、1×1卷积计算参数以及1×1卷积计算偏移量统一存放在卷积参数存储器中;
其中,在没有使能1×1卷积计算功能和增加偏移量功能时,从卷积参数存储器读取3×3卷积核的9个参数,串行地写入到卷积参数移位寄存器链中,3×3卷积计算单元读取卷积数据移位链输出的3×3矩阵窗口数据和卷积参数移位寄存器的值进行3×3卷积运算,并将卷积结果输出到外部存储器当中;
在没有使能1×1卷积计算功能、有使能增加偏移量功能时,从卷积参数存储器读取3×3卷积核的9个参数和3×3卷积计算偏移量,串行地写入到卷积参数移位寄存器链和3×3卷积计算偏移量寄存器中,3×3卷积计算单元读取卷积数据移位链输出的3×3矩阵窗口数据和卷积参数移位寄存器的值进行3×3卷积运算,并将卷积结果累加上偏移量,然后输出到外部存储器当中;
在有使能1×1卷积计算功能、没有使能累加偏移量功能时,从卷积参数存储器中读取3×3卷积核的9个参数和1×1卷积核的1个参数,串行地写入到卷积参数移位寄存器链和1×1卷积参数寄存器中,3×3卷积计算单元读取卷积数据移位链输出的3×3矩阵窗口数据和卷积参数移位寄存器的值进行3×3卷积运算,并将卷积结果输出到外部存储器当中;1×1卷积计算单元读取卷积数据移位链输出的3×3矩阵窗口数据的中间数据和1×1卷积参数寄存器的值进行1×1卷积运算,并将卷积结果输出到外部存储器当中;
在有使能1×1卷积计算功能和累加偏移量功能时,从卷积参数存储器中读取3×3卷积核的9个参数、1个3×3卷积计算偏移量、1个1×1卷积核的参数和1个1×1卷积计算偏移量,串行地写入到卷积参数移位寄存器链、3×3卷积计算偏移量寄存器、1×1卷积参数寄存器、以及1×1卷积计算偏移量寄存器中,3×3卷积计算单元读取卷积数据移位链输出的3×3矩阵窗口数据和卷积参数移位寄存器的值进行3×3卷积运算,并将卷积结果累加上偏移量,然后输出到外部存储器当中;1×1卷积计算单元读取卷积数据移位链输出的3×3矩阵窗口数据的中间数据和1×1卷积参数寄存器的值进行1×1卷积运算,并将卷积结果累加上偏移量,然后输出到外部存储器当中。
3.根据权利要求2所述的面向压缩卷积神经网络的并行卷积运算装置,其特征在于,所述基于移位寄存器链的3×3卷积计算模块还包括:1×1卷积计算单元,所述1×1卷积计算单元中的乘法器的两个输入端分别与1×1卷积计算参数寄存器和卷积数据移位链输出的3×3矩阵窗口的中间数据相连。
CN201710077750.2A 2017-02-13 2017-02-13 面向压缩卷积神经网络的并行卷积运算方法及装置 Active CN106951395B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710077750.2A CN106951395B (zh) 2017-02-13 2017-02-13 面向压缩卷积神经网络的并行卷积运算方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710077750.2A CN106951395B (zh) 2017-02-13 2017-02-13 面向压缩卷积神经网络的并行卷积运算方法及装置

Publications (2)

Publication Number Publication Date
CN106951395A CN106951395A (zh) 2017-07-14
CN106951395B true CN106951395B (zh) 2018-08-17

Family

ID=59466379

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710077750.2A Active CN106951395B (zh) 2017-02-13 2017-02-13 面向压缩卷积神经网络的并行卷积运算方法及装置

Country Status (1)

Country Link
CN (1) CN106951395B (zh)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109389215B (zh) * 2017-08-03 2020-07-31 杭州海康威视数字技术股份有限公司 一种深度学习网络的网络结构确定方法及装置
JP2019040403A (ja) * 2017-08-25 2019-03-14 ルネサスエレクトロニクス株式会社 半導体装置および画像認識システム
EP3654208A1 (en) * 2017-08-31 2020-05-20 Cambricon Technologies Corporation Limited Chip device and related products
CN107632965B (zh) * 2017-10-17 2019-11-29 中国科学院计算技术研究所 可重构的s型运算装置及运算方法
CN107832262A (zh) * 2017-10-19 2018-03-23 珠海格力电器股份有限公司 卷积运算方法及装置
CN107818367B (zh) * 2017-10-30 2020-12-29 中国科学院计算技术研究所 用于神经网络的处理系统和处理方法
WO2019084788A1 (zh) * 2017-10-31 2019-05-09 深圳市大疆创新科技有限公司 用于神经网络的运算装置、电路及相关方法
CN109754061B (zh) * 2017-11-07 2023-11-24 上海寒武纪信息科技有限公司 卷积扩展指令的执行方法以及相关产品
CN109840459A (zh) * 2017-11-29 2019-06-04 深圳Tcl新技术有限公司 一种人脸表情分类方法、装置及存储介质
WO2019104695A1 (zh) * 2017-11-30 2019-06-06 深圳市大疆创新科技有限公司 用于神经网络的运算装置、芯片、设备及相关方法
CN108304923B (zh) * 2017-12-06 2022-01-18 腾讯科技(深圳)有限公司 卷积运算处理方法及相关产品
CN107862378B (zh) * 2017-12-06 2020-04-24 芯原微电子(上海)股份有限公司 基于多核的卷积神经网络加速方法及系统、存储介质及终端
CN108156519B (zh) * 2017-12-25 2020-12-11 深圳Tcl新技术有限公司 图像分类方法、电视设备及计算机可读存储介质
CN108178037A (zh) * 2017-12-30 2018-06-19 武汉大学 一种基于卷积神经网络的电梯故障识别方法
CN109993291B (zh) * 2017-12-30 2020-07-07 中科寒武纪科技股份有限公司 集成电路芯片装置及相关产品
US11874898B2 (en) 2018-01-15 2024-01-16 Shenzhen Corerain Technologies Co., Ltd. Streaming-based artificial intelligence convolution processing method and apparatus, readable storage medium and terminal
CN109416755B (zh) * 2018-01-15 2021-11-23 深圳鲲云信息科技有限公司 人工智能并行处理方法、装置、可读存储介质、及终端
CN108182471B (zh) * 2018-01-24 2022-02-15 上海岳芯电子科技有限公司 一种卷积神经网络推理加速器及方法
CN108388537B (zh) * 2018-03-06 2020-06-16 上海熠知电子科技有限公司 一种卷积神经网络加速装置和方法
US11468302B2 (en) 2018-03-13 2022-10-11 Recogni Inc. Efficient convolutional engine
CN108596953A (zh) * 2018-04-24 2018-09-28 开放智能机器(上海)有限公司 一种单目标跟踪模型的训练方法
CN110399976B (zh) * 2018-04-25 2022-04-05 华为技术有限公司 计算装置和计算方法
CN108898077B (zh) * 2018-06-15 2021-09-10 杭州天铂红外光电技术有限公司 电力设备红外热图的识别方法和电力设备红外识别系统
CN110647975B (zh) * 2018-06-27 2022-09-13 龙芯中科技术股份有限公司 一种数据处理方法、装置、设备以及介质
CN109034373B (zh) * 2018-07-02 2021-12-21 鼎视智慧(北京)科技有限公司 卷积神经网络的并行处理器及处理方法
CN110796229B (zh) * 2018-08-01 2024-04-12 华为技术有限公司 一种实现卷积运算的装置及方法
CN110826683A (zh) * 2018-08-07 2020-02-21 北京京东尚科信息技术有限公司 一种预测用户行为发生概率的方法和装置
WO2020041934A1 (zh) * 2018-08-27 2020-03-05 华为技术有限公司 一种数据处理设备以及一种数据处理方法
CN109272113B (zh) * 2018-09-13 2022-04-19 深思考人工智能机器人科技(北京)有限公司 一种基于通道的卷积神经网络建立装置及方法
CN109447257B (zh) * 2018-09-18 2021-08-17 复旦大学 一种通道自组织的深度神经网络加速芯片的运算装置
CN109146065B (zh) * 2018-09-30 2021-06-08 中国人民解放军战略支援部队信息工程大学 二维数据的卷积运算方法及装置
CN109472734B (zh) * 2018-10-18 2022-12-27 江苏第二师范学院(江苏省教育科学研究院) 一种基于fpga的目标检测网络及其实现方法
CN111258641B (zh) * 2018-11-30 2022-12-09 上海寒武纪信息科技有限公司 运算方法、装置及相关产品
CN111382764B (zh) * 2018-12-29 2024-02-13 新方正控股发展有限责任公司 人脸识别或手势识别的神经网络模型建立方法、装置及计算机可读存储介质
CN109978135B (zh) * 2019-03-04 2022-03-29 清华大学 基于量化的神经网络压缩方法及系统
CN110059817B (zh) * 2019-04-17 2023-06-13 中山大学 一种实现低资源消耗卷积器的方法
CN110399591B (zh) * 2019-06-28 2021-08-31 苏州浪潮智能科技有限公司 基于卷积神经网络的数据处理方法和装置
CN110414672B (zh) * 2019-07-23 2022-11-01 江苏鼎速网络科技有限公司 卷积运算方法、装置及系统
CN110377874B (zh) * 2019-07-23 2023-05-02 江苏鼎速网络科技有限公司 卷积运算方法及系统
CN110765411A (zh) * 2019-09-05 2020-02-07 天津芯海创科技有限公司 一种卷积神经网络中卷积运算数据复用装置
CN110991609B (zh) * 2019-11-27 2023-12-26 天津大学 用于数据传输的行缓存器
CN111178263B (zh) * 2019-12-30 2023-09-05 武汉美和易思数字科技有限公司 一种实时表情分析方法及其装置
CN111882029A (zh) * 2020-06-22 2020-11-03 华控清交信息科技(北京)有限公司 一种数据处理方法及装置
CN112465110B (zh) * 2020-11-16 2022-09-13 中国电子科技集团公司第五十二研究所 一种卷积神经网络计算优化的硬件加速装置
CN112301322B (zh) * 2020-12-21 2021-04-13 上海陛通半导体能源科技股份有限公司 具有工艺参数智能调节功能的气相沉积设备及方法
CN113642722A (zh) * 2021-07-15 2021-11-12 深圳供电局有限公司 用于卷积计算的芯片及其控制方法、电子装置
CN115982530A (zh) * 2023-03-13 2023-04-18 苏州浪潮智能科技有限公司 加速器运算控制方法、系统、存储介质、装置及设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5376920B2 (ja) * 2008-12-04 2013-12-25 キヤノン株式会社 コンボリューション演算回路、階層的コンボリューション演算回路及び物体認識装置
CN101594154A (zh) * 2009-07-14 2009-12-02 北京航空航天大学 基于编码恢复的tcm神经网络解调方法
CN102833546B (zh) * 2012-08-21 2015-03-04 中国科学院光电技术研究所 基于小波子带交织最优量化的高速图像压缩方法及装置

Also Published As

Publication number Publication date
CN106951395A (zh) 2017-07-14

Similar Documents

Publication Publication Date Title
CN106951395B (zh) 面向压缩卷积神经网络的并行卷积运算方法及装置
CN109992743A (zh) 矩阵乘法器
CN106844294B (zh) 卷积运算芯片和通信设备
CN107153873B (zh) 一种二值卷积神经网络处理器及其使用方法
CN107578098A (zh) 基于脉动阵列的神经网络处理器
CN110263925B (zh) 一种基于fpga的卷积神经网络前向预测的硬件加速实现装置
CN109784489A (zh) 基于fpga的卷积神经网络ip核
CN107341544A (zh) 一种基于可分割阵列的可重构加速器及其实现方法
CN107895191A (zh) 一种信息处理方法及相关产品
CN107729990A (zh) 支持离散数据表示的用于执行人工神经网络正向运算的装置及方法
CN107506828A (zh) 计算装置和方法
CN108764466A (zh) 基于现场可编程门阵列的卷积神经网络硬件及其加速方法
CN108537331A (zh) 一种基于异步逻辑的可重构卷积神经网络加速电路
CN108416327A (zh) 一种目标检测方法、装置、计算机设备及可读存储介质
CN104680236B (zh) 核函数极限学习机分类器的fpga实现方法
CN110163359A (zh) 一种计算装置及方法
CN109711533A (zh) 基于fpga的卷积神经网络模块
CN109146067A (zh) 一种基于FPGA的Policy卷积神经网络加速器
CN106156851A (zh) 面向深度学习业务的加速装置及方法
CN109284824A (zh) 一种基于可重构技术的用于加速卷积和池化运算的装置
CN107085562A (zh) 一种基于高效复用数据流的神经网络处理器及设计方法
CN107203808A (zh) 一种二值卷积装置及相应的二值卷积神经网络处理器
CN107451097A (zh) 国产申威26010众核处理器上多维fft的高性能实现方法
CN109284475A (zh) 一种矩阵卷积计算模块及矩阵卷积计算方法
CN107766935A (zh) 多层人造神经网络

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Chen Feng

Inventor after: Chen Ting

Inventor before: Chen Feng

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20180929

Address after: 201702 room 231, 2 story J, No. 158, Shuang Lian Road, Qingpu District, Shanghai.

Co-patentee after: JIANGSU VARIABLE SUPERCOMPUTER TECH Co.,Ltd.

Patentee after: SHANGHAI KELU INFORMATION TECHNOLOGY CO.,LTD.

Address before: 201799 room 231, 2 story J, No. 158, Shuang Lian Road, Qingpu District, Shanghai.

Patentee before: SHANGHAI KELU INFORMATION TECHNOLOGY CO.,LTD.

CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 201702 room 231, 2 story J, No. 158, Shuang Lian Road, Qingpu District, Shanghai.

Patentee after: China Exchange Gold Flow Supply Chain Technology (Shanghai) Co., Ltd.

Patentee after: JIANGSU VARIABLE SUPERCOMPUTER TECH Co.,Ltd.

Address before: 201702 room 231, 2 story J, No. 158, Shuang Lian Road, Qingpu District, Shanghai.

Patentee before: SHANGHAI KELU INFORMATION TECHNOLOGY CO.,LTD.

Patentee before: JIANGSU VARIABLE SUPERCOMPUTER TECH Co.,Ltd.