1.一种基于Winograd卷积的卷积运算单元,应用于神经网络中的卷积运算,其特征在于,包括乘法器、累加器和第一选通器,所述乘法器用于接收待进行矩阵相乘运算的元素或待进行矩阵点乘运算的元素,所述第一选通器用于接收来自于所述乘法器的输出值和待进行累加运算的元素,通过控制所述第一选通器将待进行累加运算的元素或者将所述乘法器的输出值传递至所述累加器能够使该卷积运算单元在多个工作模式之间进行切换,其中,每种工作模式对应Winograd卷积的一种计算类型;所述工作模式包括乘累加模式和点乘模式,其中:当处于所述乘累加模式时,所述卷积运算单元执行权重矩阵与相应转换矩阵的矩阵乘法运算U=GgG T 、输入特征图矩阵与相应转换矩阵的矩阵乘法操作V=B T dB或者执行针对U和V的点乘结果与相应转换矩阵的矩阵乘法操作F=A T [U⊙V]A,g表示权重矩阵,d表示输入特征图矩阵,G、B、A分别表示与权重矩阵g、输入特征图矩阵d和点乘结果U⊙V对应的转换矩阵;当处于所述点乘模式时,所述卷积运算单元执行针对转换后的权值矩阵U与转换后的输入特征图矩阵V的点乘运算U⊙V;所述卷积运算单元还包括第二选通器、第三选通器、第四选通器、第五选通器和寄存器,其中:所述累加器的输出端连接至所述寄存器的输入端;所述第二选通器用于接收进行矩阵相乘运算的元素和待进行矩阵点乘运算的元素,所述第二选通器的输出端连接至所述乘法器的第一输入端;所述第三选通器用于接收进行矩阵相乘运算的元素和来自于所述寄存器的输出,所述第三选通器的输出端连接至所述乘法器的第二输入端;所述第一选通器的输出端连接至所述累加器的第一输入端;所述第四选通器用于接收“0”值元素和来自于所述寄存器的输出值,所述第四选通器的输出端连接至所述累加器的第二输入端;所述第五选通器用于接收“0”值元素和来自于所述寄存器的输出值;其中,所述第一选通器、第二选通器、第三选通器、第四选通器和第五选通器基于接收到控制信号来确定选通状态以控制所述卷积运算单元的工作模式。
2.根据权利要求1所述的卷积运算单元,其特征在于,还包括累加模式和输出模式,当处于所述累加模式时,所述卷积运算单元执行卷积中间结果的加法操作,当处于所述输出模式时,所述卷积运算单元将获得的计算结果经由所述第五选通器进行输出。
3.一种基于Winograd卷积的卷积运算装置,其特征在于,包括多个权利要求1或2任一项所述的卷积运算单元,该多个卷积运算单元以二维矩阵形式进行分布,其中行卷积运算单元以行胖树总线进行连接,列卷积运算单元以列胖树总线进行连接。
4.根据权利要求3所述的卷积运算装置,其特征在于,所述卷积运算装置包括16个所述卷积运算单元,组织为4*4二维矩阵形式。
5.一种基于Winograd卷积的神经网络处理器,其特征在于,包括根据权利要求3或4任一项所述的卷积运算装置:用于通过所述多个卷积运算单元在多个工作模式之间进行切换来实现Winograd卷积运算;控制单元:用于根据Winograd卷积的计算过程生成控制信号以控制所述卷积运算装置中的所述多个卷积运算单元在多个工作模式之间进行切换。
6.根据权利要求5所述的神经网络处理器,其特征在于,还包括存储器和缓存模块,其中:所述存储器用于存储已训练好的权重矩阵值、输入特征图矩阵值以及实现Winograd卷积的转换矩阵值;所述缓存模块用于从所述存储器加载待计算的权重矩阵值、输入特征图矩阵值以及对应的实现Winograd卷积的转换矩阵值。
7.根据权利要求6所述的神经网络处理器,其特征在于,还包括输入总线、运算单元直达总线和输出总线,其中:所述输入总线用于从所述缓存模块接收待进行矩阵相乘运算的行向量元素与列向量元素以及待进行矩阵点乘运算的元素;所述行胖树总线用于接收所述输入总线的行向量元素,以行为单位复制行向量元素并传递至所述卷积运算装置的对应行内的卷积运算单元;所述列胖树总线用于接收所述输入总线的列向量元素,以列为单位复制列向量元素并传递至所述卷积运算装置的对应列内的卷积运算单元;所述运算单元直达总线用于接收所述输入总线的待进行矩阵点乘运算的元素,将该待进行矩阵点乘运算的元素分配至所述卷积运算装置的对应的卷积运算单元;所述输出总线用于拼接所述卷积运算装置的卷积运算单元的运算结果并进行输出。
8.根据权利要求5至7任一项所述的神经网络处理器,其特征在于,还包括激活模块和池化模块,所述激活模块用于通过非线性激活函数处理卷积结果,所述池化模块用于对输入的神经元进行池化操作。