CN110796236B - 多样本多通道卷积神经网络池化的向量化实现方法 - Google Patents

多样本多通道卷积神经网络池化的向量化实现方法 Download PDF

Info

Publication number
CN110796236B
CN110796236B CN201911001491.0A CN201911001491A CN110796236B CN 110796236 B CN110796236 B CN 110796236B CN 201911001491 A CN201911001491 A CN 201911001491A CN 110796236 B CN110796236 B CN 110796236B
Authority
CN
China
Prior art keywords
data
vector processor
matrix
pooling
neural network
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
CN201911001491.0A
Other languages
English (en)
Other versions
CN110796236A (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.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
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 National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN201911001491.0A priority Critical patent/CN110796236B/zh
Publication of CN110796236A publication Critical patent/CN110796236A/zh
Application granted granted Critical
Publication of CN110796236B publication Critical patent/CN110796236B/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
    • 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

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)
  • Image Processing (AREA)
  • Complex Calculations (AREA)

Abstract

本发明公开一种多样本多通道卷积神经网络池化的向量化实现方法,步骤包括:步骤1:将卷积神经网络池化层的输入特征数据集数据按照样本维优先方式存储;步骤2:向量处理器按列将输入特征数据集数据矩阵划分为多个矩阵块;步骤3:向量处理器依次按行抽取指定大小矩阵块传输到向量处理器的阵列存储器的数据缓冲区中;步骤4:向量处理器的各个核并行的对各自数据缓冲区中矩阵块进行池化向量化计算,计算结果按顺序传输至片外存储器中;步骤5:重复步骤3至步骤4,直到完成全部池化层计算。本发明能够充分发挥向量处理器计算性能,且具有实现方法简单、实现效率高、功耗小且效果好等优点。

Description

多样本多通道卷积神经网络池化的向量化实现方法
技术领域
本发明涉及向量处理器技术领域,尤其涉及一种多样本多通道卷积神经网络池化的向量化实现方法。
背景技术
近年来基于深度卷积神经网络的深度学习模型在图像识别和分类、目标检测、视频分析等方面取得了令人瞩目的成就,成为学术界和工业界的研究热点,并且促进了人工智能、大数据处理、处理器等相关技术的快速发展。卷积神经网络(Convolutional NeuralNetworks,CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(FeedforwardNeural Networks),是深度学习的代表算法之一。卷积神经网络的输入层可以处理多维数据,由于卷积神经网络在计算机视觉领域应用最为广泛,因此在设计卷积神经网络结构时通常都是设定三维的输入数据,即二维平面上的图像像素数据和RGB通道。池化层是卷积神经网络重要的组成部分,卷积神经网络通常使用池化层来缩减网络模型的大小,提高计算的速度,同时提高所提取特征的鲁棒性。池化层主要有最大池化层和平均池化层两种类型,最大池化层是对输入特征矩阵在过滤器窗口区域内的元素取最大值,平均池化层是对输入特征矩阵在过滤器窗口区域内的元素取平均值。
向量处理器是一种新颖的体系结构,能够在保持较低功耗的同时,具有强大的计算能力,适合加速大型卷积神经网络计算。如图1所示,向量处理器通常包括标量处理部件(Scalar Processing Unit,SPU)和向量处理部件(Vector Processing Unit,VPU),SPU负责标量任务计算和流控,VPU负责向量计算,提供主要的计算能力,包括若干向量处理单元(Vector Processing Element,VPE),每个VPE包含MAC、ALU、BP等多个运算功能部件。SPU和VPU之间提供数据传输和交换机制,实现标、向量数据的共享和通信。向量数据访问单元支持向量数据的Load/Store,提供大容量的专用向量阵列存储器(Array Memory,AM)。
卷积神经网络中池化层需要对输入特征矩阵在过滤器窗口区域内的数据进行加载和计算,这对于标量处理器来说,只需要正确计算数据地址,就可以方便和容易的实现过滤器窗口区域内数据的加载和计算,但是对于向量处理器来说,由于通常向量处理器加载数据的向量长度与过滤器窗口大小是不一致的,会导致过滤器窗口区域内的数据加载到向量处理器的不同处理单元中,不方便后续计算。
为解决上述问题,现有技术中通常是通过混洗方法将过滤器窗口区域内的各个数据交换到向量处理器的同一处理单元上处理,如中国专利申请201710201376.2公开的一种融合ReLU激活函数与最大值池化的向量化实现方法以及专利申请201710202133.0公开的一种面向向量处理器的基于SIMD的平均值值池化并行处理方法就是采用类似方法。然而上述基于混洗的方法,混洗所需的硬件开销大、计算效率低,且多数向量处理器考虑功耗、效率等方面的因素并不支持混洗操作。
有从业者提出按照第三维顺序对数据进行排序,使得过滤器窗口区域内的各个数据能够加载到向量处理器的同一处理单元上处理,如中国专利申请201711478728.5公开的一种多输入多输出矩阵平均值池化向量化实现方法以及专利申请201810757445.2公开的一种多输入多输出矩阵最大值池化向量化实现方法等就是采用该类方法。然而该类方法中第三维的大小不确定,与向量处理器的处理单元数量不匹配,而且不同卷积神经网络模型、不同卷积层的第三维大小各异,使得该类方法的加载数据效率会大受影响,且不具有通用性。
发明内容
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种且具有实现方法简单、实现效率高、功耗小且效果好的多样本多通道卷积神经网络池化的向量化实现方法,能够充分发挥向量处理器计算性能实现多样本多通道卷积神经网络池化的向量化。
为解决上述技术问题,本发明提出的技术方案为:
一种多样本多通道卷积神经网络池化的向量化实现方法,步骤包括:
步骤1:将卷积神经网络池化层的输入特征数据集数据按照样本维优先方式存储;
步骤2:向量处理器按列将所述输入特征数据集数据矩阵划分为多个矩阵块,得到多个输入特征数据矩阵;
步骤3:向量处理器根据步长、过滤器的大小,依次按行从所述输入特征数据矩阵中抽取指定大小矩阵块传输到向量处理器的阵列存储器AM的数据缓冲区中;
步骤4:向量处理器的各个核并行的对各自阵列存储器AM的数据缓冲区中抽取出的矩阵块进行池化向量化计算,计算结果按顺序传输至片外存储器中;
步骤5:重复步骤3至步骤4,直到完成全部池化层计算,得到按所述样本维优先方式存储的卷积神经网络池化层结果。
进一步的,所述步骤S1中将卷积神经网络池化层的输入特征数据集数据按照样本维优先的方式存储包括:第一层卷积神经网络卷积层计算时,将输入特征的数据集数据重排序,使得输入特征的数据集数据按照N*M阶的矩阵连续存储在向量处理器的片外存储器,其他层计算的输入特征数据矩阵为上一层计算结果的输出特征矩阵且是按照样本维优先的方式存储在向量处理器的片外存储器中。
进一步的,所述步骤2中,具体将所述输入特征数据集数据矩阵划分为num个矩阵块,每个矩阵块的大小为N*MB阶,其中MB为每个数据块的大小,且MB=q*p,q为目标向量处理器的核数,p为每个核的向量处理单元VPE的个数。
进一步的,所述步骤S1中N*M阶矩阵、所述步骤S5执行完成后得到的输出特征数据中,每一列存储单个样本的输入特征,在各列的存储顺序为:先是通道方向优先,接着是图像宽度方向优先,最后是图像高度方向优先。
进一步的,所述步骤S3中所述数据缓冲区设置有两个,当对其中一个数据缓冲区执行计算的同时,对另一个数据缓冲区进行数据传输。
进一步的,所述步骤S3中具体抽取K*MB阶矩阵块传输到向量处理器的阵列存储器AM的数据缓冲区中,其中K=kernelH*kernelW*preC,kernelH*kernelW为过滤器的大小,preC为通道数,传输到每个核的阵列存储器AM中的矩阵子块规模为K*p阶,抽取的所述K*MB阶矩阵块传输到向量处理器的阵列存储器AM的数据缓冲区中的总次数nextH*nextW分别为:
nextH=((preH-kernelH)/stepLen+1)
nextW=((preW-kernelW)/stepLen+1)
其中,nextH为输出图像数据的高度,nextW为输出图像数据的宽度,stepLen为步长。
进一步的,所述抽取K*MB阶矩阵块的具体步骤为:
步骤3.1:令执行次数t=nextW*r0+c0,其中0<=r0<nextH,0<=c0<nextW,t的取值范围为{0,1,2,...,nextH*nextW-1};
步骤3.2:令pos=stepLen*preC*(c0+preW*r0),从N*MB阶矩阵的第pos行连续抽取kernelW*preC行;
步骤3.3:间隔preW*preC行连续抽取kernelW*preC行;
步骤3.4:判断是否已经抽取K行,若不是跳转执行步骤3.3,否则抽取结束。
进一步的,所述步骤S4的具体步骤包括:
步骤4.1:令i=0;
步骤4.2:向量处理器的各个核对各自的K*p阶矩阵,从第i行开始每preC行取一行,共取kernelH*kernelW行数据;
步骤4.3:将取得的kernelH*kernelW行数据分别加载到向量寄存器中,并根据池化类型使用向量处理器的对应指令进行处理,得到对应值向量寄存器,将计算结果按顺序存入阵列存储器AM中;
步骤4.4:判断i是否<preC,若是令i=i+1,转入执行步骤4.2;否则计算完成preC*p阶计算结果,将计算结果按顺序传输至片外存储器中。
进一步的,所述步骤4.3中,若是最大池化类型,具体使用向量处理器的最大化指令逐行比较,得到最大值向量寄存器;若是平均池化类型,则具体使用向量处理器的加法指令逐行累加,将累加值/(kernelH*kernelW)得到平均值向量寄存器。
进一步的,若向量处理器包括SIMD指令同时进行并行数据处理,还包括根据待计算图像元素的数据位数调整p值为d*p,d值表示向量处理器中的每个VPE通过SIMD指令能同时处理的图像元素数据。
与现有技术相比,本发明的优点在于:
1、本发明多样本多通道卷积神经网络池化的向量化实现方法,可以实现多样本多通道的卷积神经网络池化的向量化,且向量处理器不再需要混洗硬件支持,可以节省功耗和面积,对于任意的第三维通道数和任意的过滤器大小不需要做任何修改,即可高效的实现卷积神经网络池化的向量化;
2、本发明多样本多通道卷积神经网络池化的向量化实现方法,在整个实现过程中所有数据都是按行加载、存储和计算,非常适合向量化和并行化计算,能够最大限度的发挥向量处理器的计算效率,还能够支持各种粒度的图像元素,充分发挥向量处理器的SIMD并行性,从而大幅度提升卷积神经网络的计算效率。
3、本发明多样本多通道卷积神经网络池化的向量化实现方法,在同一样本的所有输入特征数据存储在一个列上,所有计算都是在同一个VPE处理单元上操作,能够避免多个处理单元之间的数据混洗,有效提高了向量处理器的整体计算效率。
4、本发明多样本多通道卷积神经网络池化的向量化实现方法,进一步还可以支持最大池化和平均池化两种池化层类型,可以满足不同卷积神经网络池化的需求。
附图说明
图1是向量处理器的结构示意图。
图2是本实施例多样本多通道卷积神经网络池化的向量化实现方法的实现流程示意图。
图3是本实施例中卷积神经网络计算时输入特征的数据集数据重排序的原理示意图。
图4是在具体应用实施例中抽取数据块的详细步骤流程示意图。
图5是在具体应用实施例中步骤4的详细步骤流程示意图。
具体实施方式
以下结合说明书附图和具体优选的实施例对本发明作进一步描述,但并不因此而限制本发明的保护范围。
设目标向量处理器的核数为q,每个核的向量处理单元VPE个数为p,当前计算的卷积神经网络池化层的二维图像输入数据为preH*preW,通道数为preC,过滤器大小为kernelH*kernelW,步长为stepLen;数据集的总样本数目为M,Mini-batch大小为MB,其中MB=q*p,M=num*MB,num为正整数。如图2所示,本实施例多样本多通道卷积神经网络池化的向量化实现方法的具体步骤包括:
步骤1:将卷积神经网络池化层的输入特征数据集数据按照样本维优先方式存储,即输入特征数据集数据按照N*M阶的矩阵连续存储在向量处理器的片外存储器,其中M为数据集的总样本数目;N=preH*preW*preC为单个样本的输入特征数目。
上述将卷积神经网络池化层的输入特征数据集数据按照样本维优先的方式存储,具体是在第一层卷积神经网络卷积层计算时,将输入特征的数据集数据重排序,使得输入特征的数据集数据按照N*M阶的矩阵连续存储在向量处理器的片外存储器,其他层计算的输入特征数据矩阵为上一层计算结果的输出特征矩阵且是按照样本维优先的方式存储在向量处理器的片外存储器中。
在具体应用实施例中,第一层卷积神经网络计算输入特征的数据集数据重排序如图3所示,其中,preH=2,preW=2,通道数为preC=3,总样本数为m,图3(a)对应为重排序前的m个样本的输入特征数据,图3(b)为重排序后的输入特征数据集矩阵。
上述N*M阶矩阵的每一列存储单个样本的输入特征,且在该列的存储顺序为通道preC方向优先,接着是图像宽度preW方向优先,最后是图像高度preH方向优先。
上述输入特征数据矩阵的元素表示为x[i][m],其中列坐标m表示第m+1个样本,取值范围为{0,1,2,...,M-1};行坐标i表示该样本的第i+1个输入特征值,取值范围为{0,1,2,...,preH*preW*preC-1}。
步骤2:向量处理器按列将N*M阶的所述输入特征数据集数据矩阵划分为num个矩阵块,每个矩阵块的大小为N*MB阶。
步骤3:向量处理器根据步长、过滤器的大小,依次按行从步骤2划分后的每个N*MB阶的数据矩阵块中抽取指定大小矩阵块传输到向量处理器的阵列存储器AM的数据缓冲区中。
上述具体抽取K*MB阶矩阵块传输到向量处理器的阵列存储器AM的数据缓冲区中,其中K=kernelH*kernelW*preC,kernelH*kernelW为过滤器的大小,传输到每个核的阵列存储器AM中的矩阵子块规模为K*p阶,抽取的K*MB阶矩阵块传输到向量处理器的阵列存储器AM的数据缓冲区中的总次数nextH*nextW分别为:
nextH=((preH-kernelH)/stepLen+1)
nextW=((preW-kernelW)/stepLen+1)
其中,nextH为输出图像数据的高度,nextW为输出图像数据的宽度,stepLen为步长。
抽取K*MB阶矩阵块传输到向量处理器的阵列存储器AM的数据缓冲区中后,向量处理器的各个核并行的对各自AM的数据缓冲区中上述K*p阶矩阵进行池化向量化计算,计算结果按顺序传输至片外存储器中。
步骤4:向量处理器的各个核并行的对各自阵列存储器AM的数据缓冲区中抽取出的矩阵块进行池化向量化计算,计算结果按顺序传输至片外存储器中。
步骤5:重复步骤3至步骤4,直到完成全部池化层计算,得到按所述样本维优先方式存储的卷积神经网络池化层结果。
上述步骤完成后得到的输出特征数据矩阵规模具体为S*M阶矩阵,其中M为数据集的总样本数目,S=nextH*nextW*preC,为单个样本的输出特征数目,该S*M阶的输出特征矩阵是按照样本维优先的方式连续存储到向量处理器的片外存储器。该S*M阶矩阵的每一列存储单个样本的输出特征,并且在该列的存储顺序为通道preC方向优先,接着是图像宽度nextW方向优先,最后是图像高度nextH方向优先。
上述输出特征数据矩阵的元素表示为a[j][m],其中列坐标m表示第m+1个样本,取值范围为{0,1,2,...,M-1},行坐标j表示该样本的第j+1个输出特征值,取值范围为{0,1,2,...,nextH*nextW*preC-1}。
执行上述步骤1~5后,得到的计算结果即为该层的卷积神经网络池化层结果,并且计算结果的存储仍然是步骤1所要求的样本维优先的方式存储,该输出特征数据矩阵为后续层的卷积神经网络计算提供输入特征数据矩阵。
本实施例通过上述步骤,可以实现多样本多通道的卷积神经网络池化的向量化,且向量处理器不再需要混洗硬件支持,可以节省功耗和面积,对于任意的第三维通道数和任意的过滤器大小不需要做任何修改,即可高效的实现卷积神经网络池化的向量化,且实现过程中所有数据都是按行加载、存储和计算,非常适合向量化和并行化计算,能够最大限度的发挥向量处理器的计算效率,还能够支持各种粒度的图像元素,充分发挥向量处理器的SIMD并行性,从而大幅度提升卷积神经网络的计算效率。
本实施例通过上述步骤,同一样本的所有输入特征数据存储在一个列上,所有计算都是在同一个VPE处理单元上操作,能够避免多个处理单元之间的数据混洗,有效提高了向量处理器的整体计算效率。
在具体应用实施例中,上述步骤3中进一步数据缓冲区可以设置两个,在对其中一个数据缓冲区执行计算的同时,对另一个缓冲区进行数据传输,可以使得数据传输与计算时间重迭,进一步提升计算效率。
如图4所示,在具体应用实施例中,上述步骤3中抽取K*MB阶矩阵块的具体步骤为:
步骤3.1:令执行次数t=nextW*r0+c0,其中0<=r0<nextH,0<=c0<nextW,t的取值范围为{0,1,2,...,nextH*nextW-1};
步骤3.2:令pos=stepLen*preC*(c0+preW*r0),从N*MB阶矩阵的第pos行连续抽取kernelW*preC行;
步骤3.3:间隔preW*preC行连续抽取kernelW*preC行;
步骤3.4:判断是否已经抽取K行,若不是跳转执行步骤3.3,否则抽取结束。
如图5所示,在具体应用实施例中,上述步骤S4的具体步骤包括:
步骤4.1:令i=0;
步骤4.2:向量处理器的各个核对各自的K*p阶矩阵,从第i行开始每preC行取一行,共取kernelH*kernelW行数据;
步骤4.3:将取得的kernelH*kernelW行数据分别加载到向量寄存器中,并根据池化类型使用向量处理器的对应指令进行处理,得到对应值向量寄存器,将计算结果按顺序存入阵列存储器AM中;
步骤4.4:判断i是否<preC,若是令i=i+1,转入执行步骤4.2;否则计算完成preC*p阶计算结果,将计算结果按顺序传输至片外存储器中。
上述步骤4.3中,具体若是最大池化类型,具体使用向量处理器的最大化指令逐行比较,得到最大值向量寄存器;若是平均池化类型,则具体使用向量处理器的加法指令逐行累加,将累加值/(kernelH*kernelW)得到平均值向量寄存器,使得可以支持最大池化和平均池化两种池化层类型。
在具体应用实施例中,若向量处理器包括SIMD指令同时进行并行数据处理,还包括根据待计算图像元素的数据位数调整p值为d*p,MB变化为原来MB的d倍,d值表示向量处理器中的每个VPE通过SIMD指令能同时处理的图像元素数据。
上述d值确定时,如64位处理器的字长为64位,若待计算图像元素的数据位数分别为64、32、16、8位,则对应的d值分别为64/64=1,64/32=2,64/16=4,64/8=8;32位处理器的字长为32位,若待计算图像元素的数据位数分别为32、16、8位,则对应的d值分别为32/32=1,32/16=2,32/8=4。
上述只是本发明的较佳实施例,并非对本发明作任何形式上的限制。虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明。因此,凡是未脱离本发明技术方案的内容,依据本发明技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均应落在本发明技术方案保护的范围内。

Claims (9)

1.一种多样本多通道卷积神经网络池化的向量化实现方法,其特征在于,步骤包括:
步骤1:将卷积神经网络池化层的输入特征数据集数据按照样本维优先方式存储;
步骤2:向量处理器按列将输入特征数据集数据矩阵划分为多个矩阵块,得到多个输入特征数据矩阵;
步骤3:向量处理器根据步长、过滤器的大小,依次按行从所述输入特征数据矩阵中抽取指定大小矩阵块传输到向量处理器的阵列存储器AM的数据缓冲区中;
步骤4:向量处理器的各个核并行的对各自阵列存储器AM的数据缓冲区中抽取出的矩阵块进行池化向量化计算,计算结果按顺序传输至片外存储器中;
步骤5:重复步骤3至步骤4,直到完成全部池化层计算,得到按所述样本维优先方式存储的卷积神经网络池化层结果;
所述步骤3中具体抽取K*MB阶矩阵块传输到向量处理器的阵列存储器AM的数据缓冲区中,其中K=kernelH*kernelW*preC,kernelH*kernelW为过滤器的大小,preC为通道数,MB=q*p,q为目标向量处理器的核数,p为每个核的向量处理单元VPE的个数,传输到每个核的阵列存储器AM中的矩阵子块规模为K*p阶,抽取的所述K*MB阶矩阵块传输到向量处理器的阵列存储器AM的数据缓冲区中的总次数nextH*nextW分别为:
nextH=((preH-kernelH)/stepLen+1)
nextW=((preW-kernelW)/stepLen+1)
其中,nextH为输出图像数据的高度,nextW为输出图像数据的宽度,stepLen为步长,preH*preW为卷积神经网络池化层的二维图像输入数据。
2.根据权利要求1所述的多样本多通道卷积神经网络池化的向量化实现方法,其特征在于,所述步骤1中将卷积神经网络池化层的输入特征数据集数据按照样本维优先的方式存储包括:第一层卷积神经网络卷积层计算时,将输入特征的数据集数据重排序,使得输入特征的数据集数据按照N*M阶的矩阵连续存储在向量处理器的片外存储器,其他层计算的输入特征数据矩阵为上一层计算结果的输出特征矩阵且是按照样本维优先的方式存储在向量处理器的片外存储器中,其中N=preH*preW*preC为单个样本的输入特征数目,M为数据集的总样本数目,M=num*MB,num为正整数。
3.根据权利要求2所述的多样本多通道卷积神经网络池化的向量化实现方法,其特征在于,所述步骤2中,具体将所述输入特征数据集数据矩阵划分为num个矩阵块,每个矩阵块的大小为N*MB阶,其中MB为每个数据块的大小,且MB=q*p,q为目标向量处理器的核数,p为每个核的向量处理单元VPE的个数。
4.根据权利要求3所述的多样本多通道卷积神经网络池化的向量化实现方法,其特征在于,所述步骤1中N*M阶矩阵,每一列存储单个样本的输入特征,在各列的存储顺序为:先是通道方向优先,接着是图像宽度方向优先,最后是图像高度方向优先;所述步骤5执行完成后得到的输出特征数据中,每一列存储单个样本的输出特征,在各列的存储顺序为:先是通道方向优先,接着是图像宽度方向优先,最后是图像高度方向优先。
5.根据权利要求1~4中任意一项所述的多样本多通道卷积神经网络池化的向量化实现方法,其特征在于,所述步骤3中所述数据缓冲区设置有两个,当对其中一个数据缓冲区执行计算的同时,对另一个数据缓冲区进行数据传输。
6.根据权利要求1所述的多样本多通道卷积神经网络池化的向量化实现方法,其特征在于,所述抽取K*MB阶矩阵块的具体步骤为:
步骤3.1:令执行次数t=nextW*r0+c0,其中0<=r0<nextH,0<=c0<nextW,t的取值范围为{0,1,2,...,nextH*nextW-1};
步骤3.2:令pos=stepLen*preC*(c0+preW*r0),从N*MB阶矩阵的第pos行连续抽取kernelW*preC行;
步骤3.3:间隔preW*preC行连续抽取kernelW*preC行;
步骤3.4:判断是否已经抽取K行,若不是跳转执行步骤3.3,否则抽取结束。
7.根据权利要求1所述的多样本多通道卷积神经网络池化的向量化实现方法,其特征在于,所述步骤4的具体步骤包括:
步骤4.1:令i=0;
步骤4.2:向量处理器的各个核对各自的K*p阶矩阵,从第i行开始每preC行取一行,共取kernelH*kernelW行数据;
步骤4.3:将取得的所述kernelH*kernelW行数据分别加载到向量寄存器中,并根据池化类型使用向量处理器的对应指令进行处理,得到对应值向量寄存器,将计算结果按顺序存入阵列存储器AM中;
步骤4.4:判断i是否<preC,若是令i=i+1,转入执行步骤4.2;否则计算完成preC*p阶计算结果,将计算结果按顺序传输至片外存储器中。
8.根据权利要求7所述的多样本多通道卷积神经网络池化的向量化实现方法,其特征在于,所述步骤4.3中,若是最大池化类型,具体使用向量处理器的最大化指令逐行比较,得到最大值向量寄存器;若是平均池化类型,则具体使用向量处理器的加法指令逐行累加,将累加值/(kernelH*kernelW)得到平均值向量寄存器。
9.根据权利要求1~4中任意一项所述的多样本多通道卷积神经网络池化的向量化实现方法,其特征在于,若向量处理器包括SIMD指令同时进行并行数据处理,还包括根据待计算图像元素的数据位数调整p值为d*p,d值表示向量处理器中的每个VPE通过SIMD指令能同时处理的图像元素数据,p为每个核的向量处理单元VPE的个数。
CN201911001491.0A 2019-10-21 2019-10-21 多样本多通道卷积神经网络池化的向量化实现方法 Active CN110796236B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911001491.0A CN110796236B (zh) 2019-10-21 2019-10-21 多样本多通道卷积神经网络池化的向量化实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911001491.0A CN110796236B (zh) 2019-10-21 2019-10-21 多样本多通道卷积神经网络池化的向量化实现方法

Publications (2)

Publication Number Publication Date
CN110796236A CN110796236A (zh) 2020-02-14
CN110796236B true CN110796236B (zh) 2022-06-17

Family

ID=69440527

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911001491.0A Active CN110796236B (zh) 2019-10-21 2019-10-21 多样本多通道卷积神经网络池化的向量化实现方法

Country Status (1)

Country Link
CN (1) CN110796236B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113762452B (zh) * 2020-06-04 2024-01-02 合肥君正科技有限公司 一种量化prelu激活函数的方法
CN111859277B (zh) * 2020-07-23 2022-10-21 中国人民解放军国防科技大学 一种稀疏矩阵向量乘法向量化实现方法
CN113052189B (zh) * 2021-03-30 2022-04-29 电子科技大学 一种基于改进的MobileNetV3特征提取网络
CN114638352B (zh) * 2022-05-18 2023-05-30 成都登临科技有限公司 一种处理器架构、处理器及电子设备
CN114994388B (zh) * 2022-05-25 2023-05-12 北京中联太信科技有限公司 一种磁超导微直流检测分析的方法及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106991472A (zh) * 2017-03-30 2017-07-28 中国人民解放军国防科学技术大学 一种融合ReLU激活函数与最大值池化的向量化实现方法
CN108205703A (zh) * 2017-12-29 2018-06-26 中国人民解放军国防科技大学 多输入多输出矩阵平均值池化向量化实现方法
CN108985450A (zh) * 2018-06-28 2018-12-11 中国人民解放军国防科技大学 面向向量处理器的卷积神经网络运算向量化方法
CN109086244A (zh) * 2018-07-11 2018-12-25 中国人民解放军国防科技大学 一种基于向量处理器的矩阵卷积向量化实现方法
CN109165734A (zh) * 2018-07-11 2019-01-08 中国人民解放军国防科技大学 一种矩阵局部响应归一化的向量化实现方法
CN109165733A (zh) * 2018-07-11 2019-01-08 中国人民解放军国防科技大学 多输入多输出矩阵最大值池化向量化实现方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106991472A (zh) * 2017-03-30 2017-07-28 中国人民解放军国防科学技术大学 一种融合ReLU激活函数与最大值池化的向量化实现方法
CN108205703A (zh) * 2017-12-29 2018-06-26 中国人民解放军国防科技大学 多输入多输出矩阵平均值池化向量化实现方法
CN108985450A (zh) * 2018-06-28 2018-12-11 中国人民解放军国防科技大学 面向向量处理器的卷积神经网络运算向量化方法
CN109086244A (zh) * 2018-07-11 2018-12-25 中国人民解放军国防科技大学 一种基于向量处理器的矩阵卷积向量化实现方法
CN109165734A (zh) * 2018-07-11 2019-01-08 中国人民解放军国防科技大学 一种矩阵局部响应归一化的向量化实现方法
CN109165733A (zh) * 2018-07-11 2019-01-08 中国人民解放军国防科技大学 多输入多输出矩阵最大值池化向量化实现方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
The Implementation and Optimization of Parallel Linpack on Multi-core Vector Accelerator;Zhong Liu 等;《IEEE》;20191003;全文 *
面向多核向量处理器的矩阵乘法向量化方法;刘仲 等;《计算机学报》;20181031;第41卷(第10期);全文 *

Also Published As

Publication number Publication date
CN110796236A (zh) 2020-02-14

Similar Documents

Publication Publication Date Title
CN110796236B (zh) 多样本多通道卷积神经网络池化的向量化实现方法
CN110796235B (zh) 卷积神经网络Valid卷积的向量化实现方法
CN108765247B (zh) 图像处理方法、装置、存储介质及设备
JP6736646B2 (ja) 畳み込みニューラルネットワークにおいて畳み込み演算を実行する装置および方法
CN106970896B (zh) 面向向量处理器的二维矩阵卷积的向量化实现方法
US10394929B2 (en) Adaptive execution engine for convolution computing systems
CN110807170B (zh) 多样本多通道卷积神经网络Same卷积向量化实现方法
CN111897579B (zh) 图像数据处理方法、装置、计算机设备和存储介质
US20190095776A1 (en) Efficient data distribution for parallel processing
CN111898733B (zh) 一种深度可分离卷积神经网络加速器架构
CN109543830B (zh) 一种用于卷积神经网络加速器的拆分累加器
US11983616B2 (en) Methods and apparatus for constructing digital circuits for performing matrix operations
CN112840356A (zh) 运算加速器、处理方法及相关设备
CN108629406B (zh) 用于卷积神经网络的运算装置
US11709911B2 (en) Energy-efficient memory systems and methods
CN110766128A (zh) 卷积计算单元、计算方法及神经网络计算平台
CN110674927A (zh) 一种用于脉动阵列结构的数据重组方法
KR20230081697A (ko) 팽창 컨볼루션 계산 가속화 방법 및 장치
KR102164190B1 (ko) 고효율 연산 처리를 위한 인공 신경망 모듈 및 이의 스케쥴링 방법
CN111381968A (zh) 一种高效运行深度学习任务的卷积运算优化方法及系统
WO2020052265A1 (en) System and method for cascaded dynamic max pooling in neural networks
US20230376733A1 (en) Convolutional neural network accelerator hardware
US11631002B2 (en) Information processing device and information processing method
US11748100B2 (en) Processing in memory methods for convolutional operations
CN111191774B (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