CN106447034B - 一种基于数据压缩的神经网络处理器、设计方法、芯片 - Google Patents
一种基于数据压缩的神经网络处理器、设计方法、芯片 Download PDFInfo
- Publication number
- CN106447034B CN106447034B CN201610977182.7A CN201610977182A CN106447034B CN 106447034 B CN106447034 B CN 106447034B CN 201610977182 A CN201610977182 A CN 201610977182A CN 106447034 B CN106447034 B CN 106447034B
- Authority
- CN
- China
- Prior art keywords
- data
- storage unit
- neural network
- unit
- compression
- 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 79
- 238000013144 data compression Methods 0.000 title claims abstract description 54
- 238000000034 method Methods 0.000 title claims abstract description 32
- 238000013461 design Methods 0.000 title claims abstract description 13
- 238000007906 compression Methods 0.000 claims abstract description 34
- 230000006835 compression Effects 0.000 claims abstract description 33
- 230000001537 neural effect Effects 0.000 claims description 22
- 238000013500 data storage Methods 0.000 claims description 21
- 230000008569 process Effects 0.000 claims description 12
- 238000010586 diagram Methods 0.000 claims description 10
- 210000002569 neuron Anatomy 0.000 claims description 5
- 230000004044 response Effects 0.000 claims description 3
- 210000004218 nerve net Anatomy 0.000 claims 1
- 210000000352 storage cell Anatomy 0.000 claims 1
- 238000012545 processing Methods 0.000 description 12
- 238000004364 calculation method Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000005265 energy consumption Methods 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000003062 neural network model Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 241000665848 Isca Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 210000004027 cell Anatomy 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 210000000225 synapse Anatomy 0.000 description 1
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/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明提出一种基于数据压缩的神经网络处理器、设计方法、芯片,该处理器包括至少一个存储单元,用于存储操作指令与参与计算的数据;至少一个存储单元控制器,用于对所述存储单元进行控制;至少一个计算单元,用于执行神经网络的计算操作;控制单元,与所述存储单元控制器与所述计算单元相连,用于经由所述存储单元控制器获得所述存储单元存储的指令,并且解析所述指令以控制所述计算单元;至少一个数据压缩单元,用于按照数据压缩存储格式对所述参与计算的数据进行压缩,其中每个所述数据压缩单元与所述计算单元相连。本发明降低了神经网络处理器中数据资源的占用,提高了运算速度,提升了能量效率。
Description
技术领域
本发明涉及神经网络模型计算的硬件加速领域,特别涉及一种基于数据压缩的神经网络处理器、设计方法、芯片。
背景技术
深度学习技术在近几年得到了飞速的发展。深度神经网络,尤其是卷积神经网络,在图像识别、语音识别、自然语言理解、天气预测、基因表达、内容推荐和智能机器人等领域取得了广泛的应用。
深度学习所得到的深度网络结构是一种运算模型,其中包含大量数据节点,每个数据节点与其他数据节点相连,各个节点间的连接关系用权重表示。伴随神经网络复杂度的不断提高,神经网络技术在实际应用过程中存在占用资源多、运算速度慢、能量消耗大等问题,因此该技术在嵌入式设备或低开销数据中心等领域应用时存在严重的能效问题和运算速度瓶颈。采用硬件加速替代传统软件计算的方法成为了提高神经网络计算效率的一种行之有效方式。主流的硬件加速方式包括通用图形处理器、专用处理器芯片和现场可编程逻辑阵列(FPGA)等。
当前的深度神经网络在实际应用中网络规模越来越大、数据吞吐量越来越高、任务类型越来越复杂,这会导致神经网络处理器电路规模变大、数据传输效率降低、计算速度变差。现有技术实际应用时,在神经网络计算过程中存在大量数值为0的数据元素,这类元素经过乘法和加法等数据运算后对运算结果不产生数值上的影响,但是神经网络处理器在处理这部分数据元素时会占用大量片上存储空间、消耗多余传输资源并增加运行时间,因此难以满足神经网络处理器的性能要求。
学术界和工业界针对目前神经网络模型中存在大量计算无关数据这一问题,开展了大量研究。文献“Albericio J,Judd P,Hetherington T,et al.Cnvlutin:ineffectual-neuron-free deep neural network computing[C]//Computer Architecture(ISCA),2016ACM/IEEE 43rd Annual International Symposium on.IEEE,2016:1-13.”通过在片上提供大规模的存储单元实现大规模并行计算并以此为基础实现了对数据元素的压缩,但是该方法依赖大规模的片上存储单元以满足其在并行计算的需求,不适用于嵌入式设备;文献“Chen Y H,Emer J,Sze V.Eyeriss:A Spatial Architecture for Energy-Efficient Dataflow for Convolutional Neural Networks[J].2016.”通过共享数据和权重实现数据重用并采用电源门控的方法关闭数据0的计算,可以有效提高能量效率,但是该方法只能降低运算功耗而无法跳过数值为0的元素进而加快计算速度。
发明“一种神经网络加速器及其运算方法”,该发明适用于神经网络算法领域,提供了一种神经网络加速器及其运算方法,该神经网络加速器包括片内存储介质、片内地址索引模块、核心计算模块以及多ALU装置,片内存储介质,用于存储外部传来的数据或用于存储计算过程中产生的数据;片内数据索引模块,用于执行运算时根据输入的索引映射至正确的存储地址;核心计算模块用于执行神经网络运算;多ALU装置用于从核心计算模块或片内存储介质获取输入数据执行核心计算模块无法完成的非线性运算。该发明提供一种神经网络加速器,其在神经网络加速器中引入多ALU设计,从而提升非线性运算的运算速度,使得神经网络加速器更加高效,本发明与该发明的最大区别是在神经网络加速器中引入了数据压缩存储结构,提高了神经网络运算速度并降低了能量损耗。
发明“加速深度神经网络算法的加速芯片的运算装置及方法”,该发明提供一种加速深度神经网络算法的加速芯片的运算装置及方法,所述装置包括:向量加法处理器模块,进行向量的加法或减法、和/或深度神经网络算法中的pooling层算法的向量化的运算;向量函数值运算器模块,深度神经网络算法中的非线性求值的向量化运算;向量乘加器模块,进行向量的乘加运算;所述三个模块执行可编程指令,互相交互以计算神经网络的神经元值和网络输出结果、以及、代表输入层神经元对输出层神经元作用强度的突触权重变化量;所述三个模块中均设置有中间值存储区域,并对主存储器进行读取与写入操作。由此,能够减少对主存储器的中间值读取和写入次数,降低加速器芯片的能量消耗,避免数据处理过程中的数据缺失和替换问题。本发明与该发明的最大区别是在神经网络加速器中引入了数据压缩存储结构,提高了神经网络运算速度并降低了能量损耗。
发明内容
针对神经网络处理器的上述缺陷,本发明提出一种基于数据压缩的神经网络处理器、设计方法、芯片。
本发明提出一种基于数据压缩的神经网络处理器,包括:
至少一个存储单元,用于存储操作指令与参与计算的数据;
至少一个存储单元控制器,用于对所述存储单元进行控制;
至少一个计算单元,用于执行神经网络的计算操作;
控制单元,与所述存储单元控制器与所述计算单元相连,用于经由所述存储单元控制器获得所述存储单元存储的指令,并且解析所述指令以控制所述计算单元;
至少一个数据压缩单元,用于按照数据压缩存储格式对所述参与计算的数据进行压缩,其中每个所述数据压缩单元与所述计算单元相连。
所述存储单元包括输入数据存储单元、输出数据存储单元、权重存储单元、指令存储单元。
所述输入数据存储单元用于存储所述参与计算的数据,所述参与计算的数据包括原始特征图数据与参与中间层计算的数据;所述输出数据存储单元包括计算获得的神经元响应值;所述权重存储单元用于存储已经训练好的神经网络权重;所述指令存储单元用于存储参与计算的指令信息。
在进行数据调度过程时,根据所述计算单元的容量将所述参与计算的数据分为多个数据块,所述多个数据块依次载入到所述计算单元中。
每个所述数据块按照所述数据压缩存储格式存储在所述存储单元中,所述数据压缩存储格式由<数值,偏移量>两部分构成。
所述数据压缩存储格式中的“数值”为所述参与计算的数据的数值,所述“偏移量”为所述数值在所述数据块中的相对位置。
所述参与计算的数据依照所述数据压缩存储格式存储,保证数值为零的所述参与计算的数据不参与神经网络计算,只有非零的所述参与计算的数据会被存储并参与计算。
所述计算单元从与其相关联的所述输入数据存储单元中获得数据以进行计算,并且向与其相关联的所述输出数据存储单元写入数据。
本发明还提出一种设计所述基于数据压缩的神经网络处理器的设计方法,包括:
步骤1,所述控制单元对所述存储单元进行寻址,读取并解析下一步需要执行的指令;
步骤2,根据解析出的指令获得存储地址,并从所述存储单元中获取所述参与计算的数据与权重;
步骤3,将所述参与计算的数据与权重分别从所述输入存储单元与所述权重存储单元载入至所述计算单元;
步骤4,所述计算单元执行神经网络运算中的运算操作,其中通过所述数据检索单元保证了被压缩的数据可以与权重数据正确计算;
步骤5,将神经网络计算结果存储在所述输出存储单元中。
本发明还提出一种包括所述基于数据压缩的神经网络处理器的芯片。
由以上方案可知,本发明的优点在于:
本发明的处理器在现有神经网络处理器系统中引入数据压缩单元,进而提升了神经网络处理器的运算速度及运行能量效率。
附图说明
图1为本发明提供的神经网络处理器结构框图;
图2为本发明提出的一种数据压缩存储格式图;
图3为本发明一种实施例中计算单元的结构示意图;
图4为本发明一种实施例中数据压缩单元示意图;
图5为本发明提出的神经网络处理器进行神经网络运算的流程图。
具体实施方式
发明人在对神经网络处理器研究时发现,在神经网络计算过程中存在大量数值为0的数据元素,这类元素经过乘法和加法等数据运算后对运算结果不产生数值上的影响,但是神经网络处理器在处理这部分数据元素时会占用大量片上存储空间、消耗多余传输资源并增加运行时间,因此难以满足神经网络处理器的性能要求。
发明人经过对现有神经网络处理器的计算结构进行分析发现,可以对神经网络数据元素进行压缩,实现加快运算速度、降低能量损耗的目的。现有技术提供了神经网络加速器基本架构,本发明在现有技术基础上提出一种数据压缩存储格式,数据经过数据压缩单元的重编码后,在存储、传输和计算过程中采用数据压缩存储格式,并在神经网络计算单元增加数据检索结构,确保了被压缩后的权重可以和数据元素正确运算
为实现上述目的,本发明提供的神经网络处理系统,包括:
至少一个存储单元,用于存储操作指令和运算数据;
至少一个计算单元,用于执行神经网络计算;以及控制单元,与所述至少一个存储单元和所述至少一个计算单元相连,用于经由所述至少一个存储单元获得所述至少一个存储单元存储的指令,并且解析该指令以控制所述至少一个计算单元;
至少一个数据压缩单元,其中每个数据压缩单元与所述至少一个计算单元相连,用于压缩参与神经网络计算的数据,对参与神经网络计算的数据重新压缩编码;
提出一种数据压缩格式,用于存储和传输参与神经网络计算的数据;
根据本发明提出的神经网络处理器系统,所述数据包括原始特征图数据或中间层数据计算结果;
根据本发明的神经网络处理系统,所述神经网络处理器系统进行神经网络计算时,数据压缩单元会将特征图数据或中间层计算结果整合映射成为数据压缩格式;
所述具有数据压缩格式的数据为神经网络计算过程中间计算结果,需要进行再次存储或被其他系统单元使用。
本发明还提出一种包括所述基于数据压缩的神经网络处理器的芯片。
本发明提出一种数据压缩存储格式,该数据存储格式在进行数据存储时进行重编码,可以跳过数值为0的数据,从而实现了数据压缩的功能。在进行数据调度过程时,每个数据块按照数据压缩存储格式存储在存储单元中,该存储格式由<数值,偏移量>两部分构成,其中<数值>代表了为原始数据数值,<偏移量>代表了该数值在数据块中的相对位置。数据依照数据压缩存储格式存储,保证数值为零的数据不参与神经网络计算,只有非零数据会被存储并参与计算。数据压缩存储格式对原始数据进行了重编码,重编码后的数据与原始数据一一对应。
本发明提出一种带有数据检索结构的神经网络计算单元,计算单元由N个运算子单元构成,每个运算子单元包括数据和权重共两个队列,每组数据及权重内有P个元素。每个数据元素包括原始数值和偏移量两部分组成,数据索引结构根据偏移量在权重队列中索引与之匹配的权重值进行乘法操作,运算结果经过后续运算后形成下一层网络的输入原始数据值,该原始数据值经过后续数据压缩单元重新编码后以数据压缩存储格式存储在存储电路中。每次计算过程中,同一组数据同时载入到不同计算单元中,实现了数据的共享。
本发明还提出一种数据压缩单元,该单元由数据压缩单元由输入缓冲器、偏移量计数器和输出缓冲器组成,在每个周期,控制系统从输入缓冲器读入一个数据并使偏移量计数器计数值加一,当且仅当该数值不为0时,该数据会被存储至输出缓冲器,同时也会存储与之对应的偏移量计数值。当输入缓冲器402被填充满时,输出缓冲器内也保留了与之对应的数据。
为了使本发明的目的、技术方案、设计方法及优点更加清楚明了,以下结合附图通过具体实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明旨在提供一种基于数据压缩的神经网络处理器,其在神经网络处理系统中引入数据压缩结构,从而降低片上存储开销、减小运算电路规模并提高运算效率,使得神经网络处理系统整体性能更高。
本发明提供的神经网络处理器基于存储-控制-计算的结构。
存储结构用于存储参与计算的数据、神经网络权重及处理器操作指令;
控制结构包括译码电路与控制逻辑电路,用于解析操作指令,生成控制信号,该信号用于控制片上数据的调度与存储以及神经网络计算过程;
计算结构包括计算单元,用于参与该处理器中的神经网络计算操作,其中应包括数据检索结构,保证被压缩的数据在计算单元中能够正确地与相应权重进行计算。
图1为本发明提供的一种神经网络处理器系统101,该神经网络处理器系统101架构由七个部分构成,包括输入数据存储单元102、控制单元103、输出数据存储单元104、权重存储单元105、指令存储单元106、计算单元107和数据压缩单元108。
输入数据存储单元102用于存储参与计算的数据,该数据包括原始特征图数据和参与中间层计算的数据;输出数据存储单元104存储计算得到的神经元响应值;指令存储单元106存储参与计算的指令信息,指令被解析为控制流来调度神经网络计算;权重存储单元105用于存储已经训练好的神经网络权重;
控制单元103分别与输出数据存储单元104、权重存储单元105、指令存储单元106、计算单元107相连,控制单元103获得保存在指令存储单元106中的指令并且解析该指令,控制单元103可根据解析指令得到的控制信号控制计算单元进行神经网络计算。
计算单元107用于根据控制单元103产生的控制信号来执行相应的神经网络计算。计算单元107与一个或多个存储单元相关联,计算单元107可以从与其相关联的输入数据存储单元102中的数据存储部件获得数据以进行计算,并且可以向与其相关联的输出数据存储单元104写入数据。计算单元107完成神经网络算法中的大部分运算,即向量乘加操作等。此外,由于载入到计算单元107中参与计算的数据格式为数据压缩格式,因此在计算单元107中还应包括数据检索子单元,该子单元用于保证被压缩的数据可以与权重正确计算。
数据压缩单元108用于参与数据压缩,对计算结果重新编码,将原始计算结果中数值为0的元素排除,采用新的数据编码方式进行存储。
本发明提供一种数据压缩存储格式,该数据存储格式在进行数据存储时进行重编码,可以跳过数值为0的数据,从而实现了数据压缩的功能。
计算数据依据数据压缩存储格式参与神经网络计算的过程如下:在进行数据调度过程时,首先根据计算单元的容量将原始数据分为不同的数据块,不同数据块依次载入到计算单元中。每个数据块按照数据压缩存储格式存储在存储单元中,该存储格式由<数值,偏移量>两部分构成,其中<数值>代表了为原始数据数值,<偏移量>代表了该数值在数据块中的相对位置。数据依照数据压缩存储格式存储,保证数值为零的数据不参与神经网络计算,只有非零数据会被存储并参与计算。数据压缩存储格式对原始数据进行了重编码,重编码后的数据与原始数据一一对应。
每一个数据块的分组保证了能够以数据块内第一个数据为基准在数据队列中索引任何一个数据。数据块分组重编码在保证了数据分组调度的同时避免了过多偏移量检索位数,减小了存储偏移量的额外开销。以由16个数据组成的数据块为例,需要记录偏移量而增加的比特位为4。
图2举例说明原始数据通过编码形成数据压缩存储格式的过程。由16个数据元素组成的一个数据块被分为4个数据组,每个数据组中由4个数据元素构成。第一行数据为原始数据,第二行数据为被重新编码后形成数据压缩格式的数据。每个数据块在计算前被预取至缓存中等待计算。
数据索引单元、计算单元及数据压缩单元实现了数据压缩和解压缩功能,数据压缩单元将原有数据格式重新编码为数据压缩存储格式;计算单元完成数据与权重相乘、中间结果累加等计算操作;数据索引单元起到解压缩(检索查找)的作用,保证被压缩重新排列的数据按照偏移量可以与权重值正确运算。
图3为计算单元结构系统示意图。计算单元由N个运算子单元构成,每个运算子单元包括数据和权重共两个队列,每组数据及权重内有P个元素。每个数据元素包括原始数值和偏移量两部分组成,数据索引结构根据偏移量在权重队列中索引与之匹配的权重值进行乘法操作,运算结果经过后续运算后形成下一层网络的输入原始数据值,该原始数据值经过后续数据压缩单元重新编码后以数据压缩存储格式存储在存储电路中。每次计算过程中,同一组数据同时载入到不同计算单元中,实现了数据的共享。
图4为数据压缩单元401的结构示意图。数据压缩单元由输入缓冲器402、偏移量计数器403和输出缓冲器404组成。在每个周期,控制系统从输入缓冲器402读入一个数据并使偏移量计数器计数值加一,当且仅当该数值不为0时,该数据会被存储至输出缓冲器404,同时也会存储与之对应的偏移量计数值。当输入缓冲器402被填充满时,输出缓冲器404内也保留了与之对应的数据。
深度神经网络中的输入数据为三维阵列格式。第一层网络的输入为原始数据,其他卷积层将前一层的输出数据作为输入。在本发明中,由于数据需要按照数据压缩存储格式存储并传递给下一层,因此需要在每层输出数据后将数据接入数据压缩单元。每个数据压缩单元需要消除每个数据块内数值为0的元素,留下非零元素。
数据压缩存储方式具有两点优势,首先只存储非零元素,会大大减少内存占用;其次,只将非零元素载入到计算单元中,提升了提高了数据传输及计算速度,并增加了计算单元利用率。
本发明还提供一种基于数据压缩的神经网络处理器的设计方法,图5是本发明神经网络处理器进行神经网络计算的流程图,该方法包括:
步骤S1,控制单元对存储单元寻址,读取并解析下一步需要执行的指令;
步骤S2,根据解析指令得到的存储地址从存储单元中获取输入数据;
步骤S3,将数据和权重分别从输入存储单元和权重存储单元载入至计算单元;
步骤S4,计算单元执行神经网络运算中的运算操作,其中数据检索结构保证了被压缩的数据可以与权重数据正确计算;
步骤S5,数据压缩单元将计算结果重编码为数据压缩存储格式;
步骤S6,将以数据压缩存储格式存储的数据存储输出至存储单元中。
本发明可根据神经网络卷积中间层的计算结果动态地消除无效数据,从而提高运算效率并降低能耗。
本发明能够提升神经网络处理系统的运算速度并降低能耗,使得神经网络处理系统性能更加高效。
综上所述,本发明针对神经网络处理器中存在的运算速度差、能量效率低这一问题,通过对数据进行重编码,实现了数据压缩功能,降低了神经网络处理器中数据的存储资源占用,提高了运算速度,提升了能量效率。
应当理解,虽然本说明书是按照各个实施例描述的,但并非每个实施例仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
以上所述仅为本发明示意性的具体实施方式,并非用以限定本发明的范围。任何本领域的技术人员,在不脱离本发明的构思和原则的前提下所作的等同变化、修改与结合,均应属于本发明保护的范围。
Claims (7)
1.一种基于数据压缩的神经网络处理器,其特征在于,包括:
至少一个存储单元,用于存储操作指令与参与计算的数据;
至少一个存储单元控制器,用于对所述存储单元进行控制;
至少一个计算单元,用于执行神经网络的计算操作,所述计算单元包括数据检索结构,保证被压缩的数据在计算单元中能够正确地与相应权重进行计算;
控制单元,与所述存储单元控制器与所述计算单元相连,用于经由所述存储单元控制器获得所述存储单元存储的指令,并且解析所述指令以控制所述计算单元;
至少一个数据压缩单元,用于按照数据压缩存储格式对所述参与计算的数据进行压缩,其中每个所述数据压缩单元与所述计算单元相连;
在进行数据调度过程时,根据所述计算单元的容量将所述参与计算的数据分为多个数据块,所述多个数据块依次载入到所述计算单元中,每个所述数据块按照所述数据压缩存储格式存储在所述存储单元中,所述数据压缩存储格式由<数值,偏移量>两部分构成,“数值”为所述参与计算的数据中非零数据的数值,“偏移量”为所述数值在所述数据块中的相对位置。
2.如权利要求1所述的基于数据压缩的神经网络处理器,其特征在于,所述存储单元包括输入数据存储单元、输出数据存储单元、权重存储单元、指令存储单元。
3.如权利要求2所述的基于数据压缩的神经网络处理器,其特征在于,所述输入数据存储单元用于存储所述参与计算的数据,所述参与计算的数据包括原始特征图数据与参与中间层计算的数据;所述输出数据存储单元包括计算获得的神经元响应值;所述权重存储单元用于存储已经训练好的神经网络权重;所述指令存储单元用于存储参与计算的指令信息。
4.如权利要求1所述的基于数据压缩的神经网络处理器,其特征在于,所述参与计算的数据依照所述数据压缩存储格式存储,保证数值为零的所述参与计算的数据不参与神经网络计算,只有非零的所述参与计算的数据会被存储并参与计算。
5.如权利要求2所述的基于数据压缩的神经网络处理器,其特征在于,所述计算单元从与其相关联的所述输入数据存储单元中获得数据以进行计算,并且向与其相关联的所述输出数据存储单元写入数据。
6.一种设计如权利要求1-5任意一项所述基于数据压缩的神经网络处理器的设计方法,其特征在于,包括:
步骤1,所述控制单元对所述存储单元进行寻址,读取并解析下一步需要执行的指令;
步骤2,根据解析出的指令获得存储地址,并从所述存储单元中获取所述参与计算的数据与权重;
步骤3,将所述参与计算的数据与权重分别从输入数据存储单元与权重存储单元载入至所述计算单元;
步骤4,所述计算单元执行神经网络运算中的运算操作,其中通过所述计算单元中数据检索结构保证被压缩的数据可以与权重数据正确计算;
步骤5,将神经网络计算结果存储在输出数据存储单元中。
7.一种包括如权利要求1-5任意一项所述基于数据压缩的神经网络处理器的芯片。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610977182.7A CN106447034B (zh) | 2016-10-27 | 2016-10-27 | 一种基于数据压缩的神经网络处理器、设计方法、芯片 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610977182.7A CN106447034B (zh) | 2016-10-27 | 2016-10-27 | 一种基于数据压缩的神经网络处理器、设计方法、芯片 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106447034A CN106447034A (zh) | 2017-02-22 |
CN106447034B true CN106447034B (zh) | 2019-07-30 |
Family
ID=58180286
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610977182.7A Active CN106447034B (zh) | 2016-10-27 | 2016-10-27 | 一种基于数据压缩的神经网络处理器、设计方法、芯片 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106447034B (zh) |
Families Citing this family (83)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107633298B (zh) * | 2017-03-10 | 2021-02-05 | 南京风兴科技有限公司 | 一种基于模型压缩的递归神经网络加速器的硬件架构 |
CN107103113B (zh) * | 2017-03-23 | 2019-01-11 | 中国科学院计算技术研究所 | 面向神经网络处理器的自动化设计方法、装置及优化方法 |
CN107092961B (zh) * | 2017-03-23 | 2018-08-28 | 中国科学院计算技术研究所 | 一种基于模式频率统计编码的神经网络处理器及设计方法 |
CN107086910B (zh) | 2017-03-24 | 2018-08-10 | 中国科学院计算技术研究所 | 一种针对神经网络处理的权重加解密方法和系统 |
CN107423816B (zh) * | 2017-03-24 | 2021-10-12 | 中国科学院计算技术研究所 | 一种多计算精度神经网络处理方法和系统 |
US11615297B2 (en) | 2017-04-04 | 2023-03-28 | Hailo Technologies Ltd. | Structured weight based sparsity in an artificial neural network compiler |
US11238334B2 (en) | 2017-04-04 | 2022-02-01 | Hailo Technologies Ltd. | System and method of input alignment for efficient vector operations in an artificial neural network |
US10387298B2 (en) | 2017-04-04 | 2019-08-20 | Hailo Technologies Ltd | Artificial neural network incorporating emphasis and focus techniques |
US11544545B2 (en) | 2017-04-04 | 2023-01-03 | Hailo Technologies Ltd. | Structured activation based sparsity in an artificial neural network |
US11551028B2 (en) | 2017-04-04 | 2023-01-10 | Hailo Technologies Ltd. | Structured weight based sparsity in an artificial neural network |
CN108733408A (zh) * | 2017-04-21 | 2018-11-02 | 上海寒武纪信息科技有限公司 | 计数装置及计数方法 |
KR102258414B1 (ko) | 2017-04-19 | 2021-05-28 | 상하이 캠브리콘 인포메이션 테크놀로지 컴퍼니 리미티드 | 처리 장치 및 처리 방법 |
CN108734279B (zh) * | 2017-04-20 | 2021-04-23 | 上海寒武纪信息科技有限公司 | 一种运算装置和方法 |
CN108733348B (zh) | 2017-04-21 | 2022-12-09 | 寒武纪(西安)集成电路有限公司 | 融合向量乘法器和使用其进行运算的方法 |
CN109478144B (zh) * | 2017-07-05 | 2021-12-14 | 上海寒武纪信息科技有限公司 | 一种数据处理装置和方法 |
CN107292458B (zh) * | 2017-08-07 | 2021-09-10 | 北京中星微人工智能芯片技术有限公司 | 一种应用于神经网络芯片的预测方法和预测装置 |
CN107527090A (zh) * | 2017-08-24 | 2017-12-29 | 中国科学院计算技术研究所 | 应用于稀疏神经网络的处理器和处理方法 |
CN107622305A (zh) * | 2017-08-24 | 2018-01-23 | 中国科学院计算技术研究所 | 用于神经网络的处理器和处理方法 |
CN107590533B (zh) * | 2017-08-29 | 2020-07-31 | 中国科学院计算技术研究所 | 一种用于深度神经网络的压缩装置 |
CN107609641B (zh) * | 2017-08-30 | 2020-07-03 | 清华大学 | 稀疏神经网络架构及其实现方法 |
CN107491811A (zh) * | 2017-09-01 | 2017-12-19 | 中国科学院计算技术研究所 | 用于加速神经网络处理器的方法和系统及神经网络处理器 |
JP6957365B2 (ja) * | 2017-09-22 | 2021-11-02 | 株式会社東芝 | 演算装置 |
US11580369B2 (en) | 2017-10-23 | 2023-02-14 | Nec Corporation | Inference apparatus, convolution operation execution method, and program |
CN109522254B (zh) | 2017-10-30 | 2022-04-12 | 上海寒武纪信息科技有限公司 | 运算装置及方法 |
CN107844829A (zh) * | 2017-10-31 | 2018-03-27 | 中国科学院计算技术研究所 | 用于加速神经网络处理器的方法和系统及神经网络处理器 |
CN107729995A (zh) * | 2017-10-31 | 2018-02-23 | 中国科学院计算技术研究所 | 用于加速神经网络处理器的方法和系统及神经网络处理器 |
CN109726807B (zh) * | 2017-10-31 | 2023-11-24 | 上海寒武纪信息科技有限公司 | 神经网络处理器、运算方法及存储介质 |
CN107977704B (zh) * | 2017-11-10 | 2020-07-31 | 中国科学院计算技术研究所 | 权重数据存储方法和基于该方法的神经网络处理器 |
CN107918794A (zh) * | 2017-11-15 | 2018-04-17 | 中国科学院计算技术研究所 | 基于计算阵列的神经网络处理器 |
CN107944555B (zh) * | 2017-12-07 | 2021-09-17 | 广州方硅信息技术有限公司 | 神经网络压缩和加速的方法、存储设备和终端 |
CN111105024B (zh) * | 2017-12-14 | 2024-03-01 | 中科寒武纪科技股份有限公司 | 神经网络处理器板卡及相关产品 |
WO2019114842A1 (zh) * | 2017-12-14 | 2019-06-20 | 北京中科寒武纪科技有限公司 | 一种集成电路芯片装置 |
CN109977071A (zh) * | 2017-12-27 | 2019-07-05 | 北京中科寒武纪科技有限公司 | 神经网络处理器板卡及相关产品 |
CN109993290B (zh) | 2017-12-30 | 2021-08-06 | 中科寒武纪科技股份有限公司 | 集成电路芯片装置及相关产品 |
CN109993292B (zh) | 2017-12-30 | 2020-08-04 | 中科寒武纪科技股份有限公司 | 集成电路芯片装置及相关产品 |
CN109993289B (zh) | 2017-12-30 | 2021-09-21 | 中科寒武纪科技股份有限公司 | 集成电路芯片装置及相关产品 |
WO2019129302A1 (zh) * | 2017-12-30 | 2019-07-04 | 北京中科寒武纪科技有限公司 | 集成电路芯片装置及相关产品 |
CN108171763B (zh) * | 2018-01-15 | 2021-08-13 | 珠海市杰理科技股份有限公司 | 解码系数的存取方法和系统、jpeg解码系数的存取方法 |
US11436483B2 (en) * | 2018-01-17 | 2022-09-06 | Mediatek Inc. | Neural network engine with tile-based execution |
CN108416425B (zh) * | 2018-02-02 | 2020-09-29 | 浙江大华技术股份有限公司 | 一种卷积运算方法及装置 |
US11693627B2 (en) * | 2018-02-09 | 2023-07-04 | Deepmind Technologies Limited | Contiguous sparsity pattern neural networks |
CN110197274B (zh) * | 2018-02-27 | 2020-08-25 | 上海寒武纪信息科技有限公司 | 集成电路芯片装置及相关产品 |
CN110197275B (zh) * | 2018-02-27 | 2020-08-04 | 上海寒武纪信息科技有限公司 | 集成电路芯片装置及相关产品 |
CN110197267B (zh) * | 2018-02-27 | 2020-08-04 | 上海寒武纪信息科技有限公司 | 神经网络处理器板卡及相关产品 |
CN110197264B (zh) * | 2018-02-27 | 2020-08-04 | 上海寒武纪信息科技有限公司 | 神经网络处理器板卡及相关产品 |
CN111767997B (zh) * | 2018-02-27 | 2023-08-29 | 上海寒武纪信息科技有限公司 | 集成电路芯片装置及相关产品 |
CN110197263B (zh) * | 2018-02-27 | 2020-10-09 | 上海寒武纪信息科技有限公司 | 集成电路芯片装置及相关产品 |
CN110197266B (zh) * | 2018-02-27 | 2020-08-04 | 上海寒武纪信息科技有限公司 | 集成电路芯片装置及相关产品 |
CN110197273B (zh) * | 2018-02-27 | 2020-08-25 | 上海寒武纪信息科技有限公司 | 集成电路芯片装置及相关产品 |
WO2019165940A1 (zh) * | 2018-02-27 | 2019-09-06 | 上海寒武纪信息科技有限公司 | 集成电路芯片装置、板卡及相关产品 |
CN110197271B (zh) * | 2018-02-27 | 2020-10-27 | 上海寒武纪信息科技有限公司 | 集成电路芯片装置及相关产品 |
CN111767998A (zh) * | 2018-02-27 | 2020-10-13 | 上海寒武纪信息科技有限公司 | 集成电路芯片装置及相关产品 |
CN111767996B (zh) * | 2018-02-27 | 2024-03-05 | 上海寒武纪信息科技有限公司 | 集成电路芯片装置及相关产品 |
CN110197270B (zh) * | 2018-02-27 | 2020-10-30 | 上海寒武纪信息科技有限公司 | 集成电路芯片装置及相关产品 |
CN108345938A (zh) * | 2018-03-01 | 2018-07-31 | 中国科学院计算技术研究所 | 一种包括比特转换装置的神经网络处理器及其方法 |
CN108171328B (zh) * | 2018-03-02 | 2020-12-29 | 中国科学院计算技术研究所 | 一种神经网络处理器和采用其执行的卷积运算方法 |
CN110245748B (zh) * | 2018-03-09 | 2021-07-13 | 赛灵思电子科技(北京)有限公司 | 卷积神经网络实现方法、装置、硬件加速器、存储介质 |
CN108647774B (zh) * | 2018-04-23 | 2020-11-20 | 瑞芯微电子股份有限公司 | 一种优化稀疏性矩阵运算的神经网络方法和电路 |
CN108665062B (zh) * | 2018-04-28 | 2020-03-10 | 中国科学院计算技术研究所 | 一种基于小波变换减少io开销的神经网络处理系统 |
CN108615074B (zh) * | 2018-04-28 | 2021-04-23 | 中国科学院计算技术研究所 | 基于压缩感知的神经网络处理系统及方法 |
CN108629410B (zh) * | 2018-04-28 | 2021-01-22 | 中国科学院计算技术研究所 | 基于主成分分析降维和/或升维的神经网络处理方法 |
CN108764454B (zh) * | 2018-04-28 | 2022-02-25 | 中国科学院计算技术研究所 | 基于小波变换压缩和/或解压缩的神经网络处理方法 |
CN109117950B (zh) * | 2018-08-01 | 2021-03-09 | 上海天数智芯半导体有限公司 | 基于人工智能设备的分层稀疏张量压缩方法 |
CN110826705B (zh) * | 2018-08-09 | 2022-08-19 | 上海寒武纪信息科技有限公司 | 运算方法、装置及相关产品 |
CN109325590B (zh) * | 2018-09-14 | 2020-11-03 | 中国科学院计算技术研究所 | 用于实现计算精度可变的神经网络处理器的装置 |
CN109492761A (zh) * | 2018-10-30 | 2019-03-19 | 深圳灵图慧视科技有限公司 | 实现神经网络的fpga加速装置、方法和系统 |
CN111126081B (zh) * | 2018-10-31 | 2023-07-21 | 深圳永德利科技股份有限公司 | 全球通用语言终端及方法 |
CN109726798B (zh) * | 2018-12-27 | 2021-04-13 | 北京灵汐科技有限公司 | 一种数据处理方法及装置 |
CN109800869B (zh) * | 2018-12-29 | 2021-03-05 | 深圳云天励飞技术有限公司 | 数据压缩方法及相关装置 |
CN109886416A (zh) * | 2019-02-01 | 2019-06-14 | 京微齐力(北京)科技有限公司 | 集成人工智能模块的系统芯片及机器学习方法 |
CN110046703B (zh) * | 2019-03-07 | 2020-07-31 | 中国科学院计算技术研究所 | 一种用于神经网络的片上存储处理系统 |
CN110097172B (zh) * | 2019-03-18 | 2021-10-29 | 中国科学院计算技术研究所 | 一种基于winograd卷积运算的卷积神经网络数据处理方法及装置 |
CN110046704B (zh) * | 2019-04-09 | 2022-11-08 | 深圳鲲云信息科技有限公司 | 基于数据流的深度网络加速方法、装置、设备及存储介质 |
CN113435591B (zh) * | 2019-08-14 | 2024-04-05 | 中科寒武纪科技股份有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
CN110569970B (zh) * | 2019-09-12 | 2022-03-15 | 合肥工业大学 | 一种应用于卷积神经网络中硬件加速器的数据传输方法 |
CN111832692A (zh) * | 2020-07-14 | 2020-10-27 | Oppo广东移动通信有限公司 | 数据处理方法、装置、终端及存储介质 |
US11874900B2 (en) | 2020-09-29 | 2024-01-16 | Hailo Technologies Ltd. | Cluster interlayer safety mechanism in an artificial neural network processor |
US11221929B1 (en) | 2020-09-29 | 2022-01-11 | Hailo Technologies Ltd. | Data stream fault detection mechanism in an artificial neural network processor |
US11263077B1 (en) | 2020-09-29 | 2022-03-01 | Hailo Technologies Ltd. | Neural network intermediate results safety mechanism in an artificial neural network processor |
US11237894B1 (en) | 2020-09-29 | 2022-02-01 | Hailo Technologies Ltd. | Layer control unit instruction addressing safety mechanism in an artificial neural network processor |
US11811421B2 (en) | 2020-09-29 | 2023-11-07 | Hailo Technologies Ltd. | Weights safety mechanism in an artificial neural network processor |
CN114692833B (zh) * | 2022-03-30 | 2023-11-21 | 广东齐芯半导体有限公司 | 一种卷积计算电路、神经网络处理器以及卷积计算方法 |
CN114817513B (zh) * | 2022-06-29 | 2022-11-15 | 浪潮电子信息产业股份有限公司 | 一种文本答案的确定方法、装置、设备和介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6128609A (en) * | 1997-10-14 | 2000-10-03 | Ralph E. Rose | Training a neural network using differential input |
CN104061445A (zh) * | 2014-07-09 | 2014-09-24 | 中国石油大学(华东) | 一种基于神经网络的管道泄漏检测方法 |
CN105184366A (zh) * | 2015-09-15 | 2015-12-23 | 中国科学院计算技术研究所 | 一种时分复用的通用神经网络处理器 |
-
2016
- 2016-10-27 CN CN201610977182.7A patent/CN106447034B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6128609A (en) * | 1997-10-14 | 2000-10-03 | Ralph E. Rose | Training a neural network using differential input |
CN104061445A (zh) * | 2014-07-09 | 2014-09-24 | 中国石油大学(华东) | 一种基于神经网络的管道泄漏检测方法 |
CN105184366A (zh) * | 2015-09-15 | 2015-12-23 | 中国科学院计算技术研究所 | 一种时分复用的通用神经网络处理器 |
Non-Patent Citations (1)
Title |
---|
"模拟电路神经网络故障诊断方法的研究";陈晓娟;《中国优秀硕博士学位论文全文数据库(博士) 信息科技辑》;20061115;第1-7章 * |
Also Published As
Publication number | Publication date |
---|---|
CN106447034A (zh) | 2017-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106447034B (zh) | 一种基于数据压缩的神经网络处理器、设计方法、芯片 | |
CN106529670B (zh) | 一种基于权重压缩的神经网络处理器、设计方法、芯片 | |
CN106650924B (zh) | 一种基于时间维和空间维数据流压缩的处理器、设计方法 | |
CN107451659B (zh) | 用于位宽分区的神经网络加速器及其实现方法 | |
CN106503791B (zh) | 用于有效神经网络部署的系统和方法 | |
CN107578095B (zh) | 神经网络计算装置及包含该计算装置的处理器 | |
CN107578098A (zh) | 基于脉动阵列的神经网络处理器 | |
CN107609641A (zh) | 稀疏神经网络架构及其实现方法 | |
CN107704922A (zh) | 人工神经网络处理装置 | |
CN106951926A (zh) | 一种混合架构的深度学习系统方法及装置 | |
CN107679621A (zh) | 人工神经网络处理装置 | |
CN108090560A (zh) | 基于fpga的lstm递归神经网络硬件加速器的设计方法 | |
CN108280514A (zh) | 基于fpga的稀疏神经网络加速系统和设计方法 | |
CN110110851A (zh) | 一种lstm神经网络的fpga加速器及其加速方法 | |
CN107092961B (zh) | 一种基于模式频率统计编码的神经网络处理器及设计方法 | |
CN109376843A (zh) | 基于fpga的脑电信号快速分类方法、实现方法及装置 | |
CN109325591A (zh) | 面向Winograd卷积的神经网络处理器 | |
CN107169563A (zh) | 应用于二值权重卷积网络的处理系统及方法 | |
CN109190756A (zh) | 基于Winograd卷积的运算装置及包含该装置的神经网络处理器 | |
CN107491811A (zh) | 用于加速神经网络处理器的方法和系统及神经网络处理器 | |
CN107256424A (zh) | 三值权重卷积网络处理系统及方法 | |
CN107085562A (zh) | 一种基于高效复用数据流的神经网络处理器及设计方法 | |
CN101625735A (zh) | 基于ls-svm分类和回归学习递归神经网络的fpga实现方法 | |
CN110097172A (zh) | 一种基于winograd卷积运算的卷积神经网络数据处理方法及装置 | |
CN107729995A (zh) | 用于加速神经网络处理器的方法和系统及神经网络处理器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |