CN111507473B - 一种基于Crossbar架构的剪枝方法及系统 - Google Patents
一种基于Crossbar架构的剪枝方法及系统 Download PDFInfo
- Publication number
- CN111507473B CN111507473B CN202010310388.0A CN202010310388A CN111507473B CN 111507473 B CN111507473 B CN 111507473B CN 202010310388 A CN202010310388 A CN 202010310388A CN 111507473 B CN111507473 B CN 111507473B
- Authority
- CN
- China
- Prior art keywords
- pruning
- crossbar
- weight matrix
- row
- 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
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/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- 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
- G06N3/065—Analogue 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)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Complex Calculations (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及一种基于Crossbar架构的剪枝方法及系统,该方法包括:对神经网络当前层待处理的权值矩阵进行不考虑架构因素的结构化剪枝,得到第一权值矩阵;权值矩阵为神经网络的权值矩阵;根据第一权值矩阵的尺寸与crossbar的尺寸,确定剪枝方案;剪枝方案包括:基于区块的结构化剪枝、交叉阵列行剪枝和交叉阵列列剪枝;根据剪枝方案对第一权值矩阵进行剪枝,得到第二权值矩阵;第二权值矩阵用于映射至加速器中的crossbar阵列,通过加速器对神经网络进行加速。本发明可以降低Crossbar的资源占用,降低硬件资源的的浪费。
Description
技术领域
本发明涉及网络加速领域,特别是涉及一种基于Crossbar架构的剪枝方法及系统。
背景技术
当前深度神经网络(DNN)被广泛应用于图像分类、目标检测、语义分割、语音识别等领域。但由于主流神经网络的权值尺寸和计算量很大,所以许多神经网络加速器被设计出来以利用神经网络中卷积层和全连接层计算时的并行性来加速网络的推理过程,其中一种典型的加速器是基于Crossbar架构的向量-矩阵乘法加速器。
图1为典型基于交叉阵列(Crossbar)架构的神经网络加速器的架构图,芯片中包含多个小片(Tile),其每个片(Tile)都由多个互相连接的核(Core)组成。每个核(Core)内部都有一个Crossbar以及一些外围电路。计算时这些Crossbar中每个单元(cell)都可以同时完成一次乘法运算,而同一列上的乘法结果可以被很容易地累加起来,故而这种架构可以被用于加速神经网络的推理。
图2为Crossbar架构加速器完成卷积计算的示意图。假设这个卷积层有2个2*2的滤波器,在img2col转换之后可以得到一个4*2的权值矩阵,权值矩阵的每一列代表一个滤波器。另外假设这里有两个2*4的交叉阵列,每个单元可以表示2比特。而这些权值均可以用4比特来表示,所以这个权值矩阵可以按照图2中的方式被映射到这两个交叉阵列上。每一个权值会用两个单元来存储,属于同一个滤波器的权值会根据对应关系被存在不同的交叉阵列中相同的列上。而这些滤波器的输入是相同的,比如这些滤波器第一个周期的输入是特征图中的2*2的框内的内容,则其对应输入也会被转换为一个4*1的向量,其中前两行被送入第一个交叉阵列,后两行被送入第二个交叉阵列,这些单元可以同时进行乘法运算且同一列上的计算结果可以被累加,所以Crossbar架构的神经网络加速器可以利用卷积层计算的并行性从而充分的加速卷积计算。全连接层也可以以相似的方法进行处理。
由于典型的神经网络由于模型尺寸大,利用基于Crossbar架构的加速器来对一个实际的网络进行加速时会消耗大量的Crossbar资源。而神经网络剪枝是减小模型尺寸的一种有效的方法。许多研究表明,神经网络的权值中有着非常多的冗余元素。在训练过程中,这些冗余元素可以通过稀疏算法进行查找和修剪(即置为0),而神经网络的精度不会有实质的下降。有的现有技术中通过将每个Crossbar中每一列权值作为基本的剪枝粒度,将剩下的列进行左移补齐,该方法最终得到了剪枝结果,一方面,该算法只利用了神经网络权值矩阵列方向上的稀疏性,而不能利用行方向上的稀疏性,故而其压缩比会被限制。另一方面,该算法在对剪枝结果中剩余的权值进行左移补齐操作后,一些Crossbar中大部分的单元都处于空闲状态,浪费了硬件资源。
发明内容
本发明的目的是提供一种基于Crossbar架构的剪枝方法及系统,以降低Crossbar的资源占用,降低硬件资源的的浪费。
为实现上述目的,本发明提供了如下方案:
一种基于Crossbar架构的剪枝方法,包括:
对神经网络当前层待处理的权值矩阵进行不考虑架构因素的结构化剪枝,得到第一权值矩阵;所述待处理的权值矩阵为神经网络的权值矩阵,所述待处理的权值矩阵的每一列代表一个滤波器;
根据所述第一权值矩阵的尺寸与crossbar的尺寸,确定剪枝方案;所述剪枝方案包括:基于区块的结构化剪枝、交叉阵列行剪枝和交叉阵列列剪枝;
根据所述剪枝方案对所述第一权值矩阵进行剪枝,得到第二权值矩阵;所述第二权值矩阵用于映射至加速器中的crossbar阵列,通过所述加速器对所述神经网络进行加速。
可选的,所述对神经网络当前层待处理的权值矩阵进行不考虑架构因素的结构化剪枝,得到第一权值矩阵,之后还包括:
根据所述当前层的第一权值矩阵对神经网络进行后处理,压缩所述神经网络。
可选的,所述根据所述当前层的第一权值矩阵对神经网络进行后处理,压缩所述神经网络,具体包括:
当当前层的第k个滤波器被删除时,将当前层的下一层中第k个通道的权值删除;
当当前层的第k个通道被删除时,将当前层的上一层中第k个滤波器删除。
可选的,所述根据所述第一权值矩阵的尺寸与crossbar的尺寸,确定剪枝方案,具体包括:
计算所述第一权值矩阵的宽度与所述crossbar的宽度之比,得到第一数值;
计算所述第一权值矩阵的高度与所述crossbar的高度之比,得到第二数值;
比较第一数值与比值阈值的大小关系以及第二数值与比值阈值的大小关系;
当第一数值大于比值阈值且第二数值大于比值阈值时,将所述基于区块的结构化剪枝确定为剪枝方案;
当第一数值大于比值阈值且第二数值不大于比值阈值时,将所述交叉阵列列剪枝确定为剪枝方案;
当第一数值不大于比值阈值且第二数值大于比值阈值时,将所述交叉阵列行剪枝确定为剪枝方案;
当第一数值小于比值阈值且第二数值小于比值阈值时,将所述交叉阵列列剪枝或所述交叉阵列行剪枝确定为剪枝方案。
可选的,所述根据所述剪枝方案对所述第一权值矩阵进行剪枝,得到第二权值矩阵,具体包括:
确定所述第一权值矩阵映射至所述加速器中的crossbar阵列时每个crossbar对应的权值分布矩阵;第一权值矩阵映射至所述加速器中的crossbar阵列中每一个crossbar时与初始待处理的权值矩阵映射至crossbar阵列的映射规则相同。
当剪枝方案为基于区块的结构化剪枝时,将所述第一权值矩阵均匀划分为x*y个区块;所述区块的尺寸大于所述crossbar的尺寸,所述加速器中的crossbar阵列中被映射crossbar的个数为x*y;
按照所述crossbar的尺寸,对每个所述区块进行结构化剪枝,得到所述第二权值矩阵;
当剪枝方案为交叉阵列列剪枝时,确定每个crossbar对应的权值分布矩阵中每一列权值的列重要性度量因子;
将列重要性度量因子小于列阈值的列权值删除,并将所述权值分布矩阵中被删除列右侧的所有列左移至删除列所在的空白位置,得到所述第二权值矩阵;所述列阈值可调节;
当剪枝方案为交叉阵列行剪枝时,确定每个crossbar对应的权值分布矩阵中每一行权值的行重要性度量因子;
将行重要性度量因子小于行阈值的行权值删除,并将所述权值分布矩阵中被删除行下方的所有行上移至删除行所在的空白位置,得到所述第二权值矩阵;所述行阈值可调节。
可选的,根据所述剪枝方案对所述第一权值矩阵进行剪枝,得到第二权值矩阵,之后还包括:
采用XRST模块记录所述第二权值矩阵的行稀疏性;所述XRST模块位于所述crossbar的外围电路中,所述XRST模块用于根据所述第二权值矩阵的行稀疏性将被删除的行对应的输入跳过;
采用XCST模块记录所述第二权值矩阵的列稀疏性;所述XCST模块位于所述crossbar的外围电路中,所述XCST模块用于根据所述第二权值矩阵的列稀疏性将被删除的列对应的输出位置插入0,以复原所有输出的真实位置。
本发明还提供一种基于Crossbar架构的剪枝系统,包括:
结构化剪枝模块,用于对神经网络当前层待处理的权值矩阵进行不考虑架构因素的结构化剪枝,得到第一权值矩阵;所述权值矩阵为神经网络的权值矩阵;
剪枝方案确定模块,用于根据所述第一权值矩阵的尺寸与crossbar的尺寸,确定剪枝方案;所述剪枝方案包括:基于区块的结构化剪枝、交叉阵列行剪枝和交叉阵列列剪枝;
剪枝模块,用于根据所述剪枝方案对所述第一权值矩阵进行剪枝,得到第二权值矩阵;所述第二权值矩阵用于映射至加速器中的crossbar阵列,通过所述加速器对所述神经网络进行加速。
可选的,还包括:
后处理模块,用于对神经网络当前层待处理的权值矩阵进行不考虑架构因素的结构化剪枝,得到第一权值矩阵之后,当当前层的第k个滤波器被删除时,将当前层的下一层中第k个通道的权值删除;当当前层的第k个通道被删除时,将当前层的上一层中第k个滤波器删除。
可选的,所述剪枝方案确定模块具体包括:
第一数值计算单元,用于计算所述第一权值矩阵的宽度与所述crossbar的宽度之比,得到第一数值;
第二数值计算单元,用于计算所述第一权值矩阵的高度与所述crossbar的高度之比,得到第二数值;
比较单元,用于比较第一数值与比值阈值的大小关系以及第二数值与比值阈值的大小关系;
剪枝方案第一确定单元,用于当第一数值大于比值阈值且第二数值大于比值阈值时,将所述基于区块的结构化剪枝确定为剪枝方案;
剪枝方案第二确定单元,用于当第一数值大于比值阈值且第二数值不大于比值阈值时,将所述交叉阵列列剪枝确定为剪枝方案;
剪枝方案第三确定单元,用于当第一数值不大于比值阈值且第二数值大于比值阈值时,将所述交叉阵列行剪枝确定为剪枝方案;
剪枝方案第四确定单元,用于当第一数值小于比值阈值且第二数值小于比值阈值时,将所述交叉阵列列剪枝或所述交叉阵列行剪枝确定为剪枝方案。
可选的,所述剪枝模块具体包括:
映射确定单元,用于确定所述第一权值矩阵映射至所述加速器中的crossbar阵列时每个crossbar对应的权值分布矩阵;
区块划分单元,用于当剪枝方案为基于区块的结构化剪枝时,将所述第一权值矩阵均匀划分为x*y个区块;所述区块的尺寸大于所述crossbar的尺寸,所述加速器中的crossbar阵列中被映射crossbar的个数为x*y;
第一剪枝单元,用于按照所述crossbar的尺寸,对每个所述区块进行结构化剪枝,得到所述第二权值矩阵;
列重要性度量因子确定单元,用于当剪枝方案为交叉阵列列剪枝时,确定每个crossbar对应的权值分布矩阵中每一列权值的列重要性度量因子;
第二剪枝单元,用于将列重要性度量因子小于列阈值的列权值删除,并将所述权值分布矩阵中被删除列右侧的所有列左移至删除列所在的空白位置,得到所述第二权值矩阵;所述列阈值可调节;
行重要性度量因子确定单元,用于当剪枝方案为交叉阵列行剪枝时,确定每个crossbar对应的权值分布矩阵中每一行权值的行重要性度量因子;
第三剪枝单元,用于将行重要性度量因子小于行阈值的行权值删除,并将所述权值分布矩阵中被删除行下方的所有行上移至删除行所在的空白位置,得到所述第二权值矩阵;所述行阈值可调节。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明考虑硬件架构采用三种细粒度的剪枝方案,这种细粒度给剪枝提供了额外的灵活性,从而在维持相同精度下提高了压缩比。具体选择细粒度剪枝方案时,该算法会协同考虑软硬件因素,通过分析权值矩阵尺寸以及Crossbar尺寸来分析各维度剪枝对于减少Crossbar数量的贡献,从而选择一种最合适的剪枝方案,进而降低Crossbar的资源占用,降低硬件资源的的浪费。而且,本发明在进行细粒度的剪枝时还考虑了对齐因素。对于基于区块的结构剪枝方法来说,每个区块进行剪枝后可以正好占满一个Crossbar;对于交叉阵列行剪枝和交叉阵列列剪枝来说,可以在剪枝时动态的调整剪枝阈值,使剪枝完成的权值映射到Crossbar时使每个Crossbar被尽可能的占满,从而解决了对齐问题。
此外,为了能够充分利用神经网络稀疏性,尽可能的压缩神经网络,减少需要的Crossbar的数量,本发明通过结构化剪枝后处理的方案,利用神经网络前后层间输入输出对应关系,进一步压缩神经网络,删除一些常规基于重要性度量因子剪枝算法不能删除的权值,可以大幅度的压缩神经网络并产生Crossbar架构可利用的稀疏性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为基于典型基于交叉阵列(Crossbar)架构的神经网络加速器的架构图;
图2为Crossbar架构加速器完成卷积计算的示意图;
图3为本发明基于Crossbar架构的剪枝方法的流程示意图;
图4为本发明不考虑架构因素的结构化剪枝示意图;
图5为本发明结构化剪枝后处理的示意图;
图6为本发明三种剪枝方案的选择示意图;
图7为本发明交叉阵列行剪枝的示意图;
图8为本发明交叉阵列列剪枝的示意图;
图9为本发明基于区块的结构化剪枝的示意图;
图10为本发明crossbar外围电路数据流示意图;
图11为本发明XRST模块的硬件示意图;
图12为本发明XCST模块的硬件示意图;
图13为本发明基于Crossbar架构的剪枝系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
图3为本发明基于Crossbar架构的剪枝方法的流程示意图。如图3所示,本发明基于Crossbar架构的剪枝方法包括以下步骤:
步骤100:对神经网络当前层待处理的权值矩阵进行不考虑架构因素的结构化剪枝,得到第一权值矩阵。所述权值矩阵为神经网络的权值矩阵。图4为本发明不考虑架构因素的结构化剪枝示意图,如图4所示,图中左部分原始的权值张量可以通过img2col被转化为右部分二维的权值矩阵。然后对权值矩阵中的每一行或者列计算一个重要性度量因子(如L1/L2范数,熵,其相关的activation的均值、方差、APoZ等),对各行或列的重要性度量因子进行排序,然后按比例删除一些重要性度量因子值比较低的行或者列,如右部分灰色的部分。例如,先从行开始,计算每一行的重要性度量因子,然后对所有行的重要性度量因子进行排序,按设定比例删除重要性度量因子值较低的行,被删除行下方的行上移至空白位置,更新权值矩阵;然后从列开始,计算每一列的重要性度量因子,然后对所有列的重要性度量因子排序,按照设定比例删除重要性度量因子值较低的列,被删除列的右侧列左移至空白位置。
由于权值矩阵中的一列权值对应着权值张量中的一个滤波器,删除权值矩阵一列即删除了权值的一个滤波器,而一行权值对应所有滤波器的同一个位置的元素,如图4中的形状维度。而神经网络权值中一个通道是由多个连续的权值构成的,如图4中每个通道包含3*3个连续的元素,其反映在权值矩阵里就是连续9行对应一个通道。显然经过这种算法剪枝的权值矩阵可以始终保持规则的形状,即权值矩阵形状仍然是矩形,故而其可以被正确的映射到Crossbar阵列上。
对神经网络当前层待处理的权值矩阵进行不考虑架构因素的结构化剪枝,得到第一权值矩阵之后,需要对剪枝后的神经网络进行后处理,利用神经网络前后层间输入输出对应关系,进一步压缩神经网络,删除一些常规基于重要性度量因子剪枝算法不能删除的权值。经过结构化剪枝,原始的权值矩阵中一些滤波器或者通道被删除。由第i层的第k个滤波器计算出来的结果会送往i+1层并和第i+1层的第k个通道进行计算,而结构化剪枝算法会对网络所有层都进行结构化剪枝,每一层都会有一些通道和滤波器被剪枝。采用后处理的方式,逐层确定每一层是否有滤波器被剪掉,如果有就把下一层对应通道也剪掉,如果这一层通道被剪掉,就把上一层对应滤波器也剪掉。具体的,当神经网络第i层第k个滤波器被删除,则该层输出中第k个通道的值即为0,而第i层的输出也即第i+1层的输入,所以i+1层中第k个通道的权值也对应删除;类似的,神经网络第i+1层第k个通道被删除,则前一层第k个滤波器也删除。
图5为本发明结构化剪枝后处理的示意图,如图5所示,第i层第2个滤波器被删除,则该层输出中第2个通道的值即为0,而第i层的输出也即第i+1层的输入,即i+1层第2个通道的输入为0。即使i+1层权值中该通道值比较重要,然而其对应输入为0,这些通道上计算结果为0,所以i+1层中第2个通道的权值可以删除。同样的,神经网络第i+1层第n个通道被删除,即对应位置权值置为0,此时不论该通道的输入值为多少,其计算结果都为0。而该通道的输入即上一层权值第2个滤波器所产生的输出,因为该通道上计算结果与输入无关,即对应滤波器的输出对网络无影响,所以第i层第n个滤波器可删除。
步骤200:根据第一权值矩阵的尺寸与crossbar的尺寸,确定剪枝方案。所述剪枝方案包括:基于区块的结构化剪枝、交叉阵列行剪枝和交叉阵列列剪枝。具体确定过程如下:
计算所述第一权值矩阵的宽度与所述crossbar的宽度之比,得到第一数值;
计算所述第一权值矩阵的高度与所述crossbar的高度之比,得到第二数值;
比较第一数值与比值阈值的大小关系以及第二数值与比值阈值的大小关系;
当第一数值大于比值阈值且第二数值大于比值阈值时,将所述基于区块的结构化剪枝确定为剪枝方案;
当第一数值大于比值阈值且第二数值不大于比值阈值时,将所述交叉阵列列剪枝确定为剪枝方案;
当第一数值不大于比值阈值且第二数值大于比值阈值时,将所述交叉阵列行剪枝确定为剪枝方案;
当第一数值小于比值阈值且第二数值小于比值阈值时,将所述交叉阵列列剪枝或所述交叉阵列行剪枝确定为剪枝方案。
根据实际情况比值阈值的具体数值可适应性调整,例如,比值阈值可以为4。通常第一数值小于比值阈值代表权值矩阵的宽度和Crossbar宽度是一个数量级,第二数值小于比值阈值代表权值矩阵的高度和Crossbar高度是一个数量级。图6为本发明三种剪枝方案的选择示意图,如图6所示,第一数值与比值阈值的比较和第二数值与比值阈值的比较包括四种情况:
第一种如图6(a)部分所示,其中第一数值不大于比值阈值且第二数值大于比值阈值,即权值矩阵的宽度和Crossbar宽度是一个数量级,而权值矩阵高度远大于Crossbar,时应该选择交叉阵列行剪枝。例如,Resnet18预测cifar10数据集时的全连接层,其权值矩阵大小为512*10,而假设Crossbar的大小为128*16,此时即会出现图6(a)部分的情况。此时神经网络进行列方向上剪枝对于减少Crossbar数量已没有什么用,而交叉阵列行剪枝方案可以提供行方向上最小的剪枝粒度,故而此时应该选择交叉阵列行剪枝。
第二种情况如图6(b)部分所示,与(a)部分恰好相反,此时第一数值大于比值阈值且第二数值不大于比值阈值,即权值矩阵高度和一个Crossbar高度是一个数量级,而宽度远大于一个Crossbar宽度,使用交叉阵列列剪枝剪枝。例如,Resnet18中第三个区块中的1*1卷积层,其权值矩阵大小为128*256,而Crossbar大小为128*16,此时权值矩阵高度和一个Crossbar高度是一个数量级,而宽度远大于一个Crossbar宽度。要想减少Crossbar数量,应该使用交叉阵列列剪枝剪枝。
第三种情况如图6(c)部分所示,第一数值大于比值阈值且第二数值大于比值阈值,即权值矩阵在行和列两个维度都远大于Crossbar,采用基于区块的结构化剪枝。例如,Resnet18中大部分3*3卷积,比如说Resnet18最后一个卷积层权值矩阵大小为4608*512,远大于128*16的Crossbar此时两个维度上的剪枝对于减少Crossbar数量都有着重要意义。而基于区块的结构化剪枝方案在行和列方向上都可以提供一个较好的剪枝粒度,故而此时应该采用基于区块的结构化剪枝方案。
第四种情况比较少见,第一数值小于比值阈值且第二数值小于比值阈值,即权值矩阵在行和列两个维度都与一个Crossbar是一个数量级,此时选择交叉阵列列剪枝或交叉阵列行剪枝区别不大,可以随意选择两者中的一种。
步骤300:根据剪枝方案对第一权值矩阵进行剪枝,得到第二权值矩阵。第二权值矩阵用于映射至加速器中的crossbar阵列,通过加速器对所述神经网络进行加速。本发明包括三种剪枝方案,在剪枝前首先需要确定所述第一权值矩阵映射至所述加速器中的crossbar阵列时每个crossbar对应的权值分布矩阵,然后根据确定好的剪枝方案进行剪枝,具体过程如下:
(1)当剪枝方案为交叉阵列行剪枝时,确定每个crossbar对应的权值分布矩阵中每一行权值的行重要性度量因子;然后将行重要性度量因子小于行阈值的行权值删除,并将所述权值分布矩阵中被删除行下方的所有行上移至删除行所在的空白位置,得到所述第二权值矩阵,所述行阈值可适应性调节。在剪枝过程中考虑到存在单元未被用满的Crossbar,适当的调整剪枝阈值以多保留一些Crossbar行以占满Crossbar或者多删除一些Crossbar行以释放整个Crossbar。
图7为本发明交叉阵行行剪枝的示意图,如图7所示,假设剪枝前的权值由4个2*2的滤波器组成,其可以被映射在4个2*2的Crossbar上。而此时以Crossbar内部一行上的权值即Crossbar行作为基本剪枝粒度进行剪枝,首先计算每个Crossbar行对应的行重要性度量因子,如L1范数。然后根据剪枝率确定一个全局剪枝阈值,将重要性低于此阈值的Crossbar行删除。同时考虑到对齐因素,本发明会自动调整剪枝阈值以适当的再保留或者删除一些Crossbar行,使最终的剪枝结果映射到Crossbar之后Crossbar上的单元不存在空闲。图7中开始时删除所有L1范数小于等于3的Crossbar行,则XB1的第一行、XB2和XB3的第二行均被删除,对应行向上移。而此时发现XB2和XB4中一共只删除了一行,上移后XB4中有一行单元被占用,一行单元被释放,故而此时调整剪枝阈值为4,将XB4的第一行也删除。最终将剪枝完成的矩阵映射到Crossbar阵列上时可以发现,剩余权值只需占用Crossbar1和Crossbar2,而Crossbar3和Crossbar4可以被完全释放。而考虑到Crossbar中一行对应这同一个输入,剪枝后一些行被删除,则对应的输入无需读入。比如图7中XB1的第一行和XB3的第二行被删除,则输入中的第一个元素和第四个元素无需读入。
(2)当剪枝方案为交叉阵列列剪枝时,确定每个crossbar对应的权值分布矩阵中每一列权值的列重要性度量因子;然后将列重要性度量因子小于列阈值的列权值删除,并将所述权值分布矩阵中被删除列右侧的所有列左移至删除列所在的空白位置,得到所述第二权值矩阵;所述列阈值可调节。剪枝过程中考虑到存在单元未被用满的Crossbar,适当的调整剪枝阈值以多保留一些Crossbar列以占满Crossbar或者多删除一些Crossbar列以释放整个Crossbar。
图8为本发明交叉阵列行剪枝的示意图,如图8所示,假设剪枝前的权值由4个2*2的滤波器组成,其可以被映射在4个2*2的Crossbar上。而此时以Crossbar内部一列上的权值即Crossbar列作为基本剪枝粒度进行剪枝,计算每个Crossbar列对应的列重要性度量因子,如L1范数。然后根据剪枝率确定一个全局剪枝阈值,将重要性低于此阈值的Crossbar列删除。同时考虑到对齐因素,算法会适当的再保留或者删除一些Crossbar列,以使最终的剪枝结果映射到Crossbar之后Crossbar上单元不存在空闲。图8中开始时删除所有L1范数小于等于3的Crossbar列,则XB1的第二列和XB3的第一列均被删除,对应列向左移。而此时同样出现了不对齐的请况,一些Crossbar中部分单元被占用部分单元空闲,故而此时调整剪枝阈值为4将XB2第一列和XB4第二列删除。最终将剪枝完成的矩阵映射到Crossbar阵列上时可以发现,剩余权值只需占用Crossbar1和Crossbar3,而Crossbar2和Crossbar4可以被完全释放。而由于进行Crossbar列剪枝后,Crossbar中列的位置并非该列权值在权值矩阵中位置,如Crossbar1中第二列权值是剪枝前第四列的权值,故而在输出电路中需要将Crossbar的输出还原到其真实位置。
(3)当剪枝方案为基于区块的结构化剪枝时,将所述第一权值矩阵均匀划分为x*y个区块;所述区块的尺寸大于所述crossbar的尺寸,每个crossbar的尺寸为m*n,m为行数,n为列数。所述加速器中的crossbar阵列中被映射crossbar的个数为x*y;然后按照所述crossbar的尺寸,对每个所述区块进行结构化剪枝,得到所述第二权值矩阵。对每个区块进行结构化剪枝时,按照先行后列或者先列后行的方式分别进行剪枝,首先计算每行(或每列)权值的重要性度量因子(如L1/L2范数,熵,其相关的activation的均值、方差、APoZ等),根据每个crossbar的行数(或列数)删除每个区块中重要性度量因子最低的多行(或多列),保留m行(或n列)权值;然后计算每列(或每行)权值的重要性度量因子(如L1/L2范数,熵,其相关的activation的均值、方差、APoZ等),根据每个crossbar的列数(或行数)删除每个区块中重要性度量因子最低的多列(或多行),保留n列(或m行)权值,完成每个区块的结构化剪枝。先行后列是指先进性行剪枝再进行列剪枝,先列后行是指先进行列剪枝再进行行剪枝,剪枝完成后每个区块中保留下来的权值的尺寸为m*n,故而可以正好的被映射到一个Crossbar上。
图9为本发明基于区块的结构化剪枝的示意图,如图9所示,将一个6*6的权值矩阵映射到4个2*2的Crossbar,首先将原始的权值矩阵均匀的划分为4个区块,每个区块大小为3*3,即B1到B4。而为了将每个区块映射到一个Crossbar中,在每个区块内部进行结构化剪枝,删除区块内部的冗余的一行和一列。在图9中,首先删除了区块1的第一列和第三行进行剪枝,即图中灰色的部分,使区块中剩余权重的大小为2*2。每个剪枝完成的区块现在可以正好映射到一个Crossbar。该过程会在区块内部同时产生行和列方向上的稀疏性。考虑到行稀疏性,如区块1的第三行和区块3的第二行被删除,因此原始输入中的第三个输入和第五个输入可以被删除。同样的,由于列方向上稀疏性的存在,系统需要在输出电路中需要将Crossbar的输出还原到其真实位置。
剪枝完成后得到的剪枝结果即第二权值矩阵映射到Crossbar阵列上时,会在Crossbar内部同时产生行方向稀疏性和列方向稀疏性。为了能够支持这两种稀疏性,本发明中在原有架构上的基础上添加XRST模块和XCST模块,XRST模块和XCST模块均位于crossbar外围电路中。图10为本发明crossbar外围电路数据流示意图,如图10所示,在输入部分通过XRST模块以跳过部分输入,支持行稀疏性,在输出部分通过XCST模块用以支持列稀疏性。
经过剪枝后的权值矩阵会在Crossbar中行方向产生稀疏性,而Crossbar中一行权值对应这同一个输入,如果某行权值被剪枝,则其对应的输入也无需读入进行计算。为了能够跳过这些不必要的输入,在硬件上通过XRST模块记录剪枝模型的行稀疏性。图11为本发明XRST模块的硬件示意图,如图11所示,XRST模块是由很多可以写入0或者1的Unit组成,其长度等于原始的未剪枝的权值矩阵的行数,其中每个Unit写0表示对应行权值被删除,写1则表述对应行权值保留,XRST模块的1的数量等于Crossbar中的权值的行数。读入输入时,如果XRST模块某个Unit为0,则表示对应行被删除,对应输入无需读入,故而可以删除对应地址,最终得到一个稀疏的地址,然后根据此稀疏地址从片上存储中读取数据即可。
经过剪枝后的权值矩阵会在Crossbar中列方向产生稀疏性,即Crossbar中一列权值在该Crossbar中位置并非其在初始时权值矩阵中位置。而由于一个滤波器经常会分布在多个Crossbar上,为了能进行Crossbar间结果的累加,需要恢复每个Crossbar中每列的计算结果到其在真实输出中的真实位置。本发明通过XCST模块以支持此功能,图12为本发明XCST模块的硬件示意图,如图12所示,XCST模块是由很多可以写入0或者1的Unit组成,其长度等于原始的未剪枝的权值矩阵的列数,其中每个Unit写0表示对应列权值被删除,写1则表述对应列权值保留,XCST的1的数量等于Crossbar中的权值的列数。经过剪枝的权值矩阵会被送入Crossbar上参与计算并产生一个经过剪枝的结果,硬件XCST模块在该输出中对应位置插入0,以复原各个输出的真实位置。
本发明在硬件上额外设计了两个模块XRST模块和XCST模块分别用于支持Crossbar内部的行稀疏性和列稀疏性。由于行稀疏性的存在,原本输入中的部分元素需要被跳过,系统中XRST模块则记录了Crossbar内部的行稀疏性,指导系统跳过指定的输入。由于列稀疏性的存在,Crossbar的输出中各个元素的位置不是每个其真实的位置,故而系统利用XCST模块同在在Crossbar输出中插0来恢复各个输出到其在原始权值矩阵中的真实位置。
对应上述基于Crossbar架构的剪枝方法,本发明还提供一种基于Crossbar架构的剪枝系统。图13为本发明基于Crossbar架构的剪枝系统的结构示意图,如图13所示,本发明基于Crossbar架构的剪枝系统包括以下结构:
结构化剪枝模块1301,用于对神经网络当前层待处理的权值矩阵进行不考虑架构因素的结构化剪枝,得到第一权值矩阵;所述权值矩阵为神经网络的权值矩阵。
剪枝方案确定模块1302,用于根据所述第一权值矩阵的尺寸与crossbar的尺寸,确定剪枝方案;所述剪枝方案包括:基于区块的结构化剪枝、交叉阵列行剪枝和交叉阵列列剪枝。
剪枝模块1303,用于根据所述剪枝方案对所述第一权值矩阵进行剪枝,得到第二权值矩阵;所述第二权值矩阵用于映射至加速器中的crossbar阵列,通过所述加速器对所述神经网络进行加速。
作为另一实施例,本发明的基于Crossbar架构的剪枝系统还包括:
后处理模块,用于对神经网络当前层待处理的权值矩阵进行不考虑架构因素的结构化剪枝,得到第一权值矩阵之后,当当前层的第k个滤波器被删除时,将当前层的下一层中第k个通道的权值删除;当当前层的第k个通道被删除时,将当前层的上一层中第k个滤波器删除。
作为另一实施例,本发明的基于Crossbar架构的剪枝系统中所述剪枝方案确定模块1302具体包括:
第一数值计算单元,用于计算所述第一权值矩阵的宽度与所述crossbar的宽度之比,得到第一数值。
第二数值计算单元,用于计算所述第一权值矩阵的高度与所述crossbar的高度之比,得到第二数值。
比较单元,用于比较第一数值与比值阈值的大小关系以及第二数值与比值阈值的大小关系。
剪枝方案第一确定单元,用于当第一数值大于比值阈值且第二数值大于比值阈值时,将所述基于区块的结构化剪枝确定为剪枝方案。
剪枝方案第二确定单元,用于当第一数值大于比值阈值且第二数值不大于比值阈值时,将所述交叉阵列列剪枝确定为剪枝方案。
剪枝方案第三确定单元,用于当第一数值不大于比值阈值且第二数值大于比值阈值时,将所述交叉阵列行剪枝确定为剪枝方案。
剪枝方案第四确定单元,用于当第一数值小于比值阈值且第二数值小于比值阈值时,将所述交叉阵列列剪枝或所述交叉阵列行剪枝确定为剪枝方案。
作为另一实施例,本发明的基于Crossbar架构的剪枝系统中所述剪枝模块1303具体包括:
映射确定单元,用于确定所述第一权值矩阵映射至所述加速器中的crossbar阵列时每个crossbar对应的权值分布矩阵。
区块划分单元,用于当剪枝方案为基于区块的结构化剪枝时,将所述第一权值矩阵均匀划分为x*y个区块;所述区块的尺寸大于所述crossbar的尺寸,所述加速器中的crossbar阵列中被映射crossbar的个数为x*y。
第一剪枝单元,用于按照所述crossbar的尺寸,对每个所述区块进行结构化剪枝,得到所述第二权值矩阵。
列重要性度量因子确定单元,用于当剪枝方案为交叉阵列列剪枝时,确定每个crossbar对应的权值分布矩阵中每一列权值的列重要性度量因子。
第二剪枝单元,用于将列重要性度量因子小于列阈值的列权值删除,并将所述权值分布矩阵中被删除列右侧的所有列左移至删除列所在的空白位置,得到所述第二权值矩阵;所述列阈值可调节。
行重要性度量因子确定单元,用于当剪枝方案为交叉阵列行剪枝时,确定每个crossbar对应的权值分布矩阵中每一行权值的行重要性度量因子。
第三剪枝单元,用于将行重要性度量因子小于行阈值的行权值删除,并将所述权值分布矩阵中被删除行下方的所有行上移至删除行所在的空白位置,得到所述第二权值矩阵;所述行阈值可调节。
作为另一实施例,本发明的基于Crossbar架构的剪枝系统还包括:
XRST模块,用于在根据所述剪枝方案对所述第一权值矩阵进行剪枝,得到第二权值矩阵之后,记录所述第二权值矩阵的行稀疏性;所述XRST模块位于所述crossbar的外围电路中,所述XRST模块用于根据所述第二权值矩阵的行稀疏性将被删除的行对应的输入跳过。
XCST模块,用于记录所述第二权值矩阵的列稀疏性;所述XCST模块位于所述crossbar的外围电路中,所述XCST模块用于根据所述第二权值矩阵的列稀疏性将被删除的列对应的输出位置插入0,以复原所有输出的真实位置。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
Claims (8)
1.一种基于Crossbar架构的剪枝方法,其特征在于,包括:
对神经网络当前层待处理的权值矩阵进行不考虑架构因素的结构化剪枝,得到第一权值矩阵;所述权值矩阵为神经网络的权值矩阵;
根据所述第一权值矩阵的尺寸与crossbar的尺寸,确定剪枝方案;所述剪枝方案包括:基于区块的结构化剪枝、交叉阵列行剪枝和交叉阵列列剪枝;
根据所述剪枝方案对所述第一权值矩阵进行剪枝,得到第二权值矩阵,具体包括:
确定所述第一权值矩阵映射至加速器中的crossbar阵列时每个crossbar对应的权值分布矩阵;
当剪枝方案为基于区块的结构化剪枝时,将所述第一权值矩阵均匀划分为x*y个区块;所述区块的尺寸大于所述crossbar的尺寸,所述加速器中的crossbar阵列中被映射crossbar的个数为x*y;
按照所述crossbar的尺寸,对每个所述区块进行结构化剪枝,得到所述第二权值矩阵;
当剪枝方案为交叉阵列列剪枝时,确定每个crossbar对应的权值分布矩阵中每一列权值的列重要性度量因子;
将列重要性度量因子小于列阈值的列权值删除,并将所述权值分布矩阵中被删除列右侧的所有列左移至删除列所在的空白位置,得到所述第二权值矩阵;所述列阈值可调节;
当剪枝方案为交叉阵列行剪枝时,确定每个crossbar对应的权值分布矩阵中每一行权值的行重要性度量因子;
将行重要性度量因子小于行阈值的行权值删除,并将所述权值分布矩阵中被删除行下方的所有行上移至删除行所在的空白位置,得到所述第二权值矩阵;所述行阈值可调节;
所述第二权值矩阵用于映射至加速器中的crossbar阵列,通过所述加速器对所述神经网络进行加速。
2.根据权利要求1所述的基于Crossbar架构的剪枝方法,其特征在于,所述对神经网络当前层待处理的权值矩阵进行不考虑架构因素的结构化剪枝,得到第一权值矩阵,之后还包括:
根据所述当前层的第一权值矩阵对神经网络进行后处理,压缩所述神经网络。
3.根据权利要求2所述的基于Crossbar架构的剪枝方法,其特征在于,所述根据所述当前层的第一权值矩阵对神经网络进行后处理,压缩所述神经网络,具体包括:
当当前层的第k个滤波器被删除时,将当前层的下一层中第k个通道的权值删除;
当当前层的第k个通道被删除时,将当前层的上一层中第k个滤波器删除。
4.根据权利要求1所述的基于Crossbar架构的剪枝方法,其特征在于,所述根据所述第一权值矩阵的尺寸与crossbar的尺寸,确定剪枝方案,具体包括:
计算所述第一权值矩阵的宽度与所述crossbar的宽度之比,得到第一数值;
计算所述第一权值矩阵的高度与所述crossbar的高度之比,得到第二数值;
比较第一数值与比值阈值的大小关系以及第二数值与比值阈值的大小关系;
当第一数值大于比值阈值且第二数值大于比值阈值时,将所述基于区块的结构化剪枝确定为剪枝方案;
当第一数值大于比值阈值且第二数值不大于比值阈值时,将所述交叉阵列列剪枝确定为剪枝方案;
当第一数值不大于比值阈值且第二数值大于比值阈值时,将所述交叉阵列行剪枝确定为剪枝方案;
当第一数值小于比值阈值且第二数值小于比值阈值时,将所述交叉阵列列剪枝或所述交叉阵列行剪枝确定为剪枝方案。
5.根据权利要求1所述的基于Crossbar架构的剪枝方法,其特征在于,根据所述剪枝方案对所述第一权值矩阵进行剪枝,得到第二权值矩阵,之后还包括:
采用XRST模块记录所述第二权值矩阵的行稀疏性;所述XRST模块位于所述crossbar的外围电路中,所述XRST模块用于根据所述第二权值矩阵的行稀疏性将被删除的行对应的输入跳过;
采用XCST模块记录所述第二权值矩阵的列稀疏性;所述XCST模块位于所述crossbar的外围电路中,所述XCST模块用于根据所述第二权值矩阵的列稀疏性将被删除的列对应的输出位置插入0,以复原所有输出的真实位置。
6.一种基于Crossbar架构的剪枝系统,其特征在于,包括:
结构化剪枝模块,用于对神经网络当前层待处理的权值矩阵进行不考虑架构因素的结构化剪枝,得到第一权值矩阵;所述权值矩阵为神经网络的权值矩阵;
剪枝方案确定模块,用于根据所述第一权值矩阵的尺寸与crossbar的尺寸,确定剪枝方案;所述剪枝方案包括:基于区块的结构化剪枝、交叉阵列行剪枝和交叉阵列列剪枝;
剪枝模块,用于根据所述剪枝方案对所述第一权值矩阵进行剪枝,得到第二权值矩阵,具体包括:
映射确定单元,用于确定所述第一权值矩阵映射至加速器中的crossbar阵列时每个crossbar对应的权值分布矩阵;
区块划分单元,用于当剪枝方案为基于区块的结构化剪枝时,将所述第一权值矩阵均匀划分为x*y个区块;所述区块的尺寸大于所述crossbar的尺寸,所述加速器中的crossbar阵列中被映射crossbar的个数为x*y;
第一剪枝单元,用于按照所述crossbar的尺寸,对每个所述区块进行结构化剪枝,得到所述第二权值矩阵;
列重要性度量因子确定单元,用于当剪枝方案为交叉阵列列剪枝时,确定每个crossbar对应的权值分布矩阵中每一列权值的列重要性度量因子;
第二剪枝单元,用于将列重要性度量因子小于列阈值的列权值删除,并将所述权值分布矩阵中被删除列右侧的所有列左移至删除列所在的空白位置,得到所述第二权值矩阵;所述列阈值可调节;
行重要性度量因子确定单元,用于当剪枝方案为交叉阵列行剪枝时,确定每个crossbar对应的权值分布矩阵中每一行权值的行重要性度量因子;
第三剪枝单元,用于将行重要性度量因子小于行阈值的行权值删除,并将所述权值分布矩阵中被删除行下方的所有行上移至删除行所在的空白位置,得到所述第二权值矩阵;所述行阈值可调节;
所述第二权值矩阵用于映射至加速器中的crossbar阵列,通过所述加速器对所述神经网络进行加速。
7.根据权利要求6所述的基于Crossbar架构的剪枝系统,其特征在于,还包括:
后处理模块,用于对神经网络当前层待处理的权值矩阵进行不考虑架构因素的结构化剪枝,得到第一权值矩阵之后,当当前层的第k个滤波器被删除时,将当前层的下一层中第k个通道的权值删除;当当前层的第k个通道被删除时,将当前层的上一层中第k个滤波器删除。
8.根据权利要求6所述的基于Crossbar架构的剪枝系统,其特征在于,所述剪枝方案确定模块具体包括:
第一数值计算单元,用于计算所述第一权值矩阵的宽度与所述crossbar的宽度之比,得到第一数值;
第二数值计算单元,用于计算所述第一权值矩阵的高度与所述crossbar的高度之比,得到第二数值;
比较单元,用于比较第一数值与比值阈值的大小关系以及第二数值与比值阈值的大小关系;
剪枝方案第一确定单元,用于当第一数值大于比值阈值且第二数值大于比值阈值时,将所述基于区块的结构化剪枝确定为剪枝方案;
剪枝方案第二确定单元,用于当第一数值大于比值阈值且第二数值不大于比值阈值时,将所述交叉阵列列剪枝确定为剪枝方案;
剪枝方案第三确定单元,用于当第一数值不大于比值阈值且第二数值大于比值阈值时,将所述交叉阵列行剪枝确定为剪枝方案;
剪枝方案第四确定单元,用于当第一数值小于比值阈值且第二数值小于比值阈值时,将所述交叉阵列列剪枝或所述交叉阵列行剪枝确定为剪枝方案。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010310388.0A CN111507473B (zh) | 2020-04-20 | 2020-04-20 | 一种基于Crossbar架构的剪枝方法及系统 |
PCT/CN2021/078444 WO2021213010A1 (zh) | 2020-04-20 | 2021-03-01 | 一种基于Crossbar架构的剪枝方法及系统 |
US17/291,727 US20230032432A1 (en) | 2020-04-20 | 2021-03-01 | Pruning method based on crossbar architecture and system thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010310388.0A CN111507473B (zh) | 2020-04-20 | 2020-04-20 | 一种基于Crossbar架构的剪枝方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111507473A CN111507473A (zh) | 2020-08-07 |
CN111507473B true CN111507473B (zh) | 2023-05-12 |
Family
ID=71876200
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010310388.0A Active CN111507473B (zh) | 2020-04-20 | 2020-04-20 | 一种基于Crossbar架构的剪枝方法及系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230032432A1 (zh) |
CN (1) | CN111507473B (zh) |
WO (1) | WO2021213010A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111507473B (zh) * | 2020-04-20 | 2023-05-12 | 上海交通大学 | 一种基于Crossbar架构的剪枝方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107992329A (zh) * | 2017-07-20 | 2018-05-04 | 上海寒武纪信息科技有限公司 | 一种计算方法及相关产品 |
CN108932548A (zh) * | 2018-05-22 | 2018-12-04 | 中国科学技术大学苏州研究院 | 一种基于fpga的稀疏度神经网络加速系统 |
CN109948794A (zh) * | 2019-02-28 | 2019-06-28 | 清华大学 | 神经网络结构化剪枝方法、剪枝装置和电子设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110874636B (zh) * | 2018-09-04 | 2023-06-30 | 杭州海康威视数字技术股份有限公司 | 一种神经网络模型压缩方法、装置和计算机设备 |
CN110097172B (zh) * | 2019-03-18 | 2021-10-29 | 中国科学院计算技术研究所 | 一种基于winograd卷积运算的卷积神经网络数据处理方法及装置 |
US11544540B2 (en) * | 2019-05-10 | 2023-01-03 | Hewlett Packard Enterprise Development Lp | Systems and methods for neural network training and deployment for hardware accelerators |
US11816574B2 (en) * | 2019-10-25 | 2023-11-14 | Alibaba Group Holding Limited | Structured pruning for machine learning model |
CN111507473B (zh) * | 2020-04-20 | 2023-05-12 | 上海交通大学 | 一种基于Crossbar架构的剪枝方法及系统 |
-
2020
- 2020-04-20 CN CN202010310388.0A patent/CN111507473B/zh active Active
-
2021
- 2021-03-01 WO PCT/CN2021/078444 patent/WO2021213010A1/zh active Application Filing
- 2021-03-01 US US17/291,727 patent/US20230032432A1/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107992329A (zh) * | 2017-07-20 | 2018-05-04 | 上海寒武纪信息科技有限公司 | 一种计算方法及相关产品 |
CN108932548A (zh) * | 2018-05-22 | 2018-12-04 | 中国科学技术大学苏州研究院 | 一种基于fpga的稀疏度神经网络加速系统 |
CN109948794A (zh) * | 2019-02-28 | 2019-06-28 | 清华大学 | 神经网络结构化剪枝方法、剪枝装置和电子设备 |
Non-Patent Citations (3)
Title |
---|
Ling Liang et al..Crossbar-Aware Neural Network Pruning.《IEEE Access》.2018,第58324-58337页. * |
Xiaolong Ma et al..BLK-REW: A Unified Block-based DNN Pruning Framework using Reweighted Regularization Method.《arXiv:2001.08357v2》.2020,第1-7页. * |
Xiaolong Ma et al..Tiny but Accurate: A Pruned, Quantized and Optimized Memristor Crossbar Framework for Ultra Efficient DNN Implementation.《2020 25th Asia and South Pacific Design Automation Conference》.2020,第301-306页. * |
Also Published As
Publication number | Publication date |
---|---|
CN111507473A (zh) | 2020-08-07 |
US20230032432A1 (en) | 2023-02-02 |
WO2021213010A1 (zh) | 2021-10-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210118429A1 (en) | Speech feature reuse-based storing and calculating compression method for keyword-spotting cnn | |
CN110705687B (zh) | 卷积神经网络硬件计算装置及方法 | |
JP6890653B2 (ja) | 多層ニューラルネットワークモデルの学習及び適用方法、装置、並びに記憶媒体 | |
CN110070178A (zh) | 一种卷积神经网络计算装置及方法 | |
CN110780923B (zh) | 应用于二值化卷积神经网络的硬件加速器及其数据处理方法 | |
CN109993293B (zh) | 一种适用于堆叠式沙漏网络的深度学习加速器 | |
CN111832705B (zh) | 一种卷积神经网络的压缩方法及其实现电路 | |
CN109840585B (zh) | 一种面向稀疏二维卷积的运算方法和系统 | |
CN111507473B (zh) | 一种基于Crossbar架构的剪枝方法及系统 | |
CN113344179B (zh) | 基于fpga的二值化卷积神经网络算法的ip核 | |
EP4080408A1 (en) | Model generation method and apparatus, object detection method and apparatus, device, and storage medium | |
CN112668708A (zh) | 一种提高数据利用率的卷积运算装置 | |
CN114822033B (zh) | 基于特征金字塔网络的路网交通流量数据修复方法及系统 | |
CN114925823A (zh) | 一种卷积神经网络压缩方法及边缘侧fpga加速器 | |
CN113052307B (zh) | 一种面向忆阻器加速器的神经网络模型压缩方法及系统 | |
CN114519425A (zh) | 一种规模可扩展的卷积神经网络加速系统 | |
CN117217274B (zh) | 向量处理器、神经网络加速器、芯片及电子设备 | |
CN113158132A (zh) | 一种基于非结构化稀疏的卷积神经网络加速系统 | |
CN116187420B (zh) | 轻量化的深度神经网络的训练方法、系统、设备和介质 | |
CN112329923A (zh) | 一种模型压缩方法、装置、电子设备及可读存储介质 | |
CN116187387A (zh) | 神经网络模型量化方法、装置、计算机设备和存储介质 | |
CN115640833A (zh) | 一种面向稀疏卷积神经网络的加速器及加速方法 | |
CN112580796A (zh) | 用于神经网络的剪枝方法、装置以及系统 | |
CN114492797A (zh) | 模型剪枝方法、装置、设备和存储介质 | |
CN114897159A (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 |