面向向量处理器的基于SIMD的平均值值池化并行处理方法技术

技术编号:15896028 阅读:396 留言:0更新日期:2017-07-28 20:10
一种面向向量处理器的基于SIMD的平均值值池化并行处理方法,其步骤为:S1:设定池化矩阵和池化窗口;S2:根据池化窗口尺寸k,取池化矩阵A的前k行元素进行相应的累加操作,得出前k行元素对应的列和;S3:配置混洗模式并进行混洗;S4:将步骤S3中得到的结果对应相加;S5:重复步骤S3、S4直到每组元素的数值归约至p/k个VPE中为止;S6:使用向量VMOVI指令将立即数

SIMD based mean value pooling parallel processing method for vector processors

Based on the average value of SIMD parallel processing pool oriented vector processor, which comprises the following steps: S1: set the pool matrix and pool window; S2: according to the pool of window size k, accumulate the corresponding operations before the k elements from pool of matrix A, k elements to get the the column and S3 configuration: shuffle mode; and shuffle; S4: get in step S3 the results of the corresponding add; S5: S3, repeat steps S4 until each element of the data reduction to p/k VPE so far; S6: using vector VMOVI instruction will be immediate

【技术实现步骤摘要】
面向向量处理器的基于SIMD的平均值值池化并行处理方法
本专利技术主要涉及到卷积神经网络
,特指一种面向向量处理器的基于SIMD的平均值值池化并行处理方法。
技术介绍
20世纪60年代,Hubel和Wiesel在研究猫脑皮层中用于局部敏感和方向选择的神经元时发现其独特的网络结构可以有效地降低反馈神经网络的复杂性,继而提出了卷积神经网络(ConvolutionalNeuralNetwork,CNN)。当前,卷积神经网络已经成为众多学科领域的研究热点之一,特别是在模式分类领域,由于该网络避免了对图像的复杂前期预处理,可以直接输入原始图像,因而得到了更加广泛的应用。一般地,一个用于识别的卷积神经网络计算模型包括卷积层、池化层、全连接层以及后续的分类器。卷积层通过使用不同规模的卷积核来提取上一层图像的局部特征,一旦该局部特征被提取后,它与其它特征间的位置关系也随之确定下来;然后,通过求局部平均(也称池化操作)进行特征映射,得到降维后的特征信息,该特征信息输出到下一个卷积层继续进行相应的处理,直到到达最后一层(输出层),从而得到最终输出结果。当前主流的卷积神经网络模型中采用的池化操作主要是平均值池化(AveragePooling)和最大值池化(MaxPooling),平均值池化和最大值池化是两种不同的池化方法,但是本质上都是为了降低大尺寸图像的维度,降低计算量,因此在卷积神经网络中占据重要的位置。平均值池化是取一定尺寸像素中的平均值,比如,n×n大小规模,最大值池化是取一定尺寸像素中的最大值。鉴于池化操作在卷积神经网络中的重要作用,因此在计算量十分巨大的卷积神经网络模型中加速池化操作的并行性十分重要。
技术实现思路
本专利技术要解决的技术问题就在于:针对现有技术存在的技术问题,本专利技术提供一种原理简单、实现方便、能够高效计算、能充分挖掘向量处理器的多级并行性以发挥向量处理器的并行计算能力、缩短计算时间的面向向量处理器的基于SIMD的平均值值池化并行处理方法。为解决上述技术问题,本专利技术采用以下技术方案:一种面向向量处理器的基于SIMD的平均值值池化并行处理方法,其步骤为:S1:设卷积操作后需要进行池化操作的池化矩阵为A,其大小为M×N,池化窗口的尺寸为k×k,且M>k,N>k,向量处理单元的个数为p,且M、N、p为k的整数倍;S2:根据池化窗口尺寸k,取池化矩阵A的前k行元素进行相应的累加操作,得出前k行元素对应的列和;S3:配置混洗模式并进行混洗;S4:将步骤S3中得到的结果对应相加;S5:重复步骤S3、S4直到每组元素的数值归约至p/k个VPE中为止;S6:使用向量VMOVI指令将立即数赋值给一个向量寄存器,并将此向量寄存器与步骤S5中的累加和一一对应相乘;S7:最终得出p/k个平均值池化的结果向量;S8:顺移至池化矩阵A的k+1行,重复上述步骤S2到步骤S7直至遍历完池化矩阵A的所有子图,得到池化矩阵A的所有尺寸为k×k的平均值池化结果矩阵。作为本专利技术的进一步改进:所述步骤S3的详细流程为:S301:若k为偶数,则将步骤S2中p/k组中每组元素的前k/2个元素放置在一起,每组的后k/2个元素放置在一起;S302:若k为奇数,以k为3,p为12为例,即池化窗口的尺寸为3×3,向量处理单元的个数为12。作为本专利技术的进一步改进:所述步骤S8中的一个平均值池化结果c0,0的计算公式为其中c0,0为平均值池化结果矩阵中的第一个元素,k为池化窗口的尺寸,在卷积神经网络中,池化窗口为方阵,ai,j为需要进行平均值池化的池化矩阵A中的元素。作为本专利技术的进一步改进:所述定义池化窗口的大小为sizeX,两个相邻池化窗口的水平位移或竖直位移为stride,平均值池化操作中池化窗口不重叠,即sizeX=stride。作为本专利技术的进一步改进:所述池化矩阵A和池化窗口尺寸k均为方阵。与现有技术相比,本专利技术的优点在于:本专利技术面向向量处理器的基于SIMD的平均值值池化并行处理方法,实现简单、成本低廉且操作方便,其利用向量处理器的交叉混洗网络替代归约操作完成VPE间数据的快速排序,一次操作能同时计算出p/k个平均值池化结果,能够充分发挥向量处理器的所有处理单元的并行计算性能,缩短卷积神经网络中平均值池化的计算时间,可靠性好并能降低硬件计算功耗。附图说明图1是本专利技术的流程示意图。图2是向量处理器的一般结构示意图。图3是本专利技术在具体应用实例中平均值池化过程的示意图。图4是本专利技术在具体应用实例中池化窗口k为2的具体实施例中的计算步骤示意图。图5是本专利技术在具体应用实例中平均值池化操作中池化窗口不重叠操作的示意图。图6是本专利技术在具体应用实例中池化窗口为3×3的平均值池化计算流程示意图。具体实施方式以下将结合说明书附图和具体实施例对本专利技术做进一步详细说明。如图1所示,本专利技术的一种面向向量处理器的基于SIMD的平均值值池化并行处理方法,其步骤为:S1:设卷积操作后需要进行池化操作的池化矩阵为A,其大小为M×N,池化窗口的尺寸为k×k,且M>k,N>k,向量处理单元的个数为p,且M、N、p为k的整数倍;在实际的卷积神经网络模型中,一般池化矩阵A和池化窗口尺寸k均为方阵;S2:根据池化窗口尺寸k,取池化矩阵A的前k行元素进行相应的累加操作,得出前k行元素对应的列和;S3:配置混洗模式并进行混洗;S4:将步骤S3中得到的结果对应相加;S5:重复步骤S3、S4直到每组元素的数值归约至p/k个VPE中为止;S6:使用向量VMOVI指令将立即数赋值给一个向量寄存器,并将此向量寄存器与步骤S5中的累加和一一对应相乘;S7:最终得出p/k个平均值池化的结果向量;S8:顺移至池化矩阵A的k+1行,重复上述步骤S2到步骤S7直至遍历完池化矩阵A的所有子图,可以得到池化矩阵A的所有尺寸为k×k的平均值池化结果矩阵。本专利技术主要适用于向量处理器,如图2所示,为向量处理器的一般结构示意图。在具体应用实例中,上述步骤S3的详细流程为:S301:若k为偶数,则将步骤2中p/k组中每组元素的前k/2个元素放置在一起,每组的后k/2个元素放置在一起;S302:若k为奇数,以k为3,p为12为例,即池化窗口的尺寸为3×3,向量处理单元的个数为12,计算过程如图6所示。所述步骤S8中的一个平均值池化结果c0,0的计算公式为其中c0,0为平均值池化结果矩阵中的第一个元素,k为池化窗口的尺寸,在卷积神经网络中,池化窗口一般为方阵,ai,j为需要进行平均值池化的池化矩阵A中的元素,其平均值池化流程示意图如图3所示。如图5所示,定义池化窗口的大小为sizeX,两个相邻池化窗口的水平位移或竖直位移为stride,平均值池化操作中池化窗口不重叠,即sizeX=stride。如图4所示,本专利技术在一个具体应用实例中,池化窗口k为2,其详细步骤:S101:设卷积操作后需要进行池化操作的池化矩阵为A,其大小为16×16,池化尺寸为2×2,向量处理单元的个数p为16;S102:根据池化尺寸k为2,取池化矩阵A的前2行元素进行相应的累加操作,得出前2行元素对应的列和;S103:配置混洗模式,将步骤S102中8组元素的前1个元素放置在一起,每组的后1个元素放置在一起;S104:将步骤S10本文档来自技高网
...
面向向量处理器的基于SIMD的平均值值池化并行处理方法

【技术保护点】
一种面向向量处理器的基于SIMD的平均值值池化并行处理方法,其特征在于,步骤为:S1:设卷积操作后需要进行池化操作的池化矩阵为A,其大小为M×N,池化窗口的尺寸为k×k,且M>k,N>k,向量处理单元的个数为p,且M、N、p为k的整数倍;S2:根据池化窗口尺寸k,取池化矩阵A的前k行元素进行相应的累加操作,得出前k行元素对应的列和;S3:配置混洗模式并进行混洗;S4:将步骤S3中得到的结果对应相加;S5:重复步骤S3、S4直到每组元素的数值归约至p/k个VPE中为止;S6:使用向量VMOVI指令将立即数

【技术特征摘要】
1.一种面向向量处理器的基于SIMD的平均值值池化并行处理方法,其特征在于,步骤为:S1:设卷积操作后需要进行池化操作的池化矩阵为A,其大小为M×N,池化窗口的尺寸为k×k,且M>k,N>k,向量处理单元的个数为p,且M、N、p为k的整数倍;S2:根据池化窗口尺寸k,取池化矩阵A的前k行元素进行相应的累加操作,得出前k行元素对应的列和;S3:配置混洗模式并进行混洗;S4:将步骤S3中得到的结果对应相加;S5:重复步骤S3、S4直到每组元素的数值归约至p/k个VPE中为止;S6:使用向量VMOVI指令将立即数赋值给一个向量寄存器,并将此向量寄存器与步骤S5中的累加和一一对应相乘;S7:最终得出p/k个平均值池化的结果向量;S8:顺移至池化矩阵A的k+1行,重复上述步骤S2到步骤S7直至遍历完池化矩阵A的所有子图,得到池化矩阵A的所有尺寸为k×k的平均值池化结果矩阵。2.根据权利要求1所述的面向向量处理器的基于SIMD的平均值值池化并行处理方法,其特征在于,所述步骤S3的详细流程...

【专利技术属性】
技术研发人员:郭阳张军阳扈啸王慧丽胡敏慧王子聪
申请(专利权)人:中国人民解放军国防科学技术大学
类型:发明
国别省市:湖南,43

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1