1.一种卷积神经网络的并行优化方法,其特征在于,用winograd算法f(2x2,3x3)进行卷积神经网络的卷积核运算,以降低时间复杂度并减少乘法运算次数;对不存在循环数据依赖的for循环结构部分,使用OpenMP开辟多个线程进行运算;对模式相同的数据运算部分进行向量化处理,使其能够实现一次指令多次运算。
2.如权利要求1所述的卷积神经网络的并行优化方法,其特征在于,用winograd算法f(2x2,3x3)进行卷积神经网络的卷积核运算的公式为:Y=AT[(GgGT)⊙(BTdB)]A
由winogard算法的原理推出其矩阵数据:g=[g0 g1 g2]T
T
d=[d0 d1 d2 d3]。
3.如权利要求2所述的卷积神经网络的并行优化方法,其特征在于,将数据顺序装入向量寄存器中,使数据连续,以便后续的向量化计算。
4.如权利要求1所述的卷积神经网络的并行优化方法,其特征在于,向量化处理还包括:对于F(MxM,RxR)框架代码中SIMD部分,将相邻计算矩阵中同样位置的数据进行组合成一个向量,向量大小和组合个数根据向量寄存器和基本数据单位决定,其计算方法为:N=E/g,其中N为向量中包含数据个数,E为向量寄存器大小,g为单个数据大小。
5.如权利要求1至4之一所述的卷积神经网络的并行优化方法,其特征在于,包括以下步骤:对输入的数据进行数据预处理;
判断滤波器的大小,将大于(3x3)的滤波器转化为小型滤波器;
将每个卷积核的数据进行分块;
逐层进行卷积运算,其中,分块进行并行化卷积运算,然后处理重复部分,进行分块整合;
反馈更改滤波器;
映射到下一层,直至多层卷积计算完成。