CN111832717B - 芯片及用于卷积计算的处理装置 - Google Patents
芯片及用于卷积计算的处理装置 Download PDFInfo
- Publication number
- CN111832717B CN111832717B CN202010586010.3A CN202010586010A CN111832717B CN 111832717 B CN111832717 B CN 111832717B CN 202010586010 A CN202010586010 A CN 202010586010A CN 111832717 B CN111832717 B CN 111832717B
- Authority
- CN
- China
- Prior art keywords
- module
- convolution
- batch normalization
- output
- row
- 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
Images
Classifications
-
- 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/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- 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
Abstract
本发明提供一种芯片结构及用于卷积计算的处理模块,所述处理模块接收卷积模块的输出,处理模块包括:偏置模块,连接至所述卷积模块的输出,将所述卷积模块的输出结果进行偏置处理;前激活模块,连接至所述偏置模块,对所述偏置模块的输出进行激活处理;批归一化模块,连接至所述前激活模块,对所述前激活模块的输出进行批归一化处理;后激活模块,连接至所述批归一化模块,对所述批归一化模块的输出进行激活处理;池化模块,连接至所述前激活模块、批归一化模块以及后激活模块中的一个或多个模块,对所连接的模块的输出进行池化处理;控制模块,通过参数配置激活一个或多个模块。本发明降低芯片功耗和数据延时。
Description
技术领域
本发明涉及卷积神经网络领域,尤其涉及一种芯片结构及用于卷积计算的处理模块。
背景技术
卷积神经网络(Convolutional Neural Network,CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。它包括卷积层(convolutional layer)和池化层(pooling layer)。卷积神经网络已广泛应用于图像分类、物体识别、目标追踪。
对于卷积神经网络的处理芯片,在卷积处理之后的各个处理模块之间存在互相的制约依存关系,无法灵活广泛地支持不同算法模型,且现有技术中处理模块物理上相互独立,在进行计算时,需要分别自片外储存模块进行读写,增加芯片功耗和数据延时。
发明内容
本发明为了克服上述现有技术存在的缺陷,提供一种芯片结构及用于卷积计算的处理模块,以在卷积处理之后的各个模块通过控制模块进行激活,且模块之间不存在互相的制约依存关系,可以灵活广泛地支持不同算法模型,且各模块以流水线的方式实现,在进行计算时,无需分别自片外储存模块进行读写,降低芯片功耗和数据延时。
根据本发明的一个方面,提供一种用于卷积计算的处理模块,所述处理模块接收卷积模块的输出,包括:
偏置模块,连接至所述卷积模块的输出,配置成将所述卷积模块的输出结果进行偏置处理;
前激活模块,连接至所述偏置模块,配置成对所述偏置模块的输出进行激活处理;
批归一化模块,连接至所述前激活模块,配置成对所述前激活模块的输出进行批归一化处理;
后激活模块,连接至所述批归一化模块,配置成对所述批归一化模块的输出进行激活处理;
池化模块,连接至所述前激活模块、批归一化模块以及后激活模块中的一个或多个模块,配置成对所连接的模块的输出进行池化处理;
控制模块,配置成通过参数配置激活所述偏置模块、所述前激活模块、所述批归一化模块、所述后激活模块以及所述池化模块中的一个或多个模块,
其中,所述偏置模块、所述前激活模块、所述批归一化模块、所述后激活模块以及所述池化模块皆包括旁路,当该模块未激活时,数据经过该模块的旁路进入下一模块。
在本发明的一些实施例中,所述偏置模块配置成执行加法偏置,所述加法偏置中被加的第一参数由所述控制模块加载至所述偏置模块中。
在本发明的一些实施例中,所述前激活模块和所述后激活模块分别包括多个非线性整流单元。
在本发明的一些实施例中,每个所述非线性整流单元配置成:
判断输入数据是否为正;
若输入数据为正,则判断激活第一整流功能或第二整流功能;
若激活第一整流功能,则使所述非线性整流单元的输出等于输入;
若激活第二整流功能,则判断输入数据是否大于第二参数;
若输入数据大于第二参数,则输出第二参数;
若输入数据不大于第二参数,则使所述非线性整流单元的输出等于输入;
若输入数据为负,则判断激活第三整流功能或第四整流功能;
若激活第三整流功能,则使所述非线性整流单元的输出为0;
若激活第三整流功能,则所述非线性整流单元的输出为输入的第三参数倍。
在本发明的一些实施例中,所述第二参数及所述第三参数由所述控制模块经由时间切换控制加载至所述非线性整流单元中。
在本发明的一些实施例中,所述批归一化模块包括多个批归一化单元,每个所述批归一化单元配置成:
使输入所述批归一化单元的数据与第四参数相乘获得的乘积,与第五参数相加,获得的和作为所述批归一化单元输出。
在本发明的一些实施例中,所述第四参数及所述第五参数由所述控制模块经由时间切换控制加载至所述批归一化单元中。
在本发明的一些实施例中,所述池化模块包括最大池化单元和/或平均池化单元。
根据本发明的又一方面,还提供一种芯片结构,包括:
卷积模块;以及
如上所述的用于卷积计算的处理模块,所述处理模块接收所述卷积模块的输出。
在本发明的一些实施例中,所述卷积模块与所述处理模块在芯片内级联。
相比现有技术,本发明的优势在于:
在卷积处理之后的处理模块中,各个模块通过控制模块进行激活,且模块之间不存在互相的制约依存关系,可以灵活广泛地支持不同算法模型,且各模块以流水线的方式实现,在进行计算时,无需分别自片外储存模块进行读写,降低芯片功耗和数据延时。
附图说明
通过参照附图详细描述其示例实施方式,本发明的上述和其它特征及优点将变得更加明显。
图1示出了根据本发明实施例的用于卷积计算的处理模块的结构示意图;
图2示出了根据本发明实施例的非线性整流单元的结构示意图;
图3示出了根据本发明实施例的批归一化单元的结构示意图;
图4示出了根据本发明实施例的芯片结构的示意图;
图5示出了根据本发明实施例的应用于尺寸为5*5的卷积核的一卷积组的示意图;
图6示出了根据本发明实施例的卷积模块的示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
为了解决现有技术的缺陷,本发明提供一种用于卷积计算的处理模块。下面将结合图1至图3对本发明提供的用于卷积计算的处理模块进行进一步地描述。
首先参见图1,图1示出了根据本发明实施例的用于卷积计算的处理模块的结构示意图。用于卷积计算的处理模块10包括偏置模块110、前激活模块120、批归一化模块130、后激活模块140、池化模块150以及控制模块160。
偏置模块110连接至卷积模块的输出,配置成将所述卷积模块的输出结果进行偏置处理。前激活模块120连接至所述偏置模块110,配置成对所述偏置模块110的输出进行激活处理。批归一化模块130连接至所述前激活模块120配置成对所述前激活模块120的输出进行批归一化处理。后激活模块140连接至所述批归一化模块130,配置成对所述批归一化模块130的输出进行激活处理。池化模块150连接至所述前激活模块120、批归一化模块130以及后激活模块140中的一个或多个模块,配置成对所连接的模块的输出进行池化处理。具体而言,在本实施例中,所述前激活模块120、批归一化模块130以及后激活模块140连接至一输出选择模块170,由输出选择模块170自所述前激活模块120、批归一化模块130以及后激活模块140选择一个或多个模块与所述池化模块150连接。输出选择模块170可由控制模块160提供的参数进行控制,本发明并非以此为限制。控制模块160配置成通过参数配置激活所述偏置模块110、所述前激活模块120、所述批归一化模块130、所述后激活模块140以及所述池化模块150中的一个或多个模块。所述偏置模块110、所述前激活模块120、所述批归一化模块130、所述后激活模块140以及所述池化模块150皆包括旁路,当该模块未激活时,数据经过该模块的旁路进入下一模块。例如,当偏置模块110未激活,前激活模块120激活时,所述卷积模块的输出结果直接通过偏置模块110的旁路进行前激活模块120。
在本发明的一些实施例中,所述偏置模块110可以配置成执行加法偏置,所述加法偏置中被加的第一参数由所述控制模块160加载至所述偏置模块110中。偏置模块110的加法偏置对应公式为y=conv(w,x)+b,其中,y为偏置模块110的输出,conv(w,x)为所述卷积模块的输出结果,b为第一参数。
在本发明的一些实施例中,所述前激活模块120和所述后激活模块140分别包括多个非线性整流单元。图2示出了根据本发明实施例的非线性整流单元20的结构示意图。非线性整流单元20也可以应用至所述前激活模块120和所述后激活模块140中。如图2所示,每个所述非线性整流单元20配置成判断输入数据是否为正。
若输入数据为正数210,则判断激活第一整流功能(normal Relu)230或第二整流功能(Relu(x),x为第二参数)240。所激活第一整流功能(normal Relu)230或第二整流功能(Relu(x),x为第二参数)240可由控制模块160提供的参数进行判断和确定。若激活第一整流功能230,则使所述非线性整流单元20的输出等于输入。若激活第二整流功能240,则判断输入数据是否大于第二参数。若输入数据大于第二参数,则输出第二参数。若输入数据不大于第二参数,则使所述非线性整流单元20的输出等于输入。若输入数据为负数220,则判断激活第三整流功能(normal Relu)250或第四整流功能(leaky relu)260。所激活第三整流功能(normal Relu)250或第四整流功能(leakyrelu)260可由控制模块160提供的参数进行判断和确定。若激活第三整流功能250,则使所述非线性整流单元20的输出为0。若激活第三整流功能260,则所述非线性整流单元260的输出为输入的第三参数倍。进一步地,所述第二参数及所述第三参数由所述控制模块160经由时间切换控制加载至所述非线性整流单元20中。具体而言,本实施例中,将大部分整流线性相关的算子功能继承进同一个模块,且支持流水线功能。通过软件参数控制,达到灵活配置算法的目的。
具体而言,所述前激活模块120和所述后激活模块140分别包括的多个非线性整流单元的数量可以依据卷积模块每次提供的像素数据的数量来确定,通过控制模块160的时序控制,可在不同批次的像素数据输入时,切换输入至各非线性整流单元的第二参数、第三参数、前述的用于激活第一整流功能230或第二整流功能240的参数、前述的用于激活第三整流功能250或第四整流功能260的参数的配置。
在本发明的一些实施例中,所述批归一化模块130包括多个批归一化单元30。图3示出了根据本发明实施例的批归一化单元30的结构示意图。每个所述批归一化单元30至少包括一乘法器310以及一加法器320。所述批归一化单元30的输入以及一由控制模块160配置的第四参数连接至所述乘法器310,所述乘法器310的输出以及一由控制模块160配置的第五参数连接至所述加法器320,从而所述批归一化单元30使输入所述批归一化单元30的数据与第四参数相乘获得的乘积,与第五参数相加,获得的和作为所述批归一化单元30输出。具体而言在本发明的一些实施例中,所述第四参数及所述第五参数由所述控制模块经由时间切换控制加载至所述批归一化单元30中。进一步地,批归一化单元30还可以包括一位宽控制模块330,用于对第五参数进行切换有效小数位后,再进入加法器,从而可以针对不同量化小数有效位。
在本发明的一些实施例中,所述池化模块150可以包括最大池化单元。在一些变化例中,所述池化模块150可以平均池化单元。在又一些实施例中,所述池化模块150可以包括最大池化单元和平均池化单元,并经由控制模块160的参数控制确定激活最大池化单元或平均池化单元。
由此,在本发明的一个具体应用中,在一具体算法模型中,对于一第二卷积层,其后跟随了前激活、批归一化和池化处理。如果按照现有技术中,CPU常规的算法平台操作,那么前激活、批归一化和池化处理的每层数据输入要自片外存储器(诸如DDR,双倍速率同步动态随机存储器)中读取1次数据,每层数据输出要将数据写入至外存储器,每层输入输出算2次读写操作,这样上述流程做了8次读写操作。而在本发明中,将卷积层以及其后跟随的前激活模块、批归一化模块和池化模块整理成一层,分别激活片内四级流水线,数据不出芯片就完成了四个算子的连续计算,由此,本发明提供的方案只需要做2次片外存储器的读写操作,就完成了上述全部计算,极大降低功耗和延时。
在一具体算法模型中,对于一第三卷积层,其后跟随了前激活处理和批归一化处理,与前述的第二卷积层,对于第三卷积层以及其后跟随的前激活模块、批归一化模块整理成一层,分别激活片内三级流水线,数据不出芯片就完成了三个算子的连续计算,由此,本发明提供的方案只需要做2次读写操作,就完成了上述全部计算,同时,还无需激活并旁路不使用的模块,灵活适用在不同的算法中。
上述具体算法模型的参数设置可以参见下表:
模型A | 层类型 | N | C | H | W |
第二卷积层 | 卷积 | 1 | 256 | 39 | 53 |
第二前激活层 | 激活函数 | 1 | 256 | 39 | 53 |
第二批归一化层 | 批归一化 | 1 | 256 | 39 | 53 |
第二池化层 | 最大池化 | 1 | 256 | 19 | 26 |
第三卷积层 | 卷积 | 1 | 384 | 19 | 26 |
第三前激活层 | 激活函数 | 1 | 384 | 19 | 26 |
第三批归一化层 | 批归一化 | 1 | 384 | 19 | 26 |
上表中,N默认为1,表示每次运行一帧图像;C为输出通道维度,即Co,也是下一层的输入通道维度Ci;H为输入图像height,即有多少行像素;W为输入图像width,即有多少列像素。
在一具体算法模型中,对于一另一卷积层,其后级联了批归一化处理和后激活处理从而整理成一层。在本实施例中,无需激活并旁路不使用的模块。
上述具体算法模型的参数设置可以参见下表:
其中,输入特征图尺寸和输出特征图尺寸从左到右依次表示:(N,C,H,W),各符号含义与上表一致;(KH,KW,C,F)中KH,KW分别为卷积核的行数和列数(即卷积核的尺寸);C,F分别为Ci,Co。
以上仅仅是示意性地描述本发明的多个实现方式,本发明并非以此为限制。
下面参见图4,图4示出了根据本发明实施例的芯片结构的示意图。芯片结构1包括卷积模块40以及处理模块10,处理模块10可以具有如图1所示的结构,所述处理模块10接收所述卷积模块40的输出。图4所示出的芯片结构1仅仅是示意性地,图中省略部分元件。在本实施例中,所述卷积模块40与所述处理模块10在芯片1内级联。
具体而言,卷积模块可以包括多个卷积引擎。每个所述卷积引擎包括15*M*N个乘法器以及至少设置在部分乘法器之间的加法器,N、M均为大于1的整数。其中,根据所述卷积引擎所应用的不同的卷积核的尺寸,按不同的方式激活所述乘法器之间、所述乘法器与所述加法器之间的连接方式。
具体而言,卷积引擎的数量可以根据具体算力需求来确定,本发明并非以此为限制。
在本发明的一个优选例中,N为4。在该优选例中,每个所述卷积引擎包括15*M*4个乘法器。对于常用的、主流的神经网络模型中,卷积核的尺寸包括7*7、5*5、3*3。当应用到尺寸为3x3卷积核时,可将对于卷积引擎10在M维度上每个15*4乘法器阵列,分为5个卷积组11,每个卷积组11包括3行4列乘法器,每个卷积组11对应一个卷积核计算,5组卷积组11同时可支持5个不同的卷积核并行计算。当对于卷积引擎10在M维度上每个15*4乘法器阵列,应用到尺寸为5x5卷积核时,可将15行乘法器分为3组卷积组12,每个卷积组12包括5行4列乘法器,每个卷积组12对应一个卷积核计算,3每个卷积组12同时可支持3个不同的卷积核并行计算。同理,当对于卷积引擎10在M维度上每个15*4乘法器阵列,应用到尺寸为7x7卷积核时,可将15行乘法器分为2组卷积组13,每个卷积组13包括7行4列乘法器(最后一行乘法器不激活),每个卷积组13对应一个卷积核计算,2每个卷积组13同时可支持2个不同的卷积核并行计算。
由此,可以利用同一套卷积引擎提高应用不同尺寸的卷积核时,乘法器的利用率,且根据不同的卷积核的尺寸实现不同的乘法器资源分配,实现数据的动态分布,达到需要的计算方式。进一步地,本发明中,一个卷积引擎同时支持N行输出特征图的计算输出,即每列乘法器对应一行输出特征图像素值。在前述的优选例中,将N设定为4是基于整体架构的分片计算(tiling)特征及卷积后池化操作便捷性共同考虑的结果。
多个所述卷积引擎对输入特征图和卷积核权重进行乘法运算,并在输入特征通道将乘法结果进行累加以获得输出特征图。进一步,一次传统的卷积运算,需要卷积核在输出特征图滑动,即形成多个滑动窗口(sliding window)。计算所有的滑动窗口,可以生成出一个完整的输出特征图。
下面参见图5,图5示出了根据本发明实施例的应用于尺寸为5*5的卷积核的一卷积组的示意图。
具体而言,对于步长S为1、尺寸为P*Q的卷积核,每个所述卷积组包括P*N个乘法器,每列乘法器的相邻两个乘法器之间连接有加法器,每个所述卷机组并行读取(P+N-1)行输入特征图,每个卷机组并行读取P行卷积核权重,其中,所述P行卷积核权重分别输入一行乘法器;所述(P+N)行输入特征图中第1至第P行分别输入一行乘法器,第P+1行至第N-1行分别输入一列乘法器,P、Q为大于1的整数。对于步长S为2、尺寸为P*Q的卷积核,每个所述卷积组包括P*N个乘法器,每列乘法器的相邻两个乘法器之间连接有加法器,每个所述卷积组并行读取[S*N+(P-S)]行输入特征图。具体而言,对于3*3的卷积核,每个所述卷积组并行读取(2x4)+(3-2)=9行输入特征图;对于5*5的卷积核,每个所述卷积组并行读取(2x4)+(5-2)=11行输入特征图;对于7*7的卷积核,每个所述卷积组并行读取(2x4)+(7-2)=13行输入特征图。
下面以尺寸为5*5的卷积核为例,描述一个卷积组的输入、输出、加法器、乘法器的连接方式。
在图5所示的实施例中,卷积组包括5行4列乘法器,每一列乘法器中,相邻两个乘法器之间连接有一加法器。5*5的卷积核的第一行卷积核权重依次输入第一行乘法器;5*5的卷积核的第二行卷积核权重依次输入第二行乘法器;5*5的卷积核的第三行卷积核权重依次输入第三行乘法器;5*5的卷积核的第四行卷积核权重依次输入第四行乘法器;5*5的卷积核的第五行卷积核权重依次输入第五行乘法器。输入特征图的第一行输入第一行第一列的乘法器;输入特征图的第二行输入第二行第一列乘法器后输入第一行第二列乘法器;输入特征图的第三行输入第三行第一列乘法器后,输入第二行第二列乘法器,然后输入第一行第三列乘法器;输入特征图的第四行输入第四行第一列乘法器后,输入第三行第二列乘法器,然后输入第二行第三列乘法器,最后输入第一行第四列乘法器;输入特征图的第五行输入第五行第一列乘法器后,输入第四行第二列乘法器,然后输入第三行第三列乘法器,最后输入第二行第四列乘法器;输入特征图的第六行输入第五行第二列乘法器后,输入第四行第三列乘法器,然后输入第三行第四列乘法器;输入特征图的第七行输入第五行第三列乘法器后,输入第四行第四列乘法器;输入特征图的第八行输入第五行第四列乘法器。各列乘法器由第五行开始依次通过加法器将乘法结果累加,从而对应四列乘法器获得部分累加值第一行、部分累加值第二行、部分累加值第三行、以及部分累加值第4行。由此,减少了读取接口的使用,优化了资源和功耗,面积。
下面参见图6,图6示出了根据本发明实施例的卷积引擎的示意图。
除了在输出特征通道(输入特征图的高度维度)上的并行加速之外,本发明的卷积引擎还可以提供在输入特征通道的M倍并行加速。每个卷积组输出的N行部分累加值(psum),不是最终的输出特征图的结果,需要在输入特征通道维度上做累加。考虑到常用的主流卷积神经网络模型,输入特征通道的数量通常以偶数出现,一般是2的n次方的形式,M为2的n次方。由此,可以利用M个卷积组,用于支持M个不同的输入特征图的通道计算。
在本实施例中,以N为4且M为16,为例,说明输入特征通道的16倍并行加速。如图6,16个通道的数据在卷积组外的加法树中进行累加,最终形成输出特征图的部分累加值。本实施例中,将输入特征图的输入特征通道计算加速并行度定为16,即兼顾了加速的目的,即16倍加速,也考虑了算法模型的普适性,同时需要考虑过多资源导致片上资源紧张,密集布线区域带来的时序问题等。
输出特征图部分累加值第一行由16个通道的部分累加值第一行累加获得;输出特征图部分累加值第二行由16个通道的部分累加值第二行累加获得;输出特征图部分累加值第三行由16个通道的部分累加值第三行累加获得;输出特征图部分累加值第四行由16个通道的部分累加值第四行累加获得
由此,继承诸如图5中的部分累加值的累加方向,实现了输入特征通道维度16倍并行计算加速和输出特征通道维度4倍的并行计算加速。此外,根据不同硬件算力需求,不同产品的定位,图6中的架构,可考虑并行多份,针对不同输出特征通道维度进一步加速,提升性能。
由此,在上述实施例中,卷积模块40和处理模块10皆可以通过流水线进行控制。
以上仅仅是示意性地描述本发明提供的卷积模块40,本发明并非以此为限制。
在卷积处理之后的处理模块中,各个模块通过控制模块进行激活,且模块之间不存在互相的制约依存关系,可以灵活广泛地支持不同算法模型,且各模块以流水线的方式实现,在进行计算时,无需分别自片外储存模块进行读写,降低芯片功耗和数据延时。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。
Claims (10)
1.一种用于卷积计算的处理装置,其特征在于,所述处理装置接收卷积模块的输出,所述卷积模块包括多个卷积引擎,每个所述卷积引擎包括15*M*N个乘法器形成的乘法器阵列以及至少设置在部分乘法器之间的加法器,N为大于1的整数,M为大于1的整数,其中,根据所述卷积引擎所应用的不同的卷积核的尺寸,按不同的方式激活所述乘法器之间、所述乘法器与所述加法器之间的连接方式,
每个所述卷积引擎在应用于卷积核时,按卷积核的尺寸划分为多个卷积组,每个所述卷积组的乘法器的行数与所述卷积核的行数一致,所述卷积引擎还提供在输入特征通道的M倍并行加速,
对于步长S为1、尺寸为P*Q的卷积核,每个所述卷积组包括P*N个乘法器,每列乘法器的相邻两个乘法器之间连接有加法器,每个所述卷积组并行读取(P+N-1)行输入特征图,每个卷积组并行读取P行卷积核权重,其中,所述P行卷积核权重分别输入一行乘法器;所述(P+N-1)行输入特征图中第1至第P行分别输入第一列的第1至P行乘法器,第P+1行至第P+N-1行分别输入第P行的第2至N列乘法器,P、Q为大于1的整数;
对于步长S为2、尺寸为P*Q的卷积核,每个所述卷积组包括P*N个乘法器,每列乘法器的相邻两个乘法器之间连接有加法器,每个所述卷积组并行读取[S*N+(P-S)]行输入特征图,
所述处理装置包括:
偏置模块,连接至所述卷积模块的输出,配置成将所述卷积模块的输出结果进行偏置处理;
前激活模块,连接至所述偏置模块,配置成对所述偏置模块的输出进行激活处理;
批归一化模块,连接至所述前激活模块,配置成对所述前激活模块的输出进行批归一化处理;
后激活模块,连接至所述批归一化模块,配置成对所述批归一化模块的输出进行激活处理;
池化模块,连接至所述前激活模块、批归一化模块以及后激活模块中的一个或多个模块,配置成对所连接的模块的输出进行池化处理;
控制模块,配置成通过参数配置激活所述偏置模块、所述前激活模块、所述批归一化模块、所述后激活模块以及所述池化模块中的一个或多个模块,
其中,所述偏置模块、所述前激活模块、所述批归一化模块、所述后激活模块以及所述池化模块皆包括旁路,当所述前激活模块、所述批归一化模块、所述后激活模块以及所述池化模块的任一模块未激活时,数据经过未激活模块的旁路进入下一模块。
2.如权利要求1所述的用于卷积计算的处理装置,其特征在于,所述偏置模块配置成执行加法偏置,所述加法偏置中被加的第一参数由所述控制模块加载至所述偏置模块中。
3.如权利要求1所述的用于卷积计算的处理装置,其特征在于,所述前激活模块和所述后激活模块分别包括多个非线性整流单元。
4.如权利要求3所述的用于卷积计算的处理装置,其特征在于,每个所述非线性整流单元配置成:
判断输入数据是否为正;
若输入数据为正,则判断激活第一整流功能或第二整流功能;
若激活第一整流功能,则使所述非线性整流单元的输出等于输入;
若激活第二整流功能,则判断输入数据是否大于第二参数;
若输入数据大于第二参数,则输出第二参数;
若输入数据不大于第二参数,则使所述非线性整流单元的输出等于输入;
若输入数据为负,则判断激活第三整流功能或第四整流功能;
若激活第三整流功能,则使所述非线性整流单元的输出为0;
若激活第三整流功能,则所述非线性整流单元的输出为输入的第三参数倍。
5.如权利要求4所述的用于卷积计算的处理装置,其特征在于,所述第二参数及所述第三参数由所述控制模块经由时间切换控制加载至所述非线性整流单元中。
6.如权利要求1所述的用于卷积计算的处理装置,其特征在于,所述批归一化模块包括多个批归一化单元,每个所述批归一化单元配置成:
使输入所述批归一化单元的数据与第四参数相乘获得的乘积,与第五参数相加,获得的和作为所述批归一化单元输出。
7.如权利要求6所述的用于卷积计算的处理装置,其特征在于,所述第四参数及所述第五参数由所述控制模块经由时间切换控制加载至所述批归一化单元中。
8.如权利要求1所述的用于卷积计算的处理装置,其特征在于,所述池化模块包括最大池化单元和/或平均池化单元。
9.一种芯片,其特征在于,包括:
卷积模块;以及
如权利要求1至8任一项所述的用于卷积计算的处理装置,所述处理装置接收所述卷积模块的输出。
10.如权利要求9所述的芯片,所述卷积模块与所述处理装置在芯片内级联。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010586010.3A CN111832717B (zh) | 2020-06-24 | 2020-06-24 | 芯片及用于卷积计算的处理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010586010.3A CN111832717B (zh) | 2020-06-24 | 2020-06-24 | 芯片及用于卷积计算的处理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111832717A CN111832717A (zh) | 2020-10-27 |
CN111832717B true CN111832717B (zh) | 2021-09-28 |
Family
ID=72899046
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010586010.3A Active CN111832717B (zh) | 2020-06-24 | 2020-06-24 | 芯片及用于卷积计算的处理装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111832717B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107403221A (zh) * | 2016-05-03 | 2017-11-28 | 想象技术有限公司 | 卷积神经网络的硬件实现 |
CN108805285A (zh) * | 2018-05-30 | 2018-11-13 | 济南浪潮高新科技投资发展有限公司 | 一种卷积神经网络池化单元设计方法 |
CN110390384A (zh) * | 2019-06-25 | 2019-10-29 | 东南大学 | 一种可配置的通用卷积神经网络加速器 |
CN110390385A (zh) * | 2019-06-28 | 2019-10-29 | 东南大学 | 一种基于bnrp的可配置并行通用卷积神经网络加速器 |
CA3064226A1 (en) * | 2018-07-11 | 2020-01-11 | Illumina, Inc. | Deep learning-based framework for identifying sequence patterns that cause sequence-specific errors (sses) |
CN111832718A (zh) * | 2020-06-24 | 2020-10-27 | 上海西井信息科技有限公司 | 芯片架构 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9858636B1 (en) * | 2016-06-30 | 2018-01-02 | Apple Inc. | Configurable convolution engine |
CN107645287B (zh) * | 2017-05-24 | 2020-12-22 | 南京风兴科技有限公司 | 一种6并行快速fir滤波器 |
CN109117455A (zh) * | 2017-06-26 | 2019-01-01 | 上海寒武纪信息科技有限公司 | 计算装置及方法 |
CN107632965B (zh) * | 2017-10-17 | 2019-11-29 | 中国科学院计算技术研究所 | 可重构的s型运算装置及运算方法 |
CN108304923B (zh) * | 2017-12-06 | 2022-01-18 | 腾讯科技(深圳)有限公司 | 卷积运算处理方法及相关产品 |
IN201811023855A (zh) * | 2018-06-26 | 2018-07-13 | Hcl Technologies Ltd | |
CN110647975B (zh) * | 2018-06-27 | 2022-09-13 | 龙芯中科技术股份有限公司 | 一种数据处理方法、装置、设备以及介质 |
CN111047008B (zh) * | 2019-11-12 | 2023-08-01 | 天津大学 | 一种卷积神经网络加速器及加速方法 |
CN111242289B (zh) * | 2020-01-19 | 2023-04-07 | 清华大学 | 一种规模可扩展的卷积神经网络加速系统与方法 |
-
2020
- 2020-06-24 CN CN202010586010.3A patent/CN111832717B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107403221A (zh) * | 2016-05-03 | 2017-11-28 | 想象技术有限公司 | 卷积神经网络的硬件实现 |
CN108805285A (zh) * | 2018-05-30 | 2018-11-13 | 济南浪潮高新科技投资发展有限公司 | 一种卷积神经网络池化单元设计方法 |
CA3064226A1 (en) * | 2018-07-11 | 2020-01-11 | Illumina, Inc. | Deep learning-based framework for identifying sequence patterns that cause sequence-specific errors (sses) |
CN110390384A (zh) * | 2019-06-25 | 2019-10-29 | 东南大学 | 一种可配置的通用卷积神经网络加速器 |
CN110390385A (zh) * | 2019-06-28 | 2019-10-29 | 东南大学 | 一种基于bnrp的可配置并行通用卷积神经网络加速器 |
CN111832718A (zh) * | 2020-06-24 | 2020-10-27 | 上海西井信息科技有限公司 | 芯片架构 |
Also Published As
Publication number | Publication date |
---|---|
CN111832717A (zh) | 2020-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2022199684A1 (zh) | 基于数字域存内计算的电路 | |
US20220156557A1 (en) | Scheduling neural network processing | |
Haj-Ali et al. | Efficient algorithms for in-memory fixed point multiplication using magic | |
US20230244632A1 (en) | Neural processing accelerator | |
EP3533003B1 (en) | Exploiting input data sparsity in neural network compute units | |
CN111832718B (zh) | 芯片架构 | |
US8051124B2 (en) | High speed and efficient matrix multiplication hardware module | |
CN111898733B (zh) | 一种深度可分离卷积神经网络加速器架构 | |
Yin et al. | PIMCA: A 3.4-Mb programmable in-memory computing accelerator in 28nm for on-chip DNN inference | |
US20230297819A1 (en) | Processor array for processing sparse binary neural networks | |
CN111985602A (zh) | 神经网络计算设备、方法以及计算设备 | |
EP0997828A2 (en) | Signal processing distributed arithmetic architecture | |
CN111610963B (zh) | 芯片结构及其乘加计算引擎 | |
CN116167424B (zh) | 基于cim的神经网络加速器、方法、存算处理系统与设备 | |
CN113885831A (zh) | 基于混合数据输入的存算一体电路、芯片及计算装置 | |
CN111832717B (zh) | 芯片及用于卷积计算的处理装置 | |
US20230376563A1 (en) | Computational memory | |
Islam et al. | A New Hardware-Efficient VLSI-Architecture of GoogLeNet CNN-Model Based Hardware Accelerator for Edge Computing Applications | |
CN113312285B (zh) | 一种卷积神经网络加速器及其工作方法 | |
Yang et al. | BSRA: Block-based super resolution accelerator with hardware efficient pixel attention | |
CN114912596A (zh) | 面向稀疏卷积神经网络的多chiplet系统及其方法 | |
CN113743046A (zh) | 存算一体版图结构和数据拆分存算一体版图结构 | |
US11580191B1 (en) | Method and system for convolution | |
CN113642722A (zh) | 用于卷积计算的芯片及其控制方法、电子装置 | |
CN112612447B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder |
Address after: Room 503-3, 398 Jiangsu Road, Changning District, Shanghai 200050 Patentee after: Shanghai Xijing Technology Co.,Ltd. Address before: Room 503-3, 398 Jiangsu Road, Changning District, Shanghai 200050 Patentee before: SHANGHAI WESTWELL INFORMATION AND TECHNOLOGY Co.,Ltd. |
|
CP01 | Change in the name or title of a patent holder |