CN113705794B - 一种基于动态激活位稀疏的神经网络加速器设计方法 - Google Patents
一种基于动态激活位稀疏的神经网络加速器设计方法 Download PDFInfo
- Publication number
- CN113705794B CN113705794B CN202111048239.2A CN202111048239A CN113705794B CN 113705794 B CN113705794 B CN 113705794B CN 202111048239 A CN202111048239 A CN 202111048239A CN 113705794 B CN113705794 B CN 113705794B
- Authority
- CN
- China
- Prior art keywords
- data
- activation
- calculation
- neural network
- bit
- 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
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/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- 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/544—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 for evaluating functions by calculation
- G06F7/5443—Sum of products
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Neurology (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了一种基于动态激活位稀疏的神经网络加速器设计方法,涉及深度神经网络加速器设计领域,包括神经网络加速器的架构、计算阵列组织方式、神经网络加速器中稀疏性数据的表达形式,所述神经网络加速器的架构包括DRAM连接、加载Load单元、有效位检测阵列单元、激活位稀疏计算阵列以及写回Store单元,及有这些单元间的连接形式和数据流方式;所述计算阵列组织方式是指通过对激活数据进行分组,以及组内交叉计算,组间同步计算的组织方式;所述神经网络加速器中稀疏性数据的表达形式是指设计激活数据的检测方式和数据表达形式。本发明提出了一种动态激活位稀疏的神经网络加速器设计方法,并针对激活有效位的数量不平衡问题进行了优化设计。
Description
技术领域
本发明涉及深度神经网络加速器设计领域,尤其涉及一种基于动态激活位稀疏的神经网络加速器设计方法。
背景技术
神经网络中数据具有稀疏性。由于在神经网络中经过了诸如ReLU的激活层等, 使得神经网络的激活数据在分布上存在较多的0元素。另一方面,神经网络的数据分 布中,较多的数据为接近0的元素,经过量化可能转化为0元素,使得神经网络中 的0元素比例进一步提升。据统计,在神经网络中,计算数据尤其是激活数据有很大 比例的0数据,而位稀疏的特性更加明显。在神经网络中,根据稀疏性的数据不同, 稀疏性有两种情况,即权重稀疏性和激活稀疏性。权重稀疏性即预先训练的权重数据 中存在的数据稀疏性,这种稀疏性在神经网络的推理过程中是静态存在的;激活稀疏 性即在推理过程中产生的中间激活数据的稀疏性,由于这种数据的稀疏性是在推理过 程中动态产生的,因此这种稀疏性是动态稀疏性。从统计数据来看,激活稀疏更为显 著。同时,根据稀疏性出现在神经网络中单个数据中的位置不同,稀疏性也可以分为 两类,即值稀疏和位稀疏。值稀疏性是指整个数据为0的性质;位稀疏性指单个数据 中的单个bit为0的性质,是更深层次、细粒度的稀疏性。
现有传统神经网络加速器计算式稀疏性不敏感的。传统神经网络加速器不能利用神经网络数据中大量的0位数据简化计算。在神经网络的数据中,存在着大量的0位 数据。而在传统的神经网络加速器中,由于在处理单元的设计中往往为定点数据的乘 加运算,运算的数据输入为定点(Int8/Int16)等的全部数据长度,这样虽然可以通过乘 法运算一步完成,但忽略了神经网络数据中存在的大量的0位数据。同时由于乘法设 计复杂,面积和功耗开销大,使得加速器的能耗效率受限。
本发明基于对上述稀疏性的研究分析为基础,提出了一种动态激活位稀疏的神经网络加速器设计方法,并针对激活有效位的数量不平衡问题进行了优化设计。
发明内容
有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是如何解决有效位的数量不平衡问题为实现上述目的,本发明提供了一种基于动态激活位稀疏的神经网络加 速器设计方法,其特征在于,包括神经网络加速器的架构、计算阵列组织方式、神经 网络加速器中稀疏性数据的表达形式,所述神经网络加速器的架构包括DRAM连接、 加载Load单元、有效位检测阵列单元、激活位稀疏计算阵列以及写回Store单元,及 有这些单元间的连接形式和数据流方式;所述计算阵列组织方式是指通过对激活数据 进行分组,以及组内交叉计算,组间同步计算的组织方式;所述神经网络加速器中稀 疏性数据的表达形式是指设计激活数据的检测方式和数据表达形式。
进一步地,所述神经网络加速器的架构将所述有效位检测阵列与所述激活位稀疏计算阵列进行流水化的组合,包括激活有效项生成与移位累加计算阵列搭建。
进一步地,所述激活有效项生成在动态位稀疏的神经网络加速器的结构中,分别从激活片上缓存读取激活向量,从权重片上缓存加载权重矩阵,同时所述有效位检测 电路阵列对所述激活向量进行检测,生成所述激活有效项,存入有效项数据池。
进一步地,所述移位累加计算阵列的搭建由PU组成的计算核心,以及基于移位 累加PE组成的PU阵列;其中所述PE是计算阵列的基本单元,完成位串行计算的单 元;所述PU用来部署所述激活向量和一个权重向量,完成行向量和列向量的计算累 加;不同的所述PU组成核心,完成不同所述权重向量与所述激活向量的运算。
进一步地,所述计算阵列组织方式将所述激活向量内的所述激活数据进行分组,并在组内建立交叉计算机制;包括在分组的内部,所述激活数据的有效项包含激活通 道信息,组内可以进行交叉计算,通过所述激活通道的信息对权重进行选择并与之对 应进行移位累加;在不同分组中,需要进行同步,仅当所有的分组完成计算后,真个 计算模块才可加载下一组数据进行计算。
进一步地,所述神经网络加速器中稀疏性数据的表达形式是通过对所述激活数据分析,形成bit位置信息以及激活数据通道信息的有效位表达数据项。
进一步地,所述激活数据分析是指对于单个激活数据,记录所述bit位置信息;
对于所述激活数据本身,将所述激活数据表示为有效的项,使得计算仅针对有效数据;对于ReLU等激活函数得到的非负所述激活数据,可以仅使用有效所述bit位置 信息表述。
进一步地,所述激活数据通道信息是指对于激活分组的数据,记录组内的所述激活通道信息;在激活分组的策略中,需要将激活与权重对应,在激活的有效项的数据 中,将保存有效项所对应的激活通道的信息与权重对应。
进一步地,所述方法包括以下步骤:
步骤1、卷积运算在TVM的编译框架下转化为MVM(向量矩阵乘)的形式,并 生成加速器控制指令,并将卷积计算的数据保存在片外的DRAM中,等待加速器读取;
步骤2、该发明加速器在接收到控制核心的指令后,首先LOAD模块从DRAM中 加载计算所需的所述激活数据和权重数据到片上缓存;
步骤3、在接到控制核心的MVM计算指令后,计算模块开始计算,首先计算模 块从片上缓存读取本次计算的所述激活向量和所述权重矩阵,经过位串行的计算后, 在若干周期后得到计算的结果,保存到输出缓存中;
步骤4、在接到控制核心的Store指令后,Store模块将保存在输出Buffer中的计算结果读回DRAM中,即为卷积计算的结果。
进一步地,所述步骤3还包括:
步骤3.1、有效位检测:在读取到计算所需的所述激活向量和所述权重矩阵后首先将所述激活向量经过所述有效项检测电路阵列,将16个所述激活数据分别表示为激活 有效项的形式,为了激活分组,并标记激活通道信息;
步骤3.2、移位累加阵列分别从对应的组内激活有效项的数据池中获取有效项并和 相应的权重数据进行移位累加运算,并将在同一激活组内的结果进行累加;
步骤3.3、属于同一权重通道,不同激活组的部分和结果经由加法树进行累加计算, 计算数据保存。
本发明提出一种动态激活位稀疏的神经网络加速器设计方法,通过对激活数据进行有效位的动态检测和位串行计算,使得加速器在计算过程中对激活无效位的跳过, 从而提升了神经网络加速器的计算效率。同时为了解决不同激活数据中有效位数量不 同导致的PE(Processing Element)空闲,PE利用率低下的问题,该发明利用激活分 组的方法,有效提高了PE的利用率。
以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。
附图说明
图1是本发明的一个较佳实施例的整体架构;
图2是本发明的一个较佳实施例的卷积与MVM计算方式;
图3是本发明的一个较佳实施例的激活有效项表示形式;
图4是本发明的一个较佳实施例的稀疏位串行计算数据流;
图5是本发明的一个较佳实施例的激活分组结构及数据流;
图6是本发明的一个较佳实施例的Resnet18中主要卷积层在该发明中相对传统加速器VTA的加速比;
图7是本发明的一个较佳实施例的在不同激活分组策略下不同神经网络的加速比;
图8是本发明的一个较佳实施例的在不同激活分组策略下不同神经网络的效率及与其他值稀疏加速器的等效对比;
图9是本发明的一个较佳实施例的PU架构。
具体实施方式
以下参考说明书附图介绍本发明的多个优选实施例,使其技术内容更加清楚和便于理解。本发明可以通过许多不同形式的实施例来得以体现,本发明的保护范围并非 仅限于文中提到的实施例。
在附图中,结构相同的部件以相同数字标号表示,各处结构或功能相似的组件以相似数字标号表示。附图所示的每一组件的尺寸和厚度是任意示出的,本发明并没有 限定每个组件的尺寸和厚度。为了使图示更清晰,附图中有些地方适当夸大了部件的 厚度。
在神经网络推理中,卷积运算是神经网络的重要的运算组成,且占用神经网络推理运算的大部分算力。在卷积层中,卷积计算可以表示为:
激活A与权重W通过卷积运算得到输出O。概括下来,卷积层的运算可以表示为 多层循环的形式,而这些循环的层级之间,可以自由地交换顺序,因此,对于卷积运 算可以转化为一系列的内积运算。如图2所示,本发明将激活的通道维度中的m个数 据,与k个权重核的相应的激活通道数据进行对应的乘积运算,并进行累加,得到不 同输出特征图,即表达为向量矩阵乘(Matrix Vector Multiplication,MVM)的形式。 因此可以通过一系列的MVM运算,来实现神经网络中卷积层的计算。
为了能够利用神经网络中的激活数据位稀疏性来深层次提升神经网络加速器在计 算上的效率,本发明使用移位累加单元取代了传统基于乘累加(Multiply andAccumulate,MAC)单元,用来实现在激活上的位串行运算。这样不仅可以挖掘神经 网络数据中的0位数据,而对于0值元素,由于其所有的位均为0,也能够在位串行 的计算中很快跳过。因此,通过位串行计算实现位稀疏的方式同样对值稀疏的数据有 效。
对于一个激活数据,需要将其分解为一系列的项,每一条项包含激活数据的符号位s(0表示正值,1表示负值),数据位v(0或者1,即表示该位的位置信息),和bit 坐标位置信息e。如图3所示,以8-bit数据00011010为例,其可以表示为对应的8 个项。
而对于值v为0的项,其对于计算是没有贡献的,因此,仅值v为1的项被记录, 这样可以使得记录项减少,减少不必要的运算。因此如图3中的数据仅需要保存v值 为1的三项。
对于负值,在硬件的表示中,往往表示为数据的补码形式,这样会造成负值数据中位为1的数据很多。而对于负数,这些1是无效计算,因此需要记录符号位,转化 为正值的方式。
而对于激活数据而言,ReLU激活函数是常用的激活函数,本发明进一步地对使 用该类函数的激活进行表示简化,对于激活值仅为正值的数据,省略其符号位,可以 仅通过位置字段信息的方式表示,在图3中仅保存红框所示的1/3/4三个有效的位置字 段信息。
对于稀疏性的神经网络,本发明提出了动态跳过所有的激活零位的数据流架构来实现,首先将激活数据转化为一系列的有效项的表示形式。通过这些有效项分别与对 应权重进行移位累加计算,即可组成激活位稀疏的计算流程。
如图4所示,来自m个不同激活通道的n位激活数据在多周期内转换为一系列有 效项。计算阵列处理来自不同内核的具有相应权重的有效项目,结果将作为临时结果 累加到输出或部分和。
激活分组用于解决不同激活在位串行计算中由于有效项的数量不一致导致的计算 元素PE空闲、利用率低的问题。
在基于MVM的加速器计算阵列的数据流设计中,对于1*m的激活数据,需要等 到m个激活数据全部计算完成才能进行下一组数据的计算,这样导致只有当拥有最多 的有效项的激活数据完成时,下一组数据块才能计算,其他导致PE的计算效率低下。
针对上述的问题,本发明提出激活分组的概念来解决上述问题导致的PE利用率低下的问题。首先将m个激活数据分成p组,每组中包含q=m/p个激活数据,通过 在这q个激活数据中进行数据缓存和数据交换,使得空闲下来的PE能够完成其他激 活通道的计算请求,减少PE的空闲时间,提高利用效率。
如图5所示,描述了两个分组的数据流信息。首先,通过对激活进行多级并行有 效数据检测,同时获取更多的激活有效数据项,为后续的在不同激活计算通道上的提 供有效激活数据支撑。在有效项数据池的数据包含了所属激活数据通道信息以及数据 的bit位置信息,通过激活通道信息,选择对应的权重数据进行移位累加计算,得到正 确的计算结果。
在分组的内部,计算可以通过对权重的选择信号进行交叉计算。比如在第一个激活通道的的数据计算完成后,对应的第一个PE可以为第2,3...q-1激活计算通道待计算 的数据进行移位累加计算,而最终的结果需要累加到同一个中间结果中,因此不需要 对其进行包含位置信息的输出。
在不同的分组中,激活数据与计算不存在交换,这样可以减少对激活有效位的检测规模需求,同时减少对权重的复选的互联线的规模。在不同的分组之间进行整体的 同步,比如上面的两个分组,当两个分组全部计算完成后,整体数据块的计算即完成。
如图1所示,搭建了神经网络加速器的整体架构,描述了激活位稀疏的神经网络加速器的计算流程。整体上来看,该发明计算阵列包含多个计算单元(Processing Unit,PU),每个PU包含多个PEs,同一PU内的计算结果累加,不同PU计算不同的输出 结果。首先权重和初始的激活输入通过load指令从片外的DRAM搬到片上的激活 buffer和权重buffer,激活数据经过一系列的有效位检测阵列获取激活的有效位数据 项,并表示为前面提到的有效项形式,和激活的通道信息一起保存到激活有效项pool 里,每个PE从激活有效项的pool中获取计算激活数据并根据有效项的通道信息从权 重的buffer中分别获取对应的权重数据,每个PU的计算结果缓存到输出buffer,通过 store指令,存回到DRAM的输出区,完成卷积计算。
如图9所示,表示一个PU的架构图。在一个PU中,完成了一个1*m激活和m*1 个权重的计算过程,包含了m个PEs、一系列的激活有效位检测电路、有效项的数据 池以及结构化的加法树层次等。
本发明选取DIGILENT ZYBO-z7的FPGA平台实现了基于动态激活位稀疏的神经 网络加速器的设计,其包含1个计算核心,16个PUs和256个PEs,并对基于动态激 活位稀疏方法实现的神经网络加速器进行评估。DIGILENT ZYBO-Z7上集成Xilinx ZYNQ-7020芯片和ARM Cortex-A9的处理器核。ARM Cortex-A9处理器上移植Ubuntu 18.04操作系统,实现对整个硬件后端的控制。
借助FPGA资源利用率以及基于Design Compile和saed32rvt对加速器的主要组件的面积进行评估。在性能评估上,借助开源TVM神经网络编译平台以及提出的VTA Runtime等软件框架,生成加速器的控制指令,控制基于本发明在FPGA上实现的动 态激活位稀疏的神经网络加速器。同时以Resnet18、Resnet50以及Vgg16等神经网络 以及ILSVRC2012数据集中选取部分真实神经网络数据为输入进行性能评估。
基于该发明在FPGA上的实现,表1显示了FPGA平台实现与VTA相比的 FPGA资源利用率。为了使结果更有意义,在评估时,该发明将内存大小设置为一致。 与VTA相比,该发明的加速器中使用的DSP数量急剧减少,而LUT的使用量比 VTA多,因为采用了移位累加的计算方式。
表1.FPGA资源利用率对比
基于综合工具对该发明实现中主要的组成部分进行面积评估,其结果如表2所示。从表中可以看到,片上缓存是面积的主要消耗。相对于VTA和其他传统加速器中使 用的MAC单元,该发明使用的移位累加单元具有显着的面积减少,但设计实现中需 要更多的移位累加模块。有效位检测模块的面积、激活有效项池等不会带来明显的额 外面积开销。
表2.主要组成模块面积对比(um2)
为了评估评估激活分组情况对神经网络加速器的影响,该发明基于resnet18中主要的卷积层对不同的分组策略(group=1/2/4/8/16)进行了评估,group=1表示1个激 活数据1组,没有进行分组,group=16表示16个激活数据一组。图6展示在不同激 活分组的策略对加速器实现的加速效果的影响的结果。
该发明通过运行由TVM编译的神经网络(Neural Networks,NN)来评估加速器 的性能,并以传统的神经网络加速器VTA为参考作归一化处理。在图7中,统计了 一些NN的位稀疏度,resnet18、resnet50和vgg16中的位稀疏度分别为20.2%、 17.6%、24.3%,这意味着其中有20.2%、17.6%、24.3%的激活有效项。当group=4时, NN的加速比均超过2.26倍,同时在resnet50上使用group=8获得了超过3.2倍 的加速。
该发明同时使用不同组策略评估了加速器实现对于面积的效率。效率的计算通过加速比与面积归一化的比值来表征。图8显示该发明设计实现了超过2.0倍的效率提 升。表明该发明的设计中额外的模块带来的面积开销对该发明的效率影响有限。
Claims (6)
1.一种基于动态激活位稀疏的神经网络加速器设计方法,其特征在于,包括神经网络加速器的架构、计算阵列组织方式、神经网络加速器中稀疏性数据的表达形式,所述神经网络加速器的架构包括DRAM连接、加载Load单元、有效位检测阵列单元、激活位稀疏计算阵列以及写回Store单元,及有这些单元间的连接形式和数据流方式;所述计算阵列组织方式是指通过对激活数据进行分组,以及组内交叉计算,组间同步计算的组织方式;所述神经网络加速器中稀疏性数据的表达形式是指设计激活数据的检测方式和数据表达形式;
所述神经网络加速器的架构将所述有效位检测阵列单元与所述激活位稀疏计算阵列进行流水化的组合,包括激活有效项生成与移位累加计算阵列搭建;
所述激活有效项生成在动态位稀疏的神经网络加速器的结构中,分别从激活片上缓存读取激活向量,从权重片上缓存加载权重矩阵,同时所述有效位检测阵列单元对所述激活向量进行检测,生成所述激活有效项,存入有效项数据池;
所述移位累加计算阵列的搭建由PU组成的计算核心,以及基于移位累加PE组成的PU阵列;其中所述PE是计算阵列的基本单元,完成位串行计算的单元;所述PU用来部署所述激活向量和一个权重向量,完成行向量和列向量的计算累加;不同的所述PU组成核心,完成不同所述权重向量与所述激活向量的运算;
所述计算阵列组织方式将所述激活向量内的所述激活数据进行分组,并在组内建立交叉计算机制;在分组的内部,所述激活数据的有效项包含激活通道信息,组内可以进行交叉计算,通过所述激活通道的信息对权重进行选择并与之对应进行移位累加;在不同分组中,需要进行同步,仅当所有的分组完成计算后,整个计算模块才可加载下一组数据进行计算。
2.如权利要求1所述的一种基于动态激活位稀疏的神经网络加速器设计方法,其特征在于,所述神经网络加速器中稀疏性数据的表达形式是通过对所述激活数据分析,形成bit位置信息以及激活数据通道信息的有效位表达数据项。
3.如权利要求2所述的一种基于动态激活位稀疏的神经网络加速器设计方法,其特征在于,所述激活数据分析是指对于单个激活数据,记录所述bit位置信息;
对于所述激活数据本身,将所述激活数据表示为有效的项,使得计算仅针对有效数据;对于ReLU等激活函数得到的非负所述激活数据,可以仅使用有效所述bit位置信息表述。
4.如权利要求3所述的一种基于动态激活位稀疏的神经网络加速器设计方法,其特征在于,所述激活数据通道信息是指对于激活分组的数据,记录组内的所述激活通道信息;在激活分组的策略中,需要将激活与权重对应,在激活的有效项的数据中,将保存有效项所对应的激活通道的信息与权重对应。
5.如权利要求4所述的一种基于动态激活位稀疏的神经网络加速器设计方法,其特征在于,所述方法包括以下步骤:
步骤1、卷积运算在TVM的编译框架下转化为向量矩阵乘MVM的形式,并生成加速器控制指令,并将卷积计算的数据保存在片外的DRAM中,等待加速器读取;
步骤2、加速器在接收到控制核心的指令后,首先LOAD模块从DRAM中加载计算所需的所述激活数据和权重数据到片上缓存;
步骤3、在接到控制核心的MVM计算指令后,计算模块开始计算,首先计算模块从片上缓存读取本次计算的所述激活向量和所述权重矩阵,经过位串行的计算后,在若干周期后得到计算的结果,保存到输出缓存中;
步骤4、在接到控制核心的Store指令后,Store模块将保存在输出Buffer中的计算结果读回DRAM中,即为卷积计算的结果。
6.如权利要求5所述的一种基于动态激活位稀疏的神经网络加速器设计方法,其特征在于,所述步骤3还包括:
步骤3.1、有效位检测:在读取到计算所需的所述激活向量和所述权重矩阵后首先将所述激活向量经过所述有效位检测阵列单元,将16个所述激活数据分别表示为激活有效项的形式,为了激活分组,并标记激活通道信息;
步骤3.2、移位累加阵列分别从对应的组内激活有效项的数据池中获取有效项并和相应的权重数据进行移位累加运算,并将在同一激活组内的结果进行累加;
步骤3.3、属于同一权重通道,不同激活组的部分和结果经由加法树进行累加计算,计算数据保存到中间结果缓存并经过量化保存到输出缓存。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111048239.2A CN113705794B (zh) | 2021-09-08 | 2021-09-08 | 一种基于动态激活位稀疏的神经网络加速器设计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111048239.2A CN113705794B (zh) | 2021-09-08 | 2021-09-08 | 一种基于动态激活位稀疏的神经网络加速器设计方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113705794A CN113705794A (zh) | 2021-11-26 |
CN113705794B true CN113705794B (zh) | 2023-09-01 |
Family
ID=78659197
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111048239.2A Active CN113705794B (zh) | 2021-09-08 | 2021-09-08 | 一种基于动态激活位稀疏的神经网络加速器设计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113705794B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116167425B (zh) * | 2023-04-26 | 2023-08-04 | 浪潮电子信息产业股份有限公司 | 一种神经网络加速方法、装置、设备及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109993297A (zh) * | 2019-04-02 | 2019-07-09 | 南京吉相传感成像技术研究院有限公司 | 一种负载均衡的稀疏卷积神经网络加速器及其加速方法 |
CN112734021A (zh) * | 2020-12-31 | 2021-04-30 | 杭州电子科技大学 | 一种基于位稀疏计算的神经网络加速方法 |
CN112784956A (zh) * | 2019-11-04 | 2021-05-11 | 三星电子株式会社 | 用于处理神经网络的数据的方法和设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200349106A1 (en) * | 2019-05-01 | 2020-11-05 | Samsung Electronics Co., Ltd. | Mixed-precision neural-processing unit tile |
US11714998B2 (en) * | 2020-05-05 | 2023-08-01 | Intel Corporation | Accelerating neural networks with low precision-based multiplication and exploiting sparsity in higher order bits |
-
2021
- 2021-09-08 CN CN202111048239.2A patent/CN113705794B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109993297A (zh) * | 2019-04-02 | 2019-07-09 | 南京吉相传感成像技术研究院有限公司 | 一种负载均衡的稀疏卷积神经网络加速器及其加速方法 |
CN112784956A (zh) * | 2019-11-04 | 2021-05-11 | 三星电子株式会社 | 用于处理神经网络的数据的方法和设备 |
CN112734021A (zh) * | 2020-12-31 | 2021-04-30 | 杭州电子科技大学 | 一种基于位稀疏计算的神经网络加速方法 |
Non-Patent Citations (1)
Title |
---|
稀疏神经网络和稀疏神经网络加速器的研究;周徐达;《中国博士学位论文全文数据库 信息科技辑》;第1-60页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113705794A (zh) | 2021-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107608715B (zh) | 用于执行人工神经网络正向运算的装置及方法 | |
Khan et al. | NPE: An FPGA-based overlay processor for natural language processing | |
CN111459877A (zh) | 基于FPGA加速的Winograd YOLOv2目标检测模型方法 | |
CN111242289A (zh) | 一种规模可扩展的卷积神经网络加速系统与方法 | |
CN110705703B (zh) | 基于脉动阵列的稀疏神经网络处理器 | |
CN111488983A (zh) | 一种基于fpga的轻量级cnn模型计算加速器 | |
CN110851779B (zh) | 用于稀疏矩阵运算的脉动阵列架构 | |
CN110543939B (zh) | 一种基于fpga的卷积神经网络后向训练的硬件加速实现装置 | |
CN111898733A (zh) | 一种深度可分离卷积神经网络加速器架构 | |
CN113283587B (zh) | 一种Winograd卷积运算加速方法及加速模块 | |
CN113705794B (zh) | 一种基于动态激活位稀疏的神经网络加速器设计方法 | |
Que et al. | Recurrent neural networks with column-wise matrix–vector multiplication on FPGAs | |
Shu et al. | High energy efficiency FPGA-based accelerator for convolutional neural networks using weight combination | |
CN113313244B (zh) | 面向加法网络的近存储神经网络加速器及其加速方法 | |
CN114519425A (zh) | 一种规模可扩展的卷积神经网络加速系统 | |
Tao et al. | Hima: A fast and scalable history-based memory access engine for differentiable neural computer | |
CN117454946A (zh) | 支持非结构化稀疏矩阵计算的张量核架构系统 | |
Lee et al. | DBPS: Dynamic Block Size and Precision Scaling for Efficient DNN Training Supported by RISC-V ISA Extensions | |
CN115081608A (zh) | 基于自适应分配的神经网络加速器实现系统和方法 | |
CN115222028A (zh) | 基于fpga的一维cnn-lstm加速平台及实现方法 | |
CN109343826B (zh) | 一种面向深度学习的可重构处理器运算单元 | |
CN114510217A (zh) | 处理数据的方法、装置和设备 | |
Wang et al. | An FPGA-based reconfigurable CNN training accelerator using decomposable Winograd | |
CN113298236B (zh) | 基于数据流结构的低精度神经网络计算装置及加速方法 | |
CN112230884B (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 |