CN112015473A - 基于数据流架构的稀疏卷积神经网络加速方法及系统 - Google Patents

基于数据流架构的稀疏卷积神经网络加速方法及系统 Download PDF

Info

Publication number
CN112015473A
CN112015473A CN202010719417.9A CN202010719417A CN112015473A CN 112015473 A CN112015473 A CN 112015473A CN 202010719417 A CN202010719417 A CN 202010719417A CN 112015473 A CN112015473 A CN 112015473A
Authority
CN
China
Prior art keywords
instruction
instructions
data flow
array
computing
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.)
Granted
Application number
CN202010719417.9A
Other languages
English (en)
Other versions
CN112015473B (zh
Inventor
吴欣欣
范志华
轩伟
李文明
叶笑春
范东睿
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Computing Technology of CAS
Original Assignee
Institute of Computing Technology of CAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN202010719417.9A priority Critical patent/CN112015473B/zh
Publication of CN112015473A publication Critical patent/CN112015473A/zh
Application granted granted Critical
Publication of CN112015473B publication Critical patent/CN112015473B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/10Interfaces, programming languages or software development kits, e.g. for simulating neural networks
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Devices For Executing Special Programs (AREA)
  • Advance Control (AREA)

Abstract

本发明提出一种基于数据流架构的稀疏卷积神经网络加速方法及系统。针对稀疏卷积应用,使用软件方式设计了一套指令共享检测装置和稀疏卷积加速方法。通过对编译器生成的指令进行检测和对比,标记所有指令中指令内容完全相同的指令,将这些指令的地址设置为相同的地址,实现稀疏卷积中指令共享,从而减少了指令加载对内存的访问,提升了稀疏卷积运行的时间。

Description

基于数据流架构的稀疏卷积神经网络加速方法及系统
技术领域
本发明涉及计算机系统结构方向,并特别涉及一种粗粒度数据流架构中稀疏卷积层的加速方法及系统。
背景技术
神经网络在图像检测、语音识别、自然语言处理方面具有先进的性能,随着应用的复杂化,神经网络模型也随之复杂,对传统的硬件提出很多挑战,为了缓解硬件资源的压力,稀疏网络在计算、存储、功耗需求等方面具有很好的优势。已经出现了很多加速稀疏网络的算法和加速器,如面向CPU的sparse-blas库,面向GPU的cusparse库等,它们在一定程度上加速了稀疏网络的执行,对于专用的加速器,则在性能、功耗等方面具有先进的表现力。
粗粒度数据流架构在大数据处理、科学计算等方面具有广泛的应用,解耦的算法和结构使其具有良好的通用性和灵活性。数据流架构的天然并行性很好匹配了神经网络算法的并行特性。
神经网络模型随着应用的复杂化也变得“大”而“深”,这对传统的硬件提出很多挑战,为了缓解硬件资源的压力,稀疏网络在计算、存储、功耗需求等方面具有很好的优势。然而像CPU、GPU以及加速密集网络的专用加速器无法对稀疏网络进行加速,用于加速稀疏网络的专用加速器由于算法和结构的强耦合缺乏了架构的灵活性和通用性,无法进行算法的创新。
基于粗粒度数据流架构,将神经网络算法以数据流图的形式映射在由计算阵列(PE阵列)组成的架构中,数据流图中包含多个结点,结点中包含多个指令,流图的有向边表示结点的依赖关系,计算阵列是运算单元阵列,由多个运算单元组成。由于密集网络的规则运算特性,不同通道的数据流图节点的指令是相同的,所以对于卷积层,只需加载一次指令就可实现完整层的运算,即不同通道、不同卷积核在PE阵列中切换执行时,共享着相同的指令。然而对于对于稀疏网络,由于网络结构的不规则特性,结点中不同通道、不同卷积核的指令不再相同,每次切换时需要重新加载所需的指令,造成对存储单元的不断访问,严重降低了计算的性能。
发明内容
针对粗粒度数据流架构中稀疏网络指令加载造成的性能下降问题,通过分析稀疏网络的数据和指令特征,发明了一种加速稀疏网络的方法和装置,减少了指令加载时对存储单元的不断访问,实现稀疏网络的加速。
针对现有技术的不足,本发明提出一种基于数据流架构的稀疏卷积神经网络加速方法,其中包括:
步骤1、通过编译器将稀疏卷积神经网络运算编译为数据流图,并通过对该数据流图中通道间指令进行检测和对比,为通道间指令内容相同的指令标记指令复用标签,将具有指令复用标签的指令的地址设置为同一地址;
步骤2、计算阵列运行该数据流图时判断当前通道的指令是否标有指令复用标签,若是则复用前一通道指令对当前通道进行处理,否则从内存加载指令对当前通道进行处理;直到得到该数据流图的处理结果。
所述的基于数据流架构的稀疏卷积神经网络加速方法,其中该步骤1包括:
步骤11、对该数据流图内各通道的指令进行指令类型检测,得到所有通道内各指令对应的指令类型;
步骤12、通过对当前通道的每一条指令与前一通道中同类型的指令进行比较,为当前通道中与前一通道中指令类型相同的指令标记指令复用标签。
所述的基于数据流架构的稀疏卷积神经网络加速方法,其中该步骤2包括:
步骤21、对计算阵列中各计算单元的指令进行指令类型检测,得到各计算单元内各Inst对应的指令类型;
步骤22、以该计算阵列中第一个计算单元PE1中各指令对应的指令类型为基准,将该计算阵列中除第一个计算单元PE1以外的计算单元的指令与第一个计算单元PE1的指令内容相同的指令标记指令重用标签,将具有指令重用标签的指令的地址设置为同一地址。
所述的基于数据流架构的稀疏卷积神经网络加速方法,其中该步骤2包括:
步骤23、对计算阵列中各计算单元的指令进行指令类型检测,得到各计算单元内各指令对应的指令类型;
步骤24、以该计算阵列中每组的第一个计算单元P1中各指令对应的指令类型为基准,将该计算阵列中除第一个计算单元P1以外的计算单元的指令与第一个计算单元P1的指令内容相同的指令标记指令重用标签,将具有指令重用标签的指令的地址设置为同一地址。
所述的基于数据流架构的稀疏卷积神经网络加速方法,其中该数据流图中包含多个结点,结点中包含多个指令,数据流图的有向边表示结点的依赖关系。
本发明还提出了一种基于数据流架构的稀疏卷积神经网络加速系统,其中包括:
编译器,将稀疏卷积神经网络运算编译为数据流图,并通过对该数据流图中通道间指令进行检测和对比,为通道间指令内容相同的指令标记指令复用标签,将具有指令复用标签的指令的地址设置为同一地址;
计算阵列,运行该数据流图时判断当前通道的指令是否标有指令复用标签,若是则复用前一通道指令对当前通道进行处理,否则从内存加载指令对当前通道进行处理;直到得到该数据流图的处理结果。
所述的基于数据流架构的稀疏卷积神经网络加速系统,其中该编译器包括:
对该数据流图内各通道的指令进行指令类型检测,得到所有通道内各指令对应的指令类型;通过对当前通道的每一条指令与前一通道中同类型的指令进行比较,为当前通道中与前一通道中指令类型相同的指令标记指令复用标签。
所述的基于数据流架构的稀疏卷积神经网络加速系统,其中该计算阵列包括:
对计算阵列中各计算单元的指令进行指令类型检测,得到各计算单元内各指令对应的指令类型;以该计算阵列中第一个计算单元PE1中各指令对应的指令类型为基准,将该计算阵列中除第一个计算单元PE1以外的计算单元的指令与第一个计算单元PE1的指令内容相同的指令标记指令重用标签,将具有指令重用标签的指令的地址设置为同一地址。
所述的基于数据流架构的稀疏卷积神经网络加速系统,其中该计算阵列包括:
对计算阵列中各计算单元的指令进行指令类型检测,得到各计算单元内各Inst对应的指令类型;以该计算阵列中每组的第一个计算单元P1中各指令对应的指令类型为基准,将该计算阵列中除第一个计算单元P1以外的计算单元的指令与第一个计算单元P1的指令内容相同的指令标记指令重用标签,将具有指令重用标签的指令的地址设置为同一地址。
所述的基于数据流架构的稀疏卷积神经网络加速系统,其中该数据流图中包含多个结点,结点中包含多个指令,数据流图的有向边表示结点的依赖关系。
基于以上设计,本发明的优点在于:
减少了指令加载时对内存的频繁访问,增加内存cache利用率,从而减少了指令加载的时间,增加计算资源的充分利用,从而提升卷积的执行性能。该装置适用于指令加载的计算架构,包括细粒度数据流架构。同时,对于不同的卷积数据流映射方法也都适用。
附图说明
图1为两个通道的卷积运算需要的指令图;
图2为卷积的在PE阵列的映射方式图;
图3为不同通道间指令检测装置结构图;
图4为同一通道内指令检测装置结构图;
图5为同一通道内的指令检测实例图。
具体实施方式
针对指令多次加载的问题。密集卷积执行的是乘加运算,对于不同通道的卷积运算,它获取不同通道相同位置的数据执行乘加运算,基于该规则的运算特性,当卷积层不同通道的运算被编译器编译然后映射在计算阵列(PE阵列)后,不同通道的指令是相同的,于是PE阵列只需要从内存加载一次指令,就可以执行所有通道的运算,保证了计算资源的充分利用。
然而对于稀疏卷积,剪枝操作将一些权值置为0,由于0乘任何数仍为0,为了消除0值的运算,在执行剪枝操作后,相应的指令被移除,从而对应的指令也移除,如图1所示,这样不同通道的指令不再完全相同,这就需要在每个通道的指令执行之前,都需要从内存加载指令,在指令加载时,PE阵列的计算资源处于空闲状态,造成了资源的浪费,严重阻碍了稀疏网络的性能提升。其中剪枝操作指的是将卷积神经网络中的权重基于一个设定的阈值,高于该阈值的权重保留原值,低于该阈值的权重置为0。剪枝操作的目的是基于权重数据的冗余特性,将一些权重设置为0将密集卷积神经网络变为稀疏网络,从而实现网络的压缩。此操作发生在卷积网络的数据预处理阶段,即卷积神经网络执行之前。
可以看到剪枝操作只是移除了0值权值的指令,对于ifmap和partsum的指令,不同通道之间仍是相同的,基于此本发明提出了一种在粗粒度数据流中加速稀疏网络的方法和装置,减少了指令加载的时间,提升稀疏网络的性能。
为让本发明的上述特征和效果能阐述的更明确易懂,下文特举实施例,并配合说明书附图作详细说明如下。
在编译阶段实施本发明以实现对指令的检测,结合卷积的执行过程,对其做进一步详细描述。
(1)对于不同通道的指令,如图1所示,以通道1的指令为基准,对其他通道的指令进行检测。CNN的卷积层执行卷积操作,其在输入特征图(ifmap)上应用滤波器(filter)以生成输出特征图(ofmap)。卷积层的输入数据由一组2-D输入特征图组成,每个特征图称为一个通道(channel),多个通道的输入组成一个输入批次(batch),每个通道的特征值都与一个不同的2-D滤波器进行卷积运算,所有通道上的每个点的卷积结果相加得到一个通道的ofmap。基于数据流的执行模型,卷积层的每个通道运算以数据流图的形式被映射到PE阵列中顺序执行。
步骤一:对通道1内的指令进行指令类型判断,从图1中可以看到Inst1-Inst4标记为ifmap相关的指令,Inst6-Inst7,Inst10-Inst11标记为filter相关的指令,Inst13标记为partsum相关指令,其中Insti表示一条指令。以图1的通道1的卷积执行过程为例说明对应指令的执行。在通道1中,Inst1-Inst4表示的是4条Load指令,它们分别从内存加载ifmap的4个值到PE中,Inst5-Inst8表示的4条Load指令则是分别从内存加载filter的4个值到PE中,Inst9-Inst12为乘加指令,它们分别使用ifmap与filter的值执行乘加运算,Inst13表示的是store指令,在执行完乘加运算,即卷积运算后,需要将结果值从PE中存储到内存中。这些指令都是卷积运算所需要的指令。
步骤二:对于通道2的指令,从图中可以看到Inst1-Inst4标记为ifmap相关的指令,Inst5-Inst8,Inst9-Inst12标记为filter相关的指令,Inst13标记为partsum相关指令。
步骤三:对于通道2的每一条指令,与通道1中同类型的指令进行比较,可以看到通道2的Inst1-Inst4、Inst13分别与通道1的Inst1-Inst4、Inst13相同,所以这些指令分别被更新为通道1对应的指令地址。
(2)对于同一通道的指令,如图5所示,以PE1内映射的指令为基准,对其他PE内映射的指令进行检测。
步骤一:对于PE1内的指令进行指令类型判断,从图中可以看到Inst1-Inst4标记为ifmap相关的指令,Inst13标记为partsum相关指令。
步骤二:对于其他PE内的指令,在PE2、PE3和PE4中,Inst1-Inst4Inst1-Inst4标记为ifmap相关的指令,Inst13标记为partsum相关指令。
步骤三:对于其他PE内的ifmap和partsum相关指令,与PE1中同类型的指令进行比较,可以看到PE2、PE3和PE4的Inst1-Inst4、Inst13分别与PE1的Inst1-Inst4、Inst13相同,所以这些指令分别被更新为PE1对应的指令地址。
步骤四:对每组内第一个PE的指令进行指令类型判断,从图中可以看到PE1的Inst6-Inst7,Inst10-Inst11标记为filter相关的指令,PE2的Inst5、Inst8,Inst9、Inst12标记为filter相关的指令。
步骤五:对每组内其他PE的指令进行指令类型判断,从图中可以看到PE3的Inst6-Inst7,Inst10-Inst11标记为filter相关的指令,PE4的Inst5、Inst8,Inst9、Inst12标记为filter相关的指令。
步骤六:将PE3的filter相关指令与PE1的filter相关指令进行比较,可以看到PE3的Inst6-Inst7,Inst10-Inst11分别与PE1的Inst6-Inst7,Inst10-Inst11相同,所以这些指令分别被更新为PE1对应的指令地址。
步骤七:将PE4的filter相关指令与PE2的filter相关指令进行比较,可以看到PE4的Inst6-Inst7,Inst10-Inst11分别与PE2的Inst6-Inst7,Inst10-Inst11相同,所以这些指令分别被更新为PE2对应的指令地址。
本发明针对稀疏卷积应用,使用软件方式设计了一套指令共享检测装置和稀疏卷积加速方法。通过对编译器生成的指令进行检测和对比,标记所有指令中指令内容完全相同的指令,将这些指令的地址设置为相同的地址,实现稀疏卷积中指令共享,从而减少了指令加载对内存的访问,提升了稀疏卷积运行的时间。
假设在PE阵列上指令的映射方式如下图2所示,PE阵列映射一个Ifmap和多个filter,其中垂直方向的PE共用了相同的Filter,基于此将PE阵列按列分组,标记为G1,G2。另外,在一个PE内计算partsum的一行结果。
指令共享检测装置包括不同通道的指令检测装置和一个通道内的指令检测装置。
如图3所示为不同通道间指令检测装置结构,它包括指令类型判断模块、指令缓冲模块,指令比较模块、指令地址更新模块。每个模块设计的目的和原因分别是:
指令类型判断模块卷积运算时需要输入数据(ifmap)、卷积核(filter)以及部分和(partsum)的参与,所以将运算所需的指令划分为3类:ifmap相关的指令,filter相关的指令以及partsum相关的指令,3类指令类型由指令格式中的操作码和操作数索引区分。
指令比较模块:指令比较模块用于将卷积运算中不同通道的指令与通道1中的指令进行比较,对于待比较的一条指令,将指令格式中的每个字段的内容与通道1中的相同类型的指令一一比较。
指令缓冲模块:由于卷积运算中不同通道之间存在相同的指令,指令缓冲模块用于存储卷积运算中第一个通道的指令,其作为比较基准,以便与其他通道的指令进行对比。
指令地址更新模块:如果待比较的指令与通道1中的某个指令内容完全相同,则指令地址更新模块则将该指令的指令更新为通道1中的指令地址,从而实现指令的共享。
一个通道内指令共享检测装置如图4所示,它同样包括指令类型判断模块、指令缓冲模块,指令比较模块、指令地址更新模块。其中指令缓冲模块用于存储映射在PE阵列中的第一个PE中的指令以及每组的第一个PE(P1)中的指令。该装置以PE1或者P1的指令为基准,对其他PE内的指令进行一一检测。
本发明的装置减少了稀疏网络中加载指令时对存储器的不断访问,提升了稀疏网络的执行性能。
以下为与上述方法实施例对应的系统实施例,本实施方式可与上述实施方式互相配合实施。上述施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在上述实施方式中。
本发明还提出了一种基于数据流架构的稀疏卷积神经网络加速系统,其中包括:
编译器,将稀疏卷积神经网络运算编译为数据流图,并通过对该数据流图中通道间指令进行检测和对比,为通道间指令内容相同的指令标记指令复用标签,将具有指令复用标签的指令的地址设置为同一地址;
计算阵列,运行该数据流图时判断当前通道的指令是否标有指令复用标签,若是则复用前一通道指令对当前通道进行处理,否则从内存加载指令对当前通道进行处理;直到得到该数据流图的处理结果。
所述的基于数据流架构的稀疏卷积神经网络加速系统,其中该编译器包括:
对该数据流图内各通道的指令进行指令类型检测,得到所有通道内各指令对应的指令类型;通过对当前通道的每一条指令与前一通道中同类型的指令进行比较,为当前通道中与前一通道中指令类型相同的指令标记指令复用标签。
所述的基于数据流架构的稀疏卷积神经网络加速系统,其中该计算阵列包括:
对计算阵列中各计算单元的指令进行指令类型检测,得到各计算单元内各指令对应的指令类型;以该计算阵列中第一个计算单元PE1中各指令对应的指令类型为基准,将该计算阵列中除第一个计算单元PE1以外的计算单元的指令与第一个计算单元PE1的指令内容相同的指令标记指令重用标签,将具有指令重用标签的指令的地址设置为同一地址。
所述的基于数据流架构的稀疏卷积神经网络加速系统,其中该计算阵列包括:
对计算阵列中各计算单元的指令进行指令类型检测,得到各计算单元内各Inst对应的指令类型;以该计算阵列中每组的第一个计算单元P1中各指令对应的指令类型为基准,将该计算阵列中除第一个计算单元P1以外的计算单元的指令与第一个计算单元P1的指令内容相同的指令标记指令重用标签,将具有指令重用标签的指令的地址设置为同一地址。
所述的基于数据流架构的稀疏卷积神经网络加速系统,其中该数据流图中包含多个结点,结点中包含多个指令,数据流图的有向边表示结点的依赖关系。

Claims (10)

1.一种基于数据流架构的稀疏卷积神经网络加速方法,其特征在于,包括:
步骤1、通过编译器将稀疏卷积神经网络运算编译为数据流图,并通过对该数据流图中通道间指令进行检测和对比,为通道间指令内容相同的指令标记指令复用标签,将具有指令复用标签的指令的地址设置为同一地址;
步骤2、计算阵列运行该数据流图时判断当前通道的指令是否标有指令复用标签,若是则复用前一通道指令对当前通道进行处理,否则从内存加载指令对当前通道进行处理;直到得到该数据流图的处理结果。
2.如权利要求1所述的基于数据流架构的稀疏卷积神经网络加速方法,其特征在于,该步骤1包括:
步骤11、对该数据流图内各通道的指令进行指令类型检测,得到所有通道内各指令对应的指令类型;
步骤12、通过对当前通道的每一条指令与前一通道中同类型的指令进行比较,为当前通道中与前一通道中指令类型相同的指令标记指令复用标签。
3.如权利要求1或2所述的基于数据流架构的稀疏卷积神经网络加速方法,其特征在于,该步骤2包括:
步骤21、对计算阵列中各计算单元的指令进行指令类型检测,得到各计算单元内各Inst对应的指令类型;
步骤22、以该计算阵列中第一个计算单元PE1中各指令对应的指令类型为基准,将该计算阵列中除第一个计算单元PE1以外的计算单元的指令与第一个计算单元PE1的指令内容相同的指令标记指令重用标签,将具有指令重用标签的指令的地址设置为同一地址。
4.如权利要求1或2所述的基于数据流架构的稀疏卷积神经网络加速方法,其特征在于,该步骤2包括:
步骤23、对计算阵列中各计算单元的指令进行指令类型检测,得到各计算单元内各指令对应的指令类型;
步骤24、以该计算阵列中每组的第一个计算单元P1中各指令对应的指令类型为基准,将该计算阵列中除第一个计算单元P1以外的计算单元的指令与第一个计算单元P1的指令内容相同的指令标记指令重用标签,将具有指令重用标签的指令的地址设置为同一地址。
5.如权利要求1所述的基于数据流架构的稀疏卷积神经网络加速方法,其特征在于,该数据流图中包含多个结点,结点中包含多个指令,数据流图的有向边表示结点的依赖关系。
6.一种基于数据流架构的稀疏卷积神经网络加速系统,其特征在于,包括:
编译器,将稀疏卷积神经网络运算编译为数据流图,并通过对该数据流图中通道间指令进行检测和对比,为通道间指令内容相同的指令标记指令复用标签,将具有指令复用标签的指令的地址设置为同一地址;
计算阵列,运行该数据流图时判断当前通道的指令是否标有指令复用标签,若是则复用前一通道指令对当前通道进行处理,否则从内存加载指令对当前通道进行处理;直到得到该数据流图的处理结果。
7.如权利要求6所述的基于数据流架构的稀疏卷积神经网络加速系统,其特征在于,该编译器包括:
对该数据流图内各通道的指令进行指令类型检测,得到所有通道内各指令对应的指令类型;通过对当前通道的每一条指令与前一通道中同类型的指令进行比较,为当前通道中与前一通道中指令类型相同的指令标记指令复用标签。
8.如权利要求6或7所述的基于数据流架构的稀疏卷积神经网络加速系统,其特征在于,该计算阵列包括:
对计算阵列中各计算单元的指令进行指令类型检测,得到各计算单元内各指令对应的指令类型;以该计算阵列中第一个计算单元PE1中各指令对应的指令类型为基准,将该计算阵列中除第一个计算单元PE1以外的计算单元的指令与第一个计算单元PE1的指令内容相同的指令标记指令重用标签,将具有指令重用标签的指令的地址设置为同一地址。
9.如权利要求6或7所述的基于数据流架构的稀疏卷积神经网络加速系统,其特征在于,该计算阵列包括:
对计算阵列中各计算单元的指令进行指令类型检测,得到各计算单元内各Inst对应的指令类型;以该计算阵列中每组的第一个计算单元P1中各指令对应的指令类型为基准,将该计算阵列中除第一个计算单元P1以外的计算单元的指令与第一个计算单元P1的指令内容相同的指令标记指令重用标签,将具有指令重用标签的指令的地址设置为同一地址。
10.如权利要求6所述的基于数据流架构的稀疏卷积神经网络加速系统,其特征在于,该数据流图中包含多个结点,结点中包含多个指令,数据流图的有向边表示结点的依赖关系。
CN202010719417.9A 2020-07-23 2020-07-23 基于数据流架构的稀疏卷积神经网络加速方法及系统 Active CN112015473B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010719417.9A CN112015473B (zh) 2020-07-23 2020-07-23 基于数据流架构的稀疏卷积神经网络加速方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010719417.9A CN112015473B (zh) 2020-07-23 2020-07-23 基于数据流架构的稀疏卷积神经网络加速方法及系统

Publications (2)

Publication Number Publication Date
CN112015473A true CN112015473A (zh) 2020-12-01
CN112015473B CN112015473B (zh) 2023-06-27

Family

ID=73499774

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010719417.9A Active CN112015473B (zh) 2020-07-23 2020-07-23 基于数据流架构的稀疏卷积神经网络加速方法及系统

Country Status (1)

Country Link
CN (1) CN112015473B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112699058A (zh) * 2020-12-31 2021-04-23 深圳大普微电子科技有限公司 适用于循环神经网络的寻址方法、装置、加速器以及介质
CN115393174A (zh) * 2022-10-27 2022-11-25 之江实验室 一种粗粒度的图像神经网络加速器指令集架构方法及装置
WO2023097424A1 (en) * 2021-11-30 2023-06-08 Intel Corporation Method and apparatus for fusing layers of different models

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090198964A1 (en) * 2008-01-31 2009-08-06 International Business Machines Corporation Method, system, and computer program product for out of order instruction address stride prefetch performance verification
EP3396533A2 (en) * 2017-04-28 2018-10-31 INTEL Corporation Programmable coarse grained and sparse matrix compute hardware with advanced scheduling
CN109272112A (zh) * 2018-07-03 2019-01-25 北京中科睿芯科技有限公司 一种面向神经网络的数据重用指令映射方法、系统及装置
CN110991631A (zh) * 2019-11-28 2020-04-10 福州大学 一种基于fpga的神经网络加速系统
CN111062472A (zh) * 2019-12-11 2020-04-24 浙江大学 一种基于结构化剪枝的稀疏神经网络加速器及其加速方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090198964A1 (en) * 2008-01-31 2009-08-06 International Business Machines Corporation Method, system, and computer program product for out of order instruction address stride prefetch performance verification
EP3396533A2 (en) * 2017-04-28 2018-10-31 INTEL Corporation Programmable coarse grained and sparse matrix compute hardware with advanced scheduling
CN109272112A (zh) * 2018-07-03 2019-01-25 北京中科睿芯科技有限公司 一种面向神经网络的数据重用指令映射方法、系统及装置
CN110991631A (zh) * 2019-11-28 2020-04-10 福州大学 一种基于fpga的神经网络加速系统
CN111062472A (zh) * 2019-12-11 2020-04-24 浙江大学 一种基于结构化剪枝的稀疏神经网络加速器及其加速方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
周国飞;: "一种支持稀疏卷积的深度神经网络加速器的设计", 电子技术与软件工程 *
廉玉龙;史峥;李春强;王会斌;尚云海;: "基于C-SKY CPU的地址立即数编译优化方法", 计算机工程 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112699058A (zh) * 2020-12-31 2021-04-23 深圳大普微电子科技有限公司 适用于循环神经网络的寻址方法、装置、加速器以及介质
CN112699058B (zh) * 2020-12-31 2023-12-29 深圳大普微电子科技有限公司 适用于循环神经网络的寻址方法、装置、加速器以及介质
WO2023097424A1 (en) * 2021-11-30 2023-06-08 Intel Corporation Method and apparatus for fusing layers of different models
CN115393174A (zh) * 2022-10-27 2022-11-25 之江实验室 一种粗粒度的图像神经网络加速器指令集架构方法及装置

Also Published As

Publication number Publication date
CN112015473B (zh) 2023-06-27

Similar Documents

Publication Publication Date Title
CN112015473B (zh) 基于数据流架构的稀疏卷积神经网络加速方法及系统
US11531540B2 (en) Processing apparatus and processing method with dynamically configurable operation bit width
Gupta et al. Nnpim: A processing in-memory architecture for neural network acceleration
CN111008040B (zh) 缓存装置及缓存方法、计算装置及计算方法
CN111630502A (zh) 用于神经网络处理器的统一存储器组织
US11507423B2 (en) Processing data stream modification to reduce power effects during parallel processing
CN116401502B (zh) 一种基于NUMA系统特性优化Winograd卷积的方法及装置
US8838941B2 (en) Multi-thread processors and methods for instruction execution and synchronization therein and computer program products thereof
CN115809063B (zh) 一种存储过程编译方法、系统、电子设备和存储介质
CN108875914B (zh) 对神经网络数据进行预处理和后处理的方法和装置
Lin et al. HyScale-GNN: A scalable hybrid GNN training system on single-node heterogeneous architecture
Peroni et al. ARGA: Approximate reuse for GPGPU acceleration
CN113672232A (zh) 程序编译方法和装置
Kim et al. ComPreEND: Computation pruning through predictive early negative detection for ReLU in a deep neural network accelerator
US20230385258A1 (en) Dynamic random access memory-based content-addressable memory (dram-cam) architecture for exact pattern matching
US10761847B2 (en) Linear feedback shift register for a reconfigurable logic unit
US11853762B1 (en) Single instruction multiple data execution with variable size logical registers
CN112732638B (zh) 基于ctpn网络的异构加速系统及方法
US11662981B2 (en) Low-power programmable truncated multiplication circuitry
CN112215349B (zh) 基于数据流架构的稀疏卷积神经网络加速方法及装置
CN110969259B (zh) 具有数据关联自适应舍入的处理核心
US10915317B2 (en) Multiple-pipeline architecture with special number detection
CN113849453A (zh) 用片上高速缓存进行大规模相似性搜索
Cheng et al. Alleviating bottlenecks for dnn execution on gpus via opportunistic computing
US20190073584A1 (en) Apparatus and methods for forward propagation in neural networks supporting discrete data

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