CN113807510B - 集成电路芯片装置及相关产品 - Google Patents
集成电路芯片装置及相关产品 Download PDFInfo
- Publication number
- CN113807510B CN113807510B CN202111084945.2A CN202111084945A CN113807510B CN 113807510 B CN113807510 B CN 113807510B CN 202111084945 A CN202111084945 A CN 202111084945A CN 113807510 B CN113807510 B CN 113807510B
- Authority
- CN
- China
- Prior art keywords
- data
- connection relation
- input
- relation data
- basic
- 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
- 238000007906 compression Methods 0.000 claims abstract description 131
- 230000006835 compression Effects 0.000 claims abstract description 129
- 238000013507 mapping Methods 0.000 claims abstract description 81
- 238000013528 artificial neural network Methods 0.000 claims abstract description 42
- 210000002364 input neuron Anatomy 0.000 claims description 283
- 239000011159 matrix material Substances 0.000 claims description 86
- 210000004205 output neuron Anatomy 0.000 claims description 71
- 230000005540 biological transmission Effects 0.000 claims description 60
- 239000013598 vector Substances 0.000 claims description 41
- 238000000034 method Methods 0.000 claims description 35
- 230000004913 activation Effects 0.000 claims description 6
- 238000011773 genetically engineered mouse model Methods 0.000 claims description 2
- 238000012163 sequencing technique Methods 0.000 claims 2
- 230000008901 benefit Effects 0.000 abstract description 5
- 238000004364 calculation method Methods 0.000 description 31
- 238000010586 diagram Methods 0.000 description 27
- 210000002569 neuron Anatomy 0.000 description 11
- 238000013144 data compression Methods 0.000 description 10
- 238000009825 accumulation Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 230000003139 buffering effect Effects 0.000 description 5
- 210000004027 cell Anatomy 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 230000008707 rearrangement Effects 0.000 description 2
- 238000005481 NMR spectroscopy Methods 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000005406 washing Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
-
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- 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
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3066—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction by means of a mask or a bit-map
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/70—Type of the data to be coded, other than image and sound
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Neurology (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Stabilization Of Oscillater, Synchronisation, Frequency Synthesizers (AREA)
Abstract
本披露提供一种集成电路芯片装置及相关产品,所述集成电路芯片装置包括:主处理电路以及多个基础处理电路;所述主处理电路或多个基础处理电路中至少一个电路包括:压缩映射电路包括;所述压缩映射电路,用于执行神经网络运算中的各个数据的压缩处理;所述多个基础处理电路呈阵列分布;每个基础处理电路与相邻的其他基础处理电路连接,所述主处理电路连接第1行的n个基础处理电路、第m行的n个基础处理电路以及第1列的m个基础处理电路。本披露提供的技术方案具有计算量小,功耗低的优点。
Description
技术领域
本披露涉及神经网络领域,尤其涉及一种集成电路芯片装置及相关产品。
背景技术
人工神经网络(Artificial Neural Network,即ANN),是20世纪80年代以来人工智能领域兴起的研究热点。它从信息处理角度对人脑神经元网络进行抽象,建立某种简单模型,按不同的连接方式组成不同的网络。在工程与学术界也常直接简称为神经网络或类神经网络。神经网络是一种运算模型,由大量的节点(或称神经元)之间相互联接构成。现有的神经网络的运算基于CPU(Central Processing Unit,中央处理器)或GPU(英文:Graphics Processing Unit,图形处理器)来实现神经网络的运算,此种运算的计算量大,功耗高。
发明内容
本披露实施例提供了一种集成电路芯片装置及相关产品,可提升计算装置的处理速度,提高效率。
第一方面,提供一种所述集成电路芯片装置包括:主处理电路以及多个基础处理电路;
所述多个基础处理电路呈阵列分布;每个基础处理电路与相邻的其他基础处理电路连接,所述主处理电路连接所述多个基础处理电路中的k个基础处理电路,所述k个基础处理电路为:第1行的n个基础处理电路、第m行的n个基础处理电路以及第1列的m个基础处理电路;
所述多个基础处理电路包括:压缩映射电路,用于执行神经网络运算中的各个数据的压缩处理;
所述主处理电路,用于执行神经网络运算中的各个连续的运算以及与所述k个基础处理电路传输数据;
所述k个基础处理电路,用于在所述主处理电路以及多个基础处理电路之间的数据转发;
所述多个基础处理电路,用于依据传输数据的运算控制确定是否启动所述压缩映射电路对所述传输数据进行压缩处理,依据压缩处理后的传输数据以并行方式执行神经网络中的运算,并将运算结果通过所述k个基础处理电路传输给所述主处理电路。
第二方面,提供一种神经网络运算装置,所述神经网络运算装置包括一个或多个第一方面提供的集成电路芯片装置。
第三方面,提供一种组合处理装置,所述组合处理装置包括:第二方面提供的神经网络运算装置、通用互联接口和通用处理装置;
所述神经网络运算装置通过所述通用互联接口与所述通用处理装置连接。
第四方面,提供一种芯片,所述芯片集成第一方面的装置、第二方面的装置或第三方面的装置。
第五方面,提供一种智能设备,所述电子设备包括第四方面的芯片。
第六方面,提供一种神经网络的运算方法,所述方法应用在集成电路芯片装置内,所述集成电路芯片装置包括:第一方面所述的集成电路芯片装置,所述集成电路芯片装置用于执行神经网络的运算。
可以看出,通过本披露实施例,提供压缩映射电路将数据块压缩处理后再进行运算,节省了传输资源以及计算资源,所以其具有功耗低,计算量小的优点。
附图说明
图1a是一种集成电路芯片装置结构示意图。
图1b是另一种集成电路芯片装置结构示意图。
图1c是一种基础处理电路的结构示意图。
图1d是一种主处理电路的结构示意图。
图1e为本发明实施例提供的一种压缩映射电路的局部结构示意图。
图1f为本发明实施例提供的一种神经网络结构示意图。
图1g为本发明实施例提供的另一种压缩映射电路的局部结构示意图。
图1h为本发明实施例提供的另一种压缩映射电路的局部结构示意图。
图1i为本发明实施例提供的另一种压缩映射电路的局部结构示意图。
图1j为本发明实施例提供的另一种压缩映射电路的局部结构示意图。
图1k为本发明实施例提供的另一种压缩映射电路的局部结构示意图。
图1l为本发明实施例提供的另一种压缩映射电路的局部结构示意图。
图2a是一种基础处理电路的使用方法示意图。
图2b是一种主处理电路传输数据示意图。
图2c是矩阵乘以向量的示意图。
图2d是一种集成电路芯片装置结构示意图。
图2e是又一种集成电路芯片装置结构示意图。
图2f是矩阵乘以矩阵的示意图。
图3a为卷积输入数据示意图。
图3b为卷积核示意图。
图3c为输入数据的一个三维数据块的运算窗口示意图。
图3d为输入数据的一个三维数据块的另一运算窗口示意图。
图3e为输入数据的一个三维数据块的又一运算窗口示意图。
图4为本披露实施例流提供的一种神经网络芯片的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本披露方案,下面将结合本披露实施例中的附图,对本披露实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本披露一部分实施例,而不是全部的实施例。基于本披露中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本披露保护的范围。
在第一方面提供的装置中,所述主处理电路,用于获取待计算的数据块以及运算指令,依据该运算指令对所述待计算的数据块划分成分发数据块以及广播数据块;对所述分发数据块进行拆分处理得到多个基本数据块,将所述多个基本数据块分发至所述k个基础处理电路,将所述广播数据块广播至所述k个基础处理电路;
所述多个基础处理电路,用于依据接收到的基本数据块、广播数据块以及运算指令启动所述压缩映射电路将基本数据块和广播数据块进行压缩处理,对压缩处理后的所述基本数据块与压缩处理后的所述广播数据块执行内积运算得到运算结果,将运算结果通过所述k个基础处理电路传输给所述主处理电路;
所述主处理电路,用于对所述运算结果处理得到所述待计算的数据块以及运算指令的指令结果。
可选的,所述主处理电路,具体用于将所述广播数据块通过一次广播至所述k个基础处理电路。
在第一方面提供的装置中,所述主处理电路,用于在如所述运算结果为内积处理的结果时,对所述运算结果累加后得到累加结果,将该累加结果排列得到所述待计算的数据块以及运算指令的指令结果。
在第一方面提供的装置中,所述主处理电路,具体用于将所述广播数据块分成多个部分广播数据块,将所述多个部分广播数据块通过多次广播至所述k个基础处理电路。
在第一方面提供的装置中,所述多个基础处理电路,具体用于启动所述压缩映射电路将所述部分广播数据块与所述基本数据块进行压缩处理后执行一次内积处理得到内积处理结果,将所述内积处理结果累加得到部分运算结果,将所述部分运算结果通过所述k个基础处理电路发送至所述主处理电路。
在第一方面提供的装置中,所述多个基础处理电路,具体用于启动所述压缩映射电路对所述部分广播数据块与所述基本数据块进行压缩处理,复用n次部分广播数据块(具体为压缩处理后的部分广播数据块)执行该部分广播数据块与n个基本数据块(具体为压缩处理后的基本数据块)的内积运算得到n个部分处理结果,将n个部分处理结果分别累加后得到n个部分运算结果,将所述n个部分运算结果通过所述k个基础处理电路发送至主处理电路,所述n为大于等于2的整数。
在第一方面提供的装置中,所述主处理电路包括:主寄存器或主片上缓存电路;
所述多个基础处理电路包括:基本寄存器或基本片上缓存电路。
在第一方面提供的装置中,所述主处理电路包括:向量运算器电路、算数逻辑单元电路、累加器电路、矩阵转置电路、直接内存存取电路、压缩映射电路或数据重排电路中的一种或任意组合。
在第一方面提供的装置中,所述数据为:向量、矩阵、三维数据块、四维数据块以及n维数据块中一种或任意组合。
在第一方面提供的装置中,如所述运算指令为乘法指令,所述主处理电路确定乘数数据块为广播数据块,被乘数数据块为分发数据块;
如所述运算指令为卷积指令,所述主处理电路确定输入数据块为广播数据块,卷积核为分发数据块。
在第六方面提供的方法中,所述神经网络的运算包括:卷积运算、矩阵乘矩阵运算、矩阵乘向量运算、偏执运算、全连接运算、GEMM运算、GEMV运算、激活运算中的一种或任意组合。
参阅图1a,图1a为本披露提供的一种集成电路芯片装置,该集成电路芯片装置包括:主处理电路和多个基础处理电路,所述多个基础处理电路呈阵列排布(m*n阵列),其中,m、n的取值范围为大于等于1的整数且m、n中至少有一个值大于等于2。对于m*n阵列分布的多个基础处理电路,每个基础处理电路与相邻的基础处理电路连接,所述主处理电路连接多个基础处理电路的k个基础处理电路,所述k个基础处理电路可以为:第1行的n个基础处理电路、第m行的n个基础处理电路以及第1列的m个基础处理电路。如图1a所示的集成电路芯片装置,主处理电路和/或多个基础处理电路可以包括压缩映射电路,具体的多个基础处理电路中可以有部分基础处理电路包括压缩映射电路,例如,在一个可选的技术方案中,可以将k个基础处理电路配置压缩映射电路,这样n个基础处理电路可以分别负责对本列的m个基础处理电路的数据进行数据压缩处理步骤。此设置能够提高运算效率,降低功耗,因为对于第1行的n个基础处理电路来说,由于其最先接收到主处理电路发送的数据,那么将该接收到的数据进行压缩处理可以减少后续基础处理电路的计算量以及与后续基础处理电路的数据传输的量,同理,对于第一列的m个基础处理电路配置压缩映射电路也具有计算量小和功耗低的优点。另外,依据该结构,主处理电路可以采用动态的数据发送策略,例如,主处理电路向第1列的m个基础处理电路广播数据,主处理电路向第1行的n个基础处理电路发送分发数据,此优点是,通过不同的数据输入口传递不同的数据到基础处理电路内,这样基础处理电路可以不区分该接收到的数据是何种数据,只需要确定该数据从哪个接收端口接收即可以获知其属于何种数据。
所述主处理电路,用于执行神经网络运算中的各个连续的运算以及和与其相连的所述基础处理电路传输数据;上述连续的运算但不限于:累加运算、ALU运算、激活运算等等运算。
所述多个基础处理电路,用于依据传输的数据以并行方式执行神经网络中的运算,并将运算结果通过与所述主处理电路连接的基础处理电路传输给所述主处理电路。上述并行方式执行神经网络中的运算包括但不限于:内积运算、矩阵或向量乘法运算等等。具体的,所述多个基础处理电路可先对传输的数据进行压缩处理,然后在依据压缩处理后的数据以并行方式执行神经网络中的运算。
主处理电路可以包括:数据发送电路、数据接收电路或接口,该数据发送电路可以集成数据分发电路以及数据广播电路,当然在实际应用中,数据分发电路以及数据广播电路也可以分别设置。对于广播数据,即需要发送给每个基础处理电路的数据。对于分发数据,即需要有选择的发送给部分基础处理电路的数据,具体的,如卷积运算,卷积运算的卷积输入数据需要发送给所有的基础处理电路,所有其为广播数据,卷积核需要有选择的发送给部分基本数据块,所以卷积核为分发数据。分发数据具体的选择发送给哪个基础处理电路的方式可以由主处理电路依据负载以及其他分配方式进行具体的确定。对于广播发送方式,即将广播数据以广播形式发送至每个基础处理电路。(在实际应用中,通过一次广播的方式将广播数据发送至每个基础处理电路,也可以通过多次广播的方式将广播数据发送至每个基础处理电路,本披露具体实施方式并不限制上述广播的次数),对于分发发送方式,即将分发数据有选择的发送给部分基础处理电路。
主处理电路(如图1d所示)可以包括寄存器和/或片上缓存电路,该主处理电路还可以包括:控制电路、向量运算器电路、ALU(arithmetic and logic unit,算数逻辑单元)电路、累加器电路、DMA(Direct Memory Access,直接内存存取)电路等电路,当然在实际应用中,上述主处理电路还可以添加,转换电路(例如矩阵转置电路)、数据重排电路或激活电路等等其他的电路。
每个基础处理电路可以包括基础寄存器和/或基础片上缓存电路;每个基础处理电路还可以包括:内积运算器电路、向量运算器电路、累加器电路等中一个或任意组合。上述内积运算器电路、向量运算器电路、累加器电路都可以是集成电路,上述内积运算器电路、向量运算器电路、累加器电路也可以为单独设置的电路。
可选的,对于第m行n个基础处理电路的累加器电路可以执行内积运算的累加运算,因为对于第m行基础处理电路来说,其能够接收到本列所有的基础处理电路的乘积结果,而将内积运算的累加运算通过第m行的n个基础处理电路执行内积运算的累加运算,这样能够对计算资源进行有效的分配,具有节省功耗的优点。此技术方案尤其对于m数量较大时更为适用。
对于数据的压缩处理可以由主处理电路来分配执行的电路,具体的,可以通过显示或隐式的方式来分配执行的电路,对于显示方式,主处理电路可以配置一个特殊指示或指令,当基础处理电路接收到该特殊指示或指令时,确定执行数据压缩处理,如基础处理电路未接收到特殊指示或指令时,确定不执行数据压缩处理。又如,可以以暗示的方式来执行,例如,基础处理电路接收到数据类型为稀疏数据(即含0,或包括小于预设阈值的数据大于预设数量)且确定需要执行内积运算时,将对稀疏数据进行压缩处理。对于显示配置的方式,特殊指令或指示可以配置一个递减序列,该递减序列的每经过一个基础处理电路,数值减1,基础处理电路读取该递减序列的值,如该值大于零,则执行数据压缩处理,如该值等于或小于零,则不执行数据压缩处理。此设置是依据阵列分配的基础处理电路所配置的,例如对于第i列的m个基础处理电路来说,主处理电路需要前面5个基础处理电路执行属于压缩处理,则主处理电路下发一个特殊指令,该特殊指令包含有递减序列,该递减序列的初始值可以为5,则每经过一个基础处理电路,递减序列的值即减1,到第5个基础处理电路时,该递减序列的值为1,到第6个基础处理电路时,该递减序列为0,此时第6个基础处理电路将不再执行该数据压缩处理,此种方式可以使得主处理电路可以动态的配置数据压缩处理的执行主体以及执行次数。
本披露一个实施例提供一种集成电路芯片装置,包括一个主处理电路(也可以称为主单元)和多个基础处理电路(也可以称为基础单元);实施例的结构如图1b所示;其中,虚线框中是所述神经网络运算装置的内部结构;灰色填充的箭头表示主处理电路和基础处理电路阵列之间的数据传输通路,空心箭头表示基础处理电路阵列中各个基础处理电路(相邻基础处理电路)之间的数据传输通路。其中,基础处理电路阵列的长宽长度可以不同,即m、n的取值可以不同,当然也可以相同,本披露并不限制上述取值的具体值。
基础处理电路的电路结构如图1c所示;图中虚线框表示基础处理电路的边界,与虚线框交叉的粗箭头表示数据输入输出通道(指向虚线框内是输入通道,指出虚线框是输出通道);虚线框中的矩形框表示存储单元电路(寄存器和/或片上缓存),包括输入数据1,输入数据2,乘法或内积结果,累加数据;菱形框表示运算器电路,包括乘法或内积运算器,加法器。
本实施例中,所述神经网络运算装置包括一个主处理电路和16个基础处理电路(16个基础处理电路仅仅为了举例说明,在实际应用中,可以采用其他的数值);
本实施例中,基础处理电路有两个数据输入接口,两个数据输出接口;在本例的后续描述中,将横向的输入接口(图1b中指向本单元的横向箭头)称作输入0,竖向的输入接口(图1b中指向本单元的竖向箭头)称作输入1;将每一个横向的数据输出接口(图1b中从本单元指出的横向箭头)称作输出0,竖向的数据输出接口(图1b中从本单元指出的竖向箭头)称作输出1。
每一个基础处理电路的数据输入接口和数据输出接口可以分别连接不同的单元,包括主处理电路与其他基础处理电路;
本例中,基础处理电路0,4,8,12(编号见图1b)这四个基础处理电路的输入0与主处理电路的数据输出接口连接;
本例中,基础处理电路0,1,2,3这四个基础处理电路的输入1与主处理电路的数据输出接口连接;
本例中,基础处理电路12,13,14,15这四个基础处理电路的输出1与主处理电路的数据输入接口相连;
本例中,基础处理电路输出接口与其他基础处理电路输入接口相连接的情况见图1b所示,不再一一列举;
具体地,S单元的输出接口S1与P单元的输入接口P1相连接,表示P单元将可以从其P1接口接收到S单元发送到其S1接口的数据。
本实施例包含一个主处理电路,主处理电路与外部装置相连接(即有输入接口也有输出接口),主处理电路的一部分数据输出接口与一部分基础处理电路的数据输入接口相连接;主处理电路的一部分数据输入接口与一部分基础处理电路的数据输出接口相连。
集成电路芯片装置的使用方法
本披露提供的使用方法中所涉及到的数据可以是经过压缩处理后的数据。需要说明的是,本申请中的数据可以是神经网络中的输入神经元或权值,其具体可为矩阵数据或向量数据等,本申请不做限定。也即是本申请下文阐述的数据或数据块可为神经网络中的输入神经元或权值,它们可以矩阵或向量等形式体现。
由于神经网络是一个高计算量和高访存的算法,权值越多,计算量和访存量都会增大。特别是,针对权值较小(如为0,或小于设定数值的权值)的情况下,为提高计算速率、减小开销需对这些权值较小的数据进行压缩处理。在实际应用中,数据压缩处理在稀疏神经网络中应用,效果最为明显,如减小数据计算的工作量、减小数据额外开销,提高数据计算速率等。
以输入数据为例,具体阐述所述压缩映射电路的数据压缩处理实施例。所述输入数据包括但不限于至少一个输入神经元和/或至少一个权值。
第一种实施例中:压缩映射电路对输入神经元和权值均进行压缩处理
压缩映射电路101接收到输入数据(具体可为主压缩处理电路发送的所述待计算的数据块)之后,可对所述输入数据进行压缩处理,以得到压缩处理后的输入数据,所述输入数据包括至少一个输入神经元和至少一个权值,所述压缩处理后的输入数据包括压缩处理后的输入神经元和压缩处理后的权值。
上述输入数据包括至少一个输入神经元和至少一个权值。上述压缩映射电路101确定所述至少一个输入神经元中每个输入神经元的绝对值是否大于第一阈值。当上述输入神经元的绝对值小于或者等于该第一阈值时,上述压缩映射电路101将该输入神经元删除;当上述输入神经元的绝对值大于上述第一阈值时,上述压缩映射电路101保留该输入神经元,该压缩映射电路101将删除后的输出神经元输出,作为压缩处理后的输入神经元。上述压缩映射电路101获取输入神经元的连接关系数据,该输入神经元的连接关系数据表示上述至少一个输入神经元中绝对值大于上述第一阈值的输入神经元的位置信息。上述压缩映射电路101确定上述至少一个权值中每个权值的绝对值是否大于第二阈值。当权值的绝对值小于或者等于上述第二阈值时,上述压缩映射电路101将该权值删除,并根据上述输入神经元的连接关系数据将从上述删除后的权值中选择相关的权值输出,作为压缩处理后的权值。
在一种可行的实施例中,上述输入数据包括至少一个输入神经元和至少一个权值。上述压缩映射电路101确定所述至少一个权值中每个权值的绝对值是否大于第二阈值。当上述权值的绝对值小于或者等于该第二阈值时,上述压缩映射电路101将该权值删除;当上述权值的绝对值大于上述第二阈值时,上述压缩映射电路101保留该权值,该压缩映射电路101将删除后的权值输出,作为压缩处理后的权值。上述压缩映射电路101获取权值的连接关系数据,该权值的连接关系数据表示上述至少一个输入神经元与输出神经元之间的连接关系的数据。上述压缩映射电路101确定上述至少一个输入神经元中每个输入神经元的绝对值是否大于第一阈值。当输入神经元的绝对值小于或者等于上述第一阈值时,上述压缩映射电路101将该输入神经元删除,并根据上述权值的连接关系数据将从上述删除后的输入神经元中选择相关的输入神经元输出,作为压缩处理后的输入神经元。
进一步地,上述压缩映射电路101将上述压缩处理后的输入神经元和压缩处理后的权值按照一一对应的格式存储到存储电路中。
具体地,上述压缩映射电路101对上述压缩处理后的输入神经元和上述压缩处理后的权值按照一一对应的格式进行存储的具体方式是将上述压缩处理后的输入神经元中的每个压缩处理后的输入神经元和与其对应的压缩处理后的权值作为一个数据集,并将该数据集存储到存储电路中。
具体地,如图1e所示,上述压缩映射电路101包括:
第一稀疏处理单元1011,用于对第二输入数据进行压缩处理,以得到第三输出数据和第二输出数据,并将所述第三输出数据传输至第一数据处理单元1012。
第一数据处理单元1012,用于接收第一输入数据和接收所述第三输出数据,并根据上述第三输出数据和第一输入数据输出第一输出数据。
其中,当所述第一输入数据包括至少一个输入神经元,所述第二输入数据包括至少一个权值时,所述第一输出数据为压缩处理后的输入神经元,所述第二输出数据为压缩处理后的权值,所述第三输出数据为权值的连接关系数据;当所述第一输入数据包括至少一个权值,所述第二输入数据包括至少一个输入神经元时,所述第一输出数据为压缩处理后的权值,所述第二输出数据为压缩处理后的输入神经元,所述第三输出数据为输入神经元的连接关系数据。
具体地,当上述第二输入数据为权值时,且权值的形式为wij,该wij表示第i个输入神经元与第j个输出神经元之间的权值;上述第一稀疏处理单元1011根据权值确定上述连接关系数据(即上述第三输出数据),并将上述权值中绝对值小于或者等于第二阈值的权值删除,得到压缩处理后的权值(即上述第二输出数据);当上述第二输入数据为输入神经元时,上述第一稀疏处理单元1011根据输入神经元得到连接关系数据,并将该输入神经元中的绝对值小于或等于上述第一阈值的输入神经元删除,以得到压缩处理后的输入神经元。
可选地,上述第一阈值可为0.1、0.08、0.05、0.02、0.01、0或者其他值。上述第二阈值可为0.1、0.08、0.06、0.05、0.02、0.01、0或者其他值。上述第一阈值和上述第二阈值可以一致,也可以不一致。
其中,上述连接关系数据可以步长索引或者直接索引的形式表示。
具体地,以直接索引形式表示的连接关系数据为由0和1组成的字符串,当上述第二输入数据为权值时,0表示该权值的绝对值小于或者等于上述第二阈值,即该权值对应的输入神经元与输出神经元之间没有连接,1表示该权值的绝对值大于上述第二阈值,即该权值对应的输入神经元与输出神经元之间有连接。以直接索引形式表示的连接关系数据有两种表示顺序:以每个输出神经元与所有输入神经元的连接状态组成一个0和1的字符串来表示权值的连接关系;或者每个输入神经元与所有输出神经元的连接状态组成一个0和1的字符串来表示权值的连接关系。当上述第二输入数据为输入神经元时,0表示该输入神经元的绝对值小于或者等于上述第一阈值,1表示该输入神经元的绝对值大于上述第一阈值。
应理解的,所述连接关系数据也可用向量/矩阵等形式体现,其中,0表示该位置对应的输入神经元/权值的数据为0或者小于第一阈值;相应地,1表示该位置对应的输入神经元/权值的数据不为0或者大于第一阈值等,本申请不做限定。可选的,所述数据的连接关系数据也可称为标记mask矩阵/mask向量。
当上述第二输入数据为权值时,以步长索引形式表示的连接关系数据为与输出神经元有连接的输入神经元与上一个与该输出神经元有连接的输入神经元之间的距离值组成的字符串;当上述第二输入数据为输入神经元时,以步长索引表示的数据以当前绝对值大于上述第一阈值的输入神经元与上一个绝对值大于上述第一阈值的输入神经元之间的距离值组成的字符串表示。
举例说明,假设上述第一阈值和上述第二阈值均为0.01,参见图1f,图1f为本发明实施例提供的一种神经网络的示意图。如图1f中的a图所示,上述第一输入数据为输入神经元,包括输入神经元i1、i2、i3和i4,上述第二输入数据为权值。对于输出神经元o1,权值为w11,w21,w31和w41;对于输出神经元o2,权值w12,w22,w32和w42,其中权值w21,w12和w42的值为0,其绝对值均小于上述第一阈值0.01,上述第一稀疏处理单元1011确定上述输入神经元i2和输出神经元o1没有连接,上述输入神经元i1和i4与输出神经元o2没有连接,上述输入神经元i1、i3和i4与上述输出神经元o1有连接,上述输入神经元i2和i3与输出神经元o2有连接。以每个输出神经元与所有输入神经元的连接状态表示上述连接关系数据,则上述输出神经元o1的连接关系数据为“1011”,输出神经元o2的连接关系数据为“0110”(即上述连接关系数据为“10110110”);以每个输入神经元与所有输出神经元的连接关系,则输入神经元i1的连接关系数据为“10”,输入神经元i2的连接关系数据为“01”,输入神经元i3的连接关系数据为“11”,输入神经元i4的连接关系数据为“10”(即上述连接关系数据为“10011110”)。
对于上述输出神经元o1,上述压缩映射电路101将上述i1与w11,i3与w31和i4与w41分别作为一个数据集,并将该数据集存储到存储电路中;对于输出神经元o2,上述压缩映射电路101将上述i2与w22和i3与w32分别作为一个数据集,并将该数据集存储到存储电路中。
针对上述输出神经元o1,上述第二输出数据为w11,w31和w41;针对上述输出神经元o2,上述第二输出数据为w22和w32。
当上述第二输入数据为输入神经元i1、i2、i3和i4,且该输入神经元的值分别为1,0,3,5则上述连接关系数据(即上述第三输出数据)为“1011”,上述第二输出数据为1,3,5。
如图1f中的b图所示,上述第一输入数据包括输入神经元i1、i2、i3和i4,上述第二输入数据为权值。对于输出神经元o1,权值为w11,w21,w31和w41;对于输出神经元o2,权值w12,w22,w32和w42,其中权值w21,w12和w42的值为0,上述稀疏处理单元1011确定上述输入神经元i1、i3和i4与上述输出神经元o1有连接,上述输入神经元i2和i3与输出神经元o2有连接。上述输出神经元o1与输入神经元之间的连接关系数据为“021”。其中,该连接关系数据中第一个数字“0”表示第一个与输出神经元o1有连接的输入神经元与第一个输入神经元之间的距离为0,即第一个与输出神经元o1有连接的输入神经元为输入神经元i1;上述连接关系数据中第二个数字“2”表示第二个与输出神经元o1有连接的输入神经元与第一个与输出神经元o1有连接的输入神经元(即输入神经元i1)之间的距离为2,即第二个与输出神经元o1有连接的输入神经元为输入神经元i3;上述连接关系数据中第三个数字“1”表示第三个与输出神经元o1有连接的输入神经元与第二个与该输出神经元o1有连接的输入神经元之间的距离为1,即第三个与输出神经元o1有连接的输入神经元为输入神经元i4。
上述输出神经元o2与输入神经元之间的连接关系数据为“11”。其中,该连接关系数据中的第一数字“1”表示第一个与输出神经元o2有连接的输入神经元与第一个输入神经元(即输入神经元i1)之间的距离为1,即该第一个与输出神经元o2有连接关系的输入神经元为输入神经元i2;上述连接关系数据中的第二数字“1”表示第二个与输出神经元o2有连接的输入神经元与第一个与输出神经元o2有连接的输入神经元的距离为1,即第二个与输出神经元o2有连接的输入神经元为输入神经元i3。
对于上述输出神经元o1,上述压缩映射电路101将上述i1与w11,i3与w31和i4与w41分别作为一个数据集,并将该数据集存储到存储电路中;对于输出神经元o2,上述压缩映射电路101将上述i2与w22和i3与w32分别作为一个数据集,并将该数据集存储到存储电路中。
针对上述输出神经元o1,上述第二输出数据为w11,w31和w41;针对上述输出神经元o2,上述第二输出数据为w22和w32。
当上述第二输入数据为输入神经元i1、i2、i3和i4,且该输入神经元的值分别为1,0,3,5则上述连接关系数据即上述第三输出数据为“021”,上述第二输出数据为1,3,5。
当上述第一输入数据为输入神经元时,则上述第二输入数据为权值,上述第三输出数据为输出神经元与上述输入神经元之间的连接关系数据。上述第一数据处理单元1012接收到上述输入神经元后,将该输入神经元中绝对值小于或等于上述第二阈值的输入神经元剔除,并根据上述连接关系数据,从剔除后的输入神经元中选择与上述权值相关的输入神经元,作为第一输出数据输出。
举例说明,假设上述第一阈值为0,上述输入神经元i1、i2、i3和i4,其值分别为1,0,3和5,对于输出神经元o1,上述第三输出数据(即连接关系数据)为“021”,上述第二输出数据为w11,w31和w41。上述第一数据处理单元1012将上述输入神经元i1、i2、i3和i4中值为0的输入神经元剔除,得到输入神经元i1、i3和i4。该第一数据处理单元1012根据上述第三输出数据“021”确定上述输入神经元i1、i3和i4均与上述输出神经元均有连接,故上述数据处理单元1012将上述输入神经元i1、i3和i4作为第一输出数据输出,即输出1,3,5。
当上述第一输入数据为权值,上述第二输入数据为输入神经元时,上述第三输出数据为上述输入神经元的连接关系数据。上述第一数据处理单元1012接收到上述权值w11,w21,w31和w41后,将该权值中绝对值小于上述第一阈值的权值剔除,并根据上述连接关系数据,从上述剔除后的权值中选择与该上述输入神经元相关的权值,作为第一输出数据并输出。
举例说明,假设上述第二阈值为0,上述权值w11,w21,w31和w41,其值分别为1,0,3和4,对于输出神经元o1,上述第三输出数据(即连接关系数据)为“1011”,上述第二输出数据为i1,i3和i4。上述第一数据处理单元1012将上述权值w11,w21,w31和w41中值为0的输入神经元剔除,得到权值w11,w31和w41。该第一数据处理单元1012根据上述第三输出数据“1011”确定上述输入神经元i1、i2,i3和i4中的输入神经元i2的值为0,故上述第一数据处理单元1012将上述输入神经元1,3和4作为第一输出数据输出。
在一种可行的实施例中,第三输入数据和第四输入数据分别为至少一个权值和至少一个输入神经元,上述压缩映射电路101确定上述至少一个输入神经元中绝对值大于上述第一阈值的输入神经元的位置,并获取输入神经元的连接关系数据;上述压缩映射电路101确定上述至少一个权值中绝对值大于上述第二阈值的权值的位置,并获取权值的连接关系数据。上述压缩映射电路101根据上述权值的连接关系数据和输入神经元的连接关系数据得到一个新的连接关系数据,该连接关系数据表示上述至少一个输入神经元中绝对值大于上述第一阈值的输入神经元与输出神经元之间的关系和对应的权值的值。压缩映射电路101根据该新的连接关系数据、上述至少一个输入神经元和上述至少一个权值获取压缩处理后的输入神经元和压缩处理后的权值。
进一步地,上述压缩映射电路101将上述压缩处理后的输入神经元和压缩处理后的权值按照一一对应的格式存储到存储电路中。
具体地,上述压缩映射电路101对上述压缩处理后的输入神经元和上述压缩处理后的权值按照一一对应的格式进行存储的具体方式是将上述压缩处理后的输入神经元中的每个压缩处理后的输入神经元和与其对应的压缩处理后的权值作为一个数据集,并将该数据集存储到存储电路中。
对于压缩映射电路101包括第一稀疏处理单元1011和第一数据处理单元1012的情况,压缩映射电路101中的稀疏处理单元1011对输入神经元或者权值进行稀疏化压缩处理,减小了权值或者输入神经元的数量,进而减小了运算单元进行运算的次数,提高了运算效率。
具体地,如图1g所示,上述压缩映射电路101包括:
第二稀疏处理单元1013,用于接收到第三输入数据后,根据所述第三输入数据得到第一连接关系数据,并将该第一连接关系数据传输至连接关系处理单元1015;
第三稀疏处理单元1014,用于接收到第四输入数据后,根据所述第四输入数据得到第二连接关系数据,并将该第二连接关系数据传输至所述连接关系处理单元1015;
所述连接关系处理单元1015,用于根据所述第一连接关系数据和所述第二连接关系数据,以得到第三连接关系数据,并将该第三连接关系数据传输至第二数据处理单元1016;
所述第二数据处理单元1016,用于在接收到所述第三输入数据,所述第四输入数据和所述第三连接关系数据后,根据所述第三连接关系数据对所述第三输入数据和所述第四输入数据进行压缩处理,以得到第四输出数据和第五输出数据;
其中,当所述第三输入数据包括至少一个输入神经元,第四输入数据包括至少一个权值时,所述第一连接关系数据为输入神经元的连接关系数据,所述第二连接关系数据为权值的连接关系数据,所述第四输出数据为压缩处理后的输入神经元,所述第五输出数据为压缩处理后的权值;当所述第三输入数据包括至少一个权值,所述第四输入数据包括至少一个输入神经元时,所述第一连接关系数据为权值的连接关系数据,所述第二连接关系数据为输入神经元的连接关系数据,所述第四输出数据为压缩处理后的权值,所述第五输出数据为压缩处理后的输入神经元。
当上述第三输入数据包括至少一个输入神经元时,上述第一连接关系数据为用于表示该至少一个输入神经元中绝对值大于上述第一阈值的输入神经元的位置的字符串;当上述第三输入数据包括至少一个权值时,上述第一连接关系数据为用于表示输入神经元与输出神经元之间是否有连接的字符串。
当上述第四输入数据包括至少一个输入神经元时,上述第二连接关系数据为用于表示该至少一个输入神经元中绝对值大于上述第一阈值的输入神经元的位置的字符串;当上述第四输入数据包括至少一个权值时,上述第二连接关系数据为用于表示输入神经元与输出神经元之间是否有连接的字符串。
需要说明的是,上述第一连接关系数据、第二连接关系数据和第三连接关系数据均可以步长索引或者直接索引的形式表示,具体可参见上述相关描述。
换句话说,上述连接关系处理单元1015对上述第一连接关系数据和上述第二连接关系数据进行压缩处理,以得到第三连接关系数据。该第三连接关系数据可以直接索引或者步长索引的形式表示。
具体地,上述当上述第一连接关系数据和上述第二连接关系数据均以直接索引的形式表示时,上述连接关系处理单元1015对上述第一连接关系数据和上述第二连接关系数据进行与操作,以得到第三连接关系数据,该第三连接关系数据是以直接索引的形式表示的。
需要说明的是,表示上述第一连接关系数据和第二连接关系数据的字符串在内存中是按照物理地址高低的顺序存储的,可以是由高到低的顺序存储的,也可以是由低到高的顺序存储的。
当上述第一连接关系数据和上述第二连接关系数据均以步长索引的形式表示,且表示上述第一连接关系数据和第二连接关系数据的字符串是按照物理地址由低到高的顺序存储时,上述连接关系处理单元1015将上述第一连接关系数据的字符串中的每一个元素与存储物理地址低于该元素存储的物理地址的元素进行累加,得到的新的元素组成第四连接关系数据;同理,上述连接关系处理单元1015对上述第二连接关系数据的字符串进行同样的压缩处理,得到第五连接关系数据。然后上述连接关系处理单元1015从上述第四连接关系数据的字符串和上述第五连接关系数据的字符串中,选取相同的元素,按照元素值从小到大的顺序排序,组成一个新的字符串。上述连接关系处理单元1015将上述新的字符串中将每一个元素与其相邻且值小于该元素值的元素进行相减,以得到一个新的元素。按照该方法,对上述新的字串中的每个元素进行相应的操作,以得到上述第三连接关系数据。
举例说明,假设以步长索引的形式表示上述第一连接关系数据和上述第二连接关系数据,上述第一连接关系数据的字符串为“01111”,上述第二连接关系数据的字符串为“022”,上述连接关系处理单元1015将上述第一连接关系数据的字符串中的每个元素与其相邻的前一个元素相加,得到第四连接关系数据“01234”;同理,上述连接关系处理单元1015对上述第二连接关系数据的字符串进行相同的压缩处理后得到的第五连接关系数据为“024”。上述连接关系处理单元1015从上述第四连接关系数据“01234”和上述第五连接关系数据“024”选组相同的元素,以得到新的字符串“024”。上述连接关系处理单元1015将该新的字符串中的每个元素与其相邻的前一个元素进行相减,即0,(2-0),(4-2),以得到上述第三连接关系数据“022”。
当上述第一连接关系数据和上述第二连接关系数据中的任意一个以步长索引的形式表示,另一个以直接索引的形式表示时,上述连接关系处理单元1015将上述以步长索引表示的连接关系数据转换成以直接索引的表示形式或者将以直接索引表示的连接关系数据转换成以步长索引表示的形式。然后上述连接关系处理单元1015按照上述方法进行压缩处理,以得到上述第三连接关系数据(即上述第五输出数据)。
可选地,当上述第一连接关系数据和上述第二连接关系数据均以直接索引的形式表示时,上述连接关系处理单元1015将上述第一连接关系数据和上述第二连接关系数据均转换成以步长索引的形式表示的连接关系数据,然后按照上述方法对上述第一连接关系数据和上述第二连接关系数据进行压缩处理,以得到上述第三连接关系数据。
具体地,上述第三输入数据可为输入神经元或者权值、第四输入数据可为输入神经元或者权值,且上述第三输入数据和第四输入数据不一致。上述第二数据处理单元1016根据上述第三连接关系数据从上述第三输入数据(即输入神经元或者权值)中选取与该第三连接关系数据相关的数据,作为第四输出数据;上述第二数据处理单元1016根据上述第三连接关系数据从上述第四输入数据中选取与该第三连接关系数据相关的数据,作为第五输出数据。
进一步地,上述第二数据处理单元1016将上述压缩处理后的输入神经元中的每个压缩处理后的输入神经元与其对应的压缩处理后的权值作为一个数据集,将该数据集存储出存储电路中。
举例说明,假设上述第三输入数据包括输入神经元i1,i2,i3和i4,上述第四输入数据包括权值w11,w21,w31和w41,上述第三连接关系数据以直接索引方式表示,为“1010”,则上述第二数据处理单元1016输出的第四输出数据为输入神经元i1和i3,输出的第五输出数据为权值w11和w31。上述第二数据处理单元1016将输入神经元i1与权值w11和输入神经元i3与权值w31分别作为一个数据集,并将该数据集存储到存储电路中。
对于压缩映射电路101包括第二稀疏处理单元1013,第三稀疏处理单元1014、连接关系处理单元1015和第二数据处理单元1016的情况,压缩映射电路101中的稀疏处理单元对输入神经元和权值均进行稀疏化压缩处理,使得输入神经元和权值的数量进一步减小,进而减小了运算单元的运算量,提高了运算效率。
可选地,所述压缩映射电路101对所述输入数据进行压缩处理之前,所述压缩映射电路101还用于:
对所述至少一个输入神经元进行分组,以得到M组输入神经元,所述M为大于或者等于1的整数;
判断所述M组输入神经元的每一组输入神经元是否满足第一预设条件,所述第一预设条件包括一组输入神经元中绝对值小于或者等于第三阈值的输入神经元的个数小于或者等于第四阈值;
当所述M组输入神经元任意一组输入神经元不满足所述第一预设条件时,将该组输入神经元删除;
对所述至少一个权值进行分组,以得到N组权值,所述N为大于或者等于1的整数;
判断所述N组权值的每一组权值是否满足第二预设条件,所述第二预设条件包括一组权值中绝对值小于或者等于第五阈值的权值的个数小于或者等于第六阈值;
当所述N组权值任意一组权值不满足所述第二预设条件时,将该组权值删除。
可选地,上述第三阈值可为0.5,0.2,0.1,0.05,0.025,0.01,0或者其他值。上述第四阈值与上述一组输入神经元中输入神经元的个数相关。可选地,该第四阈值=一组输入神经元中的输入神经元个数-1或者该第四阈值为其他值。可选地,上述第五阈值可为0.5,0.2,0.1,0.05,0.025,0.01,0或者其他值。其中,上述第六阈值与上述一组权值中的权值个数相关。可选地,该第六阈值=一组权值中的权值个数-1或者该第六阈值为其他值。
需要说明的是,上述第三阈值和上述第五阈值可相同或者不同,上述第四阈值和上述第六阈值可相同或者不同。可选的,存储电路可用于存储上述压缩处理后的输入神经元、压缩处理后的权值和相关的运算指令。
在可选实施例中,如图1h所示的压缩映射电路在已知输入数据的连接关系数据的情况下,可利用该输入数据的连接关系数据对所述输入数据进行压缩处理。所述输入数据包括至少一个输入神经元或者至少一个权值。具体如图1h所示,上述压缩映射电路601包括:
输入数据缓存单元6011,用于缓存第一输入数据,该第一输入数据包括至少一个输入神经元或者至少一个权值。
连接关系缓存单元6012,用于缓存第一输入数据的连接关系数据,即上述输入神经元的连接关系数据或者上述权值的连接关系数据。
其中,上述输入神经元的连接关系数据为用于表示该输入神经元中绝对值是否小于或者等于第一阈值的字符串,上述权值的连接关系数据为表示该权值绝对值是否小于或者等于上述第二阈值的字符串,或者为表示该权值对应的输入神经元和输出神经元之间是否有连接的字符串。该输入神经元的连接关系数据和权值的连接关系数据可以直接索引或者步长索引的形式表示。
需要说明的是,上述直接索引和步长索引的描述可参见上述图1b所示实施例的相关描述。
第四稀疏处理单元6013,用于根据所述第一输入数据的连接关系数据对所述第一输入数据进行压缩处理,以得到压缩处理后的第一输入数据,并将该压缩处理后的第一输入数据存储到第一输入缓存单元中。
其中,当上述第一输入数据为至少一个输入神经元时,上述第四稀疏处理单元6013在一个时钟周期压缩处理一个输入神经元和一个连接关系,即在一个时钟周期从S1个输入神经元中选择一个有效的输入神经元,S1为大于1的整数。
在一种可行的实施例中,上述第四稀疏处理单元6013在一个时钟周期压缩处理多个输入神经元和多个连接关系数据,即一个时钟周期从S1个输入神经元中选出有效的S2个输入数据,上述S2为大于0且小于或者等于该S1的整数。
举例说明,如图1i所示,上述输入神经元为i1,i2,i3和i4,以直接索引的形式表示的连接关系数据为“1011”,并且上述第四稀疏处理单元6013在一个时钟周期可从4个输入神经元选择1个有连接(即有效)的输入神经元。上述第四稀疏处理单元6013从上述输入数据缓存单元6011和上述连接关系缓存单元6012中分别获取上述输入神经元i1,i2,i3和i4和上述连接关系数据“1011”后,上述第四稀疏处理单元6013根据该连接关系数据“1011”从上述输入神经元i1,i2,i3和i4选取有连接的输入神经元i1,i3和i4。由于上述第四稀疏处理单元6013在一个时钟周期可从4个输入神经元选择1个有连接(即有效)的输入神经元,该第四稀疏处理单元6013在三个时钟周期内依次输出输入神经元i1,i3和i4,如图1i所示。上述第四稀疏处理单元6013将上述输入神经元i1,i3和i4存储到第一输入缓存单元中。
再举例说明,如图1j所示,输入神经元为i1,i2,i3和i4,以直接索引的形式表示的连接关系数据有两组,分别为“1011”和“0101”,上述第四稀疏处理单元6013在一个时钟周期可从4个输入神经元中选择2个有连接(即有效)的输入神经元。上述第四稀疏处理单元6013根据上述连接关系数据“1011”从上述输入神经元i1,i2,i3和i4中选择有连接的输入神经元i1,i3和i4;根据上述连接关系数据“0101”从上述输入神经元i1,i2,i3和i4中选择有连接的输入神经元i2和i4。由于上述第四稀疏处理单元6013在一个时钟周期可从4个输入神经元选择2个有连接(即有效)的输入神经元,对于连接关系数据“1011”,该第四稀疏处理单元6013在第一个时钟周期从选择输入神经元i1和i3,并将该输入神经元i1和i3存储到上述第一输入缓存单元606中,在第二个时钟周期从选择输入神经元i4,并将该输入神经元i4存储到上述第一输入缓存单元606中;对于连接关系数据“0101”,该第四稀疏处理单元6013在一个时钟周期从选择输入神经元i2和i4,如图1j所示。上述第四稀疏处理单元6013将上述输出神经元i2和i4和存储到第一输入缓存单元中。
举例说明,如图1k所示,输入数据为输入神经元i1,i2,i3和i4,以步长索引的形式表示的连接关系数据为“021”,并且上述第四稀疏处理单元6013在一个时钟周期可从4个输入神经元选择1个有连接(即有效)的输入神经元。上述第四稀疏处理单元6013从上述输入数据缓存单元6011和上述连接关系缓存单元6012中分别获取上述输入神经元i1,i2,i3和i4和上述连接关系数据“021”后,上述第四稀疏处理单元6013根据该连接关系数据“1011”从上述输入神经元i1,i2,i3和i4选取有连接的输入神经元i1,i3和i4。由于上述第四稀疏处理单元6013在一个时钟周期可从4个输入神经元选择1个有连接(即有效)的输入神经元,该第四稀疏处理单元6013在三个时钟周期内依次输出输入神经元i1,i3和i4,如图1k所示。上述第四稀疏处理单元6013将上述输入神经元i1,i3和i4存储到第一输入缓存单元中。
再举例说明,如图1l所示,输入数据为输入神经元i1,i2,i3和i4,以步长索引的形式表示的连接关系数据有两组,分别为“021”和“22”,上述第四稀疏处理单元6013在一个时钟周期可从4个输入神经元中选择2个有连接(即有效)的输入神经元。上述第四稀疏处理单元6013根据上述连接关系数据“021”从上述输入神经元i1,i2,i3和i4中选择有连接的输入神经元i1,i3和i4;根据上述连接关系数据“22”从上述输入神经元i1,i2,i3和i4中选择有连接的输入神经元i2和i4。由于上述第四稀疏处理单元6013在一个时钟周期可从4个输入神经元选择2个有连接(即有效)的输入神经元,对于连接关系数据“021”,该第四稀疏处理单元6013在第一个时钟周期从选择输入神经元i1和i3,并将该输入神经元i1和i3存储到上述第一输入缓存单元606中。在第二个时钟周期从选择输入神经元i4并将该输入神经元i4存储到上述第一输入缓存单元606中;对于连接关系数据“22”,该第四稀疏处理单元6013在一个时钟周期从选择输入神经元i2和i4并输出,如图1l所示。上述第四稀疏处理单元6013将上述输入神经元i2和i4存储到第一输入缓存单元中。
在一种可行的实施例中,上述输入数据缓存单元6011用于缓存的第一输入数据包括至少一个权值,上述连接关系缓存单元6012缓存的数据为上述权值的连接关系数据,且上述至少一个权值的绝对值均大于第一阈值时,上述第四稀疏处理单元6013根据上述权值的连接关系数据,将没有连接关系的输入神经元和输出神经元之间的权值的值置为0,并将该值为0的权值和上述至少一个权值存储到第二输入缓存单元中。
举例说明,权值的形式为wij,表示第i个输入神经元与第j个输出神经元之间的权值。假设输入神经元包括i1,i2,i3和i4,输出神经元包括o1,上述第一输入数据(权值)为w11,w31,w41,上述第一输入数据的连接关系数据(即上述权值的连接关系数据)以直接索引的形式表示,为1011,上述第四稀疏处理单元6013根据上述第二输入数据确定上述输入神经元i2与上述输出神经元o1之间没有连接,上述第四稀疏处理单元6013将该上述输入神经元i2与上述输出神经元o1之间的权值w21的值置为0,并将w11,w21(0),w31,w41存储到第二输入缓存单元中。
上述第一输入缓存单元,用于缓存上述压缩处理后的输入神经元。上述第二输入缓存单元,用于缓存从存储电路中读取的压缩处理的权值。
在一种可行的实施例中,当上述第一输入数据为至少一个权值时,上述第四稀疏处理单元6013在一个时钟周期压缩处理一个权值和一个连接关系,即在一个时钟周期从S3个权值中选择一个有效的权值,该S3为大于1的整数。
可选地,上述第四稀疏处理单元6013在一个时钟周期压缩处理多个权值和多个连接关系数据,即一个时钟周期从S3个权值中选出有效的S4个权值,上述S4为大于0且小于或者等于该S3的整数。
上述第一输入缓存单元,用于缓存上述压缩处理后的权值。上述第二输入缓存单元,用于缓存从存储电路中读取的压缩处理的输入神经元。
可选地,所述压缩映射电路601对所述第一输入数据进行压缩处理之前,所述压缩映射电路601还用于:对所述至少一个输入神经元进行分组,以得到M组输入神经元,所述M为大于或者等于1的整数;判断所述M组输入神经元的每一组输入神经元是否满足第一预设条件,所述第一预设条件包括一组输入神经元中绝对值小于或者等于第三阈值的输入神经元的个数小于或者等于第四阈值;当所述M组输入神经元任意一组输入神经元不满足所述第一预设条件时,将该组输入神经元删除;对所述至少一个权值进行分组,以得到N组权值,所述N为大于或者等于1的整数;判断所述N组权值的每一组权值是否满足第二预设条件,所述第二预设条件包括一组权值中绝对值小于或者等于第五阈值的权值的个数小于或者等于第六阈值;当所述N组权值任意一组权值不满足所述第二预设条件时,将该组权值删除。
需要说明的是,上述相关描述可参见前述实施例中的相关描述,在此不再叙述。上述第一阈值、第二阈值、第三阈值、第四阈值、第五阈值和第六阈值可均存储在存储电路或者第一输出缓存单元中;上述第一阈值、第二阈值、第三阈值、第四阈值、第五阈值和第六阈值中部分阈值存储在存储电路、部分阈值存储在第一输出缓存单元中。上述第一输入缓存单元、上述第二输入缓存单元和上述输出缓存单元均可为所述压缩映射电路或所述主处理电路中的功能单元,也可为其他处理电路共享的功能单元,本申请不做限定。
在一种可选实施例中,所述输入神经元的连接关系数据和所述权值的连接关系数据是由0或1表示的字符串/矩阵组成,其中0表示所述输入神经元/所述权值的绝对值小于或等于第一阈值,1表示所述输入神经元/所述权值的绝对值大于第一阈值,与输出神经元无关。例如,输入数据为矩阵假设第一阈值为0,则对应的连接关系数据为/>本实施例中,连接关系数据(即所述神经元/权值的连接关系数据)也可称为mask矩阵。
本申请中数据的连接关系数据(具体为权值的连接关系数据或神经元的连接关系数据)的表示方式除了直接索引和步长索引之外,还可为以下几种情况:列表的列表(Listof Lists,LIL)、坐标列表(Coordinate list,COO)、压缩稀疏行(Compressed Sparse Row,CSR)、压缩稀疏列(Compressed Sparse Column,CSC)、(ELL Pack,ELL)以及混合(Hybird,HYB)等等,本申请不做详述。
此外,本发明实施例中提到的输入神经元和输出神经元并非是指整个神经网络的输入层中的神经元和输出层中的神经元,而是对于神经网络中任意相邻的两层神经元,处于网络前馈运算下层中的神经元即为输入神经元,处于网络前馈运算上层中的神经元即为输出神经元。以卷积神经网络为例,假设一个卷积神经网络有L层,K=1,2,3…L-1,对于第K层和第K+1层来说,第K层被称为输入层,该层中的神经元为上述输入神经元,第K+1层被称为输出层,该层中的神经元为上述输出神经元,即除了顶层之外,每一层都可以作为输入层,其下一层为对应的输出层。
需要在基础处理电路中完成的运算,可以使用下述方法进行:
主处理电路的控制电路可将数据分发给基础处理电路运算。相应地,基础处理电路的压缩映射电路先对数据进行压缩处理后再运算,其优点是可以减少数据计算量,基础处理电路执行数据运算的效率也更高,功耗更低。
如基础处理电路接收到的数据为稀疏数据,那么基础处理电路可以收到数据后由压缩映射电路对数据进行压缩处理然后再进行计算,例如,基础处理电路收到主处理电路传输过来的稀疏数据,压缩映射电路将其进行压缩处理,然后基础处理电路的内积运算器电路、向量运算器电路或累加器电路对压缩处理后的数据进行运算,提高运算效率,降低功耗。
基础处理电路的使用方法(如图2a);
主处理电路从装置外部接收待计算的输入数据;
可选地,主处理电路利用本单元的各种运算电路,向量运算电路,内积运算器电路、累加器电路等对数据进行运算处理;
主处理电路通过数据输出接口向基础处理电路阵列(把所有基础处理电路的集合称作基础处理电路阵列)发送数据(如图2b所示);
此处的发送数据的方式可以是向一部分基础处理电路直接发送数据,即多次广播方式;
此处发送数据的方式可以向不同的基础处理电路分别发送不同的数据,即分发方式;
基础处理电路阵列对数据进行计算;
基础处理电路接收到输入数据后进行运算;可选的,基础处理电路可根据该数据的运算指令确定是否启动所述基础处理电路中的压缩映射单元对数据进行压缩处理,然后对压缩处理后的数据进行运算。
可选地,基础处理电路接收到数据后将该数据从本单元的数据输出接口传输出去;(传输给其他没有直接从主处理电路接收到数据的基础处理电路,可选的,该数据也可为压缩处理后的数据。)
可选地,基础处理电路将运算结果从数据输出接口传输出去;(中间计算结果或者最终计算结果)
主处理电路接收到从基础处理电路阵列返回的输出数据;
可选地,主处理电路对从基础处理电路阵列接收到的数据继续进行处理(例如累加或激活操作);
主处理电路处理完毕,将处理结果从数据输出接口传输给装置外部。
使用所述电路装置完成矩阵乘向量运算;
(矩阵乘向量可以是矩阵中的每一行分别与向量进行内积运算,并将这些结果按对应行的顺序摆放成一个向量。)
下面描述计算尺寸是M行L列的矩阵S和长度是L的向量P的乘法的运算,如下图2c所示。
此方法用到所述神经网络计算装置的全部或者一部分基础处理电路,假设用到了k个基础处理电路;
主处理电路将矩阵S的部分或全部行中的数据发送到k个基础处理电路中的每个基础处理电路;
在一种可选的方案中,主处理电路的控制电路将矩阵S中某行的数据每次发送一个数或者一部分数给某个基础处理电路;(例如,对于每次发送一个数,可以为对于某一个基础处理电路,第1次发送第3行第1个数,第2次发送第3行数据中的第2个数,第3次发送第3行的第3个数……,或者对于每次发送一部分数,第1次发送第3行前两个数(即第1、2个数),第二次发送第3行第3和第4个数,第三次发送第3行第5和第6个数……;)
在一种可选的方案中,主处理电路的控制电路将矩阵S中某几行的数据每次各发送一个数者一部分数给某个基础处理电路;(例如,对于某一个基础处理电路,第1次发送第3,4,5行每行的第1个数,第2次发送第3,4,5行每行的第2个数,第3次发送第3,4,5行每行的第3个数……,或者第1次发送第3,4,5行每行前两个数,第二次发送第3,4,5行每行第3和第4个数,第三次发送第3,4,5行每行第5和第6个数……。)
主处理电路的控制电路将向量P中的数据逐次发送到第0个基础处理电路;
第0个基础处理电路接收到向量P的数据之后,将该数据发送给与其相连接的下一个基础处理电路,即基础处理电路1;
具体的,有些基础处理电路不能直接从主处理电路处获得计算所需的所有的数据,例如,图2d中的基础处理电路1,只有一个数据输入接口与主处理电路相连,所以只能直接从主处理电路获得矩阵S的数据,而向量P的数据就需要依靠基础处理电路0输出给基础处理电路1,同理,基础处理电路1也要收到数据后也要继续把向量P的数据输出给基础处理电路2。
每一个基础处理电路对接收到的数据进行运算,该运算包括但不限于:内积运算、乘法运算、加法运算等等;具体的,在接收到数据后,可根据该数据对应的运算指令确定是否启动压缩映射电路对数据进行压缩处理,然后再利用压缩处理后的数据进行运算。
在一种可选方案中,基础处理电路每次计算一组或多组两个数据的乘法,然后将结果累加到寄存器和或片上缓存上;
在一种可选方案中,基础处理电路每次计算一组或多组两个向量的内积,然后将结果累加到寄存器和或片上缓存上;
基础处理电路计算出结果后,将结果从数据输出接口传输出去(即传输给与其连接的其他基础处理电路);
在一种可选方案中,该计算结果可以是内积运算的最终结果或中间结果;
基础处理电路接收到来自其他基础处理电路的计算结果之后,将该数据传输给与其相连接的其他基础处理电路或者主处理电路;
主处理电路接收到各个基础处理电路内积运算的结果,将该结果处理得到最终结果(该处理可以为累加运算或激活运算等等)。
采用上述计算装置实现矩阵乘向量方法的实施例:
在一种可选方案中,方法所用到的多个基础处理电路按照如下图2d或者图2e所示的方式排列;
如图2c所示,主处理单元的控制电路将矩阵S的M行数据分成K组,分别由第i个基础处理电路负责第i组(该组数据中行的集合记为Ai)的运算;可选的,第i个基础处理电路在负责第i组(该组数据中行的集合记为Ai)的运算之前,可根据数据的运算指令确定是否需要先利用压缩映射电路对Ai进行压缩处理,然后再对压缩处理后的Ai执行运算。
此处对M行数据进行分组的方法是任意不会重复分配的分组方式;
在一种可选方案中,采用如下分配方式:将第j行分给第j%K(%为取余数运算)个基础处理电路;
在一种可选方案中,对于不能平均分组的情况也可以先对一部分行平均分配,对于剩下的行以任意方式分配。
主处理电路的控制电路每次将矩阵S中部分或全部行中的数据依次发送给对应的基础处理电路;
在一种可选方案中,主处理电路的控制电路每次向第i个基础处理电路发送其负责的第i组数据Mi中的一行数据中的一个或多个数据;
在一种可选方案中,主处理电路的控制电路每次向第i个基础处理电路发送其负责的第i组数据Mi中的部分或全部行中的每行的一个或多个数据;
主处理电路的控制电路将向量P中的数据依次向第1个基础处理电路发送;
在一种可选方案中,主处理电路的的控制电路每次可以发送向量P中的一个或多个数据;
第i个基础处理电路接收到向量P的数据之后发送给与其相连的第i+1个基础处理电路;
每个基础处理电路接收到来自矩阵S中某一行或者某几行中的一个或多个数据以及来自向量P的一个或多个数据后,进行运算(包括但不限于乘法或加法);
在一种可选方案中,基础处理电路每次计算一组或多组两个数据的乘法,然后将结果累加到寄存器和或片上缓存上;
在一种可选方案中,基础处理电路每次计算一组或多组两个向量的内积,然后将结果累加到寄存器和或片上缓存上;
在一种可选方案中,基础处理电路接收到的数据也可以是中间结果,保存在寄存器和或片上缓存上;
基础处理电路将本地的计算结果传输给与其相连接的下一个基础处理电路或者主处理电路;
在一种可选方案中,对应于图2d的结构,只有每列的最后一个基础处理电路的输出接口与主处理电路相连接的,这种情况下,只有最后一个基础处理电路可以直接将本地的计算结果传输给主处理电路,其他基础处理电路的计算结果都要传递给自己的下一个基础处理电路,下一个基础处理电路传递给下下个基础处理电路直至全部传输给最后一个基础处理电路,最后一个基础处理电路将本地的计算结果以及接收到的本列的其他基础处理电路的结果执行累加计算得到中间结果,将中间结果发送至主处理电路;当然还可以为最后一个基础处理电路可以将本列的其他基础电路的结果以及本地的处理结果直接发送给主处理电路。
在一种可选方案中,对应于图2e的结构,每一个基础处理电路都有与主处理电路相连接的输出接口,这种情况下,每一个基础处理电路都直接将本地的计算结果传输给主处理电路;
基础处理电路接收到其他基础处理电路传递过来的计算结果之后,传输给与其相连接的下一个基础处理电路或者主处理电路。
主处理电路接收到M个内积运算的结果,作为矩阵乘向量的运算结果。
使用所述电路装置完成矩阵乘矩阵运算;
下面描述计算尺寸是M行L列的矩阵S和尺寸是L行N列的矩阵P的乘法的运算,(矩阵S中的每一行与矩阵P的每一列长度相同,如图2f所示)
本方法使用所述装置如图1b所示的实施例进行说明;
主处理电路的控制电路将矩阵S的部分或全部行中的数据发送到通过横向数据输入接口直接与主处理电路相连的那些基础处理电路(例如,图1b中最上方的灰色填充的竖向数据通路);
在一种可选方案中,主处理电路的控制电路将矩阵S中某行的数据每次发送一个数或者一部分数给某个基础处理电路;(例如,对于某一个基础处理电路,第1次发送第3行第1个数,第2次发送第3行数据中的第2个数,第3次发送第3行的第3个数……,或者第1次发送第3行前两个数,第二次发送第3行第3和第4个数,第三次发送第3行第5和第6个数……;)
在一种可选方案中,主处理电路的控制电路将矩阵S中某几行的数据每次各发送一个数者一部分数给某个基础处理电路;(例如,对于某一个基础处理电路,第1次发送第3,4,5行每行的第1个数,第2次发送第3,4,5行每行的第2个数,第3次发送第3,4,5行每行的第3个数……,或者第1次发送第3,4,5行每行前两个数,第二次发送第3,4,5行每行第3和第4个数,第三次发送第3,4,5行每行第5和第6个数……;)
主处理电路的控制电路将矩阵P中的部分或全部列中的数据发送到通过竖向数据输入接口直接与主处理电路相连的那些基础处理电路(例如,图1b中基础处理电路阵列左侧的灰色填充的横向数据通路);
在一种可选方案中,主处理电路的控制电路将矩阵P中某列的数据每次发送一个数或者一部分数给某个基础处理电路;(例如,对于某一个基础处理电路,第1次发送第3列第1个数,第2次发送第3列数据中的第2个数,第3次发送第3列的第3个数……,或者第1次发送第3列前两个数,第二次发送第3列第3和第4个数,第三次发送第3列第5和第6个数……;)
在一种可选方案中,主处理电路的控制电路将矩阵P中某几列的数据每次各发送一个数者一部分数给某个基础处理电路;(例如,对于某一个基础处理电路,第1次发送第3,4,5列每列的第1个数,第2次发送第3,4,5列每列的第2个数,第3次发送第3,4,5列每列的第3个数……,或者第1次发送第3,4,5列每列前两个数,第二次发送第3,4,5列每列第3和第4个数,第三次发送第3,4,5列每列第5和第6个数……;)
基础处理电路接收到矩阵S的数据之后,将该数据通过其横向的数据输出接口传输给其相连接下一个基础处理电路(例如,图1b中基础处理电路阵列中间的白色填充的横向的数据通路);基础处理电路接收到矩阵P的数据后,将该数据通过其竖向的数据输出接口传输给与其相连接的下一个基础处理电路(例如,图1b中基础处理电路阵列中间的白色填充的竖向的数据通路);
可选的,基础处理电路在接收到数据(具体可为矩阵S或矩阵P的数据)后,可根据数据的运算控制确定启动压缩映射电路对数据进行压缩处理;进一步地,可将压缩处理后的数据通过其横向或竖向的数据输出接口传输给其相连接下一个基础处理电路;
例如,基础处理电路在接收到输入矩阵S或矩阵P后,启用压缩映射电路将输入矩阵S和矩阵P中数据为指定数值(如0)和/或数据小于预设阈值(如0.1)所对应的数据剔除,具体实现时可根据矩阵S和矩阵P各自对应的mask矩阵来剔除,例如剔除mask矩阵为0所对应的相同位置在矩阵S/P中的数据,具体可参见前述关于数据压缩处理实施例中的相关阐述,这里不再赘述。应理解的,这里的矩阵S和矩阵P也可对应理解为前述实施例中的输入神经元(也可称为输入神经元矩阵)和权值(也可称为权值矩阵)等。
每一个基础处理电路对接收到的数据进行运算,可选的,该接收到的数据可为压缩处理后的数据。
在一种可选方案中,基础处理电路每次计算一组或多组两个数据的乘法,然后将结果累加到寄存器和或片上缓存上;
在一种可选方案中,基础处理电路每次计算一组或多组两个向量的内积,然后将结果累加到寄存器和或片上缓存上;
基础处理电路计算出结果后,可以将结果从数据输出接口传输出去;
在一种可选方案中,该计算结果可以是内积运算的最终结果或中间结果;
具体地,如果该基础处理电路有直接与主处理电路相连接的输出接口则从该接口传输结果,如果没有,则向着能够直接向主处理电路输出的基础处理电路的方向输出结果(例如,图1b中,最下面一行基础处理电路将其输出结果直接输出给主处理电路,其他基础处理电路从竖向的输出接口向下传输运算结果)。
基础处理电路接收到来自其他基础处理电路的计算结果之后,将该数据传输给与其相连接的其他基础处理电路或者主处理电路;
向着能够直接向主处理电路输出的方向输出结果(例如,图1b中,最下面一行基础处理电路将其输出结果直接输出给主处理电路,其他基础处理电路从竖向的输出接口向下传输运算结果);
主处理电路接收到各个基础处理电路内积运算的结果,即可得到输出结果。
“矩阵乘矩阵”方法的实施例:
方法用到按照如图1b所示方式排列的基础处理电路阵列,假设有h行,w列;
主处理电路的控制电路将矩阵S的h行数据分成h组,分别由第i个基础处理电路负责第i组(该组数据中行的集合记为Hi)的运算;
此处对h行数据进行分组的方法是任意不会重复分配的分组方式;
在一种可选方案中,采用如下分配方式:主处理电路的控制电路将第j行分给第j%h个基础处理电路;
在一种可选方案中,对于不能平均分组的情况也可以先对一部分行平均分配,对于剩下的行以任意方式分配。
主处理电路的控制电路将矩阵P的W列数据分成w组,分别由第i个基础处理电路负责第i组(该组数据中行的集合记为Wi)的运算;
此处对W列数据进行分组的方法是任意不会重复分配的分组方式;
在一种可选方案中,采用如下分配方式:主处理电路的控制电路将第j行分给第j%w个基础处理电路;
在一种可选方案中,对于不能平均分组的情况也可以先对一部分列平均分配,对于剩下的列以任意方式分配。
主处理电路的控制电路将矩阵S的部分或全部行中的数据发送到基础处理电路阵列中每行的第一个基础处理电路;
在一种可选方案中,主处理电路的控制电路每次向基础处理电路阵列中第i行的第一个基础处理电路发送其负责的第i组数据Hi中的一行数据中的一个或多个数据;
在一种可选方案中,主处理电路的控制电路每次向基础处理电路阵列中第i行的第一个基础处理电路发送其负责的第i组数据Hi中的部分或全部行中的每行的一个或多个数据;
主处理电路的控制电路将矩阵P的部分或全部列中的数据发送到基础处理电路阵列中每列的第一个基础处理电路;
在一种可选方案中,主处理电路的控制电路每次向基础处理电路阵列中第i列的第一个基础处理电路发送其负责的第i组数据Wi中的一列数据中的一个或多个数据;
在一种可选方案中,主处理电路的控制电路每次向基础处理电路阵列中第i列的第一个基础处理电路发送其负责的第i组数据Ni中的部分或全部列中的每列的一个或多个数据;
基础处理电路接收到矩阵S的数据之后,将该数据通过其横向的数据输出接口传输给其相连接下一个基础处理电路(例如,图1b中基础处理电路阵列中间的白色填充的横向的数据通路);基础处理电路接收到矩阵P的数据后,将该数据通过其竖向的数据输出接口传输给与其相连接的下一个基础处理电路(例如,图1b中基础处理电路阵列中间的白色填充的竖向的数据通路);
可选的,基础处理电路在接收到数据(具体可为矩阵S或矩阵P的数据)后,可根据数据的运算控制确定启动压缩映射电路对数据进行压缩处理;进一步地,可将压缩处理后的数据通过其横向或竖向的数据输出接口传输给其相连接下一个基础处理电路;关于数据的压缩处理可参见前述实施例中的相关阐述,这里不再赘述。
每一个基础处理电路对接收到的数据进行运算,可选的,该数据可为压缩处理后的数据;
在一种可选方案中,基础处理电路每次计算一组或多组两个数据的乘法,然后将结果累加到寄存器和或片上缓存上;
在一种可选方案中,基础处理电路每次计算一组或多组两个向量的内积,然后将结果累加到寄存器和或片上缓存上;
基础处理电路计算出结果后,可以将结果从数据输出接口传输出去;
在一种可选方案中,该计算结果可以是内积运算的最终结果或中间结果;
具体地,如果该基础处理电路有直接与主处理电路相连接的输出接口则从该接口传输结果,如果没有,则向着能够直接向主处理电路输出的基础处理电路的方向输出结果(例如,最下面一行基础处理电路将其输出结果直接输出给主处理电路,其他基础处理电路从竖向的输出接口向下传输运算结果)。
基础处理电路接收到来自其他基础处理电路的计算结果之后,将该数据传输给与其相连接的其他基础处理电路或者主处理电路;
向着能够直接向主处理电路输出的方向输出结果(例如,最下面一行基础处理电路将其输出结果直接输出给主处理电路,其他基础处理电路从竖向的输出接口向下传输运算结果);
主处理电路接收到各个基础处理电路内积运算的结果,即可得到输出结果。
以上描述中使用的“横向”,“竖向”等词语只是为了表述图1b所示的例子,实际使用只需要区分出每个单元的“横向”“竖向”接口代表两个不同的接口即可。
使用所述电路装置完成全连接运算:
如果全连接层的输入数据是一个向量(即神经网络的输入是单个样本的情况),则以全连接层的权值矩阵作为矩阵S,输入向量作为向量P,按照所述装置的使用矩阵乘以向量方法执行运算;
如果全连接层的输入数据是一个矩阵(即神经网络的输入是多个样本的情况),则以全连接层的权值矩阵作为矩阵S,输入向量作为矩阵P,或者以全连接层的权值矩阵作为矩阵P,输入向量作为矩阵S,按照所述装置的矩阵乘以矩阵执行运算;
使用所述电路装置完成卷积运算:
下面描述卷积运算,下面的图中一个方块表示一个数据,输入数据用图3a表示(N个样本,每个样本有C个通道,每个通道的特征图的高为H,宽为W),权值也即卷积核用图3b表示(有M个卷积核,每个卷积核有C个通道,高和宽分别为KH和KW)。对于输入数据的N个样本,卷积运算的规则都是一样的,下面解释在一个样本上进行卷积运算的过程,在一个样本上,M个卷积核中的每一个都要进行同样的运算,每个卷积核运算得到一张平面特征图,M个卷积核最终计算得到M个平面特征图,(对一个样本,卷积的输出是M个特征图),对于一个卷积核,要在一个样本的每一个平面位置进行内积运算,然后沿着H和W方向进行滑动,例如,图3c表示一个卷积核在输入数据的一个样本中右下角的位置进行内积运算的对应图;图3d表示卷积的位置向左滑动一格和图3e表示卷积的位置向上滑动一格。
本方法使用所述装置如图1b所示的实施例进行说明;
主处理电路的控制电路将权值的部分或全部卷积核中的数据发送到通过横向数据输入接口直接与主处理电路相连的那些基础处理电路(例如,图1b中最上方的灰色填充的竖向数据通路);
在一种可选方案中,主处理电路的控制电路将权值中某个卷积核的数据每次发送一个数或者一部分数给某个基础处理电路;(例如,对于某一个基础处理电路,第1次发送第3行第1个数,第2次发送第3行数据中的第2个数,第3次发送第3行的第3个数……,或者第1次发送第3行前两个数,第二次发送第3行第3和第4个数,第三次发送第3行第5和第6个数……;)
在一种可选方案中另一种情况是,主处理电路的控制电路将权值中某几个卷积核的数据每次各发送一个数者一部分数给某个基础处理电路;(例如,对于某一个基础处理电路,第1次发送第3,4,5行每行的第1个数,第2次发送第3,4,5行每行的第2个数,第3次发送第3,4,5行每行的第3个数……,或者第1次发送第3,4,5行每行前两个数,第二次发送第3,4,5行每行第3和第4个数,第三次发送第3,4,5行每行第5和第6个数……;)
主处理电路的控制电路把输入数据按照卷积的位置进行划分,主处理电路的控制电路将输入数据中的部分或全部卷积位置中的数据发送到通过竖向数据输入接口直接与主处理电路相连的那些基础处理电路(例如,图1b中基础处理电路阵列左侧的灰色填充的横向数据通路);
在一种可选方案中,主处理电路的控制电路将输入数据中某个卷积位置的数据每次发送一个数或者一部分数给某个基础处理电路;(例如,对于某一个基础处理电路,第1次发送第3列第1个数,第2次发送第3列数据中的第2个数,第3次发送第3列的第3个数……,或者第1次发送第3列前两个数,第二次发送第3列第3和第4个数,第三次发送第3列第5和第6个数……;)
在一种可选方案中另一种情况是,主处理电路的控制电路将输入数据中某几个卷积位置的数据每次各发送一个数或者一部分数给某个基础处理电路;(例如,对于某一个基础处理电路,第1次发送第3,4,5列每列的第1个数,第2次发送第3,4,5列每列的第2个数,第3次发送第3,4,5列每列的第3个数……,或者第1次发送第3,4,5列每列前两个数,第二次发送第3,4,5列每列第3和第4个数,第三次发送第3,4,5列每列第5和第6个数……;)
基础处理电路接收到权值的数据之后,将该数据通过其横向的数据输出接口传输给其相连接下一个基础处理电路(例如,图1b中基础处理电路阵列中间的白色填充的横向的数据通路);基础处理电路接收到输入数据的数据后,将该数据通过其竖向的数据输出接口传输给与其相连接的下一个基础处理电路(例如,图1b中基础处理电路阵列中间的白色填充的竖向的数据通路);
可选的,基础处理电路在接收到数据(具体可为权值的部分或者全部卷积核中的数据)后,可根据数据的运算控制确定启动压缩映射电路对数据进行压缩处理;进一步地,可将压缩处理后的数据通过其横向或竖向的数据输出接口传输给其相连接下一个基础处理电路;具体可参见前述实施例中的相关阐述。
每一个基础处理电路对接收到的数据进行运算,可选的,该数据可为压缩处理后的数据;
在一种可选方案中,基础处理电路每次计算一组或多组两个数据的乘法,然后将结果累加到寄存器和/或片上缓存上;
在一种可选方案中,基础处理电路每次计算一组或多组两个向量的内积,然后将结果累加到寄存器和/或片上缓存上;
基础处理电路计算出结果后,可以将结果从数据输出接口传输出去;
在一种可选方案中,该计算结果可以是内积运算的最终结果或中间结果;
具体地,如果该基础处理电路有直接与主处理电路相连接的输出接口则从该接口传输结果,如果没有,则向着能够直接向主处理电路输出的基础处理电路的方向输出结果(例如,图1b中,最下面一行基础处理电路将其输出结果直接输出给主处理电路,其他基础处理电路从竖向的输出接口向下传输运算结果)。
基础处理电路接收到来自其他基础处理电路的计算结果之后,将该数据传输给与其相连接的其他基础处理电路或者主处理电路;
向着能够直接向主处理电路输出的方向输出结果(例如,最下面一行基础处理电路将其输出结果直接输出给主处理电路,其他基础处理电路从竖向的输出接口向下传输运算结果);
主处理电路接收到各个基础处理电路内积运算的结果,即可得到输出结果。
在一个实施例中,本发明公开了一种神经网络运算装置,其包括用于执行如上所述方法实施例中提供的所有或部分实施方式所对应的功能单元。
在一个实施例里,本发明公开了一种芯片,用于执行如上所述方法实施例中提供的所有或部分实施方式。
在一个实施例里,本发明公开了一种电子装置智能设备,其包括用于执行如上所述方法实施例中的所有或部分实施方式的芯片。
智能设备包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。
所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
以上所述的具体实施例,对本披露的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本披露的具体实施例而已,并不用于限制本披露,凡在本披露的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本披露的保护范围之内。
Claims (15)
1.一种集成电路芯片装置,其特征在于,所述集成电路芯片装置包括:主处理电路以及多个基础处理电路;
所述多个基础处理电路呈m*n阵列分布,其中,m、n的取值范围为大于等于2的整数;每个基础处理电路与相邻的其他基础处理电路连接,所述主处理电路连接所述多个基础处理电路中的k个基础处理电路,所述k个基础处理电路为:第1行的n个基础处理电路、第m行的n个基础处理电路以及第1列的m个基础处理电路;
所述多个基础处理电路包括:压缩映射电路,所述压缩映射电路用于执行神经网络运算中的各个数据的压缩处理;
所述主处理电路,用于执行神经网络运算中的各个连续的运算以及与所述k个基础处理电路传输数据;
所述k个基础处理电路,用于在所述主处理电路以及多个基础处理电路之间的数据转发;
所述多个基础处理电路,用于依据传输数据的运算控制确定是否启动所述压缩映射电路对所述传输数据进行压缩处理,依据压缩处理后的传输数据以并行方式执行神经网络中的运算,并将运算结果通过所述k个基础处理电路传输给所述主处理电路。
2.根据权利要求1所述的集成电路芯片装置,其特征在于,
所述主处理电路,用于获取待计算的数据块以及运算指令,依据该运算指令对所述待计算的数据块划分成分发数据块以及广播数据块;对所述分发数据块进行拆分处理得到多个基本数据块,将所述多个基本数据块分发至所述k个基础处理电路,将所述广播数据块广播至所述k个基础处理电路;
所述多个基础处理电路,用于依据接收到的基本数据块、广播数据块以及运算指令启动所述压缩映射电路将基本数据块和广播数据块进行压缩处理,对压缩处理后的所述基本数据块与压缩处理后的所述广播数据块执行内积运算得到运算结果,将运算结果通过所述k个基础处理电路传输给所述主处理电路;
所述主处理电路,用于对所述运算结果处理得到所述待计算的数据块以及运算指令的指令结果;
其中,所述分发数据块以及所述广播数据块为至少一个输入神经元或者,至少一个权值。
3.根据权利要求2所述的集成电路芯片装置,其特征在于,所述压缩映射电路包括第二稀疏处理单元、第三稀疏处理单元以及连接关系处理单元;
所述第二稀疏处理单元,用于接收到第三输入数据后,根据所述第三输入数据得到第一连接关系数据,并将该第一连接关系数据传输至连接关系处理单元;
所述第三稀疏处理单元,用于接收到第四输入数据后,根据所述第四输入数据得到第二连接关系数据,并将该第二连接关系数据传输至所述连接关系处理单元;
所述连接关系处理单元,用于根据所述第一连接关系数据和所述第二连接关系数据,以得到第三连接关系数据,并将该第三连接关系数据传输至第二数据处理单元;
所述第二数据处理单元,用于在接收到所述第三输入数据,所述第四输入数据和所述第三连接关系数据后,根据所述第三连接关系数据对所述第三输入数据和所述第四输入数据进行压缩处理,以得到第四输出数据和第五输出数据;
其中,当所述第三输入数据包括至少一个输入神经元,第四输入数据包括至少一个权值时,所述第一连接关系数据为输入神经元的连接关系数据,所述第二连接关系数据为权值的连接关系数据,所述第四输出数据为处理后的输入神经元,所述第五输出数据为处理后的权值;当所述第三输入数据包括至少一个权值,所述第四输入数据包括至少一个输入神经元时,所述第一连接关系数据为权值的连接关系数据,所述第二连接关系数据为输入神经元的连接关系数据,所述第四输出数据为处理后的权值,所述第五输出数据为处理后的输入神经元。
4.根据权利要求3所述的集成电路芯片装置,其特征在于,所述输入神经元的连接关系数据以及所述权值的连接关系数据为由0和1组成的字符串或矩阵组成,且与输出神经元无关;或者,
所述输入神经元的连接关系数据和所述权值的连接关系数据均以直接索引或者步长索引的形式表示;
其中,当所述输入神经元的连接关系数据以直接索引的形式表示时,该连接关系数据为由0和1组成的字符串,0表示所述输入神经元的绝对值小于或者等于第一阈值,1表示所述输入神经元的绝对值大于所述第一阈值;
当所述输入神经元的连接关系数据以步长索引形式表示时,该连接关系数据为绝对值大于所述第一阈值的输入神经元与上一个绝对值大于所述第一阈值的输入神经元之间的距离值组成的字符串;
当所述权值的连接关系数据以直接索引的形式表示时,该连接关系数据为由0和1组成的字符串,0表示所述权值的绝对值小于或者等于第二阈值,即该权值对应的输入神经元与输出神经元之间没有连接,1表示所述权值的绝对值大于所述第二阈值,即该权值对应的输入神经元与输出神经元之间有连接;以直接索引形式表示权值的连接关系数据有两种表示顺序:以每个输出神经元与所有输入神经元的连接状态组成一个0和1的字符串来表示所述权值的连接关系数据;或者每个输入神经元与所有输出神经元的连接状态组成一个0和1的字符串来表示所述权值的连接关系数据;
当所述权值的连接关系数据以步长索引的形式表示时,该连接关系数据为与输出神经元有连接的输入神经元的与上一个与该输出神经元有连接的输入神经元之间的距离值组成的字符串。
5.根据权利要求4所述的集成电路芯片装置,其特征在于,当所述第一连接关系数据和所述第二连接关系数据均以步长索引的形式表示,且表示所述第一连接关系数据和所述第二连接关系数据的字符串是按照物理地址由低到高的顺序存储时,所述连接关系处理单元具体用于:
将所述第一连接关系数据的字符串中的每一个元素与存储物理地址低于该元素的存储物理地址的元素进行累加,得到的新的元素组成第四连接关系数据;同理,对所述第二连接关系数据的字符串进行同样的处理,得到第五连接关系数据;
从所述第四连接关系数据的字符串和所述第五连接关系数据的字符串中,选取相同的元素,按照元素值从小到大的顺序排序,组成新的字符串;
将所述新的字符串中每一个元素与其相邻的且值小于该元素值的元素进行相减,得到的元素组成所述第三连接关系数据。
6.根据权利要求4所述的集成电路芯片装置,其特征在于,当所述第一连接关系数据和所述第二连接关系数据均以直接索引的形式表示时,所述连接关系处理单元具体用于:
对所述第一连接关系数据和所述第二连接关系数据进行与操作,以得到第三连接关系数据。
7.根据权利要求4所述的集成电路芯片装置,其特征在于,当所述第一连接关系数据与所述第二连接关系数据中任意一个以步长索引的形式表示,另一个以直接索引的形式表示时,所述连接关系处理单元具体用于:
若所述第一连接关系数据是以步长索引的形式表示,将所述第一连接关系数据转换成以直接索引的形式表示的连接关系数据;
若所述第二连接关系数据是以步长索引的形式表示,将所述第二连接关系数据转换成以直接索引的形式表示的连接关系数据;
对所述第一连接关系数据和所述第二连接关系数据进行与操作,以得到第三连接关系数据。
8.根据权利要求4所述的集成电路芯片装置,其特征在于,当所述第一连接关系数据与所述第二连接关系数据中任意一个以步长索引的形式表示,另一个以直接索引的形式表示,且表示所述第一连接关系数据和所述第二连接关系数据的字符串是按照物理地址由低到高的顺序存储时,所述连接关系处理单元还具体用于:
若所述第一连接关系数据是以步长索引的形式表示,将所述第二连接关系数据转换成以步长索引的形式表示的连接关系数据;
若所述第二连接关系数据是以步长索引的形式表示,将所述第一连接关系数据转换成以步长索引的形式表示的连接关系数据;
将所述第一连接关系数据的字符串中的每一个元素与存储物理地址低于该元素存储的物理地址的元素进行累加,得到的新的元素组成第四连接关系数据;同理,对所述第二连接关系数据的字符串进行同样的处理,得到第五连接关系数据;
从所述第四连接关系数据的字符串和所述第五连接关系数据的字符串中,选取相同的元素,按照元素值从小到大的顺序排序,组成新的字符串;
将所述新的字符串中每一个元素与其相邻的且值小于该元素值的元素进行相减,得到的元素组成所述第三连接关系数据。
9.根据权利要求2-8中任一项所述的集成电路芯片装置,其特征在于,所述启动所述压缩映射电路将基本数据块和广播数据块进行压缩处理之前,还包括:
所述多个基础处理电路,还用于通过所述压缩映射电路对所述至少一个输入神经元进行分组,以得到M组输入神经元,所述M为大于或者等于1的整数;判断所述M组输入神经元的每一组输入神经元是否满足第一预设条件,所述第一预设条件包括一组输入神经元中绝对值小于或者等于第三阈值的输入神经元的个数小于或者等于第四阈值;当所述M组输入神经元任意一组输入神经元不满足所述第一预设条件时,将该组输入神经元删除;对所述至少一个权值进行分组,以得到N组权值,所述N为大于或者等于1的整数;判断所述N组权值的每一组权值是否满足第二预设条件,所述第二预设条件包括一组权值中绝对值小于或者等于第五阈值的权值的个数小于或者等于第六阈值;当所述N组权值任意一组权值不满足所述第二预设条件时,将该组权值删除。
10.根据权利要求2所述的集成电路芯片装置,其特征在于,
所述主处理电路,具体用于将所述广播数据块通过一次广播至所述k个基础处理电路;或者,
所述主处理电路,具体用于将所述广播数据块分成多个部分广播数据块,将所述多个部分广播数据块通过多次广播至所述k个基础处理电路。
11.根据权利要求10所述的集成电路芯片装置,其特征在于,
所述多个基础处理电路,具体用于通过所述压缩映射电路将所述部分广播数据块与所述基本数据块进行压缩处理后执行一次内积处理后得到内积处理结果,将所述内积处理结果累加得到部分运算结果,将所述部分运算结果通过所述k个基础处理电路发送至所述主处理电路。
12.根据权利要求11所述的集成电路芯片装置,其特征在于,
所述多个基础处理电路,具体用于启动所述压缩映射电路对所述部分广播数据块与所述基本数据块进行压缩处理后,复用n次部分广播数据块执行该部分广播数据块与n个基本数据块内积运算得到n个部分处理结果,将n个部分处理结果分别累加后得到n个部分运算结果,并将所述n个部分运算结果通过所述k个基础处理电路发送至主处理电路,所述n为大于等于2的整数。
13.一种芯片,其特征在于,所述芯片集成如权利要求1-12任意一项所述装置。
14.一种智能设备,其特征在于,所述智能设备包括如权利要求13所述的芯片。
15.一种神经网络的运算方法,其特征在于,所述方法应用在集成电路芯片装置内,所述集成电路芯片装置包括:如权利要求1-12任意一项所述的集成电路芯片装置,所述集成电路芯片装置用于执行神经网络的运算;
其中,所述神经网络的运算包括:卷积运算、矩阵乘矩阵运算、矩阵乘向量运算、偏执运算、全连接运算、GEMM运算、GEMV运算、激活运算中的一种或任意组合。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111084945.2A CN113807510B (zh) | 2017-12-30 | 2017-12-30 | 集成电路芯片装置及相关产品 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711499265.0A CN109993289B (zh) | 2017-12-30 | 2017-12-30 | 集成电路芯片装置及相关产品 |
CN202111084945.2A CN113807510B (zh) | 2017-12-30 | 2017-12-30 | 集成电路芯片装置及相关产品 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711499265.0A Division CN109993289B (zh) | 2017-12-30 | 2017-12-30 | 集成电路芯片装置及相关产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113807510A CN113807510A (zh) | 2021-12-17 |
CN113807510B true CN113807510B (zh) | 2024-05-10 |
Family
ID=67110897
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711499265.0A Active CN109993289B (zh) | 2017-12-30 | 2017-12-30 | 集成电路芯片装置及相关产品 |
CN202111084945.2A Active CN113807510B (zh) | 2017-12-30 | 2017-12-30 | 集成电路芯片装置及相关产品 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711499265.0A Active CN109993289B (zh) | 2017-12-30 | 2017-12-30 | 集成电路芯片装置及相关产品 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11734548B2 (zh) |
CN (2) | CN109993289B (zh) |
TW (1) | TWI768168B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5444822A (en) * | 1992-07-28 | 1995-08-22 | Mitsubishi Denki Kabushiki Kaisha | Semiconductor integrated circuit device carrying out parallel operational processing with electronically implemented neural network |
CN105512723A (zh) * | 2016-01-20 | 2016-04-20 | 南京艾溪信息科技有限公司 | 一种用于稀疏连接的人工神经网络计算装置和方法 |
CN107239825A (zh) * | 2016-08-22 | 2017-10-10 | 北京深鉴智能科技有限公司 | 考虑负载均衡的深度神经网络压缩方法 |
CN107239829A (zh) * | 2016-08-12 | 2017-10-10 | 北京深鉴科技有限公司 | 一种优化人工神经网络的方法 |
CN107316078A (zh) * | 2016-04-27 | 2017-11-03 | 北京中科寒武纪科技有限公司 | 用于执行人工神经网络自学习运算的装置和方法 |
CN107315571A (zh) * | 2016-04-27 | 2017-11-03 | 北京中科寒武纪科技有限公司 | 一种用于执行全连接层神经网络正向运算的装置和方法 |
CN107329734A (zh) * | 2016-04-29 | 2017-11-07 | 北京中科寒武纪科技有限公司 | 一种用于执行卷积神经网络正向运算的装置和方法 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5041916A (en) * | 1989-02-07 | 1991-08-20 | Matsushita Electric Industrial Co., Ltd. | Color image data compression and recovery apparatus based on neural networks |
US8503539B2 (en) * | 2010-02-26 | 2013-08-06 | Bao Tran | High definition personal computer (PC) cam |
US9015092B2 (en) * | 2012-06-04 | 2015-04-21 | Brain Corporation | Dynamically reconfigurable stochastic learning apparatus and methods |
US10275479B2 (en) * | 2014-02-27 | 2019-04-30 | Sas Institute Inc. | Sparse matrix storage in a database |
US20150269482A1 (en) * | 2014-03-24 | 2015-09-24 | Qualcomm Incorporated | Artificial neural network and perceptron learning using spiking neurons |
JP6324155B2 (ja) * | 2014-03-27 | 2018-05-16 | キヤノン株式会社 | 画像処理装置、画像処理方法、及びプログラム |
US10223635B2 (en) * | 2015-01-22 | 2019-03-05 | Qualcomm Incorporated | Model compression and fine-tuning |
US9904849B2 (en) * | 2015-08-26 | 2018-02-27 | Digitalglobe, Inc. | System for simplified generation of systems for broad area geospatial object detection |
CN108427990B (zh) * | 2016-01-20 | 2020-05-22 | 中科寒武纪科技股份有限公司 | 神经网络计算系统和方法 |
KR102100977B1 (ko) | 2016-02-03 | 2020-04-14 | 구글 엘엘씨 | 압축된 순환 신경망 모델 |
CN107315574B (zh) * | 2016-04-26 | 2021-01-01 | 安徽寒武纪信息科技有限公司 | 一种用于执行矩阵乘运算的装置和方法 |
CN106126481B (zh) * | 2016-06-29 | 2019-04-12 | 华为技术有限公司 | 一种计算系统和电子设备 |
CN107229967B (zh) * | 2016-08-22 | 2021-06-15 | 赛灵思公司 | 一种基于fpga实现稀疏化gru神经网络的硬件加速器及方法 |
CN107239823A (zh) * | 2016-08-12 | 2017-10-10 | 北京深鉴科技有限公司 | 一种用于实现稀疏神经网络的装置和方法 |
CN106447034B (zh) * | 2016-10-27 | 2019-07-30 | 中国科学院计算技术研究所 | 一种基于数据压缩的神经网络处理器、设计方法、芯片 |
CN107220706A (zh) | 2016-12-29 | 2017-09-29 | 恩泊泰(天津)科技有限公司 | 基于参数压缩和结构压缩的车载深度神经网络优化方法 |
CN107368885A (zh) | 2017-07-13 | 2017-11-21 | 北京智芯原动科技有限公司 | 基于多粒度剪枝的网络模型压缩方法及装置 |
CN107506722A (zh) | 2017-08-18 | 2017-12-22 | 中国地质大学(武汉) | 一种基于深度稀疏卷积神经网络人脸情感识别方法 |
-
2017
- 2017-12-30 CN CN201711499265.0A patent/CN109993289B/zh active Active
- 2017-12-30 CN CN202111084945.2A patent/CN113807510B/zh active Active
-
2018
- 2018-12-27 TW TW107147415A patent/TWI768168B/zh active
-
2019
- 2019-11-27 US US16/698,108 patent/US11734548B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5444822A (en) * | 1992-07-28 | 1995-08-22 | Mitsubishi Denki Kabushiki Kaisha | Semiconductor integrated circuit device carrying out parallel operational processing with electronically implemented neural network |
CN105512723A (zh) * | 2016-01-20 | 2016-04-20 | 南京艾溪信息科技有限公司 | 一种用于稀疏连接的人工神经网络计算装置和方法 |
CN107316078A (zh) * | 2016-04-27 | 2017-11-03 | 北京中科寒武纪科技有限公司 | 用于执行人工神经网络自学习运算的装置和方法 |
CN107315571A (zh) * | 2016-04-27 | 2017-11-03 | 北京中科寒武纪科技有限公司 | 一种用于执行全连接层神经网络正向运算的装置和方法 |
CN107329734A (zh) * | 2016-04-29 | 2017-11-07 | 北京中科寒武纪科技有限公司 | 一种用于执行卷积神经网络正向运算的装置和方法 |
CN107239829A (zh) * | 2016-08-12 | 2017-10-10 | 北京深鉴科技有限公司 | 一种优化人工神经网络的方法 |
CN107239825A (zh) * | 2016-08-22 | 2017-10-10 | 北京深鉴智能科技有限公司 | 考虑负载均衡的深度神经网络压缩方法 |
Also Published As
Publication number | Publication date |
---|---|
US20200097805A1 (en) | 2020-03-26 |
US11734548B2 (en) | 2023-08-22 |
CN109993289A (zh) | 2019-07-09 |
CN109993289B (zh) | 2021-09-21 |
TW201931221A (zh) | 2019-08-01 |
CN113807510A (zh) | 2021-12-17 |
TWI768168B (zh) | 2022-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110197270B (zh) | 集成电路芯片装置及相关产品 | |
CN110909872B (zh) | 集成电路芯片装置及相关产品 | |
CN109993291B (zh) | 集成电路芯片装置及相关产品 | |
CN109993290B (zh) | 集成电路芯片装置及相关产品 | |
US11651202B2 (en) | Integrated circuit chip device and related product | |
CN110197274B (zh) | 集成电路芯片装置及相关产品 | |
CN111767998B (zh) | 集成电路芯片装置及相关产品 | |
CN113807510B (zh) | 集成电路芯片装置及相关产品 | |
TWI787430B (zh) | 積體電路晶片裝置、晶片、電子設備、及神經網絡的運算方法 | |
WO2019129302A1 (zh) | 集成电路芯片装置及相关产品 | |
CN111767996B (zh) | 集成电路芯片装置及相关产品 | |
CN110197265B (zh) | 集成电路芯片装置及相关产品 | |
CN110197275B (zh) | 集成电路芯片装置及相关产品 | |
CN111767997B (zh) | 集成电路芯片装置及相关产品 | |
CN110197273B (zh) | 集成电路芯片装置及相关产品 | |
CN110197271A (zh) | 集成电路芯片装置及相关产品 | |
CN110197266B (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 |