【技术实现步骤摘要】
基于众核处理器的卷积神经网络运算加速方法及装置
本专利技术属于数据处理
,具体地涉及一种基于众核处理器的卷积神经网络运算加速方法及装置。
技术介绍
卷积神经网络是深度神经网络的一种常见形式,由一个输入层,一个输出层和多个隐藏层组成,这些隐藏层包括卷积层,RELU层,激活函数层,池化层,全连接层与归一化层等。在卷积神经网络中,卷积层与池化层一般会取若干个,卷积层与池化层交替设置,生成输入数据的高级抽象,称为特征图(featurmap),最后通过分类相关层如全连接层等对特征图进行处理完成输入数据的分类。卷积神经网络可以通过采用非常深的层次结构来实现卓越的性能,但深层的卷积神经网络需求极大的计算能力。在大多数的卷积神经网络中,卷积层的运算占据了总计算量的最大部分(占比90%以上)。卷积层的主要运算为高维卷积,卷积运算的输入是两个四维的张量:代表输入数据,代表卷积滤波器。输出也是一个四维的张量:N代表一个批次(mini-batch)输入的图片数量,C代表输入的特征图个数,H与W分别代表输入图片的高度与宽度,K代表输出的 ...
【技术保护点】
1.一种基于众核处理器的卷积神经网络运算加速方法,其特征在于,包括以下步骤:/nS01:预先将卷积运算的输入图片处理得到输入张量
【技术特征摘要】
1.一种基于众核处理器的卷积神经网络运算加速方法,其特征在于,包括以下步骤:
S01:预先将卷积运算的输入图片处理得到输入张量及卷积滤波器张量其中,N为一个批次输入的图片数量,C为输入的特征图个数,H与W分别为输入图片的高度与宽度,K为输出的特征图个数,R与S分别为卷积核的高度与宽度;
S02:对输入张量和卷积滤波器张量分别进行转置,得到转置输入张量和转置卷积滤波器张量
S03:获取转置输入张量Dt的N*C大小的子矩阵d,转置卷积滤波器张量Ft的K*C大小的子矩阵f,并传输至众核处理器的从核阵列中进行矩阵相乘运算;
S04:将f与d相乘得到的N*K子矩阵o从从核阵列传输回众核处理器的主核,更新输出张量的转置输出张量其中P与Q分别为输出图片的高度与宽度;
S05:基于卷积滤波器复用思想的数据换入换出策略,根据卷积运算的算法公式重复步骤S03与S04,对Ot进行更新;
S06:将得到的Ot进行转置,得到最终的输出张量
2.根据权利要求1所述的基于众核处理器的卷积神经网络运算加速方法,其特征在于,所述步骤S03中,在进行数据传输时,使用主从核间异步DMA数据传输机制以及计算与访存重叠的双缓冲策略,所述双缓冲策略包括:
S31:当进行多轮次的DMA读写操作时,在从核阵列的局部存储空间上申请2倍于通信数据大小的存储空间,所述存储空间用于存储两份同样大小且互为对方缓冲的数据;
S32:从核阵列在子矩阵f与d进行相乘运算的同时,从主核预取下次计算所需的子矩阵f与d,同时将上一次运算所得的子矩阵o写回主核。
3.根据权利要求1所述的基于众核处理器的卷积神经网络运算加速方法,其特征在于,所述步骤S03中进行矩阵相乘运算时,对输入输出数据按8x8的阵列结构进行分块,采用矩阵分块乘法,同时从核间数据传输通信使用寄存器进行通信。
4.根据权利要求1所述的基于众核处理器的卷积神经网络运算加速方法,其特征在于,所述步骤S05中基于卷积滤波器复用思想的数据换入换出策略,包括以下步骤:
根据卷积运算的算法公式转换得到循环次序,将卷积滤波器张量的子矩阵f始终保持在SPM中,使用DMA连续传输访存模式,完成对输出张量的子矩阵o分次读入读出,将矩阵相乘运算完成后的子矩阵o的最后一次传输使用DMA跨步传输访存模式将数据传回主存。
5.一种基...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。