CN115759212A - 卷积运算电路及方法、神经网络加速器和电子设备 - Google Patents
卷积运算电路及方法、神经网络加速器和电子设备 Download PDFInfo
- Publication number
- CN115759212A CN115759212A CN202111030795.7A CN202111030795A CN115759212A CN 115759212 A CN115759212 A CN 115759212A CN 202111030795 A CN202111030795 A CN 202111030795A CN 115759212 A CN115759212 A CN 115759212A
- Authority
- CN
- China
- Prior art keywords
- weight
- sub
- multiply
- plane
- zero
- 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
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/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- 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/08—Learning methods
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Complex Calculations (AREA)
Abstract
本申请涉及一种卷积运算电路及方法、卷神经网络处理器、电子设备和计算机存储介质。卷积运算电路包括存储模块,包括至少一寄存器;处理单元,用于对原始卷积核进行切分处理得到至少一子卷积核,获取各所述子卷积核中每一通道对应的权重平面的权重类型,并根据所述权重类型对相应的所述寄存器进行配置;所述权重类型用于表征各所述权重平面中零值权重的分布模式;乘累加阵列,分别与所述处理单元、寄存器连接,用于响应于配置后的所述寄存器的配置信息,对所述子卷积核中各所述权重平面中的非零权重与待卷积数据进行乘累加处理,可以减少了对卷积核中零值权重元素的数据搬移,降低功耗。
Description
技术领域
本申请涉及电子设备技术领域,特别是涉及一种卷积运算电路及方法、卷神经网络加速器、电子设备和计算机存储介质。
背景技术
卷积神经网络(Convolutional Neural Networks,CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(Feed forward Neural Networks),是深度学习的代表算法之一。在卷积神经网络中,卷积运算是一般是通过布局乘累加(Multiply Accumulate,MAC)阵列来完成乘累加运算的。但是,在相关技术中,卷积神经网络中的基于MAC阵列的卷积运算的功耗较高。
发明内容
基于此,有必要针对上述技术问题,提供一种卷积运算电路及方法、卷神经网络加速器、电子设备和计算机存储介质,可以减少了对卷积核中零值权重元素的数据搬移,降低功耗。
第一方面,本申请的实施例提供一种卷积运算电路,包括:
存储模块,包括至少一寄存器;
处理单元,用于对原始卷积核进行切分处理得到至少一子卷积核,获取各所述子卷积核中每一通道对应的权重平面的权重类型,并根据所述权重类型对相应的所述寄存器进行配置;所述权重类型用于表征各所述权重平面中零值权重的分布模式;
乘累加阵列,分别与所述处理单元、寄存器连接,用于响应于配置后的所述寄存器的配置信息,对所述子卷积核中各所述权重平面中的非零权重与待卷积数据进行乘累加处理。
上述卷积运算电路,包括处理单元、存储模块和乘累加阵列,其中,处理单元可对原始卷积核进行切分处理得到至少一子卷积核,获取各所述子卷积核中每一通道对应的权重平面的权重类型,并根据所述权重类型输出对应的配置信息以对存储模块中的各寄存器进行配置,进而使得乘累加阵列能够基于寄存器的配置信息来对所述子卷积核中各所述权重平面中的非零权重与待卷积数据进行乘累加处理。这样,在执行该卷积运算过程中,其乘累加阵列可响应于所述寄存器的配置信息,根据各寄存器的配置信息,仅对应读取各子卷积核中各所述权重平面中的非零权重,而不读取权重平面中零值权重,并将读取的非零权重与输入特征图进行乘累加处理。这样,减少了对权重平面中零值权重元素的数据搬移,实现了跳零处理,可以减少功耗;另外,还可以避免使用相关技术中在乘累加阵列中增加额外的跳零电路来对接收的权重元素是否零值权重进行判定,进一步减少了跳零电路本身的功耗开销,在节省功耗的前提下,进一步简化了卷积运算电路的结构设计。
第二方面,本申请的实施例提供一种卷积运算方法,包括:
对原始卷积核进行切分处理得到多个子卷积核,获取各所述子卷积核中每一通道对应的权重平面的权重类型;所述权重类型用于表征各所述权重平面中零值权重的分布模式;
根据所述权重类型配置存储模块中相应的寄存器的配置信息;以使所述寄存器对应存储所述子卷积核中每个所述权重平面的权重类型;
控制乘累加阵列响应于所述寄存器的所述配置信息,对所述子卷积核中各所述权重平面中的非零权重与待卷积数据进行乘累加处理。
本申请提供的卷积运算方法,应用于上述第一方面所提供的卷积运算电路,也能实现第一方面所提供的卷积运算电路所具备的有益效果。
第三方面,本申请的实施例提供一种神经网络加速器,包括:
数据存储模块,用于存储原始卷积核和待卷积数据中的输入元素块;
前述的卷积运算电路,所述卷积运算电路通过所述数据存储模块获取所述原始卷积核和所述输入元素块。
第四方面,本申请的实施例提供一种电子设备,包括:
系统总线;以及
前述的神经网络加速器,所述神经网络加速器与所述系统总线连接。
第五方面,本申请的实施例提供一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
对原始卷积核进行切分处理得到多个子卷积核,获取各所述子卷积核中每一通道对应的权重平面的权重类型;所述权重类型用于表征各所述权重平面中零值权重的分布模式;
根据所述权重类型配置存储模块中相应的寄存器的配置信息;以使所述寄存器对应存储所述子卷积核中每个所述权重平面的权重类型;
控制乘累加阵列响应于所述寄存器的所述配置信息,对所述子卷积核中各所述权重平面中的非零权重与待卷积数据进行乘累加处理。
第六方面,本申请的实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
对原始卷积核进行切分处理得到多个子卷积核,获取各所述子卷积核中每一通道对应的权重平面的权重类型;所述权重类型用于表征各所述权重平面中零值权重的分布模式;
根据所述权重类型配置存储模块中相应的寄存器的配置信息;以使所述寄存器对应存储所述子卷积核中每个所述权重平面的权重类型;
控制乘累加阵列响应于所述寄存器的所述配置信息,对所述子卷积核中各所述权重平面中的非零权重与待卷积数据进行乘累加处理。
可以理解,上述提供的第三方面所述的神经网络加速器、第四方面所述的电子设备所能达到的有益效果,可以参考上述如第一方面所述的卷积运算方法及其中任意一种实施例中的有益效果,在此不予赘述。上述提供的第五方面的所述的电子设备以及第六方面所述的计算机可读存储介质所能达到的有益效果,可以参考上述如第二方面所述的卷积运算方法的有益效果,在此不予赘述。
附图说明
为了更清楚地说明本申请实施例或传统技术中的技术方案,下面将对实施例或传统技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中卷积运算电路的结构示意图之一;
图2为一个实施例中卷积运算电路的结构示意图之二;
图3为一个实施例中原始卷积核切换成子卷积核的切分示意图;
图4为一个实施例中输入特征图与多个子卷积核卷积运算示意图;
图5为一个实施例中卷积运算电路的结构示意图之三;
图6为一个实施例中卷积运算电路的卷积运算示意图;
图7为一个实施例中卷积运算电路的结构示意图之四;
图8为一个实施例中卷积运算电路的结构示意图之五;
图9为一个实施例中卷积运算方法的流程示意图;
图10为一个实施例中控制乘累加阵列响应于所述寄存器的所述配置信息,对所述子卷积核中各所述权重平面中的非零权重与待卷积数据进行乘累加处理的流程示意图;
图11为另一个实施例中卷积运算方法的流程示意图;
图12为一个实施例中神经网络加速器的结构框图;
图13为一个实施例中电子设备的结构框图。
具体实施方式
为了便于理解本申请,下面将参照相关附图对本申请进行更全面的描述。附图中给出了本申请的实施例。但是,本申请可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使本申请的公开内容更加透彻全面。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中在本申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请。
可以理解,本申请所使用的术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。此外,在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。在本申请的描述中,“若干”的含义是至少一个,例如一个,两个等,除非另有明确具体的限定。
还应当理解的是,术语“包括/包含”或“具有”等指定所陈述的特征、整体、步骤、操作、组件、部分或它们的组合的存在,但是不排除存在或添加一个或更多个其他特征、整体、步骤、操作、组件、部分或它们的组合的可能性。同时,在本说明书中使用的术语“和/或”包括相关所列项目的任何及所有组合。
在神经网络处理器或神经网络加速器中,会选择MAC阵列来对卷积核和输入特征图进行卷积处理,例如,乘累加处理。在相关技术中,MAC阵列中的每个MAC单元均会增设一硬件跳零电路进行子卷积核中的权重和输入特征图中的数据进行跳零处理,以跳过零值权重或零值输入数据的MAC单元的乘加运算以避免MAC单元的翻转。但是,相关技术中,每个MAC单元的硬件跳零电路在运行过程中,也会产生功耗,增加了乘累加运算的整体功耗。
基于以上原因,本发明提供了一种卷积运算电路,在执行该卷积运算过程中,其乘累加阵列仅对应读取各子卷积核中各所述权重平面中的非零权重,而不读取权重平面中零值权重,并将读取的非零权重与输入特征图进行乘累加处理。这样,减少了对权重平面中零值权重元素的数据搬移,实现了跳零处理,可以减少功耗;另外,还可以避免使用相关技术中在乘累加阵列中增加额外的跳零电路来对接收的权重元素是否零值权重进行判定,进一步减少了跳零电路本身的功耗开销,在节省功耗的前提下,进一步简化了卷积运算电路的结构设计。
在一个实施例中,如图1和图2所示,提供了一种卷积运算电路。其中,卷积运算电路包括处理单元110、存储模块120和乘累加(Multiply Accumulate, MAC)阵列130,简称MAC阵列。其中,存储模块120中包括至少一个寄存器 121。
处理单元110,用于对原始卷积核20进行切分处理得到多个子卷积核210。其中,处理单元110可以从剪枝处理后的卷积神经网络中获取原始卷积核20,或,直接接收其他设备发送的卷积核数据进行剪枝处理后得到该原始卷积核20。原始卷积核20还可以理解为用于与待卷积数据进行卷积运算的卷积核,子卷积核210可以理解为对原始卷积核20进行切分处理得到的卷积核。其中,原始卷积核20和子卷积核210可以为二维卷积核,也可以为三维卷积核。
在一个示例中,子卷积核210可以包括多个通道,每一通道对应一个权重平面211。每个子卷积核210中可包括多个权重平面211,各权重平面211可包括多个权重元素。权重平面211内的各权重元素可以以平面形式存储在数据存储模块120中。
如图3所示,为了便于说明,在本申请实施例中以原始卷积核20的尺寸为 R×S×CH,子卷积核210的尺寸为R×S×C为例进行说明。其中,CH为原始子卷积核210的总通道数,C为自卷积核的通道数,C≤CH,其中,子卷积核210的数量K=CH/C。其中,R、S分别为每个权重平面211中在宽度方向上权重元素的数量,以及在高度方向上权重元素的数量。进一步的,R和S可以相等。
示例性的,若第一个权重平面211包括四个权重元素,例如, (w00,w01,w02,w03)。若权重元素的权重值为0,这该权重元素则为零值权重,若该权重元素的权值为非0,则该权重元素为非零权重。处理单元110可识别出权重平面211内各权重元素的零值权重和非零权重,并根据识别结果对应获取权重平面211的权重类型。其中,所述权重类型用于表征各所述权重平面211中零值权重的分布模式。处理单元110还可根据各权重平面211的权重类型对相应的寄存器121进行配置。对寄存器121进行配置后,各寄存器121则具有相应的配置信息。
乘累加阵列,分别与所述处理单元110、存储模块120连接,用于响应于配置后的所述寄存器121的配置信息,对所述子卷积核210中各所述权重平面211 中的非零权重与待卷积数据30中进行乘累加处理,其中,待卷积数据30的通道数与所述子卷积核210的通道数相同。
其中,待卷积数据30可以理解为输入特征图。待卷积数据30也可包括多个通道,其每个通道可对应一个输入平面310,即一个二维图像。当输入特征图的通道数大于1时,可以将输入特征图理解为多个通道的二维图像叠在一起的立体特征图,其深度等于通道数。其中,待卷积数据30的通道数C等于子卷积核210中的通道数C。为了便于说明,在本申请实施例中以待卷积数据30的尺寸为H×W×C为例进行说明。也即,每个输入平面310可具有W×H的尺寸,其中,W、H指示输入平面310中在宽度方向、高度方向输入元素的相应数量。
如图4所示,可通过执行子卷积核与输入特征图之间的卷积运算来生成输出特征图。在图4的示例中,子卷积核、输入特征图和输出特征图的数据可以以平面形式存储在存储器中。为了便于说明,在本申请实施例中,以5×5元素的四通道的输入特征图、四个3×3元素的四通道的子卷积核为例,阐述其卷积运算以输出特征图,也即二位图像。
四个3×3×4的子卷积核依次在5×5×4的输入特征图上移动,从而在输入特征图上产生移动窗(sliding window),其每次移动的间隔称为步长(stride),且步长小于卷积核数据的最短宽度,每移动一次便对窗内对应的数据进行一次卷积核数据大小的卷积运算,最后的结果被称为输出特征值,或输出特征图。其中,子卷积核的个数等于该输出特征图的通道数,也即,输出特征图可包括四个输出平面,每个输出平面的尺寸大小输入平面的尺寸大小相同。也就是说,输入特征图与一个子卷积核进行卷积运算后,得到一个二维图像。
在执行该卷积运算过程中,其乘累加阵列可响应于所述寄存器121的配置信息,根据各寄存器121的配置信息,判定各个权重平面211内权重元素是否为零,并根据该判定结果,仅对应读取各子卷积核210中各所述权重平面211中的非零权重,而不读取权重平面211中零值权重,并将读取的非零权重与输入特征图对应的输入元素进行乘累加处理。示例性的,若某一权重平面211的元素为 (w00,w01,0,0),乘累加阵列可响应于用于存储该权重平面211的寄存器121的配置信息,仅读取权重平面211的权重元素w00,w01,而不会读取w02,w03对应的零值权重,然后,基于读取的权重元素w00,w01与对应的输入特征图的输入平面310中的输入元素进行乘加运算。
上述卷积运算电路,包括处理单元110、存储模块120和乘累加阵列130,其中,处理单元110可对原始卷积核20进行切分处理得到至少一子卷积核210,获取各所述子卷积核210中每一通道对应的权重平面211的权重类型,并根据所述权重类型对存储模块120中的各寄存器121进行配置,进而使得乘累加阵列130能够基于寄存器121的配置信息来对所述子卷积核210中各所述权重平面211中的非零权重与待卷积数据30进行乘累加处理。这样,在执行该卷积运算过程中,其乘累加阵列130可响应于所述寄存器121的配置信息,根据各寄存器121的配置信息,仅对应读取各子卷积核210中各所述权重平面211中的非零权重,而不读取权重平面211中零值权重,并将读取的非零权重与输入特征图进行乘累加处理。这样,减少了对权重平面211中零值权重元素的数据搬移,实现了跳零处理,可以减少功耗;另外,还可以避免使用相关技术中在乘累加阵列130中增加额外的跳零电路来对接收的权重元素是否零值权重进行判定,进一步减少了跳零电路本身的功耗开销,在节省功耗的前提下,进一步简化了卷积运算电路的结构设计。
在其中一个实施例中,具体的,所述处理单元110还可获取各所述子卷积核 210中各所述权重平面211中的零值权重的位置信息,并根据所述位置信息确定所述权重平面211的权重类型。处理单元110可预设设定权重平面211中零值权重的位置信息与权重类型的映射关系。
为了便于说明,本申请实施例以某一权重平面211包括w00,w01,w02,w03 四个权重元素为例进行说明。示例性的,若权重平面211的权重元素为(1,3,0,0),可确定零值权重的位置在第三位置和第四位置,可确定该权重平面211的权重类型为第一权重类型。若子卷积核210的权重元素为(1,0,5,0),可确定零值权重的位置在第二位置和第四位置,可确定该权重平面211的权重类型为第二权重类型。若子卷积核210的权重元素为(0,0,5,2),可确定零值权重的位置在第一位置和第二位置,可确定该权重平面211的权重类型为第三权重类型。若子卷积核 210的权重元素为(0,3,0,8),可确定零值权重的位置在第一位置和第三位置,可确定该权重平面211的权重类型为第四权重类型等等。
需要说明的是,权重平面211的权重类型的确定与零值权重的位置和数量相关联,并不限于上述举例说明。权重平面211的权重类型的确定还可以根据权重平面211中的权重元素的数量,以及权重元素中零值权重的分布模式来确定其权重类型。例如,当权重平面211包括w00,w01,w02,…,w08九个权重元素时,也可以基于权重平面211中的零值权重的数量和位置信息来确定其权重类型。
如图5所示,在一个实施例中,所述乘累加阵列130包括m行n列个子乘累加阵列131。其中,m、n均为大于或等于1的正整数。子乘累加阵列131可包括4个8bits×8bits的乘加单元,每个子乘累加阵列131可以计算最大元素数是256向量内积操作。其中,子乘累加阵列131的行数m和列数n可以根据待卷积数据30和原始卷积核20的大小进行设定。具体的,m值小于或等于所述子卷积核210的通道数C,n值小于或等于所述子卷积核210的个数K。
在本申请实施例中,为了便于说明,以m=n=C=K=4为例进行说明。其中,乘累加阵列130包括4行4列个子乘累加阵列131,每个子乘累加阵列131可分别记为MAC(i,j),其中,1≤i≤4,1≤j≤4。
在一个实施例中,第i行第j列的所述子乘累加阵列131可分别接收第j子卷积核210中的第i个权重平面211中的权重元素,以及待卷积数据30中第i 个输入平面310的输入元素。第i行第j列的所述子乘累加阵列131可根据与其连接的寄存器121的配置信息确定第i个权重平面211的权重类型,以确定出第 i个权重平面211中的零值权重和非零权重,进而仅读取第i个权重平面211中的非零权重,以对所述非零权重与第i个输入平面310的输入元素进行乘累加处理。示例性的,MAC(1,1)可分别获取第1子卷积核210中的第1个权重平面211 中的权重元素(w00,w01,w02,w03),以及待卷积数据30中第1个输入平面310中的输入元素(a00,a01,a02,a03)。MAC(1,1)可分配用于与对(a00,a01,a02,a03)和 (w00,w01,w02,w03)进行乘加矩阵运算。
其中,所述存储模块120包括多个寄存器121,寄存器121的数量小于或等于子乘累加阵列131的数量。子乘累加阵列131可对应连接至一个寄存器121。具体的,对于每个子乘累加阵列131连接的寄存器121,所述处理单元110还用于根据子乘累加阵列131所能够接收的权重平面211的所述权重类型来对该寄存器121进行配置。也即,与子乘累加阵列131连接的寄存器121的配置信息可用于表征该子乘累加阵列131所能够获取的子卷积核210中权重平面211的权重类型。具体的,处理单元110可根据权重类型对寄存器121的配置,可对应配置各寄存器121的配置信息。其中,配置信息可以用寄存器121的值来表征,寄存器121的值可以为用二进制、八进制或十六进制进行表示。为了便于说明,以寄存器121的值用二进制表示为例进行说明。若权重类型为 patten1(w00,w01,0,0),可配置对应的寄存器121的值为01,若权重类型为 patten2(0,0,0,0),可配置对应的寄存器121的值为10若权重类型为patten3(00,0, w02,w03),可配置对应的寄存器121的值为11权重类型为patten4(w00,0,w02,0),可配置对应的寄存器121的值为100。需要说明的是,其寄存器121的值可以不限于上述举例说明,还可以为其他数值。
在一个实施例中,所述处理单元110与各子乘累加阵列131连接,还用于预先配置所述子乘累加阵列131的跳零工作模式,以使所述子乘累加阵列131 能够响应于所述寄存器121的配置信息,对所述权重平面211中的各权重元素进行跳零处理,进而仅读取所述权重平面211中非零权重,并对所述非零权重与所述输入元素块进行乘累加处理。具体的,处理单元110可根据权重平面211的权重类型预先配置子乘累加阵列131的跳零工作模式。其中,跳零工作模式可以理解子乘累加阵列131在进行乘加计算过程中,不会读取为对权重平面211中的零值权重,直接跳过零值权值的乘积运算。其中,跳零工作模式与权重平面211的零值权重相对应。示例性的,权重类型为第一权重类型,则子乘累加阵列131 仅读取第一位和第二位上的非零权重,仅对第一位和第二位上的非零权重与对应的待卷积数据30进行乘累加处理。
具体的,子乘累加阵列131配置的跳零工作模式与该子乘累加阵列131连接的寄存器121的配置信息具有映射关系,使得子乘累加阵列131能够响应于寄存器121的配置信息,使其子乘累加阵列131工作在对应的跳零工作模式下,对获取的权重平面211中的各权重元素进行跳零处理,以读取所述权重平面211 中非零权重,进而可对所述非零权重与所述输入元素块进行乘累加处理。
请继续参考图5,在一个实施例中,所述存储模块120包括C行K列个寄存器121;其中,m值小于或等于所述子卷积核210的通道数C,n值小于或等于所述子卷积核210的个数K。示例性的,存储模块120可包括4×4个寄存器 121。示例性的,每个寄存器121可分别记为Reg(i,j),其中,1≤i≤4,1≤j≤4。也即,每个所述子乘累加阵列131被配置有一个独立的所述寄存器121,其中,第 i行第j列子乘累加阵列131可连接至寄存器Reg(i,j)。寄存器Reg(i,j)的值可用于表征第j子卷积核210中的第i个权重平面211的权重类型。
在本申请实施例中,为了便于说明,以子乘累加阵列MAC(1,1)为例进行说明。若第一个子卷积核210中的第一个权重平面211内的权重元素为 (w00,w01,0,0),则处理单元110可确定该权重平面211的权重类型为第一权重类型,并配置寄存器Reg(1,1)的值为1。子乘累加阵列MAC(1,1)可根据寄存器 Reg(1,1)的值获取权重平面211的权重类型,并判定权重元素w02,w03均为零值权重。如图6所示,子乘累加阵列MAC(1,1)仅读取权重元素w00,w01,而不读取权重元素w02,w03,同时,子乘累加阵列MAC(1,1)还会读取第一输入平面310的输入元素(a00,a01,a02,a03),并对输入元素(a00,a01,a02,a03)中非零权重(w00, w01)对应的输入元素(a00,a01)进行乘加运算,其子乘累加阵列MAC(1,1)的计算结果为Y(1,1)=a00×w00+a01×w01。第一输出平面Y1则为子乘累加阵列 MAC(1,1)、MAC(2,1)、MAC(3,1)、MAC(4,1)的计算结果之和。
如图7和图8所示,在一个实施例中,所述存储模块120包括多个寄存器 121,寄存器121的数量少于子乘累加阵列131的数量。其中,若各所述子卷积核210中至少两个所述权重平面211的权重类型相同,所述处理单元110还用于为同一子乘累加阵列131组配置同一所述寄存器121,其中,同一所述子乘累加阵列131组接收的各所述权重平面211的权重类型相同,同一所述子乘累加阵列131组包括至少两个所述子乘累加阵列131。也即,至少两个子乘累加阵列 131可连接至同一寄存器121,以实现寄存器121的共存。
请继续参考图7,示例性的,若每个子卷积核210中的第一权重平面211的权重类型相同,则处理单元110那可根据第一权重平面211的权重类型来配置第一寄存器121的值,该第一寄存器121可与位于第一行的各子乘累加阵列 MAC(1,j)连接。也即,第一行的各子乘累加阵列MAC(1,j)构成了子乘累加阵列 131组。
请继续参考图8,若第一个子卷积核210中的各权重平面211的权重类型相同,则处理单元110那可根据第一个子卷积核210中的各权重平面211的权重类型来配置第二寄存器121的值,该第二寄存器121可与位于第一列的各子乘累加阵列MAC(i,1)连接。也即,第一列的各子乘累加阵列MAC(i,1)构成了子乘累加阵列131组。
在其中一个实施例中,处理器还可控制卷积神经网路对卷积核数据进行训练,以生成具有预设权重类型的原始卷积核20和子卷积核210。示例性的,可将卷积核数据训练成多个子卷积核210,其中,每个子卷积核210中的所有权重平面211的权重类型都相同,处理单元110可为同一所述子乘累加阵列131组的各子乘累加阵列131配置一个寄存器121。其中,子乘累加阵列131组包括位于同一列的各所述子乘累加阵列131。也即,同一列的各所述子乘累加阵列131 均连接至同一个寄存器121。处理单元110可根据每个子卷积核210的权重类型来对该寄存器121进行配置,以使位于同一列的子乘累加阵列131均能够响应于该寄存器121的值,对接收的权重平面211中的权重要素进行跳零处理。
示例性的,可将卷积核数据训练成多个子卷积核210,其中,各子卷积核210 中的第k个权重平面211的权重类型都相同,处理单元110可为同一所述子乘累加阵列131组的各子乘累加阵列131配置一个寄存器121。其中,子乘累加阵列131组包括位于同一行的各所述子乘累加阵列131,也即,同一行的各所述子乘累加阵列131均连接至同一个寄存器121。处理单元110可根据第k个权重平面211的权重类型来对该寄存器121进行配置,以使位于同一行的子乘累加阵列131均能够响应于该寄存器121的值,对接收的权重平面211中的权重要素进行跳零处理。
在本申请实施例中,可以基于训练出的各子卷积核210中各权重平面211的权重类型类配置寄存器121的值,并将能够分别接收到相同权重类型的至少两个子乘累加阵列131连接至同一寄存器121,以实现寄存器121的共存,这样,可以在减少对权重平面211中零值权重元素的数据搬移,降低功耗的同时,还可以进一步简化卷积运算电路的结构,节约成本。
在一个实施例中,当所述待卷积数据30变更时,所述处理单元110还用于对各所述子卷积核210中的各所述权重平面211的权重类型进行更新,以重新对配置各所述寄存器121进行配置。其中,待卷积数据30可以为待处理数据的一部分。示例性的,若待处理数据为待处理图像,待卷积数据30可以为待处理图像的至少部分图像块。若当前的待处理图像可以为前景图像块,下一待处理图像可以为背景图像块。其待卷积数据30需要有前景图像块切换至背景图像块,或由背景图像块切换至前景图像块时,其原始卷积核20也会随之变化。此时,处理单元110可对应获取新的子卷积核210中的各权重平面211的权重类型,并根据新的权重类型重新配置各寄存器121的值,各子乘累加阵列131可响应于与之连接的寄存器121的值,对新的子卷积核210中的各权重平面211的权重元素进行跳零处理,以读取非零权重与新的图像块进行乘累加运算。
本实施例中,若待卷积数据30发生变化时,处理单元110也能够适应的调整其对原始卷积核20数据,并能够获取新的子卷积核210中的各权重平面211 的权重类型,并根据新的权重类型重新配置各寄存器121的值,各子乘累加阵列131可响应于与之连接的寄存器121的值,对新的子卷积核210中的各权重平面211的权重元素进行跳零处理,以读取非零权重与新的图像块进行乘累加运算,能够适用于对多组不同图像块的特征提取,在卷积运算过程中,还可以在减少对权重平面211中零值权重元素的数据搬移,降低功耗。
在一个实施例中,如图9所示,提供了一种卷积运算方法,该方法可应用于上述任一实施例中的卷积运算电路。具体的,卷积运算方法包括步骤902至步骤906。
步骤902,对原始卷积核进行切分处理得到多个子卷积核,获取各所述子卷积核中每一通道对应的权重平面的权重类型;所述权重类型用于表征各所述权重平面中零值权重的分布模式。
原始卷积核可以理解为用于与待卷积数据进行卷积运算的卷积核,子卷积核可以理解为对原始卷积核进行切分处理得到的卷积核。在一个示例中,子卷积核可以包括多个通道,每一通道对应一个权重平面。每个子卷积核中可包括多个权重平面,各权重平面可包括多个权重元素。权重平面内的各权重元素可以以平面形式存储在数据存储模块中。若权重元素的权重值为0,这该权重元素则为零值权重,若该权重元素的权值为非0,则该权重元素为非零权重。处理单元可识别出权重平面内各权重元素的零值权重和非零权重,并根据识别结果对应获取权重平面的权重类型。其中,所述权重类型用于表征各所述权重平面中零值权重的分布模式。
步骤904,根据所述权重类型配置存储模块中相应的寄存器的配置信息,以使所述寄存器对应存储所述子卷积核中每个所述权重平面的权重类型。
卷积运算电路可根据各权重平面的权重类型对相应的寄存器进行配置。对寄存器进行配置后,各寄存器则具有相应的配置信息。
步骤906,控制乘累加阵列响应于所述寄存器的所述配置信息,对所述子卷积核中各所述权重平面中的非零权重与待卷积数据进行乘累加处理。
待卷积数据可以理解为输入特征图。待卷积数据也可包括多个通道,其每个通道可对应一个输入平面,即一个二维图像。当输入特征图的通道数大于1时,可以将输入特征图理解为多个通道的二维图像叠在一起的立体特征图,其深度等于通道数。其中,待卷积数据的通道数等于子卷积核中的通道数。
在执行该卷积运算过程中,控制乘累加阵列可响应于所述寄存器的配置信息,根据各寄存器的配置信息,判定各个权重平面内权重元素是否为零,并根据该判定结果,仅对应读取各子卷积核中各所述权重平面中的非零权重,而不读取权重平面中零值权重,并将读取的非零权重与输入特征图对应的输入元素进行乘累加处理。
上述卷积运算方法,包括对原始卷积核进行切分处理得到多个子卷积核,获取各所述子卷积核中每一通道对应的权重平面的权重类型;根据所述权重类型配置存储模块中相应的寄存器的配置信息;以使所述寄存器对应存储所述子卷积核中每个所述权重平面的权重类型;控制乘累加阵列响应于所述寄存器的所述配置信息,对所述子卷积核中各所述权重平面中的非零权重与待卷积数据进行乘累加处理。这样,卷积运算方法在执行该卷积运算过程中,其乘累加阵列可响应于所述寄存器的配置信息,根据各寄存器的配置信息,仅对应读取各子卷积核中各所述权重平面中的非零权重,而不读取权重平面中零值权重,并将读取的非零权重与输入特征图进行乘累加处理,可以减少对权重平面中零值权重元素的数据搬移,实现了跳零处理,可以减少功耗,提高卷积运算的效率。
需要说明的是,本申请实施例的卷积运算方法可以应用于多种场景,例如,诸如人脸识别、车牌识别等图像识别的领域,诸如图像特征提取、语音特征提取的特征领域,语音识别领域,自然语言处理领域等,将图像或者由其他形式的数据转换得到的图像输入到预先训练好的卷积神经网络,即可利用该卷积神经网络进行运算,以达到或分类或识别或特征提取的目的。
如图10所示,在一个实施例中,所述乘累加阵列包括m行n列个子乘累加阵列;其中,所述存储模块包括多个寄存器,每个所述子乘累加阵列连接至一个所述寄存器。其中,所述控制乘累加阵列响应于所述寄存器的所述配置信息,对所述子卷积核中各所述权重平面中的非零权重与待卷积数据进行乘累加处理,包括:
步骤1002,控制所述子乘累加阵列根据所述寄存器的配置信息对所述权重平面中的各零值权重进行跳零处理,以读取所述权重平面中非零权重。
步骤1004,根据读取的所述非零权重与所述待卷积数据进行乘累加处理。
在执行该卷积运算过程中,可控制乘累加阵列响应于所述寄存器的配置信息,根据各寄存器的配置信息,判定各个权重平面内权重元素是否为零,并根据该判定结果,仅对应读取各子卷积核中各所述权重平面中的非零权重,而不读取权重平面中零值权重,并将读取的非零权重与输入特征图对应的输入元素进行乘累加处理。示例性的,若某一权重平面的元素为(w00,w01,0,0),乘累加阵列可响应于用于存储该权重平面的寄存器的配置信息,仅读取权重平面的权重元素 w00,w01,而不会读取w02,w03对应的零值权重,然后,基于读取的权重元素 w00,w01与对应的输入特征图的输入平面中的输入元素进行乘加运算。
在一个实施例中,步骤1002之前,还包括步骤1000,根据所述寄存器的配置信息配置所述子乘累加阵列的跳零工作模式。
跳零工作模式可以理解子乘累加阵列在进行乘加计算过程中,不会读取为对权重平面中的零值权重,直接跳过零值权值的乘积运算。其中,跳零工作模式与权重平面的零值权重相对应。示例性的,权重类型为第一权重类型,则子乘累加阵列仅读取第一位和第二位上的非零权重,仅对第一位和第二位上的非零权重与对应的待卷积数据进行乘累加处理。具体的,子乘累加阵列配置的跳零工作模式与该子乘累加阵列连接的寄存器的配置信息具有映射关系,使得子乘累加阵列能够响应于寄存器的配置信息,使其子乘累加阵列工作在对应的跳零工作模式下,对获取的权重平面中的各权重元素进行跳零处理,以读取所述权重平面中非零权重,进而可对所述非零权重与所述输入元素块进行乘累加处理。
在一个实施例中,所述获取各所述子卷积核中每一通道对应的权重平面的权重类型,包括:获取各所述子卷积核中各所述权重平面中权重元素的位置信息,并根据所述位置信确定所述权重平面的权重类型。
为了便于说明,本申请实施例以某一权重平面包括w00,w01,w02,w03四个权重元素为例进行说明。示例性的,若权重平面的权重元素为(1,3,0,0),可确定零值权重的位置在第三位置和第四位置,可确定该权重平面的权重类型为第一权重类型。若子卷积核的权重元素为(1,0,5,0),可确定零值权重的位置在第二位置和第四位置,可确定该权重平面的权重类型为第二权重类型。若子卷积核的权重元素为(0,0,5,2),可确定零值权重的位置在第一位置和第二位置,可确定该权重平面的权重类型为第三权重类型。若子卷积核的权重元素为(0,3,0,8),可确定零值权重的位置在第一位置和第三位置,可确定该权重平面的权重类型为第四权重类型等等。需要说明的是,权重平面的权重类型的确定与零值权重的位置和数量相关联,并不限于上述举例说明。权重平面的权重类型的确定还可以根据权重平面中的权重元素的数量,以及权重元素中零值权重的分布模式来确定其权重类型。例如,当权重平面包括w00,w01,w02,…,w08等九个权重元素时,也可以基于权重平面中的零值权重的数量和位置信息来确定其权重类型。
如图11所示,在一个实施例中,卷积运算方法包括步骤1102至步骤1110。
步骤1102,对原始卷积核进行切分处理得到多个子卷积核,获取各所述子卷积核中每一通道对应的权重平面的权重类型;所述权重类型用于表征各所述权重平面中零值权重的分布模式。
步骤1104,根据所述权重类型配置存储模块中相应的寄存器的配置信息;以使所述寄存器对应存储所述子卷积核中每个所述权重平面的权重类型。
步骤1106,控制乘累加阵列响应于所述寄存器的所述配置信息,对所述子卷积核中各所述权重平面中的非零权重与待卷积数据进行乘累加处理。
步骤1102-步骤1106与前述实施例中步骤902-步骤906一一对应,在此,对步骤1102-步骤1106的具体步骤不再赘述。
步骤1108,当变更所述待卷积数据时,确定是否需要更新各所述子卷积核中的各所述权重平面的权重类型。
步如图10,若需要更新各所述子卷积核中的各所述权重平面的权重类型,则根据更新后的权重类型,则重新对所述寄存器进行配置。
其中,待卷积数据可以为待处理数据的一部分。示例性的,若待处理数据为待处理图像,待卷积数据可以为待处理图像的至少部分图像块。若当前的待处理图像可以为前景图像块,下一待处理图像可以为背景图像块。其待卷积数据需要有前景图像块切换至背景图像块,或由背景图像块切换至前景图像块时,其原始卷积核也会随之变化。此时可对应获取新的子卷积核中的各权重平面的权重类型,并根据新的权重类型重新配置各寄存器的值,进而可重复执行步骤1106,以控制各子乘累加阵列响应于与之连接的寄存器的值,对新的子卷积核中的各权重平面的权重元素进行跳零处理,以读取非零权重与新的图像块进行乘累加运算。
本实施例中的卷积运算方法,若待卷积数据发生变化时,也能够适应的调整其对原始卷积核数据,并能够获取新的子卷积核中的各权重平面的权重类型,并根据新的权重类型重新配置各寄存器的值,控制各子乘累加阵列响应于与之连接的寄存器的值,对新的子卷积核中的各权重平面的权重元素进行跳零处理,以读取非零权重与新的图像块进行乘累加运算,能够适用于对多组不同图像块的特征提取,在卷积运算过程中,还可以在减少对权重平面中零值权重元素的数据搬移,降低功耗。
应该理解的是,虽然图9-图11的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图9-图11中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,提供了一种神经网络处理器,包括数据存储模块以及前述任一实施例中的卷积运算电路。其中,数据存储模块,存储原始卷积核和待卷积数据。卷积运算电路通过所述数据存储模块获取所述原始卷积核和所述待卷积数据。
如图12所示,在一个实施例中,提供了一种神经网络加速器,包括数据存储模块40以及前述任一实施例中的卷积运算电路10。其中,数据存储模块40,存储原始卷积核和待卷积数据。卷积运算电路10通过所述数据存储模块40获取所述原始卷积核和所述待卷积数据。其中,数据存储模块40所存储的数据也可以是处理结果,或者说数据存储模块40所存储的数据是经过处理单元对待卷积数据进行处理后的数据。需要说明的是,数据存储模块240实际所存储的数据并不限于此,数据存储模块40还可以存储其他数据。
卷积运算电路10在对待卷积数据进行卷积处理过程中,其乘累加阵列可响应于所述寄存器的配置信息,根据各寄存器的配置信息,仅对应读取各子卷积核中各所述权重平面中的非零权重,而不读取权重平面中零值权重,并将读取的非零权重与输入特征图进行乘累加处理,可以减少对权重平面中零值权重元素的数据搬移,不仅可以节省数据缓存模块40的存储空间,还可以减少数据存储模块40的访问,降低功耗,提高神经网络处理器或神经网络加速器的运算效率。
上述任一实施例中的卷积运算电路还可以应用于具有MAC阵列的神经网络处理器,通过降低功耗,可以使得神经网络处理器可以工作在always on模式下,进而可以满足其神经网络处理器的整体电流小于5mA的设计需求。
在一个实施例中,上述任一实施例中的卷积运算电路还可以应用于与卷积,矩阵乘等所有以矩阵运算单元为基本单元的神经网络加速器中。
在一个实施例中,上述任一实施例中的卷积运算电路还可以应用于具有脉动阵列的神经网络加速器中。
如图13所示,在一个实施例中,提供了一种电子设备100,包括:系统总线以及如前述任一实施例中的神经网络加速器或神经网络处理器。其中,所述神经网络加速器或神经网络处理器中的数据存储模块40和卷积运算电路10分别与所述系统总线连接。需要说明的是,本申请实施例的神经网络处理器或神经网络加速器也可以与其他处理器、存储器等集成在一个芯片中。
该电子设备还包括通过系统总线连接的中央处理器50和外部存储器60。其中,该中央处理器50用于提供计算和控制能力,支撑整个电子设备的运行。外部存储器60可包括非易失性存储介质及内存储器。非易失性存储介质存储有操作系统和计算机程序。该计算机程序可被处理器所执行,以用于实现以下各个实施例所提供的一种卷积运算方法。该电子设备可以是手机、平板电脑、PDA (Personal Digital Assistant,个人数字助理)、POS(Point of Sales,销售终端)、车载电脑、穿戴式设备等任意终端设备。
在一个实施例中,提供了一种电子设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述任一实施例中的卷积运算方法。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任一实施例中的卷积运算方法。
在一个实施例中,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一实施例中的卷积运算方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
在本说明书的描述中,参考术语“有些实施例”、“其他实施例”、“理想实施例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特征包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性描述不一定指的是相同的实施例或示例。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种卷积运算电路,其特征在于,包括:
存储模块,包括至少一寄存器;
处理单元,用于对原始卷积核进行切分处理得到至少一子卷积核,获取各所述子卷积核中每一通道对应的权重平面的权重类型,并根据所述权重类型对相应的所述寄存器进行配置;所述权重类型用于表征各所述权重平面中零值权重的分布模式;
乘累加阵列,分别与所述处理单元、寄存器连接,用于响应于配置后的所述寄存器的配置信息,对所述子卷积核中各所述权重平面中的非零权重与待卷积数据进行乘累加处理。
2.根据权利要求1所述的卷积运算电路,其特征在于,所述乘累加阵列包括m行n列个子乘累加阵列;其中,m、n均为大于或等于1的正整数;
所述存储模块包括多个寄存器,所述处理单元还用于根据各所述子卷积核中各所述权重平面的所述权重类型配置相应的所述寄存器的配置信息;其中,
每个所述子乘累加阵列连接至一个所述寄存器,与所述子乘累加阵列连接的所述寄存器的配置信息用于表征所述子乘累加阵列接收的所述权重平面的权重类型;
所述子乘累加阵列用于根据所述寄存器的配置信息对所述权重平面中的各权重进行跳零处理,以读取所述权重平面中非零权重,并对所述非零权重与所述待卷积数据进行乘累加处理。
3.根据权利要求2所述的卷积运算电路,其特征在于,第i行第j列的所述子乘累加阵列用于分别接收第j子卷积核中的第i个权重平面的权重元素以及所述待卷积数据中第i个输入平面的输入元素,并根据所述子乘累加阵列连接的所述寄存器读取所述第i个权重平面中非零权重,并对所述非零权重与所述第i个输入平面的输入元素进行乘累加处理;其中1≤i≤m,1≤j≤n。
4.根据权利要求2所述的卷积运算电路,其特征在于,所述存储模块包括C行K列个寄存器;其中,m值小于或等于所述子卷积核的通道数C,n值小于或等于所述子卷积核的个数K,每个所述子乘累加阵列被配置有一个独立的所述寄存器,其中,与第i行第j列所述子乘累加阵列连接的所述寄存器的配置信息用于表征第j子卷积核中的第i个权重平面的权重类型;其中1≤i≤m,1≤j≤n。
5.根据权利要求2所述的卷积运算电路,其特征在于,所述处理单元还用于获取各所述子卷积核中各所述权重平面中权重元素的位置信息,并根据所述位置信息确定所述权重平面的权重类型。
6.根据权利要求2所述的卷积运算电路,其特征在于,所述处理单元还用于根据所述寄存器的配置信息配置所述子乘累加阵列的跳零工作模式,以使所述子乘累加阵列用于响应于所述寄存器的配置信息,对所述权重平面中的各权重元素进行跳零处理,以读取所述权重平面中非零权重,并对所述非零权重与所述待卷积数据进行乘累加处理。
7.一种卷积运算方法,其特征在于,包括:
对原始卷积核进行切分处理得到多个子卷积核,获取各所述子卷积核中每一通道对应的权重平面的权重类型;所述权重类型用于表征各所述权重平面中零值权重的分布模式;
根据所述权重类型配置存储模块中相应的寄存器的配置信息;以使所述寄存器对应存储所述子卷积核中每个所述权重平面的权重类型;
控制乘累加阵列响应于所述寄存器的所述配置信息,对所述子卷积核中各所述权重平面中的非零权重与待卷积数据进行乘累加处理。
8.根据权利要求7所述的方法,其特征在于,所述获取各所述子卷积核中每一通道对应的权重平面的权重类型,包括:
获取各所述子卷积核中各所述权重平面中权重元素的位置信息;
根据所述位置信确定所述权重平面的权重类型。
9.一种神经网络加速器,其特征在于,包括:
数据存储模块,用于存储原始卷积核和待卷积数据中的输入元素块;
如权利要求1-6任一项所述的卷积运算电路,所述卷积运算电路通过所述数据存储模块获取所述原始卷积核和所述输入元素块。
10.一种电子设备,其特征在于,包括:
系统总线;以及
如权利要求9所述的神经网络加速器,所述神经网络加速器与所述系统总线连接。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111030795.7A CN115759212A (zh) | 2021-09-03 | 2021-09-03 | 卷积运算电路及方法、神经网络加速器和电子设备 |
PCT/CN2022/113849 WO2023030061A1 (zh) | 2021-09-03 | 2022-08-22 | 卷积运算电路及方法、神经网络加速器和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111030795.7A CN115759212A (zh) | 2021-09-03 | 2021-09-03 | 卷积运算电路及方法、神经网络加速器和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115759212A true CN115759212A (zh) | 2023-03-07 |
Family
ID=85332904
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111030795.7A Pending CN115759212A (zh) | 2021-09-03 | 2021-09-03 | 卷积运算电路及方法、神经网络加速器和电子设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115759212A (zh) |
WO (1) | WO2023030061A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116861973A (zh) * | 2023-09-05 | 2023-10-10 | 深圳比特微电子科技有限公司 | 用于卷积运算的改进的电路、芯片、设备及方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200125212A (ko) * | 2019-04-26 | 2020-11-04 | 에스케이하이닉스 주식회사 | 신경망 가속 장치 및 그것의 동작 방법 |
CN112633484A (zh) * | 2019-09-24 | 2021-04-09 | 中兴通讯股份有限公司 | 神经网络加速器、卷积运算实现方法、装置及存储介质 |
CN112465110B (zh) * | 2020-11-16 | 2022-09-13 | 中国电子科技集团公司第五十二研究所 | 一种卷积神经网络计算优化的硬件加速装置 |
CN113688976A (zh) * | 2021-08-26 | 2021-11-23 | 哲库科技(上海)有限公司 | 一种神经网络加速方法、装置、设备及存储介质 |
-
2021
- 2021-09-03 CN CN202111030795.7A patent/CN115759212A/zh active Pending
-
2022
- 2022-08-22 WO PCT/CN2022/113849 patent/WO2023030061A1/zh unknown
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116861973A (zh) * | 2023-09-05 | 2023-10-10 | 深圳比特微电子科技有限公司 | 用于卷积运算的改进的电路、芯片、设备及方法 |
CN116861973B (zh) * | 2023-09-05 | 2023-12-15 | 深圳比特微电子科技有限公司 | 用于卷积运算的改进的电路、芯片、设备及方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2023030061A1 (zh) | 2023-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109919311B (zh) | 生成指令序列的方法、执行神经网络运算的方法和装置 | |
CN110097174B (zh) | 基于fpga和行输出优先的卷积神经网络实现方法、系统及装置 | |
US20170344876A1 (en) | Efficient sparse parallel winograd-based convolution scheme | |
US9411726B2 (en) | Low power computation architecture | |
US20200285605A1 (en) | Systolic array and processing system | |
CN117217273A (zh) | 实现卷积神经网络的硬件和非瞬态计算机可读存储介质 | |
CN111079917B (zh) | 张量数据分块存取的方法及装置 | |
US20200218777A1 (en) | Signal Processing Method and Apparatus | |
CN110807170B (zh) | 多样本多通道卷积神经网络Same卷积向量化实现方法 | |
US20210326687A1 (en) | Neural Network System and Data Processing Technology | |
CN111310115B (zh) | 数据处理方法、装置及芯片、电子设备、存储介质 | |
WO2022041188A1 (zh) | 用于神经网络的加速器、方法、装置及计算机存储介质 | |
CN115759212A (zh) | 卷积运算电路及方法、神经网络加速器和电子设备 | |
US11748100B2 (en) | Processing in memory methods for convolutional operations | |
CN110533177B (zh) | 一种数据读写装置、方法、设备、介质及卷积加速器 | |
JP6906622B2 (ja) | 演算回路および演算方法 | |
CN111788567B (zh) | 一种数据处理设备以及一种数据处理方法 | |
CN108804974B (zh) | 目标检测算法的硬件架构的资源估算、配置方法及系统 | |
CN114527930B (zh) | 权重矩阵数据存储方法、数据获取方法和装置、电子设备 | |
CN113393368B (zh) | 基于神经网络模型的图像处理方法、介质和电子设备 | |
KR102494565B1 (ko) | 콘볼루션 신경망의 하드웨어 구조 최적화 방법 | |
US11636569B1 (en) | Matrix transpose hardware acceleration | |
CN112215329B (zh) | 基于神经网络的卷积计算方法及装置 | |
US8503793B2 (en) | Correlation processing apparatus and medium readable by correlation processing apparatus | |
CN110968832A (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 |