CN112166442A - 运算方法 - Google Patents
运算方法 Download PDFInfo
- Publication number
- CN112166442A CN112166442A CN201880093914.3A CN201880093914A CN112166442A CN 112166442 A CN112166442 A CN 112166442A CN 201880093914 A CN201880093914 A CN 201880093914A CN 112166442 A CN112166442 A CN 112166442A
- Authority
- CN
- China
- Prior art keywords
- data
- internal memory
- input data
- external memory
- operation mode
- 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.)
- Granted
Links
Images
Classifications
-
- 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/15—Correlation function computation including computation of convolution operations
-
- 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/15—Correlation function computation including computation of convolution operations
- G06F17/153—Multidimensional correlation or convolution
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Algebra (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Complex Calculations (AREA)
Abstract
一种运算方法,以矩阵乘积运算进行神经网络的卷积层的卷积运算,包括:按照每个卷积层,判断被输入到该卷积层的输入数据是否为规定的数据量以下的判断步骤(S1);被判断为所述输入数据是规定的数据量以下的情况下(S1中的是),选择第1运算模式,以第1运算模式执行卷积运算的步骤(S2、S3);被判断为所述输入数据比规定的数据量大的情况下(S1中的否),选择第2运算模式,以第2运算模式执行卷积运算的步骤(S5、S6);以及对输出数据进行输出的输出步骤(S7),所述输出数据是执行卷积运算而获得的结果。
Description
技术领域
本公开涉及运算方法,尤其涉及在卷积神经网络的卷积层中进行的卷积运算的运算方法。
背景技术
近几年,能够利用卷积神经网络来进行图像识别,该卷积神经网络由重复局部区域的卷积(Convolution)的多层的神经网络来构成。
此外已知的技术如下,利用能够对多维数据进行运算处理的LSI芯片,进行卷积神经网络的卷积层中的卷积运算(例如,专利文献1)。在专利文献1中公开了,对于超过内置于LSI芯片的存储电路块的存储大小的二维数据,有效地执行运算处理的技术。
(现有技术文献)
(专利文献)
专利文献1:日本特开2007-206887号公报
近几年随着深度学习技术的发展,利用卷积神经网络的图像识别的识别率不断提高,网络规模巨大化。因此,卷积层的每一层的运算处理量也变大。
然而,在专利文献1中,运算处理对象是规模比较小的卷积神经网络中的卷积运算。因此,在专利文献1公开的技术中,在进行大规模的卷积神经网络中的卷积运算时,需要从外部读入输入数据来使用,所以存在功耗大的问题。
换句话说,如专利文献1公开的LSI芯片中,处理结果的大小不能收纳在LSI芯片的内部搭载的内部存储器时,不得不输出到外部存储器。而且,在后段的卷积层中需要再次作为输入数据而读入到内部存储器来使用,所以功耗变大。另一方面,在LSI芯片中,为了抑制功耗,使暂时保持运算处理结果的内部存储器的容量变大时,则会出现成本增加的问题。
发明内容
本公开鉴于上述情况而提出,其目的在于提供一种运算方法,例如即使是几兆字节以下的容量有限的内部存储器,也能够抑制功耗并进行卷积运算的运算方法。
本公开的一个方案涉及的运算方法,利用LSI的内部具有的运算器和内部存储器,以矩阵乘积运算进行神经网络的卷积层的卷积运算,所述运算方法包括:判断步骤,按照每个卷积层,判断被输入到该卷积层的输入数据是否为规定的数据量以下;以第1运算模式执行卷积运算的步骤,在所述判断步骤中,被判断为所述输入数据是规定的数据量以下的情况下,选择第1运算模式,以所述第1运算模式执行卷积运算;以第2运算模式执行卷积运算的步骤,在所述判断步骤中,被判断为所述输入数据比规定的数据量大的情况下,选择第2运算模式,以所述第2运算模式执行卷积运算;以及输出步骤,对输出数据进行输出,所述输出数据是执行卷积运算而获得的结果,所述以第1运算模式执行卷积运算的步骤,包括:将该卷积层的权重数据,配置在位于所述LSI的外部的外部存储器的步骤;将该卷积层的所述输入数据配置在所述内部存储器的步骤;以及从所述外部存储器,将所述权重数据,按每一部分,作为1个以上的行或者列向量数据,读入到所述内部存储器,并且使所述运算器对该1个以上的行或者列向量数据与被配置在所述内部存储器的所述输入数据的矩阵进行矩阵乘积运算的步骤,所述权重数据作为整体,从所述外部存储器读入到所述内部存储器的次数仅为一次,所述以第2运算模式执行卷积运算的步骤,包括:将该卷积层的输入数据,配置在位于所述LSI的外部的外部存储器的步骤;将该卷积层的权重数据的矩阵,配置在所述内部存储器的步骤;以及从所述外部存储器,将所述输入数据,按每一部分,作为1个以上的列或者行向量数据,读入到所述内部存储器,并且使所述运算器对该1个以上的列或者行向量数据与被配置在所述内部存储器的所述权重数据的矩阵进行矩阵乘积运算的步骤,所述输入数据作为整体,从所述外部存储器读入到所述内部存储器的次数仅为一次。
从而,即使是容量有限的内部存储器,也能够进一步抑制功耗并进行卷积运算。
例如可以是,在所述输出步骤中,将所述输出数据,作为该卷积层的后段的层中的输入数据而配置到所述内部存储器或所述外部存储器,从而输出所述输出数据。
例如可以是,所述后段的层是卷积层、池化层、或归一化层。
例如可以是,所述以第1运算模式执行卷积运算的步骤,包括:对配置在所述内部存储器的所述输入数据进行采样,从而变换为所述输入数据的矩阵的步骤,所述以第2运算模式执行卷积运算的步骤,包括:对读入到所述内部存储器的所述输入数据的一部分进行采样,从而变换为所述1个以上的列或者行向量数据的步骤。
例如可以是,在所述以第2运算模式执行卷积运算的步骤中,所述输入数据,以瓦片状的形式而被配置在所述外部存储器。
例如可以是,在所述输出步骤中,在所述输出数据被配置在所述外部存储器的情况下,所述输出数据,以瓦片状的形式而被配置在所述外部存储器。
此外,本公开的一个方案涉及的运算方法,利用LSI的内部具有的运算器和内部存储器,以矩阵乘积运算进行神经网络的卷积层的卷积运算,所述运算方法包括:判断步骤,按照每个卷积层,判断被输入到该卷积层的输入数据是否为规定的数据量以下;以第1运算模式执行卷积运算的步骤,在所述判断步骤中,被判断为所述输入数据是规定的数据量以下的情况下,选择第1运算模式,以所述第1运算模式执行卷积运算;以第2运算模式执行卷积运算的步骤,在所述判断步骤中,被判断为所述输入数据比规定的数据量大的情况下,选择第2运算模式,以所述第2运算模式执行卷积运算;以及输出步骤,对输出数据进行输出,所述输出数据是执行卷积运算而获得的结果,所述以第1运算模式执行卷积运算的步骤,包括:将该卷积层的权重数据,配置在位于所述LSI的外部的外部存储器的步骤;将该卷积层的所述输入数据配置在所述内部存储器的步骤;以及从所述外部存储器,将所述权重数据,按每一部分,作为1个以上的行或者列向量数据,读入到所述内部存储器,并且使所述运算器对该1个以上的行或者列向量数据与被配置在所述内部存储器的所述输入数据的矩阵进行矩阵乘积运算的步骤,所述权重数据作为整体,从所述外部存储器读入到所述内部存储器的次数仅为一次,所述以第2运算模式执行卷积运算的步骤,包括:将该卷积层的输入数据以及权重数据,配置在位于所述LSI的外部的外部存储器的步骤;从所述外部存储器,将所述权重数据的一部分,作为1个以上的行或者列向量数据即第1向量数据,配置在所述内部存储器的步骤;从所述外部存储器,将所述输入数据,按每一部分,作为1个以上的列或者行向量数据,读入到所述内部存储器,并且使所述运算器对该1个以上的列或者行向量数据与被配置在所述内部存储器的所述第1向量数据进行矩阵乘积运算的步骤;从所述外部存储器,将所述权重数据的与所述一部分不同的一部分,作为1个以上的行或者列向量数据即第2向量数据,配置在所述内部存储器的步骤;以及从所述外部存储器,将所述输入数据,按每一部分,作为1个以上的列或者行向量数据,读入到所述内部存储器,并且使所述运算器对该1个以上的列或者行向量数据与被配置在所述内部存储器的所述第2向量数据进行矩阵乘积运算的步骤,所述权重数据作为整体,从所述外部存储器读入到所述内部存储器的次数仅为一次。
另外,这些概括或者具体的方案,可以通过系统、方法、集成电路、计算机程序或者计算机可读取的CD-ROM等记录介质来实现,也可以任意组合系统、方法、集成电路、计算机程序以及记录介质来实现。
发明效果
通过本公开的运算方法,例如即使是容量有限的内部存储器,也能够更加抑制功耗并进行卷积运算。
附图说明
图1是示出实施方式涉及的运算系统的构成的一例的方框图。
图2是示出实施方式涉及的卷积神经网络的构成的一例的图。
图3A是以矩阵乘积运算进行卷积运算的方法的说明图。
图3B是以矩阵乘积运算进行卷积运算的方法的说明图。
图4A是示出实施方式涉及的外部存储器中的输出数据的配置方法的图。
图4B是示出实施方式涉及的外部存储器中的输出数据的配置方法的图。
图5是示出实施方式涉及的运算系统的动作概要的流程图。
图6是示出图5示出的步骤S3的动作细节的流程图。
图7是示出图5示出的步骤S6的动作细节的流程图。
图8是用于说明实施方式涉及的以第1运算模式进行的运算方法的效果的图。
图9是用于说明实施方式涉及的以第1运算模式进行的运算方法的效果的图。
图10是用于说明实施方式涉及的以第2运算模式进行的运算方法的效果的图。
图11是示出变形例涉及的步骤S6的动作细节的流程图。
图12是用于说明变形例涉及的以第2运算模式进行的运算方法的效果的图。
具体实施方式
以下针对本公开的实施方式,利用附图详细说明。另外,以下说明的实施方式都是示出本公开的一个具体例子。以下的实施方式所示的数值、形状、材料、构成要素、构成要素的配置位置以及连接形态、使用顺序、通信顺序等均为一个例子,其主旨并非是对本公开进行限定。此外,以下的实施方式中的构成要素中,示出本公开的最上位概念的技术方案没有记载的构成要素,作为任意的构成要素来说明。此外,各图是示意图,并非是严谨的图示。此外,在各图中,对实质上相同的构成赋予相同的符号,省略或简化重复说明。
(实施方式)
下面参考附图,对实施方式涉及的运算方法等进行说明。
[系统的构成]
图1是示出实施方式涉及的运算系统1的构成的一例的方框图。
图1示出的运算系统1具备:电路10、外部存储器20、判断部30、控制部40、输出部50。图2是示出实施方式涉及的卷积神经网络60的构成的一例的图。
[外部存储器20]
外部存储器20位于电路10的外部,例如由EEPROM(带电可擦可编程只读存储器)、闪存等非易失性存储器、硬盘、或者附电池的RAM等来构成。在本实施方式中,在外部存储器20,按照控制部40选择的第1运算模式或第2运算模式,来配置例如卷积神经网络60的运算处理对象的卷积层中的权重数据或者输入数据,此外,在外部存储器20也可以配置通过使电路10进行卷积运算而获得的输出数据。
这里利用图2,对卷积神经网络60的构成的一例进行说明。在图2中,卷积神经网络记为CNN(Convolutional Neural Network)。
[卷积神经网络60]
卷积神经网络60是重复卷积层(Conv)、池化层(Pooling Layer)以及归一化层(Normalize Layer)的多层的神经网络。在图2示出的例子中,卷积神经网络60,在第2个池化层的后段,连接有不同的3个卷积层。
在本实施方式中,例如使电路10进行构成卷积神经网络60的多个卷积层的卷积运算。
[电路10]
电路10例如由LSI或LSI芯片构成,例如以矩阵乘积运算进行卷积神经网络60的卷积层的卷积运算。如图1所示,电路10在内部具有运算器11、以及内部存储器12。
<内部存储器12>
内部存储器12,由比较小的容量构成,例如由RAM等构成。这里作为比较小的容量的一例,可以设想为几百千字节(KB)~几兆字节(MB)以下的容量。在本实施方式中,内部存储器12,由后述的控制部40来控制。内部存储器12,按照控制部40选择的第1运算模式或第2运算模式,来配置例如卷积神经网络60的运算处理对象的卷积层中的权重数据的每一部分、或配置该权重数据。此外,内部存储器12,按照控制部40选择的第1运算模式或第2运算模式,来配置例如卷积神经网络60的运算处理对象的卷积层中的输入数据的每一部分、或配置该输入数据。
另外,在内部存储器12,也可以配置使电路10进行卷积运算而获得的输出数据。
<运算器11>
运算器11由后述的控制部40来控制。运算器11,如图1所示具有乘积和运算部111、数据变换部112。
《乘积和运算部111》
乘积和运算部111,由控制部40来控制,以矩阵乘积运算来进行卷积运算。
这里利用图3A以及图3B说明以矩阵乘积运算进行卷积运算的方法。图3A以及图3B是实施方式涉及的以矩阵乘积运算进行卷积运算的方法的说明图。
已知的是对权重数据和输入数据进行卷积运算相当于对权重数据和输入数据进行矩阵乘积的运算。这里例如图3A所示,权重数据表示为Co×K矩阵,输入数据表示为Ci×L矩阵。在这个情况下,例如针对输入数据进行采样等的数据变换,利用以K×N矩阵表示的变换后的输入数据,与权重数据的矩阵进行乘积运算。这是因为p×q矩阵和r×s矩阵的乘积(矩阵乘积)仅定义在q=r时。而且,其结果,因为成为p×s矩阵,所以权重数据与变换后的输入数据的矩阵乘积的结果即输出数据,可以表示为Co×N矩阵。
权重数据和输入数据的矩阵乘积的具体方法,例如由图3B示出。即,权重数据的第1行的成分与变换后的输入数据的第1列的成分的乘积和,成为输出数据的第1行第1列的成分,权重数据的第1行的成分与变换后的输入数据的第2列的成分的乘积和,成为输出数据的第1行第2列的成分。从而如下述一样进行矩阵乘积的运算,权重数据的第a行的成分与变换后的输入数据的第b列的成分的乘积和,成为输出数据的第a行第b列的成分。
另外,以矩阵乘积运算进行卷积运算的情况下,输出数据的各个要素有时还加上偏置数据。
在图3A以及图3B中说明了对权重数据的矩阵与变换后的输入数据的矩阵的矩阵乘积以上述的顺序进行运算,但是不限于此。可以对变换后的输入数据的矩阵与权重数据的矩阵的矩阵乘积以上述的顺序来运算。在这个情况下,可以以变换后的输入数据的1行的成分数,与权重数据的矩阵的1列的成分数相同的方式,对输入数据进行采样来进行数据变换。
在本实施方式中,乘积和运算部111,在选择了第1运算模式的情况下,针对从外部存储器20,按每一部分,作为1个以上的行或者列向量数据而读入到内部存储器12的权重数据,与被配置在内部存储器12的输入数据的矩阵进行矩阵乘积运算。乘积和运算部111,在选择了第2运算模式的情况下,将配置在内部存储器12的权重数据的矩阵,与从外部存储器20,按每一部分,作为1个以上的列或行向量数据而读入到内部存储器12的输入数据进行矩阵乘积运算。
《数据变换部112》
数据变换部112,由控制部40而被控制,针对被读入到内部存储器12的一部分的输入数据或者被配置在内部存储器12的输入数据,通过采样进行数据变换。从而进行了数据变换的输入数据,能够与权重数据的矩阵进行矩阵乘积运算。
在本实施方式中,数据变换部112,在被选择了第1运算模式的情况下,针对被配置在内部存储器12的输入数据进行采样,从而变换为输入数据的矩阵。此外,数据变换部112,在被选择了第2运算模式的情况下,针对被读入到内部存储器12的输入数据的一部分进行采样,从而变换为1个以上的列或者行向量数据。
[判断部30]
判断部30由未图示的CPU(Central Processing Unit)以及存储器等来实现。判断部30,按照每个卷积层,判断被输入到该卷积层的输入数据是否为规定的数据量以下。这里规定的数据量是,例如在内部存储器12中分配给输入数据的最大的容量(尺寸)。
在本实施方式中,判断部30,例如按照图2示出的成为卷积神经网络60的运算处理对象的每个卷积层,对输入到该卷积层的输入数据是否为规定的数据量以下进行判断。另外,图2所示,同一个层的后段连接有多个卷积层的情况下,判断部30,可以针对向每一个卷积层输入的输入数据,是否为规定的数据量以下进行判断。
[控制部40]
控制部40,通过由未图示的CPU以及存储器等来实现。控制部40,在由判断部30判断为输入数据是规定的数据量以下的情况下,选择第1运算模式,以第1运算模式执行卷积运算。更详细而言,控制部40,在选择了第1运算模式的情况下,将该卷积层的权重数据,配置在位于电路10的外部的外部存储器20,将该卷积层的输入数据配置在内部存储器12。而且控制部40,从外部存储器20,将权重数据,按每一部分,作为1个以上的行或者列向量数据,读入到内部存储器12,并且使乘积和运算部111对该1个以上的行或者列向量数据与被配置在内部存储器12的输入数据的矩阵进行矩阵乘积运算。从而,权重数据作为整体,从外部存储器20读入到内部存储器12的次数仅为一次。
另一方面,控制部40,在由判断部30判断为输入数据比规定的数据量大的情况下,选择第2运算模式,以第2运算模式执行卷积运算。更详细而言,控制部40,在选择了第2运算模式的情况下,将该卷积层的输入数据,配置在位于电路10的外部的外部存储器20,将该卷积层的权重数据的矩阵,配置在内部存储器12。而且控制部40,从外部存储器20,将输入数据,按每一部分,作为1个以上的列或者行向量数据读入到内部存储器12,并且使乘积和运算部111对该1个以上的列或者行向量数据与被配置在内部存储器12的权重数据的矩阵进行矩阵乘积运算。从而,输入数据作为整体,从外部存储器20读入到内部存储器12的次数仅为一次。
[输出部50]
输出部50,对输出数据进行输出,所述输出数据是通过执行卷积运算而获得的结果。在本实施方式中,输出部50,可以将该输出数据,作为该卷积层的后段的层中的输入数据而配置到内部存储器12或外部存储器20,从而输出输出数据。这里后段的层是卷积神经网络中的卷积层、池化层、或归一化层。
图4A以及图4B是示出实施方式涉及的外部存储器20中的输出数据的配置方法的图。
输出部50,向外部存储器20输出输出数据的情况下,可以配置为图4A示出的栅格状的形式,也可以配置为瓦片状的形式。这里栅格状的形式是指在规定的区域,构成输出数据的数值(成分),排列为横向1列,并且排列成多行的形式。此外,瓦片状的形式是指在规定的区域,以四边形的区域即四边区域排列为矩阵状,在每个四边区域内,构成输出数据的数值(成分),排列为横向1列,并且排列成多行的形式。
另外,在外部存储器20配置输入数据的情况也同样。即,在外部存储器20中,输入数据可以以栅格状的形式配置,也可以以瓦片状的形式配置。
此外,输出部50,在外部存储器20中以瓦片状的形式配置输出数据以及输入数据的情况,与以栅格状的形式配置的情况相比,在运算矩阵乘积时的被访问的纵方向的效率提高,能够抑制功耗。
[运算系统1的动作]
对如上所述构成的运算系统1的动作进行说明。
图5是示出实施方式涉及的运算系统1的动作概要的流程图。图6是示出图5示出的步骤S3的动作细节的流程图。图7是示出图5示出的步骤S6的动作细节的流程图。
首先,运算系统1,判断输入数据是否为规定的数据量以下(S1)。更具体而言,运算系统1,按照每个成为运算处理对象的卷积层,判断输入到该卷积层的输入数据是否为规定的数据量以下。
在步骤S1中,被判断为输入数据是规定的数据量以下的情况下(S1中的“是”),运算系统1,选择第1运算模式(S2),以第1运算模式对权重数据以及输入数据执行卷积运算(S3)。更具体而言,运算系统1,在步骤S1,被判断为输入数据为规定的数据量以下的情况下,选择第1运算模式,以第1运算模式执行卷积运算。这里利用图6进行详细说明。
在步骤S3中,如图6所示,运算系统1,首先将成为运算处理对象的卷积层的权重数据配置在外部存储器20(S31)。接着,运算系统1,将成为运算处理对象的卷积层的输入数据配置在内部存储器12(S32)。接着,运算系统1,从外部存储器20将权重数据的一部分,作为行或者列向量数据而读入到内部存储器12(S33)。在本实施方式中,运算系统1,从外部存储器20将权重数据的一部分,作为行向量数据而读入到内部存储器12。接着,运算系统1,针对被配置在内部存储器12的该行或者列向量数据,与输入数据的矩阵进行矩阵乘积运算(S34)。在本实施方式中,运算系统1,针对被配置在内部存储器12的该行向量数据,与通过采样使输入数据数据变换为矩阵形式的输入数据的矩阵,进行矩阵乘积运算。接着,运算系统1,针对被配置在外部存储器20的权重数据的全部,判断是否已经与输入数据的矩阵进行了矩阵乘积运算(S35)。在步骤S35,针对权重数据的全部已经运算完毕的情况下(S35中的“是”),运算系统1,结束步骤S3的处理。另一方面,在步骤S35,针对权重数据的全部尚未运算完毕的情况下(S35中的“否”),运算系统1,回到步骤S33。而且,在步骤S33,从外部存储器20,将与刚才读出的权重数据的一部分不同的权重数据的一部分,作为行或者列向量数据读入到内部存储器12,进行步骤S34的处理。
以下返回图5继续说明。
另一方面,在步骤S1,输入数据比规定的数据量大的情况下(S1中的“否”),运算系统1,选择第2运算模式(S5),以第2运算模式执行权重数据与输入数据的卷积运算(S6)。更具体而言,运算系统1,在步骤S1,被判断为输入数据比规定的数据量大的情况下,选择第2运算模式,以第2运算模式执行卷积运算。这里利用图7详细说明。
在步骤S6,如图7所示,运算系统1,首先将成为运算处理对象的卷积层的输入数据,配置在外部存储器20(S61)。接着,运算系统1,将成为运算处理对象的卷积层的权重数据配置在内部存储器12(S62)。接着,运算系统1,从外部存储器20将输入数据的一部分,作为列或者行向量数据而读入到内部存储器12(S63)。在本实施方式中,运算系统1,从外部存储器20将输入数据的一部分,作为列向量数据而读入到内部存储器12。接着,运算系统1,针对被配置在内部存储器12的权重数据的矩阵,与被配置在内部存储器12的该列或者行向量数据进行矩阵乘积运算(S64)。在本实施方式中,运算系统1,针对被配置在内部存储器12的权重数据的矩阵,和通过采样使该列向量数据与权重数据的矩阵的行成分数相对应地进行了数据变换的列向量数据,进行矩阵乘积运算。接着,运算系统1,针对被配置在外部存储器20的输入数据的全部,判断是否已经与权重数据的矩阵进行了矩阵乘积运算(S65)。在步骤S65,针对输入数据的全部已经运算完毕的情况下(S65中的“是”),运算系统1,结束步骤S6的处理。另一方面,在步骤S65,针对输入数据的全部尚未运算完毕的情况下(S65中的“否”),运算系统1,回到步骤S63。而且,在步骤S63,从外部存储器20,将与刚才读出的输入数据的一部分不同的输入数据的一部分,作为列或者行向量数据读入到内部存储器12,进行步骤S64的处理。
以下返回图5继续说明。
在步骤S3或步骤S6的处理结束后,运算系统1,对输出数据进行输出(S7)。更具体而言,运算系统1,将运算处理对象的卷积层中执行卷积运算而获得的结果即输出数据,作为该卷积层的后段的层的输入数据,配置在内部存储器12或者外部存储器20。
[效果等]
图8以及图9是用于说明实施方式涉及的以第1运算模式进行的运算方法的效果的图。图10是用于说明实施方式涉及的以第2运算模式进行的运算方法的效果的图。在图8~图10中,针对同样的要素赋予相同的符号。
在本实施方式的运算方法中,根据成为运算处理对象的卷积层的输入数据,能够收纳在内部存储器12的情况和不能收纳的情况,切换控制使输入数据与权重数据的访问方法相反。即,通过本实施方式的运算方法,在成为运算处理对象的卷积层的输入数据,能够收纳在内部存储器12的情况下,进行以第1运算模式执行卷积运算的控制。另一方面,成为运算处理对象的卷积层的输入数据,不能收纳在内部存储器12的情况下,进行以第2运算模式执行卷积运算的控制。
这里如图8所示,以第1运算模式进行的运算方法中,输入数据收纳在内部存储器12,所以将输入数据的全部配置在内部存储器12,将权重数据配置在外部存储器20。输入数据的全部和权重数据的全部,不能同时配置在内部存储器12。而且,针对输入数据的整体,从内部存储器12反复读出并提供给乘积和运算部111。关于权重数据,从外部存储器20读出一部分并存放到内部存储器12的一部分区域即缓冲器,从该缓冲器反复提供给乘积和运算部111。这样,权重数据的整体,从外部存储器20读出的次数仅为一次。换句话说,被配置在内部存储器12的输入数据,整体被循环地读出多次而使用。另一方面,被配置在外部存储器20的权重数据作为整体,从外部存储器20读出的次数仅为一次的方式,按每一部分存放在内部存储器12的缓冲器,在缓冲器循环多次而使用。另外,在图8以及图9中,将输入数据的整体从内部存储器12反复读出时,使读出的输入数据通过采样,数据变换为矩阵的形式,并提供给乘积和运算部111。这是为了与存放在内部存储器12的缓冲器的一部分权重数据的矩阵进行乘积运算。
此外,在图8示出的第1运算模式进行的运算方法中,在内部存储器12的缓冲器,权重数据的一部分作为1个以上的行向量数据而被存放,通过进行矩阵乘积运算从而在横方向生成输出数据,并存放到内部存储器12。另外,在输出数据不能收纳在内部存储器12的情况下,如图9所示,可以输出到外部存储器20。
从而即使在容量有限的内部存储器12,也能够使从功耗大的外部存储器读入权重数据的次数限制为最小,所以能够进一步抑制功耗来进行卷积运算。
此外如图10所示,在以第2运算模式进行的运算方法中,输入数据不能收纳在内部存储器12,所以将输入数据配置在外部存储器20,将权重数据的全部配置在内部存储器12。这是因为输入数据的全部与权重数据的全部,不能同时配置在内部存储器12。而且关于输入数据,从外部存储器20读出一部分,存放到内部存储器12的一部分区域即缓冲器,从该缓冲器反复提供给乘积和运算部111。将权重数据的整体从内部存储器12反复读出并提供给乘积和运算部111。这样输入数据的整体,从外部存储器20读出的次数仅为一次。换句话说,针对被配置在内部存储器12的权重数据,整体被循环地读出多次而使用。另一方面,被配置在外部存储器20的输入数据作为整体,从外部存储器20读出的次数仅为一次,按每一部分存放在内部存储器12的缓冲器,在缓冲器多次循环而使用。
此外,在图10示出的以第2运算模式进行的运算方法中,在内部存储器12的缓冲器,输入数据的一部分作为1个以上的列向量数据而被存放,通过进行矩阵乘积运算从而在纵方向生成输出数据,并存放到内部存储器12。另外,在输出数据不能收纳在内部存储器12的情况下,可以输出到外部存储器20。
从而即使是容量有限的内部存储器12,能够使从功耗大的外部存储器读入输入数据的次数限制为最小,所以能够进一步抑制功耗来进行卷积运算。
这样针对输入数据以及输出数据的尺寸不设限制,能够在有限的容量的内部存储器12进行卷积运算,所以比起具备大容量的内部存储器12的情况,能够实现降低成本。
如上所述,通过本实施方式的运算方法,例如是几兆字节以下的有限的容量的内部存储器,也能够抑制功耗并进行卷积运算。
(变形例)
在所述的实施方式中,说明了输入数据不能收纳在内部存储器12的情况下,将输入数据配置在外部存储器20,将权重数据的全部配置在内部存储器12的情况,但是不限于此。根据内部存储器12的容量(尺寸),也能想到不能配置权重数据的全部的情况。在以下的变形例中,省略与实施方式相同的部分,以不同的部分为中心进行说明。
本变形例的运算系统1,与所述实施方式的运算系统1进行比较,被设为在第2运算模式中,权重数据的全部不能配置在内部存储器12。从而,不同的是控制部40的第2运算模式的详细动作。其他与所述实施方式同样。
[控制部40]
本变形例的控制部40,与所述实施方式同样,在由判断部30判断为输入数据比规定的数据量大的情况下,选择第2运算模式,以第2运算模式执行卷积运算。
更详细而言,控制部40首先在选择第2运算模式的情况下,将该卷积层的输入数据以及权重数据,配置在位于电路10的外部的外部存储器20。
接着,控制部40,从外部存储器20,将权重数据的一部分,作为1个以上的行或者列向量数据即第1向量数据,而配置在内部存储器12。而且,控制部40,从外部存储器20,将输入数据,按每一部分,作为1个以上的列或者行向量数据读入到内部存储器12,并且使乘积和运算部111对1个以上的列或者行向量数据与被配置在内部存储器12的第1向量数据进行矩阵乘积运算。
接着,控制部40,从外部存储器20,将权重数据的与该一部分不同的一部分,作为1个以上的行或者列向量数据即第2向量数据,而配置在内部存储器12。而且,控制部40,从外部存储器20,将输入数据,按每一部分,作为1个以上的列或者行向量数据读入到内部存储器12,并且使乘积和运算部111对1个以上的列或者行向量数据与被配置在内部存储器12的第2向量数据进行矩阵乘积运算。
另外,不限于将权重数据的全部先配置在外部存储器20的情况。可以将权重数据的一部分配置在内部存储器12,将权重数据的剩余部分配置在外部存储器20。在这个情况下,权重数据的一部分的尺寸(容量),可以是内部存储器12能够收纳的最大限度的尺寸。
从而,控制部40,将权重数据作为整体,从外部存储器20读入到内部存储器12的次数仅为一次的方式,针对权重数据的全部进行所述的矩阵乘积运算。
[运算系统1的动作]
对如上所述构成的本变形例的运算系统1的动作进行说明。关于本变形例涉及的运算系统1的动作概要,与图5的说明相同,所以省略说明。
本变形例的运算系统1与所述实施方式的运算系统1比较时,图5的步骤S6的细节不同。以下利用图11对本变形例涉及的步骤S6进行说明。
图11是示出变形例涉及的步骤S6的动作细节的流程图。
在步骤S6,如图11所示,本变形例涉及的运算系统1,首先将成为运算处理对象的卷积层的输入数据和权重数据配置在外部存储器20(S601)。
接着,本变形例涉及的运算系统1,从外部存储器20,将权重数据的一部分,作为1个以上的行向量数据读入到内部存储器12(S602)。
接着,本变形例涉及的运算系统1,从外部存储器20,将输入数据的一部分,作为1个以上的列向量数据读入到内部存储器12(S603)。
接着,本变形例涉及的运算系统1,针对读入到内部存储器12的权重数据的一部分即该行向量数据与读入到内部存储器12的输入数据的一部分即该列向量数据进行矩阵乘积运算(S604)。在本变形例中,运算系统1,针对读入到内部存储器12的该行向量数据,和使该列向量数据通过采样与该行向量数据的行成分数相对应地进行了数据变换的列向量数据,进行矩阵乘积运算。
接着,本变形例涉及的运算系统1,针对读入到内部存储器12的权重数据的一部分即该行向量数据,判断是否已经与配置在外部存储器20的全部输入数据进行了矩阵乘积的运算(S605)。
在步骤S605尚未演算完毕的情况下(S605中的“否”),本变形例涉及的运算系统1,回到步骤S603,从外部存储器20,将输入数据的与该一部分不同的一部分,作为1个以上的列向量数据读入到内部存储器12。而且,进行步骤S604的处理。
另一方面,在步骤S605已经演算完毕的情况下(S605中的“是”),本变形例涉及的运算系统1,判断针对配置在外部存储器20的全部权重数据是否已经进行了矩阵乘积运算(S606)。
在步骤S606尚未演算完毕的情况下(S606中的“否”),本变形例涉及的运算系统1,回到步骤S602,从外部存储器20,将权重数据的与该一部分不同的一部分,作为1个以上的行向量数据读入到内部存储器12。而且,进行步骤S603以后的处理。
另一方面,在步骤S606已经演算完毕的情况下(S606中的“是”),本变形例涉及的运算系统1,结束步骤S6的处理。
这样本变形例涉及的运算系统1,将权重数据作为整体,从外部存储器20读入到内部存储器12的次数仅为一次,以第2运算模式执行卷积运算。
另外,利用图11说明了将权重数据作为整体读入到内部存储器12的次数仅为一次,并以第2运算模式执行卷积运算的情况的处理,但是不限于此。也可以是将输入数据作为整体,从外部存储器20读入到内部存储器12的次数仅为一次,并以第2运算模式执行卷积运算。在这个情况下,可以在步骤S602中将输入数据的一部分作为列向量数据而读出,在步骤S603将权重数据的一部分作为行向量数据而读出。而且,在步骤S605中,判断列向量数据是否已经与全部权重数据进行了运算,在步骤S606中判断是否已经与全部输入数据进行了运算。
[效果等]
图12是用于说明变形例涉及的以第2运算模式进行的运算方法的效果的图。与图10相同的要素赋予相同的符号。
如图12所示,在以第2运算模式进行的运算方法中,输入数据不能收纳在内部存储器12,所以将输入数据配置在外部存储器20。此外在本变形例中,权重数据的全部也不能收纳在内部存储器12,所以将权重数据的一部分配置在内部存储器12,剩余部分配置在外部存储器20。因此,将输入数据,从外部存储器20读入一部分存放到内部存储器12的一部分区域即缓冲器,从该缓冲器反复提供给乘积和运算部111。同样,权重数据的一部分,从内部存储器12反复读出并提供给乘积和运算部111。这样,输入数据的整体或者权重数据的整体,从外部存储器20读出的次数仅为一次。
例如,在内部存储器12与外部存储器20均配置的权重数据,可以整体被循环地读出多次而使用。在这个情况下,被配置在外部存储器20的输入数据作为整体,从外部存储器20读出的次数仅为一次的方式,按每一部分存放在内部存储器12的缓冲器,在缓冲器多次循环而使用。
此外,如上述一样,在内部存储器12与外部存储器20均配置的输入数据的整体被循环地读出多次而使用。在这个情况下,被配置在外部存储器20的权重数据作为整体,从外部存储器20读出的次数仅为一次的方式,按每一部分存放在内部存储器12的缓冲器,在缓冲器多次循环而使用。
在图12示出的以第2运算模式进行的运算方法中,输入数据的一部分作为1个以上的列向量数据来存放到内部存储器12的缓冲器,并且进行矩阵乘积的运算,所以输出数据在纵方向生成并且存放到内部存储器12。另外,在输出数据不能收纳在内部存储器12的情况下,可以输入到外部存储器20。
从而,即使容量有限的内部存储器12,能够将从功耗大的外部存储器读出输入数据或权重数据的次数限制为最小,所以能够进一步抑制功耗来进行卷积运算。
[其他的实施方式等]
以上,关于本公开的方案涉及的运算方法,根据实施方式进行了说明,但是本公开并非被这些实施方式所限定。例如,可以任意组合本说明书中记载的构成要素,此外可以将构成要素中的几个要素去除而实现的其他的实施方式作为本公开的实施方式。此外,针对所述实施方式,只要不脱离本公开的主旨即技术方案记载的说明示出的范围,实施本领域技术人员所想出的各种变形而获得的变形例也包括在本公开中。
此外,以下示出的形式,也包括在本公开的1个或多个方案的范围内。
(1)构成所述运算系统的构成要素的一部分,具体而言可以是由微处理机、ROM、RAM、硬盘装置、显示器单元、键盘、鼠标等构成的计算机系统。所述RAM或硬盘装置中,存储有计算机程序。所述微处理机,按照计算机程序而动作,从而达成该功能。在此,为了达成规定的功能,计算机程序是组合多个命令代码而构成的,该命令代码示出对计算机进行的指令。
(2)构成上述运算系统的构成要素的一部分可以由1个系统LSI(Large ScaleIntegration:大规模集成电路)来构成。系统LSI,是将多个构成部集成在1个芯片上来制造的超多功能LSI,具体而言是包括微处理机,ROM,RAM等构成的计算机系统。所述RAM记录有计算机程序。所述微处理机,按照所述计算机程序动作,从而系统LSI达成其功能。
(3)构成上述运算系统的构成要素的一部分,可以由能够在各个装置进行装拆的IC卡或单体的模块构成。所述IC卡或所述模块是由微处理机、ROM、RAM等构成的计算机系统。所述IC卡或所述模块,可以包括所述超多功能LSI。微处理机,按照计算机程序进行动作,从而所述IC卡或所述模块达成该功能。该IC卡或者该模块,可以具有耐篡改性。
(4)此外,构成上述运算系统的构成要素的一部分,可以是将所述计算机程序或者所述数字信号记录在能够由计算机读取的记录介质,例如软磁盘、硬盘、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD(Blu-ray(注册商标)Disc)、半导体存储器等。此外,也可以是在这些记录介质中记录的所述数字信号。
此外,构成上述运算系统的构成要素的一部分,可以是将所述计算机程序或所述数字信号,经由电通信线路、无线或有线通信线路、以因特网为代表的网络、数据广播等传输。
(5)本公开可以是上述示出的方法。此外,可以是由计算机实现这些方法的计算机程序,也可以是由计算机程序构成的数字信号。
(6)此外本公开可以是具备微处理机和存储器的计算机系统,所述存储器存储所述计算机程序,所述微处理机按照所述计算机程序来动作。
(7)此外通过将所述程序或所述数字信号记录在所述记录介质并移送,或者将所述程序或所述数字信号,经由所述网络等移送,从而可以由独立的其他的计算机系统来实施。
(8)可以分别组合所述实施方式以及所述变形例。
本公开能够用于运算方法,尤其能够用于进行图像识别的大规模卷积神经网络的卷积层中的卷积运算以低功耗来处理的方法以及作为电路技术来使用的运算方法。
符号说明
1 运算系统
10 电路
11 运算器
12 内部存储器
20 外部存储器
30 判断部
40 控制部
50 输出部
60 卷积神经网络
111 乘积和运算部
112 数据变换部
Claims (7)
1.一种运算方法,利用LSI的内部具有的运算器和内部存储器,以矩阵乘积运算进行神经网络的卷积层的卷积运算,所述运算方法包括:
判断步骤,按照每个卷积层,判断被输入到该卷积层的输入数据是否为规定的数据量以下;
以第1运算模式执行卷积运算的步骤,在所述判断步骤中,被判断为所述输入数据是规定的数据量以下的情况下,选择第1运算模式,以所述第1运算模式执行卷积运算;
以第2运算模式执行卷积运算的步骤,在所述判断步骤中,被判断为所述输入数据比规定的数据量大的情况下,选择第2运算模式,以所述第2运算模式执行卷积运算;以及
输出步骤,对输出数据进行输出,所述输出数据是执行卷积运算而获得的结果,
所述以第1运算模式执行卷积运算的步骤,包括:
将该卷积层的权重数据,配置在位于所述LSI的外部的外部存储器的步骤;
将该卷积层的所述输入数据配置在所述内部存储器的步骤;以及
从所述外部存储器,将所述权重数据,按每一部分,作为1个以上的行或者列向量数据,读入到所述内部存储器,并且使所述运算器对该1个以上的行或者列向量数据与被配置在所述内部存储器的所述输入数据的矩阵进行矩阵乘积运算的步骤,
所述权重数据作为整体,从所述外部存储器读入到所述内部存储器的次数仅为一次,
所述以第2运算模式执行卷积运算的步骤,包括:
将该卷积层的输入数据,配置在位于所述LSI的外部的外部存储器的步骤;
将该卷积层的权重数据的矩阵,配置在所述内部存储器的步骤;以及
从所述外部存储器,将所述输入数据,按每一部分,作为1个以上的列或者行向量数据,读入到所述内部存储器,并且使所述运算器对该1个以上的列或者行向量数据与被配置在所述内部存储器的所述权重数据的矩阵进行矩阵乘积运算的步骤,
所述输入数据作为整体,从所述外部存储器读入到所述内部存储器的次数仅为一次。
2.如权利要求1所述的运算方法,
在所述输出步骤中,将所述输出数据,作为该卷积层的后段的层中的输入数据而配置到所述内部存储器或所述外部存储器,从而输出所述输出数据。
3.如权利要求2所述的运算方法,
所述后段的层是卷积层、池化层、或归一化层。
4.如权利要求1至3的任一项所述的运算方法,
所述以第1运算模式执行卷积运算的步骤,包括:
对配置在所述内部存储器的所述输入数据进行采样,从而变换为所述输入数据的矩阵的步骤,
所述以第2运算模式执行卷积运算的步骤,包括:
对读入到所述内部存储器的所述输入数据的一部分进行采样,从而变换为所述1个以上的列或者行向量数据的步骤。
5.如权利要求1至4的任一项所述的运算方法,
在所述以第2运算模式执行卷积运算的步骤中,
所述输入数据,以瓦片状的形式而被配置在所述外部存储器。
6.如权利要求1至5的任一项所述的运算方法,
在所述输出步骤中,在所述输出数据被配置在所述外部存储器的情况下,所述输出数据,以瓦片状的形式而被配置在所述外部存储器。
7.一种运算方法,利用LSI的内部具有的运算器和内部存储器,以矩阵乘积运算进行神经网络的卷积层的卷积运算,所述运算方法包括:
判断步骤,按照每个卷积层,判断被输入到该卷积层的输入数据是否为规定的数据量以下;
以第1运算模式执行卷积运算的步骤,在所述判断步骤中,被判断为所述输入数据是规定的数据量以下的情况下,选择第1运算模式,以所述第1运算模式执行卷积运算;
以第2运算模式执行卷积运算的步骤,在所述判断步骤中,被判断为所述输入数据比规定的数据量大的情况下,选择第2运算模式,以所述第2运算模式执行卷积运算;以及
输出步骤,对输出数据进行输出,所述输出数据是执行卷积运算而获得的结果,
所述以第1运算模式执行卷积运算的步骤,包括:
将该卷积层的权重数据,配置在位于所述LSI的外部的外部存储器的步骤;
将该卷积层的所述输入数据配置在所述内部存储器的步骤;以及
从所述外部存储器,将所述权重数据,按每一部分,作为1个以上的行或者列向量数据,读入到所述内部存储器,并且使所述运算器对该1个以上的行或者列向量数据与被配置在所述内部存储器的所述输入数据的矩阵进行矩阵乘积运算的步骤,
所述权重数据作为整体,从所述外部存储器读入到所述内部存储器的次数仅为一次,
所述以第2运算模式执行卷积运算的步骤,包括:
将该卷积层的输入数据以及权重数据,配置在位于所述LSI的外部的外部存储器的步骤;
从所述外部存储器,将所述权重数据的一部分,作为1个以上的行或者列向量数据即第1向量数据,配置在所述内部存储器的步骤;
从所述外部存储器,将所述输入数据,按每一部分,作为1个以上的列或者行向量数据,读入到所述内部存储器,并且使所述运算器对该1个以上的列或者行向量数据与被配置在所述内部存储器的所述第1向量数据进行矩阵乘积运算的步骤;
从所述外部存储器,将所述权重数据的与所述一部分不同的一部分,作为1个以上的行或者列向量数据即第2向量数据,配置在所述内部存储器的步骤;以及
从所述外部存储器,将所述输入数据,按每一部分,作为1个以上的列或者行向量数据,读入到所述内部存储器,并且使所述运算器对该1个以上的列或者行向量数据与被配置在所述内部存储器的所述第2向量数据进行矩阵乘积运算的步骤,
所述权重数据作为整体,从所述外部存储器读入到所述内部存储器的次数仅为一次。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2018/021371 WO2019234794A1 (ja) | 2018-06-04 | 2018-06-04 | 演算方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112166442A true CN112166442A (zh) | 2021-01-01 |
CN112166442B CN112166442B (zh) | 2023-08-18 |
Family
ID=68770177
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880093914.3A Active CN112166442B (zh) | 2018-06-04 | 2018-06-04 | 运算方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11907327B2 (zh) |
JP (1) | JP7136204B2 (zh) |
CN (1) | CN112166442B (zh) |
WO (1) | WO2019234794A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115878957A (zh) * | 2022-12-29 | 2023-03-31 | 珠海市欧冶半导体有限公司 | 一种矩阵乘法加速装置及方法 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11494625B2 (en) * | 2018-10-03 | 2022-11-08 | Maxim Integrated Products, Inc. | Systems and methods for energy-efficient analog matrix multiplication for machine learning processes |
US11657252B2 (en) * | 2019-06-07 | 2023-05-23 | Meta Platforms, Inc. | Point to point connected processing elements with data joiner components |
JP7373751B2 (ja) * | 2020-03-31 | 2023-11-06 | パナソニックIpマネジメント株式会社 | 演算処理システムおよび畳み込み演算方法 |
WO2021199569A1 (ja) * | 2020-03-31 | 2021-10-07 | パナソニックIpマネジメント株式会社 | 演算処理システムおよび畳み込み演算方法 |
WO2022259427A1 (ja) * | 2021-06-09 | 2022-12-15 | 日本電信電話株式会社 | 画像処理装置、画像処理方法、及び画像処理プログラム |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002269067A (ja) * | 2001-12-26 | 2002-09-20 | Matsushita Electric Ind Co Ltd | 行列演算装置 |
KR101644998B1 (ko) * | 2015-12-22 | 2016-08-02 | 엑스브레인 주식회사 | Convolutional Neural Network를 이용하여 비정상 입력 데이터를 검출하는 방법 및 장치 |
CN106127297A (zh) * | 2016-06-02 | 2016-11-16 | 中国科学院自动化研究所 | 基于张量分解的深度卷积神经网络的加速与压缩方法 |
CN106326985A (zh) * | 2016-08-18 | 2017-01-11 | 北京旷视科技有限公司 | 神经网络训练方法和装置及数据处理方法和装置 |
CN106502964A (zh) * | 2016-12-06 | 2017-03-15 | 中国矿业大学 | 一种基于Spark的极限学习机并行化计算方法 |
JP2017059205A (ja) * | 2015-09-17 | 2017-03-23 | パナソニックIpマネジメント株式会社 | 主題推定システム、主題推定方法およびプログラム |
JP6250782B1 (ja) * | 2016-12-01 | 2017-12-20 | ヴィア アライアンス セミコンダクター カンパニー リミテッド | ビクティムキャッシュ又はニューラルネットワークユニットメモリとして動作可能なメモリアレイを有するプロセッサ |
CN107657314A (zh) * | 2017-09-26 | 2018-02-02 | 济南浪潮高新科技投资发展有限公司 | 一种基于区间算法的神经网络卷积层设计方法 |
US20180107630A1 (en) * | 2016-10-13 | 2018-04-19 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Processor and method for executing matrix multiplication operation on processor |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4947983B2 (ja) | 2006-01-31 | 2012-06-06 | キヤノン株式会社 | 演算処理システム |
US10387298B2 (en) * | 2017-04-04 | 2019-08-20 | Hailo Technologies Ltd | Artificial neural network incorporating emphasis and focus techniques |
-
2018
- 2018-06-04 WO PCT/JP2018/021371 patent/WO2019234794A1/ja active Application Filing
- 2018-06-04 CN CN201880093914.3A patent/CN112166442B/zh active Active
- 2018-06-04 JP JP2020523858A patent/JP7136204B2/ja active Active
-
2020
- 2020-12-01 US US17/108,833 patent/US11907327B2/en active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002269067A (ja) * | 2001-12-26 | 2002-09-20 | Matsushita Electric Ind Co Ltd | 行列演算装置 |
JP2017059205A (ja) * | 2015-09-17 | 2017-03-23 | パナソニックIpマネジメント株式会社 | 主題推定システム、主題推定方法およびプログラム |
KR101644998B1 (ko) * | 2015-12-22 | 2016-08-02 | 엑스브레인 주식회사 | Convolutional Neural Network를 이용하여 비정상 입력 데이터를 검출하는 방법 및 장치 |
CN106127297A (zh) * | 2016-06-02 | 2016-11-16 | 中国科学院自动化研究所 | 基于张量分解的深度卷积神经网络的加速与压缩方法 |
CN106326985A (zh) * | 2016-08-18 | 2017-01-11 | 北京旷视科技有限公司 | 神经网络训练方法和装置及数据处理方法和装置 |
US20180107630A1 (en) * | 2016-10-13 | 2018-04-19 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Processor and method for executing matrix multiplication operation on processor |
JP6250782B1 (ja) * | 2016-12-01 | 2017-12-20 | ヴィア アライアンス セミコンダクター カンパニー リミテッド | ビクティムキャッシュ又はニューラルネットワークユニットメモリとして動作可能なメモリアレイを有するプロセッサ |
CN106502964A (zh) * | 2016-12-06 | 2017-03-15 | 中国矿业大学 | 一种基于Spark的极限学习机并行化计算方法 |
CN107657314A (zh) * | 2017-09-26 | 2018-02-02 | 济南浪潮高新科技投资发展有限公司 | 一种基于区间算法的神经网络卷积层设计方法 |
Non-Patent Citations (2)
Title |
---|
ZHANG, J., ET AL.: "Analyzing and Mitigating the Impact of Permanent Faults on a Systolic Array Based Neural Network Accelerator", 2018 IEEE 36TH VLSI TEST SYMPOSIUM(VTS), pages 1 - 6 * |
史天予;胡玉兰;孙家民;袁德鹏;: "增强层次CNN模型在目标识别应用中的研究", 光电技术应用, no. 04, pages 70 - 76 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115878957A (zh) * | 2022-12-29 | 2023-03-31 | 珠海市欧冶半导体有限公司 | 一种矩阵乘法加速装置及方法 |
CN115878957B (zh) * | 2022-12-29 | 2023-08-29 | 珠海市欧冶半导体有限公司 | 一种矩阵乘法加速装置及方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2019234794A1 (ja) | 2019-12-12 |
US11907327B2 (en) | 2024-02-20 |
US20210081489A1 (en) | 2021-03-18 |
CN112166442B (zh) | 2023-08-18 |
JPWO2019234794A1 (ja) | 2021-06-17 |
JP7136204B2 (ja) | 2022-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112166442B (zh) | 运算方法 | |
US11836081B2 (en) | Methods and systems for handling data received by a state machine engine | |
US11003985B2 (en) | Convolutional neural network system and operation method thereof | |
CN104011723B (zh) | 状态机晶格中的布尔逻辑 | |
JP6122121B2 (ja) | パターン認識処理における電力管理のための方法およびシステム | |
US20180174036A1 (en) | Hardware Accelerator for Compressed LSTM | |
JP6106752B2 (ja) | 状態機械エンジンのための結果生成 | |
KR102335955B1 (ko) | 컨볼루션 신경망 시스템 및 그것의 동작 방법 | |
KR102165134B1 (ko) | 상태 기계 엔진에서 상태 벡터 데이터를 사용하기 위한 방법들 및 시스템들 | |
EP2791863A1 (en) | Methods and systems for routing in a state machine | |
EP2875436A1 (en) | Methods and devices for programming a state machine engine | |
US20190318258A1 (en) | Optimization apparatus and control method thereof | |
EP3637327A1 (en) | Computing device and method | |
CN112328227B (zh) | 编译方法、装置、计算设备和介质 | |
CN110928576A (zh) | 一种卷积神经网络的卷积处理方法、装置及存储介质 | |
CN111553471A (zh) | 一种数据分析处理方法及装置 | |
An et al. | An ultra-low-power image signal processor for hierarchical image recognition with deep neural networks | |
Shu et al. | High energy efficiency FPGA-based accelerator for convolutional neural networks using weight combination | |
KR101989793B1 (ko) | 컨볼루션 신경망을 위한 가속기 인식 가지 치기 방법 및 기록 매체 | |
CN111857029A (zh) | 一种数据采集的方法、系统、装置、终端设备及介质 | |
CN105931278A (zh) | 用于二维块比特流压缩和解压的方法和装置 | |
CN112580796A (zh) | 用于神经网络的剪枝方法、装置以及系统 | |
CN108537325B (zh) | 操作神经网络装置的方法 | |
Singireddy et al. | Input-Aware Flow-Based In-Memory Computing | |
CN117118455A (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 |