CN109685208B - 一种用于神经网络处理器数据稀梳化加速的方法及装置 - Google Patents

一种用于神经网络处理器数据稀梳化加速的方法及装置 Download PDF

Info

Publication number
CN109685208B
CN109685208B CN201811582787.1A CN201811582787A CN109685208B CN 109685208 B CN109685208 B CN 109685208B CN 201811582787 A CN201811582787 A CN 201811582787A CN 109685208 B CN109685208 B CN 109685208B
Authority
CN
China
Prior art keywords
ram
data
rdata
fdr
read
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
Application number
CN201811582787.1A
Other languages
English (en)
Other versions
CN109685208A (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.)
Hefei Ingenic Technology Co ltd
Original Assignee
Hefei Ingenic Technology Co ltd
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 Hefei Ingenic Technology Co ltd filed Critical Hefei Ingenic Technology Co ltd
Priority to CN201811582787.1A priority Critical patent/CN109685208B/zh
Publication of CN109685208A publication Critical patent/CN109685208A/zh
Application granted granted Critical
Publication of CN109685208B publication Critical patent/CN109685208B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • 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
    • 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)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Image Analysis (AREA)

Abstract

本发明公开了一种用于神经网络处理器数据稀梳化加速的方法及装置,首先RAM的读地址寄存器根据当前卷积的基本信息从FFR和WFR中分别读出对应的flag并根据计算的进程完成相应的自我更新;从FFR和WFR中读出的flag被存入RAM读出数据寄存器中;步骤3:RAM读出数据寄存器被送入FD,FD结合两边的flag产生出RAM的读地址寄存器;步骤4:根据RAM的读地址寄存器分别从FDR和WDR中读出相应的feature数据,并存入RAM读出数据寄存器;步骤5:RAM读出数据寄存器被送入PE,完成相应的乘累加操作。本发明的计算量、FDR和WDR的读取次数相对现有技术均减少了,有效的降低了功耗。

Description

一种用于神经网络处理器数据稀梳化加速的方法及装置
技术领域
本发明涉及神经网络技术领域,尤其涉及一种用于神经网络处理器数据稀梳化加速的方法及装置。
背景技术
神经网络:(Neural Network),是20世纪80年代以来人工智能领域兴起的研究热点。它从信息处理角度对人脑神经元网络进行抽象,建立某种简单模型,按不同的连接方式组成不同的网络。在工程与学术界也常直接简称为神经网络或类神经网络。神经网络是一种运算模型,由大量的节点(或称神经元) 之间相互联接构成。每个节点代表一种特定的输出函数,称为激励函数 (activation function)。每两个节点间的连接都代表一个对于通过该连接信号的加权值,称之为权重,这相当于人工神经网络的记忆。网络的输出则依网络的连接方式、权重值和激励函数的不同而不同。而网络自身通常都是对自然界某种算法或者函数的逼近,也可能是对一种逻辑策略的表达。
最近十多年来,人工神经网络的研究工作不断深入,已经取得了很大的进展,其在模式识别、智能机器人、自动控制、预测估计、生物、医学、经济等领域已成功地解决了许多现代计算机难以解决的实际问题,表现出了良好的智能特性。
为深度神经网络的一般结构虽然在人工智能领域取得了瞩目的成果,但数据量巨大,大量的参数如权重和bias数据,大量的中间隐层如feature map数据,像VGG16的参数量达到了138M个。如此巨大的数据量和运算量给AI芯片特别是端级AI芯片的设计带来了巨大的挑战,为此业界有提出了“剪枝”的方法,用来减少神经网络的参数量,韩松的deepcompression中提到了pruning策略示意图:通过pruning可以将一些为0的权重和featuremap去除,从来使得权重数据和feature map数据都拥有巨大的稀疏性。虽然神经网络权重数据和 feature map数据都拥有巨大的稀疏性,但对硬件设计来说,如何从功耗和性能的角度获得收益才是关键,显然现有技术并未很好的做好这一点。
发明内容
本发明所要解决的技术问题在于克服以上现有技术提出的缺陷,提供了一种用于神经网络处理器数据稀梳化加速的方法及装置。
本发明是通过以下技术方案实现的:一种用于神经网络处理器数据稀梳化加速的方法,其特征在于,该方法包括以下步骤:
步骤1:首先RAM的读地址寄存器ffr_raddr和RAM的读地址寄存器 wfr_raddr根据当前卷积的基本信息从FFR和WFR中分别读出对应的flag并根据计算的进程完成相应的自我更新;
步骤2:从FFR和WFR中读出的flag被存入RAM读出数据寄存器ffr_rdata 和RAM读出数据寄存器wfr_rdata中;
步骤3:RAM读出数据寄存器ffr_rdata和RAM读出数据寄存器wfr_rdata 被送入FD,FD结合两边的flag产生出RAM的读地址寄存器fdr_raddr和RAM 的读地址寄存器wdr_raddr;
步骤4:根据RAM的读地址寄存器fdr_raddr和RAM的读地址寄存器 wdr_raddr分别从FDR和WDR中读出相应的feature数据,并存入RAM读出数据寄存器fdr_rdata和RAM读出数据寄存器wdr_rdata;
步骤5:RAM读出数据寄存器fdr_rdata和RAM读出数据寄存器wdr_rdata 被送入PE,完成相应的乘累加操作。
作为本发明的优选方式之一,所述FDR的存储方式为:
Figure RE-GDA0001977066640000031
;所述FFR的存储方式为:
Figure RE-GDA0001977066640000032
;FDR存储feature map的数据本身,按水平方向光栅扫描的顺序存储,每个 entry存储一个feature值,FFR存储feature map的flag值,每个entry 8 个bit对应8个值,1表示非0,0表示为0。
作为本发明的优选方式之一,所述WDR的存储方式为:
Figure RE-GDA0001977066640000033
;所述WFR的存储方式为:
Figure RE-GDA0001977066640000034
;WFR的index 0对应L2,K2,M1,L1,K1,M0,L0,K0的flag(高位对应L2,低位对应K0)Index 1对应M2,高位7bit补0。
作为本发明的优选方式之一,所述FDR和WDR的读地址产生过程分别是: fdr_raddr:0(a0)->2(a2)->10(b2);Wdr_raddr:0(K0)->6(K2)->7(L2)。
本发明还公开了一种用于神经网络处理器数据稀梳化加速的装置,包括以下模块:
数据更新模块:用于对RAM的读地址寄存器ffr_raddr和RAM的读地址寄存器wfr_raddr根据当前卷积的基本信息从FFR和WFR中分别读出对应的flag 并根据计算的进程完成相应的自我更新;
标记模块:用于从FFR和WFR中读出的flag被存入RAM读出数据寄存器 ffr_rdata和RAM读出数据寄存器wfr_rdata中;
读取地址模块:用于RAM读出数据寄存器ffr_rdata和RAM读出数据寄存器wfr_rdata被送入FD,FD结合两边的flag产生出RAM的读地址寄存器 fdr_raddr和RAM的读地址寄存器wdr_raddr;
特征存储模块:用于根据RAM的读地址寄存器fdr_raddr和RAM的读地址寄存器wdr_raddr分别从FDR和WDR中读出相应的feature数据,并存入RAM 读出数据寄存器fdr_rdata和RAM读出数据寄存器wdr_rdata;
输出模块:用于RAM读出数据寄存器fdr_rdata和RAM读出数据寄存器 wdr_rdata被送入PE,完成相应的乘累加操作。
本发明相比现有技术的优点在于:本发明的计算量、FDR和WDR的读取次数相对现有技术均减少了,有效的降低了功耗,另外卷积的计算过程因为稀疏性的数据跳过也被加速了。
附图说明
图1是本发明的卷积神经网络流程图。
具体实施方式
下面对本发明的实施例作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
为了便于理解,本发明以3x3卷积核为例:
input feature map(灰块值为0)
Figure RE-GDA0001977066640000051
kernel(权重数据,灰块值为0)
Figure RE-GDA0001977066640000052
普通情况下映射到计算单元的输入:
Figure RE-GDA0001977066640000053
考虑稀疏性后映射到计算单元的输入:
Figure RE-GDA0001977066640000054
;input feature map与weight parameter按kernel拉成一维输入,上例中sparsity直接略过,最终3个cycle完成一个3x3卷积核的所有乘法计算(若不略过则需要3x3=9次乘累加运算)。
基于以上设计思路原理:如图1所示:本发明一种用于神经网络处理器数据稀梳化加速的方法,该方法包括以下步骤:
步骤1:首先RAM的读地址寄存器ffr_raddr和RAM的读地址寄存器 wfr_raddr根据当前卷积的基本信息从FFR和WFR(Weight Flag RAM)中分别读出对应的flag并根据计算的进程完成相应的自我更新;所述FFR的存储方式为:
Figure RE-GDA0001977066640000061
所述WFR的存储方式为:
Figure RE-GDA0001977066640000062
FFR存储feature map的flag值,每个entry 8个bit对应8个值,1表示非0,0表示为0;WFR的index 0对应L2,K2,M1,L1,K1,M0,L0, K0的flag(高位对应L2,低位对应K0)Index1对应M2,高位7bit补0;
步骤2:从FFR和WFR中读出的flag被存入RAM读出数据寄存器ffr_rdata 和RAM读出数据寄存器wfr_rdata中;
步骤3:RAM读出数据寄存器ffr_rdata和RAM读出数据寄存器wfr_rdata 被送入FD(flag decoding),FD结合两边的flag产生出RAM的读地址寄存器 fdr_raddr和RAM的读地址寄存器wdr_raddr(根据两边的flag显然可以计算出下一个有效的FDR和WDR读取位置);
步骤4:根据RAM的读地址寄存器fdr_raddr和RAM的读地址寄存器wdr_raddr分别从FDR和WDR(Weight Data RAM)中读出相应的feature数据,并存入RAM读出数据寄存器fdr_rdata和RAM读出数据寄存器wdr_rdata;
所述FDR的存储方式为:
Figure RE-GDA0001977066640000063
;FDR存储feature map的数据本身,按水平方向光栅扫描的顺序存储,每个 entry存储一个feature值。
所述WDR的存储方式为:
Figure RE-GDA0001977066640000071
步骤5:RAM读出数据寄存器fdr_rdata和RAM读出数据寄存器wdr_rdata 被送入PE(计算单元),完成相应的乘累加操作;
上述步骤过程不断按流水推进,直到所有的卷积计算完成,卷积窗口不断划动,重复上述过程即可。
为便于理解,作为本发明的优选方式之一,上例中FDR和WDR的读地址产生过程分别是:
fdr_raddr:0(a0)->2(a2)->10(b2)
(注:虽然b1非0,但对应位置的权重flag为0,所以被略过)
Wdr_raddr:0(K0)->6(K2)->7(L2)
(注:同样M0,M1,M2非0,但对应位置的feature为0,所以被略过)
根据上面的过程可以看出计算量、FDR和WDR的读取次数均减少了,这可以有效降低功耗;同样,卷积的计算过程因为稀疏性的数据跳过也被加速了。
本发明还公开了一种用于神经网络处理器数据稀梳化加速的装置,包括以下模块:
数据更新模块:用于对RAM的读地址寄存器ffr_raddr和RAM的读地址寄存器wfr_raddr根据当前卷积的基本信息从FFR和WFR中分别读出对应的flag 并根据计算的进程完成相应的自我更新;
标记模块:用于从FFR和WFR中读出的flag被存入RAM读出数据寄存器 ffr_rdata和RAM读出数据寄存器wfr_rdata中;
读取地址模块:用于RAM读出数据寄存器ffr_rdata和RAM读出数据寄存器wfr_rdata被送入FD,FD结合两边的flag产生出RAM的读地址寄存器 fdr_raddr和RAM的读地址寄存器wdr_raddr;
特征存储模块:用于根据RAM的读地址寄存器fdr_raddr和RAM的读地址寄存器wdr_raddr分别从FDR和WDR中读出相应的feature数据,并存入RAM 读出数据寄存器fdr_rdata和RAM读出数据寄存器wdr_rdata;
输出模块:用于RAM读出数据寄存器fdr_rdata和RAM读出数据寄存器 wdr_rdata被送入PE,完成相应的乘累加操作。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (5)

1.一种用于神经网络处理器数据稀梳化加速的方法,其特征在于,该方法包括以下步骤:
步骤1:首先RAM的读地址寄存器ffr_raddr和RAM的读地址寄存器wfr_raddr根据当前卷积的基本信息从FFR和WFR中分别读出对应的flag并根据计算的进程完成相应的自我更新;
步骤2:从FFR和WFR中读出的flag被存入RAM读出数据寄存器ffr_rdata和RAM读出数据寄存器wfr_rdata中;
步骤3:RAM读出数据寄存器ffr_rdata和RAM读出数据寄存器wfr_rdata被送入FD,FD结合两边的flag产生出RAM的读地址寄存器fdr_raddr和RAM的读地址寄存器wdr_raddr;
步骤4:根据RAM的读地址寄存器fdr_raddr和RAM的读地址寄存器wdr_raddr分别从FDR和WDR中读出相应的feature数据,并存入RAM读出数据寄存器fdr_rdata和RAM读出数据寄存器wdr_rdata;
步骤5:RAM读出数据寄存器fdr_rdata和RAM读出数据寄存器wdr_rdata被送入PE,完成相应的乘累加操作。
2.根据权利要求1所述的用于神经网络处理器数据稀梳化加速的方法,其特征在于,
所述FDR的存储方式为:
Figure FDA0003916471680000011
;所述FFR的存储方式为:
Figure FDA0003916471680000012
;FDR存储feature map的数据本身,按水平方向光栅扫描的顺序存储,每个entry存储一个feature值,FFR存储feature map的flag值,每个entry 8个bit对应8个值,1表示非0,0表示为0。
3.根据权利要求1所述的用于神经网络处理器数据稀梳化加速的方法,其特征在于,
所述WDR的存储方式为:
Figure FDA0003916471680000021
;所述WFR的存储方式为:
Figure FDA0003916471680000022
;WFR的index 0对应L2,K2,M1,L1,K1,M0,L0,K0的flag,高位对应L2,低位对应K0;WFR的Index 1对应M2,高位7bit补0。
4.根据权利要求2或3所述的用于神经网络处理器数据稀梳化加速的方法,其特征在于,所述FDR和WDR的读地址产生过程分别是:fdr_raddr:0(a0)->2(a2)->10(b2);Wdr_raddr:0(K0)->6(K2)->7(L2)。
5.一种根据权利要求1-4任一所述的用于神经网络处理器数据稀梳化加速的方法的装置,其特征在于,包括以下模块:
数据更新模块:用于对RAM的读地址寄存器ffr_raddr和RAM的读地址寄存器wfr_raddr根据当前卷积的基本信息从FFR和WFR中分别读出对应的flag并根据计算的进程完成相应的自我更新;
标记模块:用于从FFR和WFR中读出的flag被存入RAM读出数据寄存器ffr_rdata和RAM读出数据寄存器wfr_rdata中;
读取地址模块:用于RAM读出数据寄存器ffr_rdata和RAM读出数据寄存器wfr_rdata被送入FD,FD结合两边的flag产生出RAM的读地址寄存器fdr_raddr和RAM的读地址寄存器wdr_raddr;
特征存储模块:用于根据RAM的读地址寄存器fdr_raddr和RAM的读地址寄存器wdr_raddr分别从FDR和WDR中读出相应的feature数据,并存入RAM读出数据寄存器fdr_rdata和RAM读出数据寄存器wdr_rdata;
输出模块:用于RAM读出数据寄存器fdr_rdata和RAM读出数据寄存器wdr_rdata被送入PE,完成相应的乘累加操作。
CN201811582787.1A 2018-12-24 2018-12-24 一种用于神经网络处理器数据稀梳化加速的方法及装置 Active CN109685208B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811582787.1A CN109685208B (zh) 2018-12-24 2018-12-24 一种用于神经网络处理器数据稀梳化加速的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811582787.1A CN109685208B (zh) 2018-12-24 2018-12-24 一种用于神经网络处理器数据稀梳化加速的方法及装置

Publications (2)

Publication Number Publication Date
CN109685208A CN109685208A (zh) 2019-04-26
CN109685208B true CN109685208B (zh) 2023-03-24

Family

ID=66189106

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811582787.1A Active CN109685208B (zh) 2018-12-24 2018-12-24 一种用于神经网络处理器数据稀梳化加速的方法及装置

Country Status (1)

Country Link
CN (1) CN109685208B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111563455B (zh) * 2020-05-08 2023-07-11 南昌工程学院 基于时间序列信号和压缩卷积神经网络的伤损识别方法
CN113743602B (zh) * 2020-05-27 2024-05-03 合肥君正科技有限公司 一种提高模型后处理速度的方法
CN113762498B (zh) * 2020-06-04 2024-01-23 合肥君正科技有限公司 一种量化RoiAlign算子的方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001034603A (ja) * 1999-07-22 2001-02-09 Matsushita Electric Ind Co Ltd 積和演算処理装置
CN107229967A (zh) * 2016-08-22 2017-10-03 北京深鉴智能科技有限公司 一种基于fpga实现稀疏化gru神经网络的硬件加速器及方法
CN108108809A (zh) * 2018-03-05 2018-06-01 山东领能电子科技有限公司 一种针对卷积神经元网络进行推理加速的硬件架构及其工作方法
CN108629411A (zh) * 2018-05-07 2018-10-09 济南浪潮高新科技投资发展有限公司 一种卷积运算硬件实现装置及方法
CN108701015A (zh) * 2017-11-30 2018-10-23 深圳市大疆创新科技有限公司 用于神经网络的运算装置、芯片、设备及相关方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001034603A (ja) * 1999-07-22 2001-02-09 Matsushita Electric Ind Co Ltd 積和演算処理装置
CN107229967A (zh) * 2016-08-22 2017-10-03 北京深鉴智能科技有限公司 一种基于fpga实现稀疏化gru神经网络的硬件加速器及方法
CN108701015A (zh) * 2017-11-30 2018-10-23 深圳市大疆创新科技有限公司 用于神经网络的运算装置、芯片、设备及相关方法
CN108108809A (zh) * 2018-03-05 2018-06-01 山东领能电子科技有限公司 一种针对卷积神经元网络进行推理加速的硬件架构及其工作方法
CN108629411A (zh) * 2018-05-07 2018-10-09 济南浪潮高新科技投资发展有限公司 一种卷积运算硬件实现装置及方法

Also Published As

Publication number Publication date
CN109685208A (zh) 2019-04-26

Similar Documents

Publication Publication Date Title
CN110458279B (zh) 一种基于fpga的二值神经网络加速方法及系统
CN111414994B (zh) 一种基于FPGA的Yolov3网络计算加速系统及其加速方法
CN109685208B (zh) 一种用于神经网络处理器数据稀梳化加速的方法及装置
CN107832844A (zh) 一种信息处理方法及相关产品
CN111783937A (zh) 一种神经网络构建方法以及系统
CN110321064A (zh) 用于神经网络的计算平台实现方法及系统
CN111931901A (zh) 一种神经网络构建方法以及装置
CN113743587B (zh) 一种卷积神经网络池化计算方法、系统、及存储介质
CN112835552A (zh) 一种外积累加求解稀疏矩阵与稠密矩阵内积的方法
CN110738317A (zh) 基于fpga的可变形卷积网络运算方法、装置和系统
CN117725966B (zh) 草图序列重建模型的训练方法、几何模型重建方法及设备
CN117217274B (zh) 向量处理器、神经网络加速器、芯片及电子设备
JP4854032B2 (ja) 音声認識における音響尤度並列計算装置及びそのプログラム
Vučković et al. Generalized N-way iterative scanline fill algorithm for real-time applications
KR20220024076A (ko) 기계 학습 모델 성능의 최적화
JP7299846B2 (ja) ニューラルネットワーク処理方法、コンピュータシステム及び記憶媒体
Sakr et al. Memory-efficient CMSIS-NN with replacement strategy
CN114595641A (zh) 组合优化问题的求解方法和系统
CN116802646A (zh) 数据处理的方法和装置
Choudhury et al. Variable batch size across layers for efficient prediction on CNNs
CN112749799B (zh) 基于自适应ReLU的全频域卷积神经网络的硬件加速器、加速方法和图像分类方法
CN116050469A (zh) Ai模型的处理方法、运算方法及装置
CN116888605A (zh) 神经网络模型的运算方法、训练方法及装置
CN112712174B (zh) 全频域卷积神经网络的硬件加速器、加速方法和图像分类方法
Lyu et al. FLNA: An energy-efficient point cloud feature learning accelerator with dataflow decoupling

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