CN108229654B - 神经网络卷积运算装置及方法 - Google Patents
神经网络卷积运算装置及方法 Download PDFInfo
- Publication number
- CN108229654B CN108229654B CN201711343539.7A CN201711343539A CN108229654B CN 108229654 B CN108229654 B CN 108229654B CN 201711343539 A CN201711343539 A CN 201711343539A CN 108229654 B CN108229654 B CN 108229654B
- Authority
- CN
- China
- Prior art keywords
- matrix
- transformation
- neuron
- multiplication
- transformed
- 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
-
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- 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
-
- 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
- G06N3/065—Analogue means
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Complex Calculations (AREA)
- Image Processing (AREA)
Abstract
一种神经网络卷积运算装置和方法,其中装置用于以矩阵乘法的方式实现神经网络中的权值矩阵与神经元的卷积运算,其中包括:移位运算器,用于对所述神经元矩阵和权值矩阵分别进行winograd变换,得到变换后神经元矩阵和变换后权值矩阵;矩阵乘法运算器,用于将所述变换后神经元矩阵和变换后权值矩阵进行对位相乘的矩阵乘法操作,得到乘法矩阵;所述移位运算器还用于将所述乘法矩阵进行winograd反变换,得到卷积运算结果;控制器,用于控制所述移位运算器进行winograd变换或winograd反变换,还用于控制所述矩阵乘法运算器进行矩阵乘法操作。
Description
技术领域
本披露涉及人工神经网络技术领域,具体涉及一种神经网络卷积运算装置以及神经网络的卷积运算方法。
背景技术
多层人工神经网络被广泛应用于模式识别、图像处理、函数逼近和优化计算等领域,多层人工网络在近年来由于其较高的识别准确度和较好的可并行性,受到学术界和工业界越来越广泛的关注。
为了适应越来越来高的任务需求,神经网络的规模变得越来越庞大,目前大型的卷积神经网络已经包含了上百层的网络层结构。随之带来的问题神经网络需要做更大量的运算,特别是卷积神经网络,大量的卷积运算降低了神经网络的运算速度,影响神经网络在实际应用场合的使用。
发明内容
(一)要解决的技术问题
有鉴于此,本披露的目的在于提供一种神经网络卷积运算装置神经网络的卷积运算及方法,以至少部分解决以上所述的技术问题。
(二)技术方案
本披露一方面提供一种神经网络卷积运算装置,用于以矩阵乘法的方式实现神经网络中的权值矩阵与神经元的卷积运算,其中包括:
移位运算器,用于对所述神经元矩阵和权值矩阵分别进行winograd变换,得到变换后神经元矩阵和变换后权值矩阵;
矩阵乘法运算器,用于将所述变换后神经元矩阵和变换后权值矩阵进行对位相乘的矩阵乘法操作,得到乘法矩阵;
所述移位运算器还用于将所述乘法矩阵进行winograd反变换,得到卷积运算结果;
控制器,用于控制所述移位运算器进行winograd变换或winograd反变换,还用于控制所述矩阵乘法运算器进行矩阵乘法操作。
在进一步的实施方案中,还包括片上缓存,用于存储所述神经元矩阵和权值矩阵,还用于存储对神经元矩阵进行winograd变换的变换矩阵C,用于存储对权值矩阵进行winograd变换的变换矩阵G。
在进一步的实施方案中,所述变换矩阵C和所述变换矩阵G中的元素数值独立为±2n或0,n为整数。
在进一步的实施方案中,所述片上缓存还用于存储进行winograd反变换矩阵,还用于存储对神经元矩阵进行winograd反变换的反变换矩阵A。
在进一步的实施方案中,所述反变换矩阵A中的元素数值为±2n或0,n为整数。
在进一步的实施方案中,所述控制器还用于根据所述变换矩阵C或其转置矩阵CT,控制所述移位运算器对神经元矩阵或权值矩阵中各元素的二进制数值独立进行左移或右移;或根据所述变换矩阵G或其转置矩阵GT,控制所述移位运算器对权值矩阵中各元素二进制数值独立进行左移或右移。
在进一步的实施方案中,所述控制器还用于根据所述反变换矩阵A或其转置矩阵AT,对乘法矩阵中各元素的二进制数值独立进行左移或右移。
在进一步的实施方案中,还包括稀疏化处理单元,用于所述变换后权值矩阵进行稀疏化处理,生成一二进制的稀疏序列,其中,“0”对应变换后权值矩阵中数值为“0”的元素,“1”对应变换后权值矩阵中数值不为0的元素;优选的,所述稀疏序列从高位至低位对应变换后权值矩阵逐行或逐列读取的元素。
在进一步的实施方案中,还包括映射单元,所述映射单元生成稀疏序列与变换后神经元矩阵中元素位置的映射关系表,稀疏序列的第K位对应M行×N列神经元矩阵中第i行第j列元素,且满足(i-1)×N+j=K或者(j-1)×M+i=K。
在进一步的实施方案中,所述控制器还用于根据所述映射关系表,控制所述矩阵乘法运算器进行矩阵乘法操作,其中,稀疏序列中为“0”的位对应神经元矩阵中的相应元素不进行矩阵乘法运算。
在进一步的实施方案中,还包括加法器,用于在所述神经元矩阵和权值矩阵分别进行winograd变换时,对移位运算器移位运算后的结果按照矩阵乘法规则累加。
在进一步的实施方案中,还包括数据缓存单元,用于缓存所述稀疏序列和映射关系表。
本披露另一方面提供一种应用以上任一种神经网络卷积运算装置进行卷积运算的方法,包括:
通过移位运算器和加法器对所述神经元矩阵和权值矩阵分别进行winograd变换,得到变换后神经元矩阵和变换后权值矩阵;
通过矩阵乘法运算器,用于将所述变换后神经元矩阵和变换后权值矩阵进行对位相乘的矩阵乘法操作,得到乘法矩阵;
通过移位运算器和加法器将所述乘法矩阵进行winograd反变换,得到卷积运算结果;
通过控制器控制所述移位运算器进行winograd变换或winograd反变换,还通过控制器控制所述矩阵乘法运算器进行矩阵乘法操作。
在进一步的实施方案中,还包括:采用片上缓存存储所述神经元矩阵和权值矩阵,以及存储对神经元矩阵进行winograd变换的变换矩阵C,用于存储对权值矩阵进行winograd变换的变换矩阵G。
在进一步的实施方案中,所述变换矩阵C和所述变换矩阵G中的元素数值独立为±2n或0,n为整数。
在进一步的实施方案中,还采用所述片上缓存存储进行winograd反变换矩阵,以及存储对神经元矩阵进行winograd反变换的反变换矩阵A。
在进一步的实施方案中,所述反变换矩阵A中的元素数值为±2n或0,n为整数。
在进一步的实施方案中,还包括获取所述对神经元矩阵进行winograd变换的变换矩阵C,对权值矩阵进行winograd变换的变换矩阵G,存储对神经元矩阵进行winograd反变换的反变换矩阵A,包括:
接收所述输入神经元矩阵与权值矩阵的维度,以及卷积运算滑动步长数据;
根据接收的数据,依据winograd算法确定所述变换矩阵C,变换矩阵G和反变换矩阵A。
在进一步的实施方案中,控制器根据所述变换矩阵C或其转置矩阵CT,控制所述移位运算器对神经元矩阵或权值矩阵中各元素的二进制数值独立进行左移或右移;或根据所述变换矩阵G或其转置矩阵GT中的元素值,控制所述移位运算器对权值矩阵中各元素二进制数值独立进行左移或右移或归零。
在进一步的实施方案中,控制器根据所述反变换矩阵A或其转置矩阵AT中的元素值,对乘法矩阵中各元素的二进制数值独立进行左移或右移或归零。
在进一步的实施方案中,通过稀疏化处理单元对变换后权值矩阵进行稀疏化处理,生成一二进制的稀疏序列,其中,“0”对应变换后权值矩阵中数值为“0”的元素,“1”对应变换后权值矩阵中数值不为0的元素;优选的,所述稀疏序列从高位至低位对应变换后权值矩阵逐行或逐列读取的元素。
在进一步的实施方案中,通过映射单元生成稀疏序列与变换后神经元矩阵中元素位置的映射关系表,稀疏序列的第K位对应M行×N列神经元矩阵中第i行第j列元素,且满足(i-1)×N+j=K或者(j-1)×M+i=K。
在进一步的实施方案中,通过控制器根据所述映射关系表,控制所述矩阵乘法运算器进行矩阵乘法操作,其中,稀疏序列中为“0”的位对应神经元矩阵中的相应元素不进行矩阵乘法运算。
在进一步的实施方案中,包括通过加法器在所述神经元矩阵和权值矩阵分别进行winograd变换时,对移位运算器移位运算后的结果按照矩阵乘法规则累加。
在进一步的实施方案中,还包括通过数据缓存单元缓存所述稀疏序列和映射关系表。
本披露的再一方面提供一种神经网络卷积运算装置,包括一个或多个以上所述的神经网络卷积运算装置,用于获取待运算数据和控制信息,执行神经网络运算。
本披露的又一方面提供一种组合处理装置,包括以上所述的神经网络运算装置,通用互联接口,和用于执行非神经网络运算的其他处理装置,所述其他处理装置与所述神经网络运算装置通过通用互联接口连接。
本披露的还一方面提供一种芯片,其特征在于包括其包括以上所述的神经网络运算装置或权利要求27所述的组合处理装置。
本披露的再一方面提供一种电子装置,包括以上所述的芯片。
(三)有益效果
本披露的移位运算器在进行神经元矩阵和权值矩阵winograd变换和反变换时能够完全替代乘法器,仅通过移位操作即可完成乘法运算;
本披露能够将复杂的卷积操作变为稀疏矩阵乘法操作,并且变换与反变换过程可用位操作实现,通过这种方法可以大量减少卷积所需的运算量,提高神经网络的运算速度,大幅提高数据处理的效率;
本披露通过采用稀疏化单元形成稀疏序列,可以减少存储网络参数所需的存储空间,降低内存访问的带宽,还可以在变换后神经元矩阵和变换后权值矩阵进行对位相乘的矩阵乘法操作时,减少乘法运算,节省开销。
附图说明
图1示意性示出了本披露实施例的神经网络卷积运算装置的结构示意图。
图2示意性示出了本披露实施例的神经网络卷积运算装置进行卷积运算的方法流程图。
图3示意性示出了本披露实施例的映射关系表。
图4示意性示出了卷积运算的示意图。
图5结合本披露实施例所描述的装置,示意性示出本披露实施例执行图4卷积运算的过程。
图6为本披露实施例的组合处理装置的结构示意图。
具体实施方式
根据结合附图对本披露示例性实施例的以下详细描述,本披露的其它方面、优势和突出特征对于本领域技术人员将变得显而易见。
在本披露中,术语“包括”和“含有”及其派生词意为包括而非限制;术语“或”是包含性的,意为和/或。
在本说明书中,下述用于描述本披露原理的各种实施例只是说明,不应该以任何方式解释为限制发明的范围。参照附图的下述描述用于帮助全面理解由权利要求及其等同物限定的本披露的示例性实施例。下述描述包括多种具体细节来帮助理解,但这些细节应认为仅仅是示例性的。因此,本领域普通技术人员应认识到,在不悖离本披露的范围和精神的情况下,可以对本文中描述的实施例进行多种改变和修改。此外,为了清楚和简洁起见,省略了公知功能和结构的描述。此外,贯穿附图,相同参考数字用于相思功能和操作。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。
因此,本披露的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本披露的技术可以采取存储有指令的计算机可读介质上的计算机程序产品的形式,该计算机程序产品可供指令执行***使用。
图1示意性示出了本披露实施例的神经网络卷积运算装置的结构示意图,如图1所示,神经网络卷积运算装置100包括运算器110和控制器120,其中运算器110包括移位运算器111和矩阵乘法运算器112。
其中,移位运算器111,用于对神经元矩阵和权值矩阵分别进行winograd变换,得到变换后神经元矩阵和变换后权值矩阵。矩阵乘法运算器112,用于将变换后神经元矩阵和变换后权值矩阵进行对位相乘的矩阵乘法操作,得到乘法矩阵;移位运算器111还用于在得到乘法矩阵后将乘法矩阵进行winograd反变换,得到卷积运算结果。本披露实施例的控制器120用于控制移位运算器111进行winograd变换或winograd反变换,还用于控制矩阵乘法运算器111进行矩阵乘法操作。
在一些实施例中,还包括片上缓存,用于存储神经元矩阵和权值矩阵,还用于存储对神经元矩阵进行winograd变换的变换矩阵C,用于存储对权值矩阵进行winograd变换的变换矩阵G。该片上缓存可以是高速缓冲寄存器。变换矩阵C和变换矩阵G中的元素数值独立为±2n或0,n为整数。这里的独立为是指两个变换矩阵上的元素各自单独取值满足上述条件。片上缓存包括专门存储神经元矩阵的输入神经元缓存,输出神经元缓存,专门存储权值矩阵的权值缓存,专门存储变换矩阵C和变换矩阵G的两个缓存。或者输入神经元缓存,输出神经元缓存,权值缓存的任意两个可以用于存储变换矩阵C和变换矩阵G。
在一些实施例中,存储器还用于存储进行winograd反变换矩阵,还用于存储对神经元矩阵进行winograd反变换的反变换矩阵A。反变换矩阵A中的元素数值为±2n或0,n为整数。
在一些实施例中,控制器120还用于根据变换矩阵C或其转置矩阵CT,控制移位运算器对神经元矩阵或权值矩阵中各元素的二进制数值独立进行左移或右移;或根据变换矩阵G或其转置矩阵GT,控制移位运算器对权值矩阵中各元素二进制数值独立进行左移或右移或者置零。其中由于矩阵C和G中的元素均为2幂指数或者整数倍,可以通过左移、右移或者置零实现矩阵C与神经元矩阵之间对应元素的乘法运算。
在一些实施例中,控制器还用于根据反变换矩阵A或其转置矩阵AT,对乘法矩阵中各元素的二进制数值独立进行左移或右移。
在一些实施例中,还包括稀疏化处理单元113,用于变换后权值矩阵进行稀疏化处理,生成一二进制的稀疏序列,其中,“0”对应变换后权值矩阵中数值为“0”的元素,“1”对应变换后权值矩阵中数值不为0的元素;优选的,稀疏序列从高位至低位对应变换后权值矩阵逐行或逐列读取的元素。
在一些实施例中,还包括映射单元114,映射单元114生成稀疏序列与变换后神经元矩阵中元素位置的映射关系表,稀疏序列的第K位对应M行×N列神经元矩阵中第i行第j列元素,且满足(i-1)×N+j=K或者(j-1)×M+i=K。
在一些实施例中,控制器120还用于根据映射关系表,控制矩阵乘法运算器112进行矩阵乘法操作,其中,稀疏序列中为“0”的位对应神经元矩阵中的相应元素不进行矩阵乘法运算。由于实现的为对位相乘(例如第1个矩阵中的第i行第j列与第2各矩阵中的第i行第j列相乘,结果作为结果矩阵的第i行第j列的元素),矩阵乘法器120主要包括一个或多个乘法器。
在一些实施例中,还包括加法器115,用于在神经元矩阵和权值矩阵分别进行winograd变换时,对移位运算器移位运算后的结果按照矩阵乘法规则累加。例如在winograd变换和winograd反变换时,两个3×3的矩阵进行乘法操作时,在确定结果矩阵第1行第1列的数值是将第1个矩阵的第1行三个元素分别对应的第2个矩阵的第1列三个元素,三个积再通过上述加法器115进行累加,获得矩阵第1行第1列的最后结果。
在一些实施例中,还包括数据缓存单元130,用于缓存稀疏序列和映射关系表。
关于上述神经网络卷积运算装置100的各部分所实现的具体功能,以下还将结合以下卷积运算的方法进行进一步说明。
图2示意性示出了应用上述实施例的神经网络卷积运算装置进行卷积运算的方法流程图,如图2所示,方法包括:
步骤1:通过移位运算器111和加法器115对所述神经元矩阵和权值矩阵分别进行winograd变换,得到变换后神经元矩阵和变换后权值矩阵;
在本步骤中,采用下式对神经元矩阵d0和权值矩阵w0进行winograd变换,得到变换后神经元矩阵d和变换后权值矩阵w:
d=CTd0C,w=Gw0GT,
其中,C为神经元矩阵d0的变换矩阵,CT为C的转置矩阵,G为权值矩阵w0的变换矩阵,GT为G的转置矩阵。
神经元矩阵d0和权值矩阵w0的变换矩阵C和G是采用winograd算法得到的。
为方便理解,以下简单介绍winograd算法,该算法利用矩阵的分块相乘以减小矩阵乘法的乘法次数,有多种不同的矩阵分块方法,一种winograd算法如下所示:
计算矩阵乘法C=AB,对各矩阵进行分块,有
记
S1=A21+A22,S2=S1-A11,S3=A11-A21,S4=A12-S2
S5=B12-B11,S6=B22-S5,S7=B22-B12,S8=S6-B21
M1=S2S6,M2=A11B11,M3=A12B21,M4=S3S7
M5=S1S5,M6=S4B22,M7=A22S8
T1=M1+M2,T2=T1+M4
则
C11=M2+M3+M6,C12=T1+M5
C21=T2-M7,C22=T2+M5
通过上述的winograd算法,获得卷积所需的变换矩阵,例如,对于一维卷积[d1,d2,d3]*[w1,w2],假设每次卷积滑动为1,可将卷积扩展成矩阵相乘的形式
通过winograd算法可获得
M1=(-a1+a2+a3)b1,M2=a1b1,M3=a2b2,M4=0
M5=(a2+a3)(-b1),M6=0,M7=a3(b1-b2)
output1=M2+M3+M6,output2=M1+M2+M4-M7
去除其中的0值项,和未用到部分可改写为
m1=(-a1+a2+a3)b1,m2=a1b1,m3=a2b2,m4=a3(b1-b2)
output1=m2+m3,output2=m1+m2-m4
从而可获得卷积的变换矩阵
上述获取变换矩阵的方法仅作为例示,并不应理解为本披露的限定。对于高维的矩阵,可通过多次矩阵分块获得其卷积变换矩阵。winograd算法有不同的矩阵分块方式,对同一种矩阵分块方式,变换矩阵的具体数值及维度由输入神经元与权值矩阵的维度决定以及卷积滑动步长决定,具体变换方式可参考已有的winograd算法。
从上述算法可以看出变换矩阵的具体数值及维度由输入神经元与权值矩阵的维度决定,具体影响因素包括输入神经元的维度、权值矩阵的维度和每次卷积操作的滑动步长,当这三个因素确定后,各变换矩阵的数值及维度也随之确定,由于在神经网络结构中,三个影响因素可以是事先设定好的,因此本实施例在线下或者预处理阶段操作以完成对于各变换矩阵的设定。
另外,神经元矩阵和权值矩阵中的数值为二进制,并且,变换矩阵C、G中元素的数值为±2n或者0,例如-2,-1,-0.5,0,0.5,1,2等。这样,本披露实施例采用位操作实现winograd变换,通过左移和右移实现乘2与除2的操作。例如,神经元矩阵d0中的一个数值与0.5相乘时,即将该数值向右移一位,与-0.5相乘时,即将该数值向左移一位并将最高位取反。因此,该步骤中不需要专用的乘法器参与运算,仅需要移位运算器111和加法器115即可以完成整个矩阵运算。因此,本披露实施例通过位操作来实现winograd变换,减少了运算量,提高了运算速度。
步骤2,通过矩阵乘法运算器112,用于将所述变换后神经元矩阵和变换后权值矩阵进行对位相乘的矩阵乘法操作,得到乘法矩阵t:
需要说明的是,在通常的卷积过程中,参与运算的两个矩阵可能具有不同规模,故需要通过滑动操作,进行多次矩阵乘法运算,而在本披露实施例中,转换后的神经元矩阵d和权值矩阵w符合矩阵乘法规则,即只进行一次矩阵乘法运算,这样大大节省了计算量。
另外,当两个矩阵相乘时,如果已知一个矩阵的部分元素的数值为0,其与另一矩阵相应元素相乘得到的数值必然是0。那么,在实际数据计算过程中,上述过程其实可以不用参与运算,这样可以省去不必要的计算量。所以,本披露实施例通过稀疏化处理单元113将变换后权值矩阵映射成“0”和“1”组成的稀疏序列,其中,“0”对应变换后权值矩阵中数值为“0”的元素,“1”对应变换后权值矩阵中数值不为0的元素。参照图3所示,然后通过映射单元114形成系数序列与变换后神经元矩阵中元素位置的映射关系表,稀疏序列的第K位对应M行×N列神经元矩阵中第i行第j列元素,且满足(i-1)×N+j=K或者(j-1)×M+i=K。在执行矩阵乘法操作时,根据稀疏序列记录的“1”,提取变换后神经元矩阵中对应位置的元素,以与变换后权值矩阵中对应元素相乘。
例如:
其中,w对应的稀疏序列为1110111011101100(一行一行读取,也可以一列一列读取),在执行矩阵乘法操作时,根据该序列,可知变换后神经元矩阵中[d03,d13,d23,d32,d33]不参与运算。因此,采用稀疏序列可以进一步减少矩阵乘法运算的运算量。在神经网络实际应用中,稀疏序列可以离线完成,并且稀疏序列占用存储空间相对于稀疏带来的存储空间减少是非常小的,因此该过程并不影响神经网络的运算速度与存储空间。
步骤3,通过移位运算器111和加法器115将所述乘法矩阵进行winograd反变换,得到卷积运算结果。
在本步骤中,采用下式将乘法矩阵t进行winograd反变换,得到运算结果output:
output=ATtA,
其中,A为反变换矩阵,AT为A的转置矩阵。
需要说明的是,反变换矩阵A与C、G一样,是采用winograd算法得到的,其具体过程在此就不再赘述,另外,反变换矩阵A的数值也为0或者±2n,n为整数,同样通过位操作即可实现数值间的运算。
需要说明的是,以上3个步骤,还需要通过控制器控制所述移位运算器进行winograd变换或winograd反变换,还通过控制器控制所述矩阵乘法运算器进行矩阵乘法操作。
以下列举一具体实例,进一步说本披露实施例的神级网络卷积运算装置进行卷积运算的过程。
图4示意性示出了卷积运算的示意图,如图4所示,卷积核是一个3×3的矩阵,卷积核在输入图像上滑动,其中,图中卷积核即为本披露的层权值矩阵,输入图像即为本披露的神经元矩阵。
对于通常神经网络中采用的卷积操作,假设每次滑动一个像素点,则总共需要做4次卷积操作,每次卷积操作,卷积核与对应的数据图像数据做乘加操作。因此,对于同个输出特征图上的不同的输出神经元,所需要的输入神经元不同,而权值和连接关系是相同的。例如,第一个卷积结果的计算过程为:1*1+1*0+1*1+0*0+1*1+1*0+0*1+0*0+1*1=4,第二个卷积结果的计算过程为:1*1+0*1+1*0+1*0+1*1+1*0+0*1+1*0+1*1=3,以此类推。
图5结合本披露实施例所描述的装置,示意性示出本披露实施例执行图4卷积运算的过程,如图5所示:
步骤S1,控制器120从内存读取一条指令。
步骤S2,控制器120译出微指令,然后神经网络卷积运算装置100根据该微指令从外部地址空间读入执行卷积运算所需的数据,包括神经元矩阵d0、权值矩阵w0。然后,获取变换矩阵C、G,反变换矩阵A,在图4的示例中:
步骤S3,移位运算器111从存储器或数据缓存当中中分别读取神经元矩阵d0和权值矩阵w0,移位运算器111和加法器115对神经元矩阵d0和权值矩阵w0做winograd变换,即:
步骤S4,稀疏化处理单元113根据变换后的权值矩阵w获得稀疏序列,即[1110111011101100]。然后根据映射单元114的映射关系,通过遍历权值矩阵,对于权值矩阵非零值用比特1标志,对于零值用比特0标志,最后得到一个比特序列作为稀疏序列,比特序列的长度与权值矩阵的数值个数一致。
步骤S5,矩阵乘法运算器115根据稀疏序列选择相应的神经元与权值做乘法操作,完成输入神经元与权值的矩阵对位相乘,其中根据索引序列,变换后神经元矩阵d中[d03,d13,d23,d32,d33]不参与运算,最后得到运算结果,即:
步骤S6,移位运算器111和加法器115对矩阵相乘的结果做winograd反变换操作,获得输出如下
本披露还揭露了一个神经网络运算装置,其包括一个或多个在本披露中提到的神经网络卷积运算装置,用于从其他处理装置中获取待运算数据和控制信息,执行指定的神经网络运算,执行结果通过I/O接口传递给***设备。***设备譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口,服务器。当包含一个以上权利神经网络卷积运算装置时,神经网络卷积运算装置间可以通过特定的结构进行链接并传输数据,譬如,通过PCIE总线进行互联并传输数据,以支持更大规模的神经网络的运算。此时,可以共享同一控制***,也可以有各自独立的控制***;可以共享内存,也可以每个加速器有各自的内存。此外,其互联方式可以是任意互联拓扑。
该神经网络运算装置具有较高的兼容性,可通过PCIE接口与各种类型的服务器相连接。
本披露还揭露了一个组合处理装置,其包括上述的神经网络运算装置,通用互联接口,和其他处理装置。神经网络运算装置与其他处理装置(用于执行非神经网络运算)进行交互,共同完成用户指定的操作。图6为组合处理装置的结构示意图。
其他处理装置,包括中央处理器CPU、图形处理器GPU、神经网络处理器等通用/专用处理器中的一种或以上的处理器类型。其他处理装置所包括的处理器数量不做限制。其他处理装置作为神经网络运算装置与外部数据和控制的接口,包括数据搬运,完成对本神经网络运算装置的开启、停止等基本控制;其他处理装置也可以和神经网络运算装置协作共同完成运算任务。
通用互联接口,用于在所述神经网络运算装置与其他处理装置间传输数据和控制指令。该神经网络运算装置从其他处理装置中获取所需的输入数据,写入神经网络运算装置片上的存储装置;可以从其他处理装置中获取控制指令,写入神经网络运算装置片上的控制缓存;也可以读取神经网络运算装置的存储模块中的数据并传输给其他处理装置。
该组合处理装置可以作为手机、机器人、无人机、视频监控设备等设备的SOC片上***,有效降低控制部分的核心面积,提高处理速度,降低整体功耗。此情况时,该组合处理装置的通用互联接口与设备的某些部件相连接。某些部件譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口。
在一个实施例里,本披露公开了一个芯片,其包括了上述神经网络运算装置或组合处理装置。
在一个实施例里,本披露公开了一个芯片封装结构,其包括了上述芯片。
在一个实施例里,本披露公开了一个板卡,其包括了上述芯片封装结构。
在一个实施例里,本披露公开了一个电子装置,其包括了上述板卡。
电子装置可包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。
所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
以上所述的具体实施例,对本披露的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本披露的具体实施例而已,并不用于限制本披露,凡在本披露的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本披露的保护范围之内。
Claims (38)
1.一种神经网络卷积运算装置,用于以矩阵乘法的方式实现神经网络中的权值矩阵与神经元矩阵的卷积运算,其中包括:
移位运算器,用于对所述神经元矩阵和权值矩阵分别进行winograd变换,得到变换后神经元矩阵和变换后权值矩阵;
矩阵乘法运算器,用于将所述变换后神经元矩阵和变换后权值矩阵进行对位相乘的矩阵乘法操作,得到乘法矩阵;
所述移位运算器还用于将所述乘法矩阵进行winograd反变换,得到卷积运算结果;
控制器,用于控制所述移位运算器进行winograd变换或winograd反变换,还用于控制所述矩阵乘法运算器进行矩阵乘法操作。
2.根据权利要求1所述的神经网络卷积运算装置,其特征在于,还包括片上缓存,用于存储所述神经元矩阵和权值矩阵,还用于存储对神经元矩阵进行winograd变换的变换矩阵C,用于存储对权值矩阵进行winograd变换的变换矩阵G。
3.根据权利要求2所述的神经网络卷积运算装置,其特征在于,所述变换矩阵C和所述变换矩阵G中的元素数值独立为±2n或0,n为整数。
4.根据权利要求2所述的神经网络卷积运算装置,其特征在于,所述片上缓存还用于存储进行winograd反变换矩阵,还用于存储对神经元矩阵进行winograd反变换的反变换矩阵A。
5.根据权利要求4所述的神经网络卷积运算装置,其特征在于,所述反变换矩阵A中的元素数值为±2n或0,n为整数。
6.根据权利要求2所述的神经网络卷积运算装置,其特征在于,所述控制器还用于根据所述变换矩阵C或其转置矩阵CT,控制所述移位运算器对神经元矩阵或权值矩阵中各元素的二进制数值独立进行左移或右移;或根据所述变换矩阵G或其转置矩阵GT,控制所述移位运算器对权值矩阵中各元素二进制数值独立进行左移或右移。
7.根据权利要求4所述的神经网络卷积运算装置,其特征在于,所述控制器还用于根据所述反变换矩阵A或其转置矩阵AT,对乘法矩阵中各元素的二进制数值独立进行左移或右移。
8.根据权利要求1所述的神经网络卷积运算装置,其特征在于,还包括稀疏化处理单元,用于对所述变换后权值矩阵进行稀疏化处理,生成一二进制的稀疏序列,其中,“0”对应变换后权值矩阵中数值为“0”的元素,“1”对应变换后权值矩阵中数值不为0的元素。
9.根据权利要求8所述的神经网络卷积运算装置,其特征在于,所述稀疏序列从高位至低位对应变换后权值矩阵逐行或逐列读取的元素。
10.根据权利要求7所述的神经网络卷积运算装置,其特征在于,还包括映射单元,所述映射单元生成稀疏序列与变换后神经元矩阵中元素位置的映射关系表,稀疏序列的第K位对应M行×N列神经元矩阵中第i行第j列元素,且满足(i-1)×N+j=K或者(j-1)×M+i=K。
11.根据权利要求10所述的神经网络卷积运算装置,其特征在于,所述控制器还用于根据所述映射关系表,控制所述矩阵乘法运算器进行矩阵乘法操作,其中,稀疏序列中为“0”的位对应神经元矩阵中的相应元素不进行矩阵乘法运算。
12.根据权利要求1所述的神经网络卷积运算装置,其特征在于,还包括加法器,用于在所述神经元矩阵和权值矩阵分别进行winograd变换时,对移位运算器移位运算后的结果按照矩阵乘法规则累加。
13.根据权利要求10所述的神经网络卷积运算装置,其特征在于,还包括数据缓存单元,用于缓存所述稀疏序列和映射关系表。
14.应用权利要求1-13任一所述神经网络卷积运算装置进行卷积运算的方法,包括:
通过移位运算器和加法器对所述神经元矩阵和权值矩阵分别进行winograd变换,得到变换后神经元矩阵和变换后权值矩阵;
通过矩阵乘法运算器,用于将所述变换后神经元矩阵和变换后权值矩阵进行对位相乘的矩阵乘法操作,得到乘法矩阵;
通过移位运算器和加法器将所述乘法矩阵进行winograd反变换,得到卷积运算结果;
通过控制器控制所述移位运算器进行winograd变换或winograd反变换,还通过控制器控制所述矩阵乘法运算器进行矩阵乘法操作。
15.根据权利要求14所述的方法,其特征在于,还包括:
采用片上缓存存储所述神经元矩阵和权值矩阵,以及存储对神经元矩阵进行winograd变换的变换矩阵C,用于存储对权值矩阵进行winograd变换的变换矩阵G。
16.根据权利要求15所述的方法,其特征在于,所述变换矩阵C和所述变换矩阵G中的元素数值独立为±2n或0,n为整数。
17.根据权利要求15所述的方法,其特征在于,还采用所述片上缓存存储进行winograd反变换矩阵,以及存储对神经元矩阵进行winograd反变换的反变换矩阵A。
18.根据权利要求17所述的神经网络卷积运算装置,其特征在于,所述反变换矩阵A中的元素数值为±2n或0,n为整数。
19.根据权利要求15所述的方法,其特征在于,还包括获取所述对神经元矩阵进行winograd变换的变换矩阵C,对权值矩阵进行winograd变换的变换矩阵G,存储对神经元矩阵进行winograd反变换的反变换矩阵A,包括:
接收所述神经元矩阵与权值矩阵的维度,以及卷积运算滑动步长数据;
根据接收的数据,依据winograd算法确定所述变换矩阵C,变换矩阵G和反变换矩阵A。
20.根据权利要求15所述的方法,其特征在于,还包括:控制器根据所述变换矩阵C或其转置矩阵CT,控制所述移位运算器对神经元矩阵或权值矩阵中各元素的二进制数值独立进行左移或右移;或根据所述变换矩阵G或其转置矩阵GT中的元素值,控制所述移位运算器对权值矩阵中各元素二进制数值独立进行左移或右移或归零。
21.根据权利要求17所述的方法,其特征在于,还包括:控制器根据所述反变换矩阵A或其转置矩阵AT中的元素值,对乘法矩阵中各元素的二进制数值独立进行左移或右移或归零。
22.根据权利要求14所述的方法,其特征在于,还包括:通过稀疏化处理单元对变换后权值矩阵进行稀疏化处理,生成一二进制的稀疏序列,其中,“0”对应变换后权值矩阵中数值为“0”的元素,“1”对应变换后权值矩阵中数值不为0的元素。
23.根据权利要求22所述的方法,其特征在于,所述稀疏序列从高位至低位对应变换后权值矩阵逐行或逐列读取的元素。
24.根据权利要求22所述的方法,其特征在于,还包括:通过映射单元生成稀疏序列与变换后神经元矩阵中元素位置的映射关系表,稀疏序列的第K位对应M行×N列神经元矩阵中第i行第j列元素,且满足(i-1)×N+j=K或者(j-1)×M+i=K。
25.根据权利要求24所述的方法,其特征在于,通过控制器根据所述映射关系表,控制所述矩阵乘法运算器进行矩阵乘法操作,其中,稀疏序列中为“0”的位对应神经元矩阵中的相应元素不进行矩阵乘法运算。
26.根据权利要求14所述的方法,其特征在于,包括通过加法器在所述神经元矩阵和权值矩阵分别进行winograd变换时,对移位运算器移位运算后的结果按照矩阵乘法规则累加。
27.根据权利要求24所述的方法,其特征在于,还包括通过数据缓存单元缓存所述稀疏序列和映射关系表。
28.一种神经网络卷积运算装置,其特征在于,包括多个如权利要求1-13任一所述的神经网络卷积运算装置,用于获取待运算数据和控制信息,执行神经网络运算。
29.根据权利要求28所述的神经网络卷积运算装置,其特征在于,还包括I/O接口,用于将神经网络运算的执行结果通过该I/O接口传递给***设备。
30.根据权利要求29所述的神经网络卷积运算装置,其特征在于,还包括***设备,用于与I/O接口连接,包括摄像头,显示器,鼠标,键盘,网卡,wifi接口和/或服务器。
31.根据权利要求28所述的神经网络卷积运算装置,其特征在于,还包括PCIE总线,用于进行多个神经网络卷积运算装置的互联并传输数据。
32.根据权利要求28所述的神经网络卷积运算装置,其特征在于,还包括共享内存,用于与各神经网络卷积运算装置连接,以实现内存共享。
33.一种组合处理装置,包括权利要求1-13任一所述的神经网络卷积运算装置,通用互联接口,和用于执行非神经网络运算的其他处理装置,所述其他处理装置与所述神经网络运算装置通过通用互联接口连接。
34.根据权利要求33所述的组合处理装置,其特征在于,所述其他处理装置包括中央处理器CPU、图形处理器GPU和神经网络处理器中的一种或以上的处理器类型。
35.根据权利要求33所述的组合处理装置,其特征在于,所述通用互联接口,用于在所述神经网络运算装置与其他处理装置间传输数据和控制指令。
36.根据权利要求33所述的组合处理装置,其特征在于,该组合处理装置作为手机、机器人、无人机或视频监控设备的SOC片上***。
37.一种芯片,其特征在于包括其包括权利要求28-32任一所述的神经网络运算装置或权利要求33-36任一所述的组合处理装置。
38.一种电子装置,包括权利要求37所述的芯片。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711408882.5A CN108229656A (zh) | 2016-12-14 | 2017-12-14 | 神经网络运算装置及方法 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611152537 | 2016-12-14 | ||
CN2016111525375 | 2016-12-14 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711408882.5A Division CN108229656A (zh) | 2016-12-14 | 2017-12-14 | 神经网络运算装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108229654A CN108229654A (zh) | 2018-06-29 |
CN108229654B true CN108229654B (zh) | 2020-08-14 |
Family
ID=62558042
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711343539.7A Active CN108229654B (zh) | 2016-12-14 | 2017-12-14 | 神经网络卷积运算装置及方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10635965B2 (zh) |
EP (1) | EP3557484B1 (zh) |
CN (1) | CN108229654B (zh) |
WO (1) | WO2018108126A1 (zh) |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108271026B (zh) * | 2016-12-30 | 2020-03-31 | 上海寒武纪信息科技有限公司 | 压缩/解压缩的装置和***、芯片、电子装置、方法 |
US20210241083A1 (en) * | 2018-05-15 | 2021-08-05 | Mitsubishi Electric Corporation | Arithmetic device |
CN109255432B (zh) * | 2018-08-22 | 2024-04-30 | 中国平安人寿保险股份有限公司 | 神经网络模型构建方法及装置、存储介质、电子设备 |
WO2020046859A1 (en) * | 2018-08-27 | 2020-03-05 | Neuralmagic Inc. | Systems and methods for neural network convolutional layer matrix multiplication using cache memory |
CN109190755B (zh) * | 2018-09-07 | 2021-07-20 | 中国科学院计算技术研究所 | 面向神经网络的矩阵转换装置及方法 |
CN109190756B (zh) * | 2018-09-10 | 2022-02-18 | 中国科学院计算技术研究所 | 基于Winograd卷积的运算装置及包含该装置的神经网络处理器 |
CN109325591B (zh) * | 2018-09-26 | 2020-12-29 | 中国科学院计算技术研究所 | 面向Winograd卷积的神经网络处理器 |
CN109359730B (zh) * | 2018-09-26 | 2020-12-29 | 中国科学院计算技术研究所 | 面向固定输出范式Winograd卷积的神经网络处理器 |
CN109255434A (zh) * | 2018-10-15 | 2019-01-22 | 旺微科技(上海)有限公司 | 一种卷积神经网络中计算资源的调度方法及装置 |
US11068394B2 (en) * | 2018-10-29 | 2021-07-20 | Electronics And Telecommunications Research Institute | Neural network system including data moving controller |
CN111260020B (zh) * | 2018-11-30 | 2024-04-16 | 深圳市海思半导体有限公司 | 卷积神经网络计算的方法和装置 |
CN111382854B (zh) * | 2018-12-28 | 2021-03-23 | 广州市百果园信息技术有限公司 | 一种卷积神经网络处理方法、装置、设备及存储介质 |
CN109740739B (zh) * | 2018-12-29 | 2020-04-24 | 中科寒武纪科技股份有限公司 | 神经网络计算装置、神经网络计算方法及相关产品 |
CN111523655B (zh) * | 2019-02-03 | 2024-03-29 | 上海寒武纪信息科技有限公司 | 处理装置及方法 |
CN110097172B (zh) * | 2019-03-18 | 2021-10-29 | 中国科学院计算技术研究所 | 一种基于winograd卷积运算的卷积神经网络数据处理方法及装置 |
CN110580519B (zh) * | 2019-08-19 | 2022-03-22 | 中国科学院计算技术研究所 | 一种卷积运算装置及其方法 |
DE102019214402A1 (de) * | 2019-09-20 | 2021-03-25 | Robert Bosch Gmbh | Verfahren und vorrichtung zum verarbeiten von daten mittels eines neuronalen konvolutionsnetzwerks |
KR20210037569A (ko) * | 2019-09-27 | 2021-04-06 | 삼성전자주식회사 | 컨볼루션 신경망 가속기 아키텍처를 위한 전력 효율적인 하이브리드 트래버설 장치 및 방법 |
CN112784207B (zh) * | 2019-11-01 | 2024-02-02 | 中科寒武纪科技股份有限公司 | 运算方法及相关产品 |
CN112766472B (zh) * | 2019-11-01 | 2024-04-12 | 中科寒武纪科技股份有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
CN112765537A (zh) * | 2019-11-01 | 2021-05-07 | 中科寒武纪科技股份有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
CN112765539B (zh) * | 2019-11-01 | 2024-02-02 | 中科寒武纪科技股份有限公司 | 运算装置、方法及相关产品 |
CN112766473B (zh) * | 2019-11-01 | 2023-12-05 | 中科寒武纪科技股份有限公司 | 运算装置及相关产品 |
CN113033813B (zh) * | 2019-12-09 | 2024-04-26 | 中科寒武纪科技股份有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
CN111240746B (zh) * | 2020-01-12 | 2023-01-10 | 苏州浪潮智能科技有限公司 | 一种浮点数据反量化及量化的方法和设备 |
CN113313228B (zh) * | 2020-02-26 | 2022-10-14 | 杭州知存智能科技有限公司 | 数据缓存电路和方法 |
US11216375B2 (en) * | 2020-02-26 | 2022-01-04 | Hangzhou Zhicun Intelligent Technology Co., Ltd. | Data caching |
US11379557B2 (en) * | 2020-05-07 | 2022-07-05 | Meta Platforms, Inc. | Device and method for flexibly summing matrix values |
CN111814957B (zh) * | 2020-06-28 | 2024-04-02 | 深圳云天励飞技术股份有限公司 | 神经网络运算方法及相关设备 |
CN112765552B (zh) * | 2021-01-21 | 2024-05-07 | 中国科学院重庆绿色智能技术研究院 | 基于数组打包的矩阵乘法的分块参数空间优化方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1399766A (zh) * | 1999-09-03 | 2003-02-26 | 郑振中 | 用于数据压缩的三次样条插值的快速和有效计算 |
CN101710393A (zh) * | 2009-11-25 | 2010-05-19 | 北京航空航天大学 | 一种专家***知识表示机制和推理方法 |
CN102571768A (zh) * | 2011-12-26 | 2012-07-11 | 北京大学 | 一种钓鱼网站检测方法 |
CN103106181A (zh) * | 2013-01-29 | 2013-05-15 | 北京理工大学 | 一种大点数fft在处理器上的实现方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5473730A (en) * | 1993-11-09 | 1995-12-05 | At&T Ipm Corp. | High efficiency learning network |
US6947916B2 (en) * | 2001-12-21 | 2005-09-20 | Quicksilver Technology, Inc. | IC for universal computing with near zero programming complexity |
US7296045B2 (en) * | 2004-06-10 | 2007-11-13 | Hasan Sehitoglu | Matrix-valued methods and apparatus for signal processing |
EP2160716A1 (en) * | 2007-06-08 | 2010-03-10 | Thomson Licensing | Method and apparatus for multi-lattice sparsity-based filtering |
US7885819B2 (en) * | 2007-06-29 | 2011-02-08 | Microsoft Corporation | Bitstream syntax for multi-process audio decoding |
US8731062B2 (en) * | 2008-02-05 | 2014-05-20 | Ntt Docomo, Inc. | Noise and/or flicker reduction in video sequences using spatial and temporal processing |
US8972329B2 (en) * | 2008-05-02 | 2015-03-03 | The Board Of Trustees Of The Leland Stanford Junior University | Systems and methods for ranking nodes of a graph using random parameters |
US20110231355A1 (en) * | 2010-03-22 | 2011-09-22 | University Of Seoul Foundation Of Industry Academic Cooperation | Intelligent ubiquitous-city middleware apparatus and the u-city system having the same |
US10453479B2 (en) * | 2011-09-23 | 2019-10-22 | Lessac Technologies, Inc. | Methods for aligning expressive speech utterances with text and systems therefor |
CN104915322B (zh) * | 2015-06-09 | 2018-05-01 | 中国人民解放军国防科学技术大学 | 一种卷积神经网络硬件加速方法 |
CN107578099B (zh) * | 2016-01-20 | 2021-06-11 | 中科寒武纪科技股份有限公司 | 计算装置和方法 |
US20170344876A1 (en) * | 2016-05-31 | 2017-11-30 | Samsung Electronics Co., Ltd. | Efficient sparse parallel winograd-based convolution scheme |
CN106066783A (zh) * | 2016-06-02 | 2016-11-02 | 华为技术有限公司 | 基于幂次权重量化的神经网络前向运算硬件结构 |
CN106203617B (zh) * | 2016-06-27 | 2018-08-21 | 哈尔滨工业大学深圳研究生院 | 一种基于卷积神经网络的加速处理单元及阵列结构 |
US9646243B1 (en) * | 2016-09-12 | 2017-05-09 | International Business Machines Corporation | Convolutional neural networks using resistive processing unit array |
-
2017
- 2017-12-14 WO PCT/CN2017/116161 patent/WO2018108126A1/zh unknown
- 2017-12-14 CN CN201711343539.7A patent/CN108229654B/zh active Active
- 2017-12-14 EP EP17882134.4A patent/EP3557484B1/en active Active
-
2019
- 2019-06-13 US US16/440,204 patent/US10635965B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1399766A (zh) * | 1999-09-03 | 2003-02-26 | 郑振中 | 用于数据压缩的三次样条插值的快速和有效计算 |
CN101710393A (zh) * | 2009-11-25 | 2010-05-19 | 北京航空航天大学 | 一种专家***知识表示机制和推理方法 |
CN102571768A (zh) * | 2011-12-26 | 2012-07-11 | 北京大学 | 一种钓鱼网站检测方法 |
CN103106181A (zh) * | 2013-01-29 | 2013-05-15 | 北京理工大学 | 一种大点数fft在处理器上的实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108229654A (zh) | 2018-06-29 |
EP3557484A1 (en) | 2019-10-23 |
WO2018108126A1 (zh) | 2018-06-21 |
EP3557484B1 (en) | 2021-11-17 |
US20190311242A1 (en) | 2019-10-10 |
US10635965B2 (en) | 2020-04-28 |
EP3557484A4 (en) | 2020-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108229654B (zh) | 神经网络卷积运算装置及方法 | |
CN109032669B (zh) | 神经网络处理装置及其执行向量最小值指令的方法 | |
US11710041B2 (en) | Feature map and weight selection method and accelerating device | |
CN109032670B (zh) | 神经网络处理装置及其执行向量复制指令的方法 | |
EP3451241A1 (en) | Device and method for performing training of convolutional neural network | |
JP6905573B2 (ja) | 計算装置と計算方法 | |
EP3451157A1 (en) | Device and method for performing forward operation of convolutional neural network | |
CN107886167A (zh) | 神经网络运算装置及方法 | |
CN108229656A (zh) | 神经网络运算装置及方法 | |
CN109064384A (zh) | 物体检测方法及相关产品 | |
CN110163362A (zh) | 一种计算装置及方法 | |
CN117933327A (zh) | 处理装置、处理方法、芯片及电子装置 | |
CN108320018B (zh) | 一种人工神经网络运算的装置及方法 | |
CN107315718A (zh) | 一种用于执行向量内积运算的装置和方法 | |
WO2022111002A1 (zh) | 用于训练神经网络的方法、设备和计算机可读存储介质 | |
CN107315717A (zh) | 一种用于执行向量四则运算的装置和方法 | |
CN109711540B (zh) | 一种计算装置及板卡 | |
CN109359542A (zh) | 基于神经网络的车辆损伤级别的确定方法及终端设备 | |
CN108960415B (zh) | 处理装置和处理*** | |
CN110647973A (zh) | 运算方法及相关方法和产品 | |
CN111143766A (zh) | 人工智能处理器处理二维复数矩阵的方法和设备 | |
CN111260070B (zh) | 运算方法、装置及相关产品 | |
CN113469333A (zh) | 执行神经网络模型的人工智能处理器、方法及相关产品 | |
CN114691083A (zh) | 矩阵乘法电路、方法及相关产品 | |
CN113934678A (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 |