CN113298236A - 基于数据流结构的低精度神经网络计算装置及加速方法 - Google Patents

基于数据流结构的低精度神经网络计算装置及加速方法 Download PDF

Info

Publication number
CN113298236A
CN113298236A CN202110676008.XA CN202110676008A CN113298236A CN 113298236 A CN113298236 A CN 113298236A CN 202110676008 A CN202110676008 A CN 202110676008A CN 113298236 A CN113298236 A CN 113298236A
Authority
CN
China
Prior art keywords
data
precision
low
computing device
array
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
CN202110676008.XA
Other languages
English (en)
Other versions
CN113298236B (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 CN202110676008.XA priority Critical patent/CN113298236B/zh
Publication of CN113298236A publication Critical patent/CN113298236A/zh
Application granted granted Critical
Publication of CN113298236B publication Critical patent/CN113298236B/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/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/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
    • 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)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Image Processing (AREA)

Abstract

本发明提供一种基于数据流结构的低精度神经网络计算装置,包括输入缓存区,输出缓存区、权重缓存区以及PE阵列,其中,PE阵列中的每个PE包括乘加部件,所述乘加部件以SIMD方式进行乘加运算。本发明还提供一种基于上述装置的低精度神经网络加速方法。本发明节省了计算资源,减少了访存带来的开销。

Description

基于数据流结构的低精度神经网络计算装置及加速方法
技术领域
本发明涉及计算机体系结构技术领域,具体涉及基于数据流结构的低精度神经网络计算装置及加速方法。
背景技术
随着应用场景的发展,深度神经网络(Deep Neural Network,简称DNN)模型的规模变得越来越大,例如,Alexnet和VGG16网络中分别包含6000万和1.38亿个参数。面对神经网络对计算能力日益增长的需求,量化已经被认为是一种有效减少推理工作量的技术。量化技术通过减小神经网络模型中数据的位宽,即降低数据的精度,尽可能的减小神经网络规模以节约存储空间,减少工作负载,从而在性能、功耗上获得整体收益。研究表明,经过量化之后得到的低精度神经网络可以达到FP32(单精度32位浮点数)的准确率。
大量的研究工作围绕低精度神经网络加速器展开,目的是使计算机体系结构更适应低精度神经网络,充分发挥低精度神经网络的优势。例如,OLAccel基于其OLA量化算法设计了4比特的加速器结构,DRQ基于敏感区域识别算法设计了一种混合精度卷积阵列架构,BitFusion引入了动态比特级融合/分解思想,实现了一种可变位宽的比特级加速器,AQSS基于随机计算方法实现了固定位宽的7比特加速器结构。但是这些加速器的设计与其提出的量化算法高度耦合,难以适用于其他量化方法和神经网络模型。粗粒度数据流结合数据流和控制流的特点,在性能、功耗和功能灵活性之间具有良好的平衡。当部署低精度神经网络时,存在计算资源和存储传输资源的浪费。
发明内容
为解决上述现有技术中存在的问题,提供一种基于数据流结构的低精度神经网络计算装置,包括输入缓存区,输出缓存区、权重缓存区以及PE阵列,其中,PE阵列中的每个PE包括乘加部件,所述乘加部件以SIMD方式进行乘加运算。
优选的,所述乘加部件还包括加法树,用于将4个通道的输入数据与对应卷积核的4个通道数据以SIMD方式进行乘法运算,并通过所述加法树累加到部分和数据,所述部分和数据为全精度数据。
优选的,所述乘加部件对应的指令的格式为:
QMADD Des Source1 Source2 Unused
其中,QMADD为指令名称,Des为累加值,Source1为第一数据向量,Source2为第二数据向量,Unused表示备用,所述指令实现的功能用以下公式表示,
Figure BDA0003121152600000021
其中,i表示索引,i为整数,1≤i≤4。
优选的,包含DMA传输结构,用于在外部存储与所述加速装置之间进行数据传输,所述DMA传输结构根据精度要求采用全精度模式或低精度模式传输数据,以及根据数据传输数量采用普通模式或SIMD模式传输数据。
优选的,所述全精度模式传输的数据位宽为32比特,所述低精度模式将4个低精度数据拼接为32比特进行传输。
优选的,所述PE阵列的每个PE基于卷积计算的局部性将可重用的数据沿行方向和/或列方向传输到相邻PE。
优选的,所述的计算装置,根据输入图像的规模将输入图像和卷积核数据分块加载到PE阵列进行各层卷积运算,以及将各层的运算结果进行量化操作后写回存储。
优选的,在进行各层的卷积运算之前,对PE阵列进行初始化,以及配置所述DMA结构的传输模式。
优选的,将每张输入图像每个点的4个channel数据拼接为一个32比特的数据块,存储到片外存储,所述DMA结构将数据从片外存储加载到片上存储,所述PE通过LD/ST指令从片上存储读/写数据。
本发明提供一种基于上述计算装置的低精度神经网络加速方法,包括:
将输入图像每个点的4个通道的低精度数据拼接为32比特数据,以及基于SIMD方式传输多个图像的数据;
所述PE阵列的每个PE基于卷积计算的局部性将可重用的数据沿行方向和/或列方向传输到相邻PE;
根据输入图像的规模将输入图像和卷积核数据分块加载到PE阵列进行各层卷积运算,以及将计算结果进行量化后写回存储。
本发明具有如下特点和有益效果:本发明针对在PE阵列上部署的低精度神经网络,设计了相应的数据传输模式、运算部件、运算指令以及相应的部署方法和调度方法,节省了计算资源,减少了访存带来的开销。
附图说明
图1示出了根据本发明一个实施例的基于数据流结构的低精度神经网络的结构。
图2示出了根据本发明一个实施例的乘加部件的运算方式。
图3示出了根据本发明一个实施例的基于数据流结构的低精度神经网络部署过程图。
图4示出了根据本发明一个实施例的低精度SIMD数据传输过程图。
图5示出了根据本发明一个实施例的低精度神经网络调度过程图。
图6示出了根据本发明一个实施例的面向带宽优化的调度流程图。
图7示出了根据本发明一个实施例的计算装置与其它加速器的性能对比数据。
具体实施方式
下面结合附图和具体实施例对本发明加以说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明的部分英文缩写含义如下:
PE:处理单元
SPM:片上存储
Channel:通道
Ifmap:输入图像
Ofmap:输出图像
Kernel:卷积核
PE阵列包括若干个处理单元(Process Element,简称PE),每个PE都是运算能力较强但是控制能力较弱、复杂度较小的核心。基于PE阵列的粗粒度数据流结构结合数据流和控制流的特点,在性能、功耗和功能灵活性之间具有良好的平衡。但是,当在PE阵列部署低精度神经网络时,存在计算资源和存储传输资源的浪费。
本发明的基于数据流结构的低精度神经网络,设计了以通道为并行维度的卷积运算计算方法和相应的运算部件。图1示出了本发明的基于数据流结构的低精度神经网络的结构,其中,IBUF为输入缓冲区,WBUF为权重缓冲区,OBUF为输出缓冲区,上述三个缓冲区位于SPM中,PE阵列与上述三个缓冲区相连接。在SPM中,Ifmap数据的每个点的4个channel的低精度数据拼接为一个32比特单元,这32比特的数据将作为一个整体,通过load指令加载至PE。图1中IBUF中包括8个不同的Ifmap,通过单指令多数据(Single InstructionMultiple Data,简称SIMD)方式对8个Ifmap进行并行处理,将8个输入图像的数据以SIMD8方式从IBUF输入图像缓冲区加载到PE阵列,即一次传输8个32bit数据单元,每个32比特数据单元由4个8bit低精度数据拼接而成,对应一个输入图像的1个点的4个通道的数据。类似地,从WBUF权重缓冲区将卷积核的每个点的4个通道的低精度数据拼接为一个32比特数据单元。PE阵列的乘加计算的部分和结果为32bit全精度数据,输出到OBUF输出图像缓冲区。
基于上述并行的数据处理方式,本发明在每个PE部件内设计了面向低精度神经网络的乘加部件和指令QMADD,QMADD指令对4个channel数据进行乘累加运算,将Ifmap的4个channel数据分别和对应kernel的4个channel数据进行乘法运算,然后通过加法树进行加法并累加到psum数据,SIMD维度用来进行Ifmap的并行处理。考虑到对模型准确率的影响,部分和psum数据设计为支持全精度数据。QMADD的指令格式如下:
QMADD Des Source1 Source2 Unused
其中,QMADD为指令名称,Des为累加值,Source1为第一数据向量,Source2为第二数据向量,Unused表示备用,所述指令实现的功能用以下公式表示,
Figure BDA0003121152600000051
其中,i表示索引,i为整数,1≤i≤4。
图2示出了根据本发明一个实施例的乘加部件的运算方式。图2中包含8个输入图像的数据,分别是:
第1个图像的1个点的4个通道的数据:I1-1,I1-2,I1-3,I1-4
第2个图像的1个点的4个通道的数据:I2-1,I2-2,I2-3,I2-4
第8个图像的1个点的4个通道的数据:I8-1,I8-2,I8-3,I8-4
以第1个图像的1个点为例说明计算过程:QMADD指令将第1个图像的1个点的4个通道的数据分别与权重W1、W2、W3、W4相乘后累加,得到32bit的部分和psum。以公式描述为:
psum=I1-1*W1+I1-2*W2+I1-3*W3+I1-4*W4
QMADD指令采用SIMD方式,以一条指令即可计算出8个输入图像的一个点与权重数据的部分和,结果存储在8个32bit的寄存器中。
为了减少访存带来的开销,本发明提出了基于数据流结构的低精度神经网络的部署方法。图3示出了本发明的基于数据流结构的低精度神经网络部署过程图,以1个Ifmap和2个卷积核运算为例,第1列的2个PE(PE0和PE2)从存储中分别加载2个卷积核(kernel0和kernel1),然后通过COPY指令沿x轴方向共享给同一行的PE,节省了其他PE从存储中加载卷积核的时间。对于Ifmap,PE0将前3行数据从存储加载到PE,通过COPY指令沿y轴方向共享给同一列的PE。另外,由于卷积计算的局部性特征,PE0将第2、3行数据可以通过COPY执行沿x轴方向共享给左方的PE,第2列的PE只需要从存储中加载第4行的Ifmap数据即可完成卷积运算。
具体来说,图3中包含4个PE,分别是PE0、PE1、PE2、PE3,输入图像Ifmaps的数据为4行4列的矩阵,两个卷积核分别为Kernel0和Kernel1。其中,存储访问以实线箭头表示,PE之间的数据流动以虚线箭头表示。
Kernel0与Ifmaps进行卷积时,
在PE0中计算Kernel0与矩阵
0 1 2
4 5 6
8 9 10
的乘加结果,
以及Kernel0与矩阵
1 2 3
5 6 7
9 10 11
的乘加结果,在PE0中计算以上两个乘加过程时,PE0的Kernel0数据来自于SPM,Ifmaps数据只需从SPM中加载Ifmaps的前三行。
在PE1中计算Kernel0与矩阵
4 5 6
8 9 10
12 13 14
的乘加结果,
以及Kernel0与矩阵
5 6 7
9 10 11
13 14 15
的乘加结果,在PE1中计算以上两个乘加过程时,PE1的Kernel0数据不必从SPM中加载,只需PE0将Kernel0数据传送到PE1;Ifmaps的数据也不必从SPM中全部加载,而是一部分来自于PE0,即Ifmaps的第2行和第3行数据,另一部分来自于SPM,即Ifmaps的第4行数据。
Kernel1与Ifmaps卷积时,
在PE2中计算kernel1与矩阵
0 1 2
4 5 6
8 9 10
的乘加结果,
以及kernel1与矩阵
1 2 3
5 6 7
9 10 11
的乘加结果,
在PE2中计算以上两个乘加过程时,Kernel1的数据从SPM中加载,Ifmaps的数据不必从SPM中加载,只需将PE0的Ifmaps数据传送到PE2,即Ifmaps的前三行数据。
在PE3中计算kernel1与矩阵
4 5 6
8 9 10
12 13 14
的乘加结果,
以及kernel1与矩阵
5 6 7
9 10 11
13 14 15
的乘加结果,在PE3中计算以上两个乘加过程时,PE3的Kernel1数据不必从SPM中加载,只需PE2将Kernel1数据传送到PE3;Ifmaps的数据也不必从SPM中加载,而是一部分来自于PE2,即Ifmaps的第2行和第3行数据,另一部分来自于PE1,即Ifmaps的第4行数据。
上述的数据使用方式,通过PE之间数据的流动代替从存储中加载全部数据,减少了访存带来的开销。
为了高效利用低精度数据的传输带宽,本发明提出了基于数据流结构的低精度神经网络数据的传输方法,对DMA传输进行了优化,设计了可配置的DMA传输结构。DMA传输根据精度区分有全精度模式和低精度模式,根据一次传输的数据数量分为普通模式和SIMD模式,即有四种组合方式,分别是全精度普通模式、全精度SIMD模式、低精度普通模式、低精度SIMD方式。全精度模式传输的数据位宽为32比特;低精度模式传输将4个低精度数据拼接为32比特,进行传输;SIMD模式一次可并行传输M个数据。根据本发明的一个实施例,为SIMD8结构,即传输的数据块单元大小为8*32比特;普通模式的数据块单元大小为32比特。
低精度SIMD模式传输时将需要对Ifmap数据进行预处理,将每张Ifmap的4个channel数据拼成一个32比特的数据块,存储在DRAM中,DMA将数据从DRAM搬运至SPM中,PE通过LD/ST指令可以读/写数据。
图4示出了根据本发明一个实施例的采用低精度模式和SIMD模式将8个输入图像的数据由DRAM传输到SPM后被PE加载的过程。其中,8个输入图像的数据,分别是:Ifmap0、Ifmap1、Ifmap2、…、Ifmap8,每个输入图像的4个通道的数据为C1、C2、C3、C4。每个输入图像的每个点的4个通道的8bit低精度数据拼接成一个32bit数据。DMA将8个输入图像的一个对应点的数据以SIMD8模式传输到片上存储SPM中,其传输的数据块单元大小为8*32bit。基于以上传输模式,在SPM中,对应于地址Offset_1数据块大小为8*32bit,包含了8个输入图像的1个点的4个通道的数据,对应于地址Offset_1+8的数据块为8个输入图像的另外1个点的4个通道的数据。PE采用LD/ST指令从SPM中读/写数据。
由于kernel要和每个Ifmap做运算,所以对于kernel数据,可以使用低精度简单传输模式,将每个kernel的4个低精度channel数据拼接为32比特数据,用简单模式由DRAM传输至SPM。
由于Ofmap和计算过程中产生的部分和psum为32比特的全精度数据,所以对于Ofmap数据和部分和数据psum,采用全精度SIMD传输方式进行传输。
神经网络推理过程中前一层神经网络的输出数据将作为下一层的输入数据,当执行低精度神经网络的推理时,存在进一步可优化的空间。为了进一步提高传输带宽的利用率,结合神经网络前向传递过程的特点,提出了在低精度神经网络中面向传输带宽优化的执行方法。当神经网络模型规模超出片上存储时,Ifmap和filter需要分成多个block进行计算。
图5示出了卷积核个数为3个时的卷积的运算过程。图5中包含多个输入图像,图中显示了3个输入图像,其它图像以省略号表示,Batch size(批大小)为一次训练输入图像的数量,每个特征图的高度为Height,宽度为Width,通道数Channel为6;图中还包括3个卷积核,分别是Kernel1、Kernel2、Kernel3,3个卷积核构成了filter(滤波器)每个卷积核的通道数与输入图像的通道数相对应,也是6个;图中的输出图像的数目与输入图像的数目相对应,等于Batch size,每个输出图像的通道数与卷积核的数目相对应,为3个通道。图中的卷积运算的通常计算过程以一个输入图像为例进行说明:一个输入图像的6个通道中的每个通道与对应的Kernel1的通道卷积,结果相加后得到输出图像中与Kernel1对应的一个通道;该输入图像再与Kernel2做类似的操作得到输出图像中与Kernel2对应的一个通道;该输入图像再与Kernel3做与Kernel1类似的计算得到输出图像中与Kernel3对应的一个通道。其它输入图像的计算过程与上述过程相同,这些图像的计算可用并行方式进行。
图5中,Ifmap的batch维度通过SIMD的方式进行并行运算,每个Ifmap有多个通道(channel)。因为片上存储SPM的空间有限,存在Ifmap不能一次加载到片上的情况,所以一层的数据要分块运算。图5中以2块为例,Ifmap按照channel维度分成了2块数据,第1步将Ifmap中浅色的数据块加载至片上,进行卷积运算,由于只是部分数据,所以结果并非最终输出;第2步将深色数据块加载至片上存储中,进行卷积计算,并与第一步得到的部分和进行累加,得到该卷积层计算的结果,写回DRAM。然而,该结果并不能直接作为下一层神经网络的输入,因为下一层的输入同样为低精度的数据,而该结果为高精度数据,需要对该结果进行量化操作。因此,当某一层运算结束后,在写回DRAM之前对结果进行量化,将会提高传输效率。
图6示出了根据本发明一个实施例的面向带宽的调度方法的流程图。当进行卷积层运算时,首先主机端通过微控制器对PE阵列进行初始化,对DMA传输模式进行配置。接下来,如果Ifmap的规模超过了片上存储,那么需要对其根据通道进行分块处理,对于每一块Ifmap,通过指令加载到PE阵列,并且加载对应的filter块,加载部分和数据,如果是第一块,部分和初始为0。然后进行卷积运算,如果是最后一块数据,计算得到的部分和即为本层的卷积结果,然后经过激活函数进行运算,并进行量化操作,然后写回存储中。
为了验证本发明的技术效果,发明人选取Alexnet、VGG16网络模型中的卷积层进行实验验证。Alexnet由5个卷积层、2个全连接层和1个输出层构成;VGG16是一个16层的神经网络,由13个卷积层和3个全连接层构成。在实验中,对Alexnet、VGG16卷积层的激活值和参数进行量化,计算过程中保留全精度的部分和。
图7示出了使用DPU_Q、DPU、GPU、Eyeriss和BitFusion执行Alexnet和VGG16网络的性能对比,其中,DPU_Q表示本发明的计算装置。GPU_FP是使用GPU执行全精度32比特神经网络的性能,GPU_INT8是GPU执行低精度8比特的性能,以GPU_FP为基准。当执行Alexnet和VGG网络时,DPU_Q相较于DPU分别实现了3.86倍和3.75倍的性能提升。由于部件利用率达的原因,导致加速比并非理想的4倍。与GPU_INT8相比,DPU_Q的性能是其2.96倍和1.88倍,神经网络第1层的输入激活值的通道数一般很小,达不到GPU的并行性,制约了GPU的性能,而且Alexnet网络中第1层运行时间所占的比重较大,导致使用GPU_INT8的性能提升并不明显。
DPU_Q与加速器Eyeriss相比,当部署Alexnet时,DPU_Q性能是其1.52倍,当部署VGG16时,DPU_Q性能是其6.05倍。当网络比较简单时,Eyeriss可以表现出较好的性能,Eyeriss执行Alexnet的性能分别是GPU_FP和GPU_INT8的4.78倍和1.94倍。但是当网络较复杂时,Eyeriss的性能较差,当部署VGG16时,性能分别是GPU_FP和GPU_INT8的84%和31%。造成其性能较差的原因一方面在于其位宽为16比特,另一个方面在于Eyeriss在运行神经网络到执行阵列映射时,以最小化数据传输距离作为优化目标,追求更低的功耗开销,这带来了性能的损失。
DPU_Q与加速器BitFusion相比,当部署Alexnet和VGG-16时,DPU_Q的性能分别是其80%和1.86倍,这是因为Alexnet网络的计算规模较小,比特级乘加单元组成的BitFusion能够表现出良好的性能,但是当VGG16网络的数据规模增大时,与DPU_Q相比,细粒度的乘加结构单元之间的数据的传输、交互成为制约性能的原因。因此,当神经网络规模变大时,DPU_Q的性能优势更能体现。
应该注意到并理解,在不脱离后附的权利要求所要求的本发明的精神和范围的情况下,能够对上述详细描述的本发明做出各种修改和改进。因此,要求保护的技术方案的范围不受所给出的任何特定示范教导的限制。

Claims (10)

1.一种基于数据流结构的低精度神经网络计算装置,包括输入缓存区,输出缓存区、权重缓存区以及PE阵列,其中,PE阵列中的每个PE包括乘加部件,所述乘加部件以SIMD方式进行乘加运算。
2.根据权利要求1所述的计算装置,所述乘加部件还包括加法树,用于将4个通道的输入数据与对应卷积核的4个通道数据以SIMD方式进行乘法运算,并通过所述加法树累加到部分和数据,所述部分和数据为全精度数据。
3.根据权利要求1所述的计算装置,所述乘加部件对应的指令的格式为:
QMADD Des Source1 Source2 Unused
其中,QMADD为指令名称,Des为累加值,Source1为第一数据向量,Source2为第二数据向量,Unused表示备用,所述指令实现的功能用以下公式表示,
Figure FDA0003121152590000011
其中,i表示索引,i为整数,1≤i≤4。
4.根据权利要求1所述的计算装置,包含DMA传输结构,用于在外部存储与所述加速装置之间进行数据传输,所述DMA传输结构根据精度要求采用全精度模式或低精度模式传输数据,以及根据数据传输数量采用普通模式或SIMD模式传输数据。
5.根据权利要求4所述的计算装置,所述全精度模式传输的数据位宽为32比特,所述低精度模式将4个低精度数据拼接为32比特进行传输。
6.根据权利要求1所述的计算装置,所述PE阵列的每个PE基于卷积计算的局部性将可重用的数据沿行方向和/或列方向传输到相邻PE。
7.根据权利要求1所述的计算装置,根据输入图像的规模将输入图像和卷积核数据分块加载到PE阵列进行各层卷积运算,以及将各层的运算结果进行量化操作后写回存储。
8.根据权利要求7所述的计算装置,在进行各层的卷积运算之前,对PE阵列进行初始化,以及配置所述DMA结构的传输模式。
9.根据权利要求7所述的计算装置,将每张输入图像每个点的4个channel数据拼接为一个32比特的数据块,存储到片外存储,所述DMA结构将数据从片外存储加载到片上存储,所述PE通过LD/ST指令从片上存储读/写数据。
10.一种基于权利要求1-9之一的计算装置的低精度神经网络加速方法,包括:
将输入图像每个点的4个通道的低精度数据拼接为32比特数据,以及基于SIMD方式传输多个图像的数据;
所述PE阵列的每个PE基于卷积计算的局部性将可重用的数据沿行方向和/或列方向传输到相邻PE;
根据输入图像的规模将输入图像和卷积核数据分块加载到PE阵列进行各层卷积运算,以及将计算结果进行量化后写回存储。
CN202110676008.XA 2021-06-18 2021-06-18 基于数据流结构的低精度神经网络计算装置及加速方法 Active CN113298236B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110676008.XA CN113298236B (zh) 2021-06-18 2021-06-18 基于数据流结构的低精度神经网络计算装置及加速方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110676008.XA CN113298236B (zh) 2021-06-18 2021-06-18 基于数据流结构的低精度神经网络计算装置及加速方法

Publications (2)

Publication Number Publication Date
CN113298236A true CN113298236A (zh) 2021-08-24
CN113298236B CN113298236B (zh) 2023-07-21

Family

ID=77328694

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110676008.XA Active CN113298236B (zh) 2021-06-18 2021-06-18 基于数据流结构的低精度神经网络计算装置及加速方法

Country Status (1)

Country Link
CN (1) CN113298236B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104915322A (zh) * 2015-06-09 2015-09-16 中国人民解放军国防科学技术大学 一种卷积神经网络硬件加速方法及其axi总线ip核
CN110390383A (zh) * 2019-06-25 2019-10-29 东南大学 一种基于幂指数量化的深度神经网络硬件加速器
CN110458279A (zh) * 2019-07-15 2019-11-15 武汉魅瞳科技有限公司 一种基于fpga的二值神经网络加速方法及系统
US20200193274A1 (en) * 2018-12-18 2020-06-18 Microsoft Technology Licensing, Llc Training neural network accelerators using mixed precision data formats
CN111461311A (zh) * 2020-03-26 2020-07-28 中国科学技术大学 基于众核处理器的卷积神经网络运算加速方法及装置
CN112734020A (zh) * 2020-12-28 2021-04-30 中国电子科技集团公司第十五研究所 卷积神经网络的卷积乘累加硬件加速装置、系统以及方法
CN112836793A (zh) * 2021-01-18 2021-05-25 中国电子科技集团公司第十五研究所 浮点可分离卷积计算加速装置、系统以及图像处理方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104915322A (zh) * 2015-06-09 2015-09-16 中国人民解放军国防科学技术大学 一种卷积神经网络硬件加速方法及其axi总线ip核
US20200193274A1 (en) * 2018-12-18 2020-06-18 Microsoft Technology Licensing, Llc Training neural network accelerators using mixed precision data formats
CN110390383A (zh) * 2019-06-25 2019-10-29 东南大学 一种基于幂指数量化的深度神经网络硬件加速器
CN110458279A (zh) * 2019-07-15 2019-11-15 武汉魅瞳科技有限公司 一种基于fpga的二值神经网络加速方法及系统
CN111461311A (zh) * 2020-03-26 2020-07-28 中国科学技术大学 基于众核处理器的卷积神经网络运算加速方法及装置
CN112734020A (zh) * 2020-12-28 2021-04-30 中国电子科技集团公司第十五研究所 卷积神经网络的卷积乘累加硬件加速装置、系统以及方法
CN112836793A (zh) * 2021-01-18 2021-05-25 中国电子科技集团公司第十五研究所 浮点可分离卷积计算加速装置、系统以及图像处理方法

Non-Patent Citations (9)

* Cited by examiner, † Cited by third party
Title
XIAOCHUN YE 等: "An efficient dataflow accelerator for scientific applications", 《FUTURE GENERATION COMPUTER SYSTEMS》 *
XIAOCHUN YE 等: "An efficient dataflow accelerator for scientific applications", 《FUTURE GENERATION COMPUTER SYSTEMS》, 10 March 2020 (2020-03-10), pages 2 *
吴欣欣 等: "基于粗粒度数据流架构的稀疏卷积神经网络加速", 《计算机研究与发展》 *
吴欣欣 等: "基于粗粒度数据流架构的稀疏卷积神经网络加速", 《计算机研究与发展》, 25 February 2021 (2021-02-25), pages 5 *
张军阳等: "二维矩阵卷积的并行计算方法", 《浙江大学学报(工学版)》 *
张军阳等: "二维矩阵卷积的并行计算方法", 《浙江大学学报(工学版)》, no. 03, 15 March 2018 (2018-03-15) *
张榜;来金梅;: "一种基于FPGA的卷积神经网络加速器的设计与实现", 复旦学报(自然科学版), no. 02 *
范志华 等: "面向低精度神经网络的数据流体系结构优化", 《计算机研究与发展》 *
范志华 等: "面向低精度神经网络的数据流体系结构优化", 《计算机研究与发展》, 8 July 2022 (2022-07-08) *

Also Published As

Publication number Publication date
CN113298236B (zh) 2023-07-21

Similar Documents

Publication Publication Date Title
CN106940815B (zh) 一种可编程卷积神经网络协处理器ip核
CN111459877B (zh) 基于FPGA加速的Winograd YOLOv2目标检测模型方法
CN108805266B (zh) 一种可重构cnn高并发卷积加速器
CN109992743B (zh) 矩阵乘法器
Ma et al. End-to-end scalable FPGA accelerator for deep residual networks
EP3407266B1 (en) Artificial neural network calculating device and method for sparse connection
CN109284817B (zh) 深度可分离卷积神经网络处理架构/方法/系统及介质
US7574466B2 (en) Method for finding global extrema of a set of shorts distributed across an array of parallel processing elements
US20160093343A1 (en) Low power computation architecture
WO2022037257A1 (zh) 卷积计算引擎、人工智能芯片以及数据处理方法
CN110222818B (zh) 一种用于卷积神经网络数据存储的多bank行列交织读写方法
WO2019205617A1 (zh) 一种矩阵乘法的计算方法及装置
CN110738308B (zh) 一种神经网络加速器
EP3844610B1 (en) Method and system for performing parallel computation
CN111860773B (zh) 处理装置和用于信息处理的方法
CN111105023A (zh) 数据流重构方法及可重构数据流处理器
CN113762493A (zh) 神经网络模型的压缩方法、装置、加速单元和计算系统
KR102653014B1 (ko) 인-메모리-컴퓨팅에 대한 데이터 배치를 위한 방법 및 상기 방법이 적용된 메모리 모듈
Iliev et al. Low latency CMOS hardware acceleration for fully connected layers in deep neural networks
CN113298236B (zh) 基于数据流结构的低精度神经网络计算装置及加速方法
CN113705794B (zh) 一种基于动态激活位稀疏的神经网络加速器设计方法
US11663446B2 (en) Data reuse and efficient processing scheme in executing convolutional neural network
US11500680B2 (en) Systolic array-friendly data placement and control based on masked write
CN116415100A (zh) 业务处理方法、装置、处理器及计算设备
CN114912596A (zh) 面向稀疏卷积神经网络的多chiplet系统及其方法

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