CN108427990B - 神经网络计算系统和方法 - Google Patents
神经网络计算系统和方法 Download PDFInfo
- Publication number
- CN108427990B CN108427990B CN201810151978.6A CN201810151978A CN108427990B CN 108427990 B CN108427990 B CN 108427990B CN 201810151978 A CN201810151978 A CN 201810151978A CN 108427990 B CN108427990 B CN 108427990B
- Authority
- CN
- China
- Prior art keywords
- neural network
- artificial neural
- data
- cache
- weight
- 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
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 142
- 238000000034 method Methods 0.000 title claims abstract description 55
- 230000015654 memory Effects 0.000 claims abstract description 42
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 32
- 238000012549 training Methods 0.000 claims abstract description 32
- 238000012545 processing Methods 0.000 claims abstract description 27
- 210000002569 neuron Anatomy 0.000 claims abstract description 12
- 210000002364 input neuron Anatomy 0.000 claims description 45
- 210000004205 output neuron Anatomy 0.000 claims description 45
- 230000006870 function Effects 0.000 claims description 34
- 239000013598 vector Substances 0.000 claims description 26
- 230000008569 process Effects 0.000 claims description 23
- 230000004913 activation Effects 0.000 claims description 18
- 238000007667 floating Methods 0.000 claims description 10
- 230000003139 buffering effect Effects 0.000 claims description 5
- 230000006835 compression Effects 0.000 abstract description 13
- 238000007906 compression Methods 0.000 abstract description 13
- 238000011176 pooling Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 8
- 241001442055 Vipera berus Species 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 230000006872 improvement Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
- G06F7/487—Multiplying; Dividing
- G06F7/4876—Multiplying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3887—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
-
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/48—Indexing scheme relating to groups G06F7/48 - G06F7/575
- G06F2207/4802—Special implementations
- G06F2207/4818—Threshold devices
- G06F2207/4824—Neural networks
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Neurology (AREA)
- Nonlinear Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Image Analysis (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
Abstract
一种神经网络计算系统,包括I/O接口,用于I/O数据;内存,用于暂存多层人工神经网络模型和神经元数据;人工神经网络芯片,用于执行多层人工神经网络运算及其反向传播训练算法,接受来自中央处理器CPU的数据和程序,执行上述多层人工神经网络运算及其反向传播训练算法;中央处理器CPU,用于进行数据搬运以及人工神经网络芯片启动停止控制,作为人工神经网络芯片与外部控制的接口,并接收人工神经网络芯片执行后的结果。以及一种应用上述系统进行人工神经网络压缩编码方法。本披露不仅能有效减小人工神经网络的模型大小,提高人工神经网络的数据处理速度,而且能有效降低功耗,提高资源利用率。
Description
技术领域
本披露涉及人工神经网络处理技术领域,更具体地涉及一种神经网络计算系统和方法。
背景技术
多层人工神经网络被广泛应用于模式识别、图像处理、函数逼近和优化计算等领域。特别是近年来由于反向传播训练算法,以及预训练算法的研究不断深入,多层人工神经网络由于其较高的识别准确度和较好的可并行性,受到学术界和工业界越来越广泛的关注。
随着人工神经网络计算量和访存量的急剧增大,现有技术中通常采用通用处理器来对多层人工神经网络运算、训练算法及其压缩编码进行处理,通过使用通用寄存器堆和通用功能部件执行通用指令来支持上述算法。采用通用处理器的缺点之一是单个通用处理器的运算性能较低,无法满足通常的多层人工神经网络运算的性能需求。而多个通用处理器并行执行时,通用处理器之间相互通讯又成为了性能瓶颈;此外,通用处理器需要把多层人工神经网络运算译码成一长列运算及访存指令序列,处理器前端译码带来了较大的功耗开销。另一种支持多层人工神经网络运算、训练算法及其压缩编码的已知方法是使用图形处理器(GPU)。该方法通过使用通用寄存器堆和通用流处理单元执行通用SIMD指令来支持上述算法。由于GPU是专门用来执行图形图像运算以及科学计算的设备,没有对多层人工神经网络运算的专门支持,仍然需要大量的前端译码工作才能执行多层人工神经网络运算,带来了大量的额外开销。另外GPU只有较小的片上缓存,多层人工神经网络的模型数据(权值)需要反复从片外搬运,片外带宽成为了主要性能瓶颈,同时带来了巨大的功耗开销。
发明内容
针对上述现有技术的不足,本披露的目的在于提供一种神经网络计算系统和方法。
根据本披露的一方面,提供一种神经网络计算系统,包括I/O接口、内存、人工神经网络芯片和中央处理器CPU:
I/O接口,用于I/O数据;
内存,用于暂存多层人工神经网络模型和神经元数据;
人工神经网络芯片,用于执行多层人工神经网络运算及其反向传播训练算法,接受来自中央处理器CPU的数据和程序,执行上述多层人工神经网络运算及其反向传播训练算法;
中央处理器CPU,用于进行数据搬运以及人工神经网络芯片启动停止控制,作为人工神经网络芯片与外部控制的接口,并接收人工神经网络芯片执行后的结果。
在进一步的方案中,所述人工神经网络芯片包括:控制器单元,用于读取指令,并将其译码成运算单元的指令;以及运算单元,用于根据所述控制器单元的指令对数据执行相应的运算。
在进一步的方案中,所述人工神经网络芯片还包括:内存接口单元,用于输入所述数据和指令;以及指令缓存,用于对指令进行缓存。
在进一步的方案中,所述运算单元用于执行以下至少一种运算:将输入的神经元和权值数据相乘;执行加法树运算,用于将第一步处理后的加权输出神经元通过加法树逐级相加,或者将输出神经元通过和偏置相加得到加偏置输出神经元;执行激活函数运算,得到最终输出神经元。
在进一步的方案中,所述运算单元中对于输入的权值数据表示如下:若是正向运算过程,则所述权值数据W1由k比特数据表示,其中包括1比特符号位、m比特控制位以及n比特数据位,即k=1+m+n;其中k、m、n均为自然数;若是反向运算过程,则所述权值数据W2使用浮点数表示。
在进一步的方案中,所述W1是从W2转换而来,其中反向运算过程的权值数据W2具有len位有效数字,正向运算过程的权值数据W1中的n表示W1中的有效数字位数,n≤len;控制位m用于指定W1的有效数字在原权值数据中的起始位置。
在进一步的方案中,所述人工神经网络芯片还包括DMA,用于在所述内存接口单元与所述指令缓存和/或所述运算单元之间进行数据或者指令读写。
在进一步的方案中,所述人工神经网络芯片还包括:输入神经元缓存,用于缓存输入到所述运算单元的输入神经元数据;权值缓存,用于缓存权值数据;以及所述输入神经元缓存和权值缓存均通过所述DMA输入。
在进一步的方案中,所述用于压缩编码的人工神经网络芯片还包括:输出神经元缓存,用于缓存所述运算单元输出的输出神经元。
在进一步的方案中,所述运算单元在第三步执行的激活函数为sigmoid函数、tanh函数、relu函数或softmax函数。
在进一步的方案中,所述人工神经网络芯片为多个,多个人工神经网络芯片通过PCIE总线互联,以支持更大规模的多层人工神经网络运算。
在进一步的方案中,所述中央处理器CPU为一个,作为多个人工神经网络芯片的同一个宿主,或者所述中央处理器CPU的数量与所述人工神经网络芯片数量相同,使每一个人工神经网络芯片分别有自己的宿主;或者中央处理器数量为多个,与所述多个人工神经网络芯片形成互联拓扑连接。
在进一步的方案中,所述内存为一个,作为所述多个人工神经网络芯片的共享内存;或者所述内存数量与所述人工神经网络芯片数量相同,使每个人工神经网络芯片有各自的内存;或者内存为多个,与所述多个人工神经网络芯片形成互联拓扑连接。
根据本披露的另一方面,提供一种应用以上任一所述神经网络计算系统进行运算的方法,包括:
使用I/O接口输入/输出数据;
使用内存暂存多层人工神经网络模型和神经元数据;
使用人工神经网络芯片执行多层人工神经网络运算和/或反向传播训练算法,接受来自中央处理器CPU的数据和程序,执行上述多层人工神经网络运算和/或反向传播训练算法;
使用中央处理器CPU进行数据搬运以及人工神经网络芯片启动停止控制,作为人工神经网络芯片与外部控制的接口,并接收人工神经网络芯片执行后的结果。
在进一步的方案中,还包括:使用控制器单元读取指令,并将其译码成运算单元的指令;以及使用运算单元根据所述控制器单元的指令对数据执行相应的运算。
在进一步的方案中,还包括:使用内存接口单元输入所述数据和指令;以及使用指令缓存对指令进行缓存。
在进一步的方案中,还包括使用DMA在所述内存接口单元与所述指令缓存和/或所述运算单元之间进行数据或者指令读写。
在进一步的方案中,还包括:使用输入神经元缓存缓存输入到所述运算单元的输入神经元数据;使用权值缓存缓存权值数据;以及输入神经元缓存和权值缓存均通过所述DMA输入。
在进一步的方案中,还包括:使用输出神经元缓存来缓存所述运算单元输出的输出神经元。
根据本披露的再一方面,提供一种应用神经网络加速器进行人工神经网络计算的方法,人工神经网络芯片包括控制器单元,用于读取指令,并将其译码成运算单元的指令;以及运算单元,用于根据所述控制器单元的指令对数据执行相应的运算包括以下步骤:
步骤1:使用将存储的浮点权值W1转换成位数较少的表示权值W2;
步骤2:使用权值W2进行正向运算;
步骤3:根据正向运算得到的误差结果进行反向运算更新浮点权值W1;
迭代执行上述三个步骤,直到得到所需要的模型。
在进一步的方案中,所述人工神经网络芯片还包括指令缓存、输入神经元缓存、权值缓存以及输出神经元缓存,指令缓存用于对指令进行缓存,输入神经元缓存用于缓存输入到所述运算单元的输入神经元数据,权值缓存用于缓存权值数据,输出神经元缓存用于缓存所述运算单元输出的输出神经元;步骤2包括以下子步骤;步骤21:控制器单元从指令缓存中读取一条多层人工神经网络运算SIMD指令;步骤22:所述控制器单元将所述指令译码成各个功能部件的微指令,包括输入神经元缓存是否读写以及读写次数、输出神经元缓存是否读写以及读写次数、权值神经元缓存是否读写以及读写次数、运算单元各个阶段执行何种操作。
在进一步的方案中,在子步骤S22之后,所述步骤2进一步包括子步骤:步骤23:运算单元得到从输入神经元缓存和权值缓存的输入向量,根据阶段一的操作码,决定是否执行向量乘法运算,如果执行就将结果发送到下一阶段,否则直接将输入发送到下一阶段;步骤24:所述运算单元根据阶段二的操作码,决定是否进行加法树运算,如果执行就将结果发送到下一阶段,否则直接将输入发送到下一阶段;步骤25:所述运算单元根据阶段三的操作码,决定是否进行激活函数的运算,如果执行就将结果发送给输出神经元缓存。
在进一步的方案中,所述人工神经网络芯片还包括指令缓存、输入神经元缓存、权值缓存以及输出神经元缓存,指令缓存用于对指令进行缓存,输入神经元缓存用于缓存输入到所述运算单元的输入神经元数据,权值缓存用于缓存权值数据,输出神经元缓存用于缓存所述运算单元输出的输出神经元;步骤3包括子步骤:步骤31:控制器单元从指令缓存中读取一条多层人工神经网络训练算法SIMD指令;步骤32:所述控制器单元将所述指令译码成各个运算单元的微指令,包括输入神经元缓存是否读写以及读写次数、输出神经元缓存是否读写以及读写次数、权值神经元缓存是否读写以及读写次数、运算单元各个阶段执行何种操作。
在进一步的方案中,在子步骤S32之后,所述步骤3进一步包括子步骤:步骤33:运算单元得到从输入神经元缓存和权值缓存的输入向量,根据阶段一的操作码,决定是否执行向量乘法运算,如果执行就将结果发送到下一阶段,否则直接将输入发送到下一阶段;步骤34:所述运算单元根据阶段二的操作码,决定是否进行加法树运算、向量加法运算或权值更新运算。
基于上述技术方案可知,本披露提供了一种用于执行多层人工神经网络运算、反向传播训练算法及其压缩编码的装置和方法,提高了对于多层人工神经网络运算及其反向传播训练算法的性能,同时降低了权值数据表示的位数,以达到压缩编码的目的。本披露不仅能有效减小人工神经网络的模型大小,提高人工神经网络的数据处理速度,而且能有效降低功耗,提高资源利用率;相对于现有的技术,具有显著的性能和功耗改善,并能大幅压缩权值数据。
附图说明
图1是根据本披露一实施例的神经网络正向运算的示例框图;
图2是根据本披露一实施例的神经网络反向训练算法的示例框图;
图3是根据本披露一实施例的总体结构的示例框图;
图4是根据本披露一实施例的加速器芯片结构的示例框图;
图5是根据本披露一实施例的多层人工神经网络的运算流程图;
图6是根据本披露一实施例的多层人工神经网络反向传播训练算法的流程图;
图7是根据本披露一实施例的多层人工神经网络压缩编码算法的流程图。
具体实施方式
将参考以下所讨论的细节来描述本披露的各实施例和方面,并且所附附图将说明各实施例。下列描述和附图是用于说明本披露的,并且不应当被解释为限制本披露。描述许多具体的细节以提供对本披露的各实施例的透彻理解。然而,在某些实例中,不描述公知的或寻常的细节,以便提供本披露的实施例的简洁的讨论。
说明书中提到的“一个实施例”或“一实施例”意思是结合实施例所描述的特定的特征、结构或特性能够被包括在本披露的至少一个实施例中。在本说明书的多处出现的短语“在一个实施例中”不一定全部都指同一个实施例。
本披露涉及的多层人工神经网络运算及其压缩编码,包括两层或者两层以上的多个神经元。对于每一层来说,输入神经元向量首先和权值向量进行点积运算,结果经过激活函数得到输出神经元。其中激活函数可以是sigmoid函数、tanh函数、relu函数和softmax函数等。此外,多层人工神经网络的训练算法包括正向传播、反向传播和权值更新等步骤。
在正向运算过程中,神经网络权值W1由k比特数据表示,其中包括1比特符号位、m比特控制位以及n比特数据位(k=l+m+n)。
反向运算过程中的权值W2使用浮点数表示。
正向运算过程中使用的权值数据表示方法,从反向运算过程使用的浮点权值表示(len位有效数字)转换而来,数据位存储原权值数据中的n位有效数字,n小于等于len。控制位用于指定数据位在原有效数字中的起始位置;由于正向运算过程中使用的权值数据表示方法所使用的总数据位数少于反向训练运算过程中使用的权值表示的总数据位数,从而可以达到压缩编码的作用。
本披露的用于执行人工神经网络运算、反向传播训练算法及其压缩编码的人工神经网络压缩编码装置,包括指令缓存单元、输入神经元缓存单元、权值缓存单元、控制单元、运算单元、输出神经元缓存单元、内存接口单元和直接内存访问通道单元;
其中,指令缓存单元用于缓存指令;
输入神经元缓存单元用于缓存输入神经元数据;
权值缓存单元用于缓存权值;
控制单元用于从指令缓存中读取专用指令,并将其译码成微指令;
运算单元用于接受从控制器单元发出的微指令并进行算术逻辑运算;
输出神经元缓存单元用于缓存输出神经元数据;
内存接口单元用于数据读写通道;
直接内存访问通道单元用于从内存向各缓存中读写数据。
上述指令缓存单元、输入神经元缓存单元、权值缓存单元和输出神经元缓存单元等中使用的缓存可以为RAM。
所述运算单元执行的运算包括神经网络计算。
在一个实施例里,计算单元包括但不仅限于:第一部分一个或多个乘法器;第二部分一个或者多个加法器(更具体的,第二个部分的加法器组成加法树);第三部分为激活函数单元;和/或第四部分向量处理单元。更具体的,向量处理单元可以处理向量运算和/或池化运算。第一部分将输入数据1(inl)和输入数据2(in2)相乘得到相乘之后的输出(out),过程为:out=in1*in2;第二部分将输入数据in1通过加法器相加得到输出数据(out)。更具体的,第二部分为加法树时,将输入数据in1通过加法树逐级相加得到输出数据(out),其中in1是一个长度为N的向量,N大于1,过称为:out=in1[1]+in1[2]+...+in1[N],和/或将输入数据(in1)通过加法数累加之后和输入数据(in2)相加得到输出数据(out),过程为:out=in1[1]+in1[2]+...+in1[N]+in2,或者将输入数据(in1)和输入数据(in2)相加得到输出数据(out),过称为:out=in1+in2;第三部分将输入数据(in)通过激活函数(active)运算得到激活输出数据(out),过程为:out=active(in),激活函数active可以是sigmoid、tanh、relu、softmax等,除了做激活操作,第三部分可以实现其他的非线性函数,可将将输入数据(in)通过运算(f)得到输出数据(out),过程为:out=f(in)。向量处理单元将输入数据(in)通过池化运算得到池化操作之后的输出数据(out),过程为out=pool(in),其中pool为池化操作,池化操作包括但不限于:平均值池化,最大值池化,中值池化,输入数据in是和输出out相关的一个池化核中的数据。
所述运算单元执行运算包括第一部分是将所述输入数据1和输入数据2相乘,得到相乘之后的数据;和/或第二部分执行加法运算(更具体的,为加法树运算,用于将输入数据1通过加法树逐级相加),或者将所述输入数据1通过和输入数据2相加得到输出数据;和/或第三部分执行激活函数运算,对输入数据通过激活函数(active)运算得到输出数据;和/或第四部分执行池化运算,out=pool(in),其中pool为池化操作,池化操作包括但不限于:平均值池化,最大值池化,中值池化,输入数据in是和输出out相关的一个池化核中的数据。以上几个部分的运算可以自由选择一个多个部分进行不同顺序的组合,从而实现各种不同功能的运算。
在执行人工神经网络反向训练运算时,运算过程表示如下:
将输入神经元的梯度(g)通过加权运算(f)得到输出梯度(g’),过程为:g’=f(g);
将输入梯度(g)通过更新运算(update)得到权值改变(deltaW),过程为:deltaW=update(g);
将输入权值(w)和权值改变(deltaW)相加得到输出权值(w’),过程为:w’=w+deltaW;
将输入梯度(g)通过更新运算(update)得到偏置改变(deltaB),过程为:deltaB=update(g);
将输入偏置(b)和偏置改变(deltaB)相加得到输出偏置(b’),过程为:b’=b+deltaB;
其中,在执行人工神经网络反向训练运算时,所有数据使用浮点数表示。
上述人工神经网络压缩编码装置,可用于执行卷积人工神经网络运算、池化人工神经网络运算、1rn人工神经网络运算及可用于执行全连接人工神经网络运算。
下面结合附图和具体实施例对本披露的技术方案进行进一步的阐释说明。
图3示出了根据本披露一实施例的神经网络处理系统总体结构的示意性框图。
I/O接口1,用于I/O数据需要经过CPU3发给加速器芯片,然后由加速器芯片4写入内存,加速器芯片4需要的专用程序也是由CPU3传输到加速器芯片。
内存2,用于暂存多层人工神经网络模型和神经元数据,特别是当全部模型无法在加速器片上缓存中放下时。
中央处理器CPU3,用于进行数据搬运以及加速器芯片4启动停止等基本控制,作为加速器芯片4与外部控制的接口。
加速器芯片4,也即上述的人工神经网络压缩编码装置,用于执行多层人工神经网络运算及其反向传播训练算法模块,接受来自CPU3的数据和程序,执行上述多层人工神经网络运算及其反向传播训练算法,加速器芯片4执行结果将传输回CPU3。
通用系统架构。将加速器作为CPU或者GPU的协处理器来执行多层人工神经网络运算及其反向传播训练算法。
多加速器互联的系统结构。多个加速器可以通过PCIE总线互联,以支持更大规模的多层人工神经网络运算,可以共用同一个宿主CPU或者分别有自己的宿主CPU,可以共享内存也可以每个加速器有各自的内存。此外其互联方式可以是任意互联拓扑。
图4示出了根据本披露一实施例的加速器芯片结构的示意性框图。
其中输入神经元缓存(2)存储一层运算的输入神经元。
其中输出神经元缓存(5)存储一层运算的输出神经元。
权值缓存(8)存储模型(权值)数据。
直接内存访问通道(7)用于从内存(6)向各RAM中读写数据。
指令缓存(1)用于储存专用指令。
控制器单元(3)从指令缓存中读取专用指令,并将其译码成各运算单元的微指令。
运算单元(4)用于执行具体运算。运算单元的运算主要被分为三个阶段,第一阶段执行乘法运算,用于将输入的神经元和权值数据相乘。第二阶段执行加法树运算,当同时执行第一和第二阶段时,两阶段合起来完成了向量内积运算,当然也可以只执行第一阶段或者第二阶段。第三阶段执行激活函数运算,激活函数可以是sigmoid函数、tanh函数等。第三阶段运算的结果作为输出神经元,写回输出神经元缓存。
图5绘示出根据本披露一实施例的多层人工神经网络的运算流程图,图1为所执行运算的一个示例。
步骤1:控制器从指令缓存中读取一条多层人工神经网络运算SIMD指令,例如多层感知机(MLP)指令、卷积指令、池化(POOLing)指令等执行专门神经网络算法的指令,或者矩阵乘指令、向量加指令、向量激活函数指令等用于执行神经网络运算的通用向量/矩阵指令。
步骤2:控制器将该指令译码成各个功能部件的微指令,包括输入神经元缓存是否读写以及读写次数,输出神经元缓存是否读写以及读写次数,权值神经元缓存是否读写以及读写次数,运算单元各个阶段执行何种操作。
步骤3:运算单元得到从输入神经元缓存和权值缓存的输入向量,根据阶段一的操作码,决定是否执行向量乘法运算,并将结果发送到下一阶段(如不进行乘法运算则直接将输入发到下一阶段)。
步骤4:运算单元得到阶段一的输出,根据阶段二的操作码,决定是否进行加法树运算,并将结果发送到下一阶段(如不进行加法树操作,则直接将输入发送到下一阶段)。
步骤5:运算单元得到阶段二的输出,根据阶段三的操作码,决定是否进行激活函数的运算,并将结果发送给输出神经元缓存。
图6绘示出根据本披露一实施例的多层人工神经网络反向传播训练算法的流程图,图2为所执行运算的一个示例。
步骤1:控制器从指令缓存中读取一条多层人工神经网络训练算法SIMD指令。
步骤2:控制器将该指令译码成各个运算单元的微指令,包括输入神经元缓存是否读写以及读写次数,输出神经元缓存是否读写以及读写次数,权值神经元缓存是否读写以及读写次数,运算单元各个阶段执行何种操作。
步骤3:运算单元得到从输入神经元缓存和权值缓存的输入向量,根据阶段一的操作码,决定是否执行向量乘法运算,并将结果发送到下一阶段(如不进行乘法运算则直接将输入发到下一阶段)。
步骤4:运算单元得到阶段一的输出,根据阶段二的操作码,决定是否进行加法树,向量加法或权值更新运算。
图7绘示出根据本披露一实施例的多层人工神经网络权值训练算法的流程图。
步骤1:将存储的浮点权值W1转换成位数较少的表示W2。
步骤2:使用W2进行正向运算。
步骤3:根据正向运算得到的误差结果进行反向运算更新W1。
迭代执行上述三个步骤,直到得到训练好的权值数据。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
各功能单元/模块都可以是硬件,比如该硬件可以是电路,包括数字电路,模拟电路等等。硬件结构的物理实现包括但不局限于物理器件,物理器件包括但不局限于晶体管,忆阻器等等。所述计算装置中的计算模块可以是任何适当的硬件处理器,比如CPU、GPU、FPGA、DSP和ASIC等等。所述存储单元可以是任何适当的磁存储介质或者磁光存储介质,比如RRAM,DRAM,SRAM,EDRAM,HBM,HMC等等。以上所述的具体实施例,对本披露的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,以上所述仅为本披露的具体实施例而已,并不用于限制本披露,凡在本披露的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本披露的保护范围之内。
Claims (20)
1.一种神经网络计算系统,其特征在于包括I/O接口、内存、人工神经网络芯片和中央处理器CPU,其中:
I/O接口,用于I/O数据;
内存,用于暂存多层人工神经网络模型和神经元数据;
人工神经网络芯片,用于执行多层人工神经网络运算和/或反向传播训练算法,接受来自中央处理器CPU的数据和指令,执行上述多层人工神经网络运算和/或反向传播训练算法;
中央处理器CPU,用于进行数据搬运以及人工神经网络芯片启动停止控制,作为人工神经网络芯片与外部控制的接口,并接收人工神经网络芯片执行后的结果;
所述人工神经网络芯片中对于输入的权值数据表示如下:
若是正向运算过程,则所述权值数据W1由k比特数据表示,其中包括1比特符号位、m比特控制位以及n比特数据位,即k=1+m+n;其中k、m、n均为自然数;
若是反向运算过程,则所述权值数据W2使用浮点数表示;
其中,反向运算过程的权值数据W2具有len位有效数字,n≤len。
2.根据权利要求1所述的系统,其特征在于,所述人工神经网络芯片包括:
控制器单元,用于读取指令,并将其译码成运算单元的指令;以及
运算单元,用于根据所述控制器单元的指令对数据执行相应的运算。
3.根据权利要求2所述的系统,其特征在于,所述人工神经网络芯片还包括:
内存接口单元,用于输入所述数据和指令;以及
指令缓存,用于对指令进行缓存。
4.根据权利要求2所述的系统,其特征在于,所述运算单元用于执行以下至少一种运算:
将输入的神经元和权值数据相乘;
执行加法树运算,用于将第一步处理后的加权输出神经元通过加法树逐级相加,或者将输出神经元通过和偏置相加得到加偏置输出神经元;
执行激活函数运算,得到最终输出神经元。
5.根据权利要求4所述的系统,其特征在于,所述W1是从W2转换而来;控制位m用于指定W1的有效数字在原权值数据中的起始位置。
6.根据权利要求3所述的系统,其特征在于,所述人工神经网络芯片还包括DMA,用于在所述内存接口单元与所述指令缓存和/或所述运算单元之间进行数据或者指令读写。
7.根据权利要求6所述的系统,其特征在于,所述人工神经网络芯片还包括:
输入神经元缓存,用于缓存输入到所述运算单元的输入神经元数据;
权值缓存,用于缓存权值数据;以及
所述输入神经元缓存和权值缓存均通过所述DMA输入。
8.根据权利要求5所述的系统,其特征在于,所述人工神经网络芯片还包括:
输出神经元缓存,用于缓存所述运算单元输出的输出神经元。
9.根据权利要求4所述的系统,其特征在于,所述运算单元执行激活函数运算采用的激活函数为sigmoid函数、tanh函数、relu函数或softmax函数。
10.根据权利要求1所述的系统,其特征在于,包括多个所述人工神经网络芯片,多个人工神经网络芯片通过PCIE总线互联,以支持多层人工神经网络运算。
11.根据权利要求1所述的系统,其特征在于,所述中央处理器CPU为一个,作为多个人工神经网络芯片的同一个宿主,或者所述中央处理器CPU的数量与所述人工神经网络芯片数量相同,使每一个人工神经网络芯片分别有自己的宿主;或者中央处理器数量为多个,与所述多个人工神经网络芯片形成互联拓扑连接。
12.如权利要求1所述的系统,其特征在于,所述内存为一个,作为多个人工神经网络芯片的共享内存;或者所述内存数量与所述人工神经网络芯片数量相同,使每个人工神经网络芯片有各自的内存;或者内存为多个,与所述多个人工神经网络芯片形成互联拓扑连接。
13.一种应用权利要求1-12任一所述神经网络计算系统进行运算的方法,其特征在于包括:
使用I/O接口输入/输出数据;
使用内存暂存多层人工神经网络模型和神经元数据;
使用人工神经网络芯片执行多层人工神经网络运算和/或反向传播训练算法,接受来自中央处理器CPU的数据和程序,执行上述多层人工神经网络运算和/或反向传播训练算法;
使用中央处理器CPU进行数据搬运以及人工神经网络芯片启动停止控制,作为人工神经网络芯片与外部控制的接口,并接收人工神经网络芯片执行后的结果。
14.根据权利要求13所述的方法,其特征在于,还包括:
使用控制器单元读取指令,并将其译码成运算单元的指令;
使用运算单元根据所述控制器单元的指令对数据执行相应的运算;
使用内存接口单元输入所述数据和指令;以及
使用指令缓存对指令进行缓存。
15.根据权利要求14所述的方法,其特征在于,还包括:
使用DMA在所述内存接口单元与所述指令缓存和/或所述运算单元之间进行数据或者指令读写;
使用输入神经元缓存将缓存输入到所述运算单元的输入神经元数据;
使用权值缓存以缓存权值数据;以及
输入神经元缓存和权值缓存均通过所述DMA输入;
使用输出神经元缓存来缓存所述运算单元输出的输出神经元。
16.一种使用权利要求1-12任一所述神经网络计算系统进行人工神经网络训练的方法,
其特征在于,包括以下步骤:
步骤1:运算单元将存储的浮点权值W2转换成位数较少的表示权值W1;
步骤2:控制器单元和运算单元使用权值W1进行正向运算;
步骤3:控制器单元和运算单元根据正向运算得到的误差结果进行反向运算更新浮点权值W2;
迭代执行上述三个步骤,直到得到所需要的模型。
17.根据权利要求16所述的方法,其特征在于,所述人工神经网络芯片还包括指令缓存、输入神经元缓存、权值缓存以及输出神经元缓存,指令缓存用于对指令进行缓存,输入神经元缓存用于缓存输入到所述运算单元的输入神经元数据,权值缓存用于缓存权值数据,输出神经元缓存用于缓存所述运算单元输出的输出神经元;
其中,步骤2包括以下子步骤;
步骤21:控制器单元从指令缓存中读取一条多层人工神经网络运算SIMD指令;
步骤22:所述控制器单元将所述指令译码成各个功能部件的微指令,包括输入神经元缓存是否读写以及读写次数、输出神经元缓存是否读写以及读写次数、权值缓存是否读写以及读写次数、运算单元各个阶段执行何种操作。
18.根据权利要求17所述的方法,其特征在于,在子步骤S22之后,所述步骤2进一步包括子步骤:
步骤23:运算单元得到从输入神经元缓存和权值缓存的输入向量,根据阶段一的操作码,决定是否执行向量乘法运算,如果执行就将结果发送到下一阶段,否则直接将输入发送到下一阶段;
步骤24:所述运算单元根据阶段二的操作码,决定是否进行加法树运算,如果执行就将结果发送到下一阶段,否则直接将输入发送到下一阶段;
步骤25:所述运算单元根据阶段三的操作码,决定是否进行激活函数的运算,如果执行就将结果发送给输出神经元缓存。
19.根据权利要求16所述的方法,其特征在于,所述人工神经网络芯片还包括指令缓存、输入神经元缓存、权值缓存以及输出神经元缓存,指令缓存用于对指令进行缓存,输入神经元缓存用于缓存输入到所述运算单元的输入神经元数据,权值缓存用于缓存权值数据,输出神经元缓存用于缓存所述运算单元输出的输出神经元;
其中,步骤3包括子步骤:
步骤31:控制器单元从指令缓存中读取一条多层人工神经网络训练算法SIMD指令;
步骤32:所述控制器单元将所述指令译码成各个运算单元的微指令,包括输入神经元缓存是否读写以及读写次数、输出神经元缓存是否读写以及读写次数、权值神经元缓存是否读写以及读写次数、运算单元各个阶段执行何种操作。
20.根据权利要求19所述的方法,其特征在于,在子步骤S32之后,所述步骤3进一步包括子步骤:
步骤33:运算单元得到从输入神经元缓存和权值缓存的输入向量,根据阶段一的操作码,决定是否执行向量乘法运算,如果执行就将结果发送到下一阶段,否则直接将输入发送到下一阶段;
步骤34:所述运算单元根据阶段二的操作码,决定是否进行加法树运算、向量加法运算或权值更新运算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810151978.6A CN108427990B (zh) | 2016-01-20 | 2016-01-20 | 神经网络计算系统和方法 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810151978.6A CN108427990B (zh) | 2016-01-20 | 2016-01-20 | 神经网络计算系统和方法 |
CN201610039026.6A CN106991477B (zh) | 2016-01-20 | 2016-01-20 | 一种人工神经网络压缩编码装置和方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610039026.6A Division CN106991477B (zh) | 2016-01-20 | 2016-01-20 | 一种人工神经网络压缩编码装置和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108427990A CN108427990A (zh) | 2018-08-21 |
CN108427990B true CN108427990B (zh) | 2020-05-22 |
Family
ID=59361365
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810151978.6A Active CN108427990B (zh) | 2016-01-20 | 2016-01-20 | 神经网络计算系统和方法 |
CN201610039026.6A Active CN106991477B (zh) | 2016-01-20 | 2016-01-20 | 一种人工神经网络压缩编码装置和方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610039026.6A Active CN106991477B (zh) | 2016-01-20 | 2016-01-20 | 一种人工神经网络压缩编码装置和方法 |
Country Status (3)
Country | Link |
---|---|
US (2) | US10402725B2 (zh) |
CN (2) | CN108427990B (zh) |
WO (1) | WO2017124644A1 (zh) |
Families Citing this family (81)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112230881A (zh) * | 2016-01-20 | 2021-01-15 | 中科寒武纪科技股份有限公司 | 浮点数处理器 |
CN111353588B (zh) * | 2016-01-20 | 2024-03-05 | 中科寒武纪科技股份有限公司 | 用于执行人工神经网络反向训练的装置和方法 |
CN108271026B (zh) * | 2016-12-30 | 2020-03-31 | 上海寒武纪信息科技有限公司 | 压缩/解压缩的装置和系统、芯片、电子装置、方法 |
US11037330B2 (en) * | 2017-04-08 | 2021-06-15 | Intel Corporation | Low rank matrix compression |
US10817296B2 (en) * | 2017-04-21 | 2020-10-27 | Intel Corporation | Message based general register file assembly |
US11580361B2 (en) * | 2017-04-24 | 2023-02-14 | Intel Corporation | Neural network training mechanism |
EP3657398A1 (en) | 2017-05-23 | 2020-05-27 | Shanghai Cambricon Information Technology Co., Ltd | Weight quantization method for a neural network and accelerating device therefor |
CN109389209B (zh) * | 2017-08-09 | 2022-03-15 | 上海寒武纪信息科技有限公司 | 处理装置及处理方法 |
CN109583577B (zh) * | 2017-09-29 | 2021-04-23 | 上海寒武纪信息科技有限公司 | 运算装置及方法 |
US11086634B2 (en) | 2017-07-05 | 2021-08-10 | Shanghai Cambricon Information Technology Co., Ltd. | Data processing apparatus and method |
EP3660629B1 (en) | 2017-07-05 | 2023-08-30 | Shanghai Cambricon Information Technology Co., Ltd | Data processing apparatus and method |
CN107578014B (zh) * | 2017-09-06 | 2020-11-03 | 上海寒武纪信息科技有限公司 | 信息处理装置及方法 |
KR102601604B1 (ko) * | 2017-08-04 | 2023-11-13 | 삼성전자주식회사 | 뉴럴 네트워크의 파라미터들을 양자화하는 방법 및 장치 |
CN108205704B (zh) * | 2017-09-27 | 2021-10-29 | 深圳市商汤科技有限公司 | 一种神经网络芯片 |
CN107748914A (zh) * | 2017-10-19 | 2018-03-02 | 珠海格力电器股份有限公司 | 人工神经网络运算电路 |
CN109697507B (zh) * | 2017-10-24 | 2020-12-25 | 安徽寒武纪信息科技有限公司 | 处理方法及装置 |
CN107895191B (zh) * | 2017-10-30 | 2022-02-22 | 上海寒武纪信息科技有限公司 | 一种信息处理方法及相关产品 |
CN109754062B (zh) * | 2017-11-07 | 2024-05-14 | 上海寒武纪信息科技有限公司 | 卷积扩展指令的执行方法以及相关产品 |
CN109961131B (zh) * | 2017-12-14 | 2020-05-08 | 中科寒武纪科技股份有限公司 | 神经网络正向运算方法及相关产品 |
CN109977446B (zh) * | 2017-12-28 | 2020-07-07 | 中科寒武纪科技股份有限公司 | 集成电路芯片装置及相关产品 |
CN108197705A (zh) * | 2017-12-29 | 2018-06-22 | 国民技术股份有限公司 | 卷积神经网络硬件加速装置及卷积计算方法及存储介质 |
CN109993276B (zh) * | 2017-12-29 | 2021-10-26 | 中科寒武纪科技股份有限公司 | 用于执行人工神经网络反向训练的装置和方法 |
CN109993290B (zh) * | 2017-12-30 | 2021-08-06 | 中科寒武纪科技股份有限公司 | 集成电路芯片装置及相关产品 |
EP3624019A4 (en) | 2017-12-30 | 2021-03-24 | Cambricon Technologies Corporation Limited | CHIP DEVICE WITH INTEGRATED CIRCUIT AND ASSOCIATED PRODUCT |
CN109993292B (zh) | 2017-12-30 | 2020-08-04 | 中科寒武纪科技股份有限公司 | 集成电路芯片装置及相关产品 |
CN113807510B (zh) | 2017-12-30 | 2024-05-10 | 中科寒武纪科技股份有限公司 | 集成电路芯片装置及相关产品 |
WO2019141902A1 (en) * | 2018-01-17 | 2019-07-25 | Nokia Technologies Oy | An apparatus, a method and a computer program for running a neural network |
WO2019165939A1 (zh) * | 2018-02-27 | 2019-09-06 | 上海寒武纪信息科技有限公司 | 一种计算装置及相关产品 |
CN110196734A (zh) * | 2018-02-27 | 2019-09-03 | 上海寒武纪信息科技有限公司 | 一种计算装置及相关产品 |
CN110196735A (zh) * | 2018-02-27 | 2019-09-03 | 上海寒武纪信息科技有限公司 | 一种计算装置及相关产品 |
CN110363291B (zh) * | 2018-03-26 | 2022-02-08 | 上海寒武纪信息科技有限公司 | 神经网络的运算方法、装置、计算机设备和存储介质 |
CN108764454B (zh) * | 2018-04-28 | 2022-02-25 | 中国科学院计算技术研究所 | 基于小波变换压缩和/或解压缩的神经网络处理方法 |
US11687759B2 (en) | 2018-05-01 | 2023-06-27 | Semiconductor Components Industries, Llc | Neural network accelerator |
CN108921012B (zh) * | 2018-05-16 | 2022-05-03 | 中国科学院计算技术研究所 | 一种利用人工智能芯片处理图像视频帧的方法 |
CN108647660A (zh) * | 2018-05-16 | 2018-10-12 | 中国科学院计算技术研究所 | 一种使用神经网络芯片处理图像的方法 |
CN108566537A (zh) * | 2018-05-16 | 2018-09-21 | 中国科学院计算技术研究所 | 用于对视频帧进行神经网络运算的图像处理装置 |
US11995556B2 (en) | 2018-05-18 | 2024-05-28 | Cambricon Technologies Corporation Limited | Video retrieval method, and method and apparatus for generating video retrieval mapping relationship |
CN110147873B (zh) * | 2018-05-18 | 2020-02-18 | 中科寒武纪科技股份有限公司 | 卷积神经网络的处理器及训练方法 |
US20210133854A1 (en) | 2018-09-13 | 2021-05-06 | Shanghai Cambricon Information Technology Co., Ltd. | Information processing method and terminal device |
US20200090035A1 (en) * | 2018-09-19 | 2020-03-19 | International Business Machines Corporation | Encoder-decoder memory-augmented neural network architectures |
CN110956257A (zh) * | 2018-09-26 | 2020-04-03 | 龙芯中科技术有限公司 | 神经网络加速器 |
CN111062469B (zh) * | 2018-10-17 | 2024-03-05 | 上海寒武纪信息科技有限公司 | 计算装置及相关产品 |
CN110770740A (zh) * | 2018-09-30 | 2020-02-07 | 深圳市大疆创新科技有限公司 | 基于卷积神经网络的图像处理方法和设备,以及无人机 |
CN111222632B (zh) * | 2018-11-27 | 2023-06-30 | 中科寒武纪科技股份有限公司 | 计算装置、计算方法及相关产品 |
CN111045726B (zh) * | 2018-10-12 | 2022-04-15 | 上海寒武纪信息科技有限公司 | 支持编码、解码的深度学习处理装置及方法 |
EP4009186A1 (en) | 2018-10-18 | 2022-06-08 | Shanghai Cambricon Information Technology Co., Ltd | Network-on-chip data processing method and device |
CN111079908B (zh) * | 2018-10-18 | 2024-02-13 | 上海寒武纪信息科技有限公司 | 片上网络数据处理方法、存储介质、计算机设备和装置 |
CN109657788A (zh) * | 2018-12-18 | 2019-04-19 | 北京中科寒武纪科技有限公司 | 数据处理方法、装置及相关产品 |
CN111353591A (zh) * | 2018-12-20 | 2020-06-30 | 中科寒武纪科技股份有限公司 | 一种计算装置及相关产品 |
CN111368990B (zh) * | 2018-12-25 | 2023-03-07 | 上海寒武纪信息科技有限公司 | 一种神经网络计算装置和方法 |
CN111368967B (zh) * | 2018-12-25 | 2023-04-07 | 上海寒武纪信息科技有限公司 | 一种神经网络计算装置和方法 |
CN111367567B (zh) * | 2018-12-25 | 2023-03-07 | 上海寒武纪信息科技有限公司 | 一种神经网络计算装置和方法 |
CN111368985B (zh) * | 2018-12-25 | 2023-11-28 | 上海寒武纪信息科技有限公司 | 一种神经网络计算装置和方法 |
CN111368986B (zh) * | 2018-12-25 | 2023-03-10 | 上海寒武纪信息科技有限公司 | 一种神经网络计算装置和方法 |
CN111382835A (zh) * | 2018-12-27 | 2020-07-07 | 中科寒武纪科技股份有限公司 | 一种神经网络压缩方法、电子设备及计算机可读介质 |
CN111385569B (zh) * | 2018-12-28 | 2022-04-26 | 杭州海康威视数字技术股份有限公司 | 一种编解码方法及其设备 |
CN111488976B (zh) * | 2019-01-28 | 2023-06-30 | 中科寒武纪科技股份有限公司 | 神经网络计算装置、神经网络计算方法及相关产品 |
CN109871941B (zh) * | 2019-02-18 | 2020-02-21 | 中科寒武纪科技股份有限公司 | 数据处理方法、装置及相关产品 |
CN110046703B (zh) * | 2019-03-07 | 2020-07-31 | 中国科学院计算技术研究所 | 一种用于神经网络的片上存储处理系统 |
CN111738429B (zh) * | 2019-03-25 | 2023-10-13 | 中科寒武纪科技股份有限公司 | 一种计算装置及相关产品 |
CN109978143B (zh) * | 2019-03-29 | 2023-07-18 | 南京大学 | 一种基于simd架构的堆栈式自编码器及编码方法 |
CN111915003B (zh) * | 2019-05-09 | 2024-03-22 | 深圳大普微电子科技有限公司 | 一种神经网络硬件加速器 |
KR20200129957A (ko) | 2019-05-10 | 2020-11-18 | 삼성전자주식회사 | 피처맵 데이터에 대한 압축을 수행하는 뉴럴 네트워크 프로세서 및 이를 포함하는 컴퓨팅 시스템 |
CN111930681B (zh) * | 2019-05-13 | 2023-10-10 | 中科寒武纪科技股份有限公司 | 一种计算装置及相关产品 |
CN112400176A (zh) * | 2019-06-12 | 2021-02-23 | 上海寒武纪信息科技有限公司 | 一种神经网络的量化参数确定方法及相关产品 |
CN110598858A (zh) * | 2019-08-02 | 2019-12-20 | 北京航空航天大学 | 基于非易失性存内计算实现二值神经网络的芯片和方法 |
US11526761B2 (en) * | 2019-08-24 | 2022-12-13 | Microsoft Technology Licensing, Llc | Neural network training with decreased memory consumption and processor utilization |
CN112712172B (zh) * | 2019-10-25 | 2023-12-26 | 安徽寒武纪信息科技有限公司 | 用于神经网络运算的计算装置、方法、集成电路和设备 |
CN111008699B (zh) * | 2019-12-05 | 2022-06-07 | 首都师范大学 | 一种基于自动驾驶的神经网络数据存储方法及系统 |
CN111045687B (zh) * | 2019-12-06 | 2022-04-22 | 浪潮(北京)电子信息产业有限公司 | 一种人工智能应用的部署方法及相关装置 |
CN111079930B (zh) * | 2019-12-23 | 2023-12-19 | 深圳市商汤科技有限公司 | 数据集质量参数的确定方法、装置及电子设备 |
US11144208B2 (en) * | 2019-12-23 | 2021-10-12 | Advanced Micro Devices, Inc. | Data compression system using base values and methods thereof |
CN111240743B (zh) * | 2020-01-03 | 2022-06-03 | 格兰菲智能科技有限公司 | 人工智能集成电路 |
CN111199283A (zh) * | 2020-02-24 | 2020-05-26 | 张早 | 一种基于卷积循环神经网络的气温预测系统及方法 |
US10938411B1 (en) * | 2020-03-25 | 2021-03-02 | Arm Limited | Compression and/or decompression of activation data |
US11947828B2 (en) * | 2020-08-27 | 2024-04-02 | Taiwan Semiconductor Manufacturing Company, Ltd. | Memory device |
CN112865804B (zh) * | 2021-01-12 | 2023-10-10 | 东南大学 | 三值神经网络稀疏性权重的压缩计算单元 |
CN113783933B (zh) * | 2021-08-10 | 2022-05-24 | 中山大学 | 基于编码缓存的双层网络通信方法、装置及介质 |
US20230068645A1 (en) * | 2021-08-27 | 2023-03-02 | Taiwan Semiconductor Manufacturing Company, Ltd. | Memory device and method for computing-in-memory (cim) |
US11734075B2 (en) * | 2021-11-24 | 2023-08-22 | International Business Machines Corporation | Reducing data format conversion of an accelerator |
CN114819122B (zh) * | 2022-03-28 | 2022-12-06 | 中国科学院自动化研究所 | 基于脉冲神经网络的数据处理方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1700250A (zh) * | 2004-05-17 | 2005-11-23 | 中国科学院半导体研究所 | 模式识别专用神经网络计算机系统及应用方法 |
CN104915195A (zh) * | 2015-05-20 | 2015-09-16 | 清华大学 | 一种基于现场可编程门阵列实现神经网络计算的方法 |
CN105184366A (zh) * | 2015-09-15 | 2015-12-23 | 中国科学院计算技术研究所 | 一种时分复用的通用神经网络处理器 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5204938A (en) * | 1989-05-30 | 1993-04-20 | Loral Aerospace Corp. | Method of implementing a neural network on a digital computer |
US8862527B2 (en) * | 2005-11-15 | 2014-10-14 | Bernadette Garner | Neural networks and method for training neural networks |
CN101527010B (zh) * | 2008-03-06 | 2011-12-07 | 上海理工大学 | 人工神经网络算法的硬件实现方法及其系统 |
US7864083B2 (en) * | 2008-05-21 | 2011-01-04 | Ocarina Networks, Inc. | Efficient data compression and decompression of numeric sequences |
CN102184453A (zh) * | 2011-05-16 | 2011-09-14 | 上海电气集团股份有限公司 | 基于模糊神经网络和支持向量机的风电功率组合预测方法 |
CN103019656B (zh) * | 2012-12-04 | 2016-04-27 | 中国科学院半导体研究所 | 可动态重构的多级并行单指令多数据阵列处理系统 |
CN103177288A (zh) * | 2013-03-05 | 2013-06-26 | 辽宁省电力有限公司鞍山供电公司 | 基于遗传算法优化神经网络的变压器故障诊断方法 |
US9798751B2 (en) * | 2013-10-16 | 2017-10-24 | University Of Tennessee Research Foundation | Method and apparatus for constructing a neuroscience-inspired artificial neural network |
CN105095833B (zh) * | 2014-05-08 | 2019-03-15 | 中国科学院声学研究所 | 用于人脸识别的网络构建方法、识别方法及系统 |
CN104200224A (zh) * | 2014-08-28 | 2014-12-10 | 西北工业大学 | 基于深度卷积神经网络的无价值图像去除方法 |
US10373050B2 (en) * | 2015-05-08 | 2019-08-06 | Qualcomm Incorporated | Fixed point neural network based on floating point neural network quantization |
CN104915560A (zh) * | 2015-06-11 | 2015-09-16 | 万达信息股份有限公司 | 一种基于广义神经网络聚类的疾病病种诊疗方案预测方法 |
WO2017049496A1 (en) * | 2015-09-23 | 2017-03-30 | Intel Corporation | Apparatus and method for local quantization for convolutional neural networks (cnns) |
-
2016
- 2016-01-20 CN CN201810151978.6A patent/CN108427990B/zh active Active
- 2016-01-20 CN CN201610039026.6A patent/CN106991477B/zh active Active
- 2016-04-05 WO PCT/CN2016/078448 patent/WO2017124644A1/zh active Application Filing
-
2018
- 2018-07-20 US US16/041,160 patent/US10402725B2/en active Active
-
2019
- 2019-07-10 US US16/508,139 patent/US10726336B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1700250A (zh) * | 2004-05-17 | 2005-11-23 | 中国科学院半导体研究所 | 模式识别专用神经网络计算机系统及应用方法 |
CN104915195A (zh) * | 2015-05-20 | 2015-09-16 | 清华大学 | 一种基于现场可编程门阵列实现神经网络计算的方法 |
CN105184366A (zh) * | 2015-09-15 | 2015-12-23 | 中国科学院计算技术研究所 | 一种时分复用的通用神经网络处理器 |
Also Published As
Publication number | Publication date |
---|---|
CN106991477A (zh) | 2017-07-28 |
US10726336B2 (en) | 2020-07-28 |
US20190332945A1 (en) | 2019-10-31 |
US10402725B2 (en) | 2019-09-03 |
CN108427990A (zh) | 2018-08-21 |
CN106991477B (zh) | 2020-08-14 |
US20180330239A1 (en) | 2018-11-15 |
WO2017124644A1 (zh) | 2017-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108427990B (zh) | 神经网络计算系统和方法 | |
CN107729989B (zh) | 一种用于执行人工神经网络正向运算的装置及方法 | |
KR102142889B1 (ko) | 스파스 연결용 인공 신경망 계산 장치와 방법 | |
US11568258B2 (en) | Operation method | |
US11775313B2 (en) | Hardware accelerator for convolutional neural networks and method of operation thereof | |
CN109284817B (zh) | 深度可分离卷积神经网络处理架构/方法/系统及介质 | |
US10338925B2 (en) | Tensor register files | |
WO2020073211A1 (zh) | 运算加速器、处理方法及相关设备 | |
CN110678841B (zh) | 张量处理器指令集架构 | |
TWI827432B (zh) | 計算裝置、機器學習運算裝置、組合處理裝置、神經網絡芯片、電子設備、板卡、及計算方法 | |
CN110163357B (zh) | 一种计算装置及方法 | |
KR20190089685A (ko) | 데이터를 처리하는 방법 및 장치 | |
CN113010213B (zh) | 基于阻变忆阻器的精简指令集存算一体神经网络协处理器 | |
WO2018113790A1 (zh) | 一种人工神经网络运算的装置及方法 | |
Hsiao et al. | Design of a sparsity-aware reconfigurable deep learning accelerator supporting various types of operations | |
Zhou et al. | Addressing sparsity in deep neural networks | |
WO2017177446A1 (zh) | 支持离散数据表示的人工神经网络反向训练装置和方法 | |
WO2018112892A1 (zh) | 一种支持快速人工神经网络运算的装置及方法 | |
WO2021081854A1 (zh) | 一种卷积运算电路和卷积运算方法 | |
Bai | A Flexible and Low-Resource CNN Accelerator on FPGA for Edge Computing | |
Dong et al. | Optimizing Accelerator on FPGA for Deep Convolutional Neural Networks | |
CN111222632A (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 100190 room 644, comprehensive research building, No. 6 South Road, Haidian District Academy of Sciences, Beijing Applicant after: Zhongke Cambrian Technology Co., Ltd Address before: 100190 room 644, comprehensive research building, No. 6 South Road, Haidian District Academy of Sciences, Beijing Applicant before: Beijing Zhongke Cambrian Technology Co., Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |