一种并行计算方法及装置制造方法及图纸

技术编号:24355513 阅读:69 留言:0更新日期:2020-06-03 02:28
本申请提供了一种并行计算方法及装置,所述方法包括:将卷积神经网络目标层的N个输入矩阵进行水平方向的拼接,获得第一拼接输入矩阵;矢量处理器根据所述计算标识对所述第一拼接输入矩阵进行水平方向的计算处理,得到拼接输出矩阵;从所述拼接输出矩阵中筛选出所述N个输出矩阵,并将所述N个输出矩阵作为卷积神经网络下一层的N个输入矩阵。本申请通过将输入矩阵进行水平方向的拼接,从而减少了处理器换行处理流水线时所需的载入和存储带来的额外开销,提升了矢量处理器在处理小尺寸数据时的计算性能。

A parallel computing method and device

【技术实现步骤摘要】
一种并行计算方法及装置
本申请涉及计算机领域,尤其涉及一种并行计算方法及装置。
技术介绍
神经网络被广泛应用于模式识别、图像处理、函数逼近和优化计算等领域,因其较高的运算速率,受到学术界和工业界越来越广泛的关注。而矢量处理器是专门设计的高度流水线作业的处理器,能够对整个矢量矩阵上逐行进行高效率的操作,因此当前神经网络中的深度学习任务多是使用矢量处理器(如GPU、矢量DSP、带有SIMD扩展指令集的CPU等等)处理运算的。在卷积神经网络模型中,有一些应用场景,比如计算机视觉领域当中,可能会出现模型的输入矩阵的尺寸很小,但是模型执行的频率又很高的情况,使用矢量处理器对该种情况进行处理时,会存在浪费矢量寄存器位宽、计算流水中断等问题,影响处理器的计算性能。申请内容本申请提供了一种并行计算方法及装置,能够使得矢量处理器在处理小尺寸数据时,计算性能得到提升。第一方面,本申请提供了一种并行计算方法,所述方法包括以下步骤:将卷积神经网络目标层的N个输入矩阵进行水平方向的拼接,获得第一拼接输入矩阵,其中,所述目标层包括卷积层和池化层,所述输入矩阵包含计算标识,所述计算标识包括卷积计算标识及池化计算标识,所述卷积计算标识包括卷积核参数,所述池化计算标识包括池化窗口参数,N的值是由矢量处理器的位宽确定的;矢量处理器根据所述计算标识对所述第一拼接输入矩阵进行水平方向的计算处理,得到拼接输出矩阵,其中,所述拼接输出矩阵包含N个输出矩阵;从所述拼接输出矩阵中筛选出所述N个输出矩阵,并将所述N个输出矩阵作为卷积神经网络下一层的N个输入矩阵。可选地,所述目标层为卷积层的情况下,所述将卷积神经网络目标层的N个输入矩阵进行水平方向的拼接,获得第一拼接输入矩阵包括:在所述输入矩阵为非填充卷积层矩阵且卷积核滑动步长为1的情况下,将所述N个输入矩阵进行水平方向的首尾拼接获得第一拼接输入矩阵;在所述输入矩阵为非填充卷积层矩阵且卷积核滑动步长大于1的情况下,将所述N个输入矩阵的每行末尾填充k个零后获得N个填充矩阵,将所述N个填充矩阵进行水平方向的首尾拼接获得第一拼接输入矩阵,其中,k值为所述输入矩阵的矩阵宽度对所述卷积核滑动步长取模的结果;在所述输入矩阵为填充卷积层矩阵且卷积核滑动步长为1的情况下,将所述N个输入矩阵的每行末尾填充k个零后获得N个填充矩阵,将所述N个填充矩阵进行水平方向的首尾拼接获得第一拼接输入矩阵,其中,k值为所述卷积核一半宽度向下取整的结果;在所述输入矩阵为填充卷积层矩阵且卷积核滑动步长大于1的情况下,将所述N个输入矩阵的每行末尾填充k个零后获得N个填充矩阵,将所述N个填充矩阵进行水平方向的首尾拼接获得第一拼接输入矩阵,其中,k值为所述输入矩阵的矩阵宽度对所述卷积核滑动步长取模的结果。可选地,在所述目标层是池化层的情况下,所述将卷积神经网络目标层的N个不同的输入矩阵进行水平方向的拼接,得到第一拼接输入矩阵包括:在所述输入矩阵为非填充池化层矩阵且池化窗口宽度为s的情况下,将所述N个输入矩阵的每行末尾填充k个零后获得N个填充矩阵,将所述N个填充矩阵进行水平方向的首尾拼接获得第一拼接输入矩阵,其中,k值为所述输入矩阵的矩阵宽度对所述卷积核滑动步长取模的结果;在所述输入矩阵为填充池化层矩阵且池化窗口宽度为s的情况下,将所述N个输入矩阵进行水平方向的首尾拼接获得第一拼接输入矩阵。可选地,将所述N个输出矩阵作为卷积神经网络下一层的N个输入矩阵包括:在所述输出矩阵的矩阵宽度大于输入矩阵一半宽度的情况下,将所述N个输出矩阵作为卷积神经网络下一层的N个输入矩阵。可选地,将所述N个输出矩阵作为卷积神经网络下一层的N个输入矩阵还包括:在所述输出矩阵的矩阵宽度小于或等于输入矩阵一半宽度的情况下,将所述输出矩阵中的每两行首尾拼接合并成一行,得到N个第二拼接矩阵;将所述N个第二拼接矩阵作为卷积神经网络下一层的N个输入矩阵。第二方面,本申请提供了一种并行计算装置,所述装置包括拼接单元、计算单元以及输出单元,其中,所述拼接单元用于将卷积神经网络目标层的N个输入矩阵进行水平方向的拼接,获得第一拼接输入矩阵,其中,所述目标层包括卷积层和池化层,所述输入矩阵包含计算标识,所述计算标识包括卷积计算标识及池化计算标识,所述卷积计算标识包括卷积核参数,所述池化计算标识包括池化窗口参数,N的值是由矢量处理器的位宽确定的;所述计算单元用于使用矢量处理器根据所述计算标识对所述第一拼接输入矩阵进行水平方向的计算处理,得到拼接输出矩阵,其中,所述拼接输出矩阵包含N个输出矩阵;所述输出单元用于从所述拼接输出矩阵中筛选出所述N个输出矩阵,并将所述N个输出矩阵作为卷积神经网络下一层的N个输入矩阵。可选地,所述目标层为卷积层的情况下,所述拼接单元具体用于在所述输入矩阵为非填充卷积层矩阵且卷积核滑动步长为1的情况下,将所述N个输入矩阵进行水平方向的首尾拼接获得第一拼接输入矩阵;所述拼接单元具体用于在所述输入矩阵为非填充卷积层矩阵且卷积核滑动步长大于1的情况下,将所述N个输入矩阵的每行末尾填充k个零后获得N个填充矩阵,将所述N个填充矩阵进行水平方向的首尾拼接获得第一拼接输入矩阵,其中,k值为所述输入矩阵的矩阵宽度对所述卷积核滑动步长取模的结果;所述拼接单元具体用于在所述输入矩阵为填充卷积层矩阵且卷积核滑动步长为1的情况下,将所述N个输入矩阵的每行末尾填充k个零后获得N个填充矩阵,将所述N个填充矩阵进行水平方向的首尾拼接获得第一拼接输入矩阵,其中,k值为所述卷积核一半宽度向下取整的结果;所述拼接单元具体用于在所述输入矩阵为填充卷积层矩阵且卷积核滑动步长大于1的情况下,将所述N个输入矩阵的每行末尾填充k个零后获得N个填充矩阵,将所述N个填充矩阵进行水平方向的首尾拼接获得第一拼接输入矩阵,其中,k值为所述输入矩阵的矩阵宽度对所述卷积核滑动步长取模的结果。可选地,在所述目标层是池化层的情况下,所述拼接单元具体用于在所述输入矩阵为非填充池化层矩阵且池化窗口宽度为s的情况下,将所述N个输入矩阵的每行末尾填充k个零后获得N个填充矩阵,将所述N个填充矩阵进行水平方向的首尾拼接获得第一拼接输入矩阵,其中,k值为所述输入矩阵的矩阵宽度对所述卷积核滑动步长取模的结果;所述拼接单元具体用于在所述输入矩阵为填充池化层矩阵且池化窗口宽度为s的情况下,将所述N个输入矩阵进行水平方向的首尾拼接获得第一拼接输入矩阵。可选地,所述输出单元具体用于在所述输出矩阵的矩阵宽度大于输入矩阵一半宽度的情况下,将所述N个输出矩阵作为卷积神经网络下一层的N个输入矩阵。可选地,所述输出单元具体用于在所述输出矩阵的矩阵宽度小于或等于输入矩阵一半宽度的情况下,将所述输出矩阵中的每两行首尾相接合并成一行,得到N个第二拼接矩阵;所述输出单元具体用于将所述N个第二拼接矩阵作为卷积神经网络下一层的N个输入矩阵。上述方法中,通过将本文档来自技高网...

【技术保护点】
1.一种并行计算方法,其特征在于,包括:/n将卷积神经网络目标层的N个输入矩阵进行水平方向的拼接,获得第一拼接输入矩阵,其中,所述目标层包括卷积层和池化层,所述输入矩阵包含计算标识,所述计算标识包括卷积计算标识及池化计算标识,所述卷积计算标识包括卷积核参数,所述池化计算标识包括池化窗口参数,N的值是由矢量处理器的位宽确定的;/n矢量处理器根据所述计算标识对所述第一拼接输入矩阵进行水平方向的计算处理,得到拼接输出矩阵,其中,所述拼接输出矩阵包含N个输出矩阵;/n从所述拼接输出矩阵中筛选出所述N个输出矩阵,并将所述N个输出矩阵作为卷积神经网络下一层的N个输入矩阵。/n

【技术特征摘要】
1.一种并行计算方法,其特征在于,包括:
将卷积神经网络目标层的N个输入矩阵进行水平方向的拼接,获得第一拼接输入矩阵,其中,所述目标层包括卷积层和池化层,所述输入矩阵包含计算标识,所述计算标识包括卷积计算标识及池化计算标识,所述卷积计算标识包括卷积核参数,所述池化计算标识包括池化窗口参数,N的值是由矢量处理器的位宽确定的;
矢量处理器根据所述计算标识对所述第一拼接输入矩阵进行水平方向的计算处理,得到拼接输出矩阵,其中,所述拼接输出矩阵包含N个输出矩阵;
从所述拼接输出矩阵中筛选出所述N个输出矩阵,并将所述N个输出矩阵作为卷积神经网络下一层的N个输入矩阵。


2.根据权利要求1所述的方法,其特征在于,所述目标层为卷积层的情况下,所述将卷积神经网络目标层的N个输入矩阵进行水平方向的拼接,获得第一拼接输入矩阵包括:
在所述输入矩阵为非填充卷积层矩阵且卷积核滑动步长为1的情况下,将所述N个输入矩阵进行水平方向的首尾拼接获得第一拼接输入矩阵;
在所述输入矩阵为非填充卷积层矩阵且卷积核滑动步长大于1的情况下,将所述N个输入矩阵的每行末尾填充k个零后获得N个填充矩阵,将所述N个填充矩阵进行水平方向的首尾拼接获得第一拼接输入矩阵,其中,k值为所述输入矩阵的矩阵宽度对所述卷积核滑动步长取模的结果;
在所述输入矩阵为填充卷积层矩阵且卷积核滑动步长为1的情况下,将所述N个输入矩阵的每行末尾填充k个零后获得N个填充矩阵,将所述N个填充矩阵进行水平方向的首尾拼接获得第一拼接输入矩阵,其中,k值为所述卷积核一半宽度向下取整的结果;
在所述输入矩阵为填充卷积层矩阵且卷积核滑动步长大于1的情况下,将所述N个输入矩阵的每行末尾填充k个零后获得N个填充矩阵,将所述N个填充矩阵进行水平方向的首尾拼接获得第一拼接输入矩阵,其中,k值为所述输入矩阵的矩阵宽度对所述卷积核滑动步长取模的结果。


3.根据权利要求2所述的方法,其特征在于,在所述目标层是池化层的情况下,所述将卷积神经网络目标层的N个不同的输入矩阵进行水平方向的拼接,得到第一拼接输入矩阵包括:
在所述输入矩阵为非填充池化层矩阵且池化窗口宽度为s的情况下,将所述N个输入矩阵的每行末尾填充k个零后获得N个填充矩阵,将所述N个填充矩阵进行水平方向的首尾拼接获得第一拼接输入矩阵,其中,k值为所述输入矩阵的矩阵宽度对所述卷积核滑动步长取模的结果;
在所述输入矩阵为填充池化层矩阵且池化窗口宽度为s的情况下,将所述N个输入矩阵进行水平方向的首尾拼接获得第一拼接输入矩阵。


4.根据权利要求3所述的方法,其特征在于,将所述N个输出矩阵作为卷积神经网络下一层的N个输入矩阵包括:
在所述输出矩阵的矩阵宽度大于输入矩阵一半宽度的情况下,将所述N个输出矩阵作为卷积神经网络下一层的N个输入矩阵。


5.根据权利要求4所述的方法,其特征在于,将所述N个输出矩阵作为卷积神经网络下一层的N个输入矩阵还包括:
在所述输出矩阵的矩阵宽度小于或等于输入矩阵一半宽度的情况下,将所述输出矩阵中的每两行首尾拼接合并成一行,得到N个第二拼接矩阵;
将所述N个第二拼接矩阵作为卷积神经网络下一层的...

【专利技术属性】
技术研发人员:苏岚顾鹏
申请(专利权)人:深圳云天励飞技术有限公司
类型:发明
国别省市:广东;44

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

1