CN110046699B - 降低加速器外部数据存储带宽需求的二值化系统和方法 - Google Patents

降低加速器外部数据存储带宽需求的二值化系统和方法 Download PDF

Info

Publication number
CN110046699B
CN110046699B CN201810037869.1A CN201810037869A CN110046699B CN 110046699 B CN110046699 B CN 110046699B CN 201810037869 A CN201810037869 A CN 201810037869A CN 110046699 B CN110046699 B CN 110046699B
Authority
CN
China
Prior art keywords
data
binarization
unit
multiplication
input
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
CN201810037869.1A
Other languages
English (en)
Other versions
CN110046699A (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.)
South China University of Technology SCUT
Original Assignee
South China University of Technology SCUT
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 South China University of Technology SCUT filed Critical South China University of Technology SCUT
Priority to CN201810037869.1A priority Critical patent/CN110046699B/zh
Publication of CN110046699A publication Critical patent/CN110046699A/zh
Application granted granted Critical
Publication of CN110046699B publication Critical patent/CN110046699B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30029Logical and Boolean instructions, e.g. XOR, NOT
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Neurology (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Complex Calculations (AREA)

Abstract

本发明公开了一种降低加速器外部数据存储带宽需求的二值化系统和方法,系统包括:输入二值化单元、二值化乘法计算单元、缓存单元、算术逻辑计算单元、输出二值化单元,其中,输入二值化单元用于对输入数据进行二值化处理,输出二值化单元用于对输出数据进行二值化处理。本系统通过输入二值化单元和输出二值化单元对输入数据以及输出的特征图数据进行二值化处理,并且采用二值化的权值数据,大大降低了数据量;并且增设了缓存单元对中间数据进行缓存,降低了卷积神经网络加速器与外部存储器之间的访问次数,从而降低了加速器对数据存储带宽的需求。本发明可以广泛应用于数据处理领域。

Description

降低加速器外部数据存储带宽需求的二值化系统和方法
技术领域
本发明涉及数据处理领域,尤其是一种降低加速器外部数据存储带宽需求的二值化系统和方法。
背景技术
近年来,随着人工智能的热度上升,人们提出了越来越多的深度学习算法模型以解决当前存在的研究问题,而卷积神经网络在机器视觉领域上取得了巨大的成就。卷积神经网络由于其权值的可重用性大大降低了其权值参数的数量,加速了深度学习模型的计算效率。但是随着卷积神经网络的研究不断深入,层数更多、结构更加复杂的模型被提出来,其自身的大量卷积运算需要硬件加载其大量的权值数据与输入数据,因此嵌入式人工智能硬件处理单元对外部内存带宽的需求增大,而目前外部数据存储器的数据带宽成了卷积神经网络加速器发展的瓶颈。
为了解决内存带宽需求增大的问题,目前主要采取的方案是选用存储带宽更高的外部存储器。但是外部存储器的带宽的增加依赖于存储技术的发展,往往需要付出更高的成本。
因此市场上需要一种能够降低数据存储带宽需求的技术。
发明内容
为解决上述技术问题,本发明的第一目的在于:提供一种降低加速器外部数据存储带宽需求的二值化系统。
本发明的第二目的在于:提供一种降低加速器外部数据存储带宽需求的二值化方法。
本发明所采取的第一种技术方案是:
降低加速器外部数据存储带宽需求的二值化系统,包括:
输入二值化单元,用于对输入数据进行二值化处理,得到二值化的输入数据;
二值化乘法计算单元,用于对二值化的数据和权值数据进行数据处理以及向缓存单元和算术逻辑计算单元输出数据;所述数据处理包括乘法操作、定点数乘法操作、批标准化操作和激活操作,所述权值数据为二值化的权值数据;
缓存单元,用于缓存二值化乘法计算单元和算术逻辑计算单元输出的数据;
算术逻辑计算单元,用于对二值化乘法计算单元输出的数据以及对缓存单元中的缓存数据进行加减操作,以及向二值化乘法计算单元和算术逻辑计算单元输出数据;
输出二值化单元,用于对输出数据进行二值化处理;
所述二值化乘法计算单元、缓存单元和算术逻辑计算单元之间两两互相连接,所述输入二值化单元的输出端与二值化乘法计算单元的输入端连接,所述缓存单元的输出端与输出二值化单元连接。
进一步,所述二值化乘法计算单元包括多个并行的PE计算单元,所述PE计算单元用于将由多位权值数据合并成的权值向量与由多位输入数据合并成的输入数据向量进行异或非操作,以及用于两个定点数的乘法运算和比较操作。
进一步,所述缓存单元为片上分布式缓存单元,所述缓存单元包括多个并行的存储子单元,所述多个并行的存储子单元用于并行缓存二值化乘法计算单元或者算术逻辑计算单元输出的多个数据,或者用于向二值化乘法计算单元或者算术逻辑计算单元并行地输出已缓存的多个数据。
进一步,所述算术逻辑计算单元包括多个并行的加减计算子单元,所述多个加减计算子单元用于并行地计算二值化乘法计算单元或者缓存单元输出的多个数据,或者用于向二值化乘法计算单元或者缓存单元并行地输出多个数据。
进一步,所述输出二值化单元和输入二值化单元均包括数据二值化子单元和兵乓双缓存子单元,所述数据二值化子单元用于将输入数据与0进行比较,将大于0的数据二值化为1,将小于0的数据二值化为0;
所述兵乓双缓存子单元用于缓存经过二值化的数据,并且由乒乓双缓存子单元的两个缓存器交替地与外部存储器或者二值化乘法计算单元进行数据交换。
本发明所采取的第二种技术方案是:
降低加速器外部数据存储带宽需求的二值化方法,包括以下步骤:
将输入数据进行二值化处理,得到二值化的输入数据;
对二值化后的输入数据和权值数据进行异或非操作,所述权值数据为二值化的权值数据;
对异或非操作的结果进行定点乘法操作;
对定点乘法操作的结果进行批标准化操作;
对批标准化操作的结果进行激活,得到特征图;
将特征图进行二值化处理,并将二值化处理后的特征图输出至外部存储器。
进一步,所述对二值化后的输入数据和权值数据进行异或非操作,这一步骤包括:
对二值化的输入数据和权值数据进行异或非操作,计算出异或非操作的结果中“1”的个数和“0”的个数;
计算异或非操作的结果中“1”的个数和“0”的个数的差值,并以该差值作为异或非操作的结果。
进一步,所述二值化处理具体指,将输入数据与0进行比较,将大于0的数据二值化为1,将小于0的数据二值化为0。
进一步,所述批标准化操作所使用的公式为:
Figure BDA0001548531440000031
其中,
Figure BDA0001548531440000032
yi表示输入数据经过批标准化后的结果,xi表示输入数据,γ表示比例系数,μ表示训练时最小批量数据集的平均值,β表示偏移量,ε表示一个大于零的常数,σ2表示训练时最小批量数据集的方差,m表示最小批量数据集的输入数据的个数。需要注意的是,所述ε是一个很小的正数(可以是0.01、0.1或者0.001等等),目的是为了防止σ2=0而导致公式运算出错。其中,γ、μ、β、σ2均是训练时得到的,因此本发明中仅仅是将这些外部得到的数据进行加、减或乘的操作即可达到本发明的技术效果,因此不对上述参数进行展开解释。
进一步,所述对批标准化操作的结果进行激活,得到特征图的步骤中,所述激活所采用的激活函数的表达式为:
y=(x>0)?x:0.1*x;
其中,y表示激活后特征图的输入数据,x表示激活前特征图的输入数据。
本发明系统的有益效果是:包括输入二值化单元、二值化乘法计算单元、缓存单元、算术逻辑计算单元以及输出二值化单元,本系统通过输入二值化单元和输出二值化单元对输入数据以及输出的特征图数据进行二值化处理,并使用二值化的权值数据,大大降低了数据量;并且增设了缓存单元对中间数据进行缓存,降低了卷积神经网络加速器与外部存储器之间的访问次数,从而降低了加速器对数据存储带宽的需求。
本发明方法的有益效果是:本方法包括将输入数据进行二值化处理,得到二值化的输入数据;对二值化后的输入数据和权值数据进行异或非操作,所述权值数据为二值化的权值数据;对异或非操作的结果进行定点乘法操作;对定点乘法操作的结果进行批标准化操作;对批标准化操作的结果进行激活,得到特征图;以及将特征图进行二值化处理,并将二值化处理后的特征图输出至外部存储器的步骤,本方法通过对输入数据以及输出的特征图数据进行二值化处理,并使用二值化的权值数据,大大降低了数据量,从而降低了加速器对数据存储带宽的需求。
附图说明
图1为本发明一种降低加速器外部数据存储带宽需求的二值化系统的模块框图;
图2为本发明的二值化乘法计算单元的模块框图;
图3为本发明的二值化乘法计算单元中的PE计算单元的模块框图;
图4为本发明一种具体实施例的二值化卷积计算的流程图;
图5为本发明的输入(输出)二值化单元的模块框图;
图6为本发明一种降低加速器外部数据存储带宽需求的二值化方法的流程图;
图7为本发明一种具体实施例的计算流程图。
具体实施方式
参照图1,一种降低加速器外部数据存储带宽需求的二值化系统,包括:
输入二值化单元,用于对输入数据进行二值化处理,得到二值化的输入数据;
二值化乘法计算单元,用于对二值化的数据和权值数据进行数据处理以及向缓存单元和算术逻辑计算单元输出数据;所述数据处理包括乘法操作、定点数乘法操作、批标准化操作和激活操作,所述权值数据为二值化的权值数据;本领域技术人员应该可以清楚地知道权值的二值化过程可以在本系统外部完成,然后直接输入到本系统中,并且所述二值化的权值数据可以是通过输入二值化单元输入的,或者通过二值化乘法计算单元输入或存储,此处并不限制二值化的权值数据的输入途径和来源。
缓存单元,用于缓存二值化乘法计算单元和算术逻辑计算单元输出的数据;
算术逻辑计算单元,用于对二值化乘法计算单元输出的数据以及对缓存单元中的缓存数据进行加减操作,以及向二值化乘法计算单元和算术逻辑计算单元输出数据;
输出二值化单元,用于对输出数据进行二值化处理;
所述二值化乘法计算单元、缓存单元和算术逻辑计算单元之间两两互相连接,所述输入二值化单元的输出端与二值化乘法计算单元的输入端连接,所述缓存单元的输出端与输出二值化单元连接。
参照图2,进一步作为优选的实施方式,所述二值化乘法计算单元包括多个并行的PE计算单元,所述PE计算单元用于将由多位权值数据合并成的权值向量与由多位输入数据合并成的输入数据向量进行异或非操作,以及用于两个定点数的乘法运算和比较操作。
进一步作为优选的实施方式,所述缓存单元为片上分布式缓存单元,所述缓存单元包括多个并行的存储子单元,所述多个并行的存储子单元用于并行缓存二值化乘法计算单元或者算术逻辑计算单元输出的多个数据,或者用于向二值化乘法计算单元或者算术逻辑计算单元并行地输出已缓存的多个数据。
进一步作为优选的实施方式,所述算术逻辑计算单元包括多个并行的加减计算子单元,所述多个加减计算子单元用于并行地计算二值化乘法计算单元或者缓存单元输出的多个数据,或者用于向二值化乘法计算单元或者缓存单元并行地输出多个数据。
参照图5,进一步作为优选的实施方式,所述输出二值化单元和输入二值化单元均包括数据二值化子单元和兵乓双缓存子单元,所述数据二值化子单元用于将输入数据与0进行比较,将大于0的数据二值化为1,将小于0的数据二值化为0;
所述兵乓双缓存子单元用于缓存经过二值化的数据,并且由乒乓双缓存子单元的两个缓存器交替地与外部存储器或者二值化乘法计算单元进行数据交换。
参照图6,一种降低加速器外部数据存储带宽需求的二值化方法,包括以下步骤:
将输入数据进行二值化处理,得到二值化的输入数据;
对二值化后的输入数据和权值数据进行异或非操作,所述权值数据为二值化的权值数据;
对异或非操作的结果进行定点乘法操作;
对定点乘法操作的结果进行批标准化操作;
对批标准化操作的结果进行激活,得到特征图;
将特征图进行二值化处理,并将二值化处理后的特征图输出至外部存储器。
进一步作为优选的实施方式,所述对二值化后的输入数据和权值数据进行异或非操作,这一步骤包括:
对二值化的输入数据和权值数据进行异或非操作,计算出异或非操作的结果中“1”的个数和“0”的个数;
计算异或非操作的结果中“1”的个数和“0”的个数的差值,并以该差值作为异或非操作的结果。
进一步作为优选的实施方式,所述二值化处理具体指,将输入数据与0进行比较,将大于0的数据二值化为1,将小于0的数据二值化为0。
进一步作为优选的实施方式,所述批标准化操作所使用的公式为:
Figure BDA0001548531440000051
其中,
Figure BDA0001548531440000061
yi表示输入数据经过批标准化后的结果,xi表示输入数据,γ表示比例系数,μ表示训练时最小批量数据集的平均值,β表示偏移量,ε表示一个大于零的常数,σ2表示训练时最小批量数据集的方差,m表示最小批量数据集的输入数据的个数。需要注意的是,所述ε是一个很小的正数(可以是0.01、0.1或者0.001等等),目的是为了防止σ2=0而导致公式运算出错。其中,γ、μ、β、σ2均是训练时得到的,因此本发明中仅仅是将这些外部得到的数据进行加、减或乘的操作即可达到本发明的技术效果,因此不对上述参数进行展开解释。
进一步作为优选的实施方式,所述对批标准化操作的结果进行激活,得到特征图的步骤中,所述激活所采用的激活函数的表达式为:
y=(x>0)?x:0.1*x;
其中,y表示激活后特征图的输入数据,x表示激活前特征图的输入数据。
下面结合说明书附图和具体的实施例对本发明进行进一步的说明。
本实施例中卷积过程通过如图1所示的硬件架构进行处理,二值化乘法计算单元用于处理乘法操作、定点数乘法操作、批标准化操作和激活操作,ALU计算单元(即算术逻辑计算单元)用于处理加减操作,片上分布式DRAM存储单元(即缓存单元)用于存储中间值,输入二值化单元用于对输入的非二值数据进行二值化,输出二值化单元用于对输出的非二值化数据进行二值化处理。
如图2所示,二值化乘法计算单元由多个并行的PE计算单元组成,每个PE计算单元能够处理由多位权值数据合并成的权值向量与由多位输入数据合并成的输入数据向量的异或非操作,以及能够处理两个定点数的乘法运算和比较操作。如图3所示,PE计算单元内部包括一个用于暂存当前输入数据的寄存器、异或非计算子单元、乘法器、比较器、选择器、寄存器、查表单元(LUT)以及相应的控制逻辑电路。
本实施例为了简化该数据复用过程的说明,如图4所示,本实施例中的二值化乘法计算单元具有四个PE计算单元(为了方便表示,下面用PE0~PE3表示不同的PE计算单元),卷积核的大小为3*3。
由于输入数据经过输入二值化单元的处理后均为二值化的数据,将9位权值数据合并成一个权值向量W与9位书输入数据合并成一个输入数据向量x,并行的四个PE计算单元将输入的权值向量W和输入数据向量x进行异或非操作(即xnor),并对异或非操作得到的结果进行popcnt操作,所述popcnt操作指的是统计计算结果中“1”的个数。由于异或非的输入数据位数N=9是已知的,因此可以通过下面公式计算“1”的个数和“0”的个数之差result。
result=popcnt(x xnor W)-(N-popcnt(x xnor W))
=popcnt(x xnor W)+popcnt(x xnor W)-N
得到result的计算结果后会存储在片上分布式DRAM存储单元的一个存储子单元中,并且等待下一个通道与卷积核计算后的结果通过ALU计算单元与缓存的在所述存储子单元中的二值化结果进行相加,然后将相加得到的结果再次存入该存储子单元中,覆盖之前的结果。如此反复计算,直到所有通道与卷积核的计算完毕,得到一个二值化的中间结果。再将该二值化中间结果输入二值化乘法计算单元中,与一个卷积核的平均参数mean进行定点数乘法操作,完成二值化卷积乘累加计算的过程,所述平均参数mean是通过外部训练确定的参数,该参数可以直接输入加速器中使用。
在对得到的数据进行批标准化BN(Batch Normalization)操作。
所述批标准化BN表达式为:
Figure BDA0001548531440000071
其中
Figure BDA0001548531440000072
yi表示输入数据经过批标准化后的结果,xi表示输入数据,γ表示比例系数,μ表示训练时最小批量数据集的平均值,β表示偏移量,ε表示一个大于零的常数,σ2表示训练时最小批量数据集的方差,m表示最小批量数据集的输入数据的个数。需要注意的是,所述ε是一个很小的正数(可以是0.01、0.1或者0.001等等),目的是为了防止σ2=0而导致公式运算出错。其中,γ、μ、β、σ2均是训练时得到的,因此本发明中仅仅是将这些外部得到的数据进行加、减或乘的操作即可达到本发明的技术效果,因此不对上述参数进行展开解释。
批标准化BN操作之后,采用激活函数对数据进行激活,所述激活函数的表达式为:
y=(x>0)?x:0.1*x;
其中,y表示激活后特征图的输入数据,x表示激活前特征图的输入数据。
最后计算结果再通过输出二值化单元把得到的新的特征图数据进行二值化,降低输出数据位数精度后存入DDR内存中。
最大池化操作通过二值化乘法单元的并行PE计算单元的比较操作进行处理。
因此,按照该计算过程,若神经卷积网络加速器需要计算9个权值数据与9个输入数据的卷积乘法累加操作,采用传统技术(非二值化的方式)需要从内存加载(9+9)*32=576bit的数据,而采用二值化处理的方式,至需要从内存中加载9+9=18bit的数据,需要加载的数据量为传统技术的1/32。而且在硬件上,二值化后的权值数据与输入数据之间的卷积乘法转化为异或非操作,比传统技术的浮点数乘法计算速度更加快。
参照图7,在本实施例中,数据在最开始输入的原始数据时以及在整个计算模块内部产生的中间值均不是二值化的数据,输入原始数据在输入二值化单元进行二值化,整个计算模块计算完毕后得到的特征图数据经过输出二值化单元二值化,才将其存入外部数据存储单元,因此能够在保证一定运算精度的前提下降低访问外部数据存储单元的数据量,从而减少了外部数据存储带宽的需求。
如图5所示输入的二值化单元,通过将数据与“0”进行比较,将大于“0”的数据二值化为“1”,小于“0”的数据二值化为“0”,二值化后的数据再缓存进乒乓双缓存A、B单元,两个缓存单元交替进行与内存或卷积神经网络加速器的数据交互,减少等待时间。
以上是对本发明的较佳实施进行了具体说明,但本发明并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。

Claims (10)

1.降低加速器外部数据存储带宽需求的二值化系统,其特征在于:包括:
输入二值化单元,用于对输入数据进行二值化处理,得到二值化的输入数据;
二值化乘法计算单元,用于对二值化的数据和权值数据进行数据处理以及向缓存单元和算术逻辑计算单元输出数据;所述数据处理包括乘法操作、定点数乘法操作、批标准化操作和激活操作,所述权值数据为二值化的权值数据;
缓存单元,用于缓存二值化乘法计算单元和算术逻辑计算单元输出的数据;
算术逻辑计算单元,用于对二值化乘法计算单元输出的数据以及对缓存单元中的缓存数据进行加减操作,以及向二值化乘法计算单元和算术逻辑计算单元输出数据;
输出二值化单元,用于对输出数据进行二值化处理;
所述二值化乘法计算单元、缓存单元和算术逻辑计算单元之间两两互相连接,所述输入二值化单元的输出端与二值化乘法计算单元的输入端连接,所述缓存单元的输出端与输出二值化单元连接。
2.根据权利要求1所述的降低加速器外部数据存储带宽需求的二值化系统,其特征在于:所述二值化乘法计算单元包括多个并行的PE计算单元,所述PE计算单元用于将由多位权值数据合并成的权值向量与由多位输入数据合并成的输入数据向量进行异或非操作,以及用于两个定点数的乘法运算和比较操作。
3.根据权利要求1所述的降低加速器外部数据存储带宽需求的二值化系统,其特征在于:所述缓存单元为片上分布式缓存单元,所述缓存单元包括多个并行的存储子单元,所述多个并行的存储子单元用于并行缓存二值化乘法计算单元或者算术逻辑计算单元输出的多个数据,或者用于向二值化乘法计算单元或者算术逻辑计算单元并行地输出已缓存的多个数据。
4.根据权利要求1所述的降低加速器外部数据存储带宽需求的二值化系统,其特征在于:所述算术逻辑计算单元包括多个并行的加减计算子单元,所述多个加减计算子单元用于并行地计算二值化乘法计算单元或者缓存单元输出的多个数据,或者用于向二值化乘法计算单元或者缓存单元并行地输出多个数据。
5.根据权利要求1所述的降低加速器外部数据存储带宽需求的二值化系统,其特征在于:
所述输出二值化单元和输入二值化单元均包括数据二值化子单元和兵乓双缓存子单元,所述数据二值化子单元用于将输入数据与0进行比较,将大于0的数据二值化为1,将小于0的数据二值化为0;
所述兵乓双缓存子单元用于缓存经过二值化的数据,并且由乒乓双缓存子单元的两个缓存器交替地与外部存储器或者二值化乘法计算单元进行数据交换。
6.降低加速器外部数据存储带宽需求的二值化方法,所述方法应用于权利要求1-5任一项所述系统,其特征在于:包括以下步骤:
将输入数据进行二值化处理,得到二值化的输入数据;
对二值化后的输入数据和权值数据进行异或非操作,所述权值数据为二值化的权值数据;
对异或非操作的结果进行定点乘法操作;
对定点乘法操作的结果进行批标准化操作;
对批标准化操作的结果进行激活,得到特征图;
将特征图进行二值化处理,并将二值化处理后的特征图输出至外部存储器。
7.根据权利要求6所述的降低加速器外部数据存储带宽需求的二值化方法,其特征在于:所述对二值化后的输入数据和权值数据进行异或非操作,这一步骤包括:
对二值化的输入数据和权值数据进行异或非操作,计算出异或非操作的结果中“1”的个数和“0”的个数;
计算异或非操作的结果中“1”的个数和“0”的个数的差值,并以该差值作为异或非操作的结果。
8.根据权利要求6所述的降低加速器外部数据存储带宽需求的二值化方法,其特征在于:所述二值化处理具体指,将输入数据与0进行比较,将大于0的数据二值化为1,将小于0的数据二值化为0。
9.根据权利要求6所述的降低加速器外部数据存储带宽需求的二值化方法,其特征在于:所述批标准化操作所使用的公式为:
Figure DEST_PATH_IMAGE001
其中,
Figure 778800DEST_PATH_IMAGE002
Figure DEST_PATH_IMAGE003
, yi表示输入数据经过批标准化后的结果,xi表示输入数据,γ表示比例系数,μ表示训练时最小批量数据集的平均值,β表示偏移量,ε表示一个大于零的常数,σ2表示训练时最小批量数据集的方差,m表示最小批量数据集的输入数据的个数。
10.根据权利要求6所述的降低加速器外部数据存储带宽需求的二值化方法,其特征在于:所述对批标准化操作的结果进行激活,得到特征图的步骤中,所述激活所采用的激活函数的表达式为:
Figure 850792DEST_PATH_IMAGE004
其中,y表示激活后特征图的输入数据,x表示激活前特征图的输入数据。
CN201810037869.1A 2018-01-16 2018-01-16 降低加速器外部数据存储带宽需求的二值化系统和方法 Active CN110046699B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810037869.1A CN110046699B (zh) 2018-01-16 2018-01-16 降低加速器外部数据存储带宽需求的二值化系统和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810037869.1A CN110046699B (zh) 2018-01-16 2018-01-16 降低加速器外部数据存储带宽需求的二值化系统和方法

Publications (2)

Publication Number Publication Date
CN110046699A CN110046699A (zh) 2019-07-23
CN110046699B true CN110046699B (zh) 2022-11-18

Family

ID=67273349

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810037869.1A Active CN110046699B (zh) 2018-01-16 2018-01-16 降低加速器外部数据存储带宽需求的二值化系统和方法

Country Status (1)

Country Link
CN (1) CN110046699B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03109871A (ja) * 1989-09-25 1991-05-09 Canon Inc 画像処理装置
US7110128B1 (en) * 1999-10-07 2006-09-19 Canon Kabushiki Kaisha Controlling dot connectivity in binarizing an image
CN107239824A (zh) * 2016-12-05 2017-10-10 北京深鉴智能科技有限公司 用于实现稀疏卷积神经网络加速器的装置和方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003088033A1 (en) * 2002-04-09 2003-10-23 University Of Rochester Multiplier-based processor-in-memory architectures for image and graphics processing
US8229251B2 (en) * 2008-02-08 2012-07-24 International Business Machines Corporation Pre-processing optimization of an image processing system
JP2010086497A (ja) * 2008-10-03 2010-04-15 Renesas Technology Corp 画像処理装置及びデータプロセッサ

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03109871A (ja) * 1989-09-25 1991-05-09 Canon Inc 画像処理装置
US7110128B1 (en) * 1999-10-07 2006-09-19 Canon Kabushiki Kaisha Controlling dot connectivity in binarizing an image
CN107239824A (zh) * 2016-12-05 2017-10-10 北京深鉴智能科技有限公司 用于实现稀疏卷积神经网络加速器的装置和方法

Also Published As

Publication number Publication date
CN110046699A (zh) 2019-07-23

Similar Documents

Publication Publication Date Title
CN108229671B (zh) 一种降低加速器外部数据存储带宽需求的系统和方法
CN110070178B (zh) 一种卷积神经网络计算装置及方法
CN109063825B (zh) 卷积神经网络加速装置
US20200097827A1 (en) Processing method and accelerating device
CN107340993B (zh) 运算装置和方法
CN108345939B (zh) 基于定点运算的神经网络
WO2018205708A1 (zh) 应用于二值权重卷积网络的处理系统及方法
US20210216871A1 (en) Fast Convolution over Sparse and Quantization Neural Network
CN107256424B (zh) 三值权重卷积网络处理系统及方法
US20190065184A1 (en) Apparatus and methods for generating dot product
EP3709225A1 (en) System and method for efficient utilization of multipliers in neural-network computations
CN110555516A (zh) 基于FPGA的YOLOv2-tiny神经网络低延时硬件加速器实现方法
CN111768458A (zh) 一种基于卷积神经网络的稀疏图像处理方法
CN112396072B (zh) 基于asic与vgg16的图像分类加速方法及装置
CN113313244B (zh) 面向加法网络的近存储神经网络加速器及其加速方法
CN109697507B (zh) 处理方法及装置
CN110046699B (zh) 降低加速器外部数据存储带宽需求的二值化系统和方法
CN113222129A (zh) 一种基于多级缓存循环利用的卷积运算处理单元及系统
CN110135563B (zh) 一种卷积神经网络二值化方法及运算电路
US20230025068A1 (en) Hybrid machine learning architecture with neural processing unit and compute-in-memory processing elements
US20230047364A1 (en) Partial sum management and reconfigurable systolic flow architectures for in-memory computation
CN113705794B (zh) 一种基于动态激活位稀疏的神经网络加速器设计方法
US20220222569A1 (en) Data processing
CN112508174B (zh) 面向权重二值型神经网络的预计算逐列卷积计算单元
CN114492778A (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