【技术实现步骤摘要】
一种基于Winograd的可配置卷积阵列加速器结构
本专利技术涉及一种可配置卷积阵列加速器结构。特别是涉及一种基于Winograd的可配置卷积阵列加速器结构。
技术介绍
神经网络在诸多领域应用特别是图像相关任务上表现优异,诸如图像分类、图像语义分割、图像检索、物体检测等计算机视觉问题上,开始替代大部分传统算法,并逐步被部署到终端设备上。但是神经网络计算量非常巨大,从而存在神经网络处理速度慢、运行功耗大等问题。神经网络主要包含训练阶段和推理阶段。为了得到高精度的处理结果,权重数据在训练中需要从海量数据中通过反复迭代计算得到。在神经网络推理阶段中,需要在极短的响应时间(通常为毫秒级)内完成对输入数据的运算处理,特别是当神经网络应用于实时系统时,例如自动驾驶领域。此外,神经网络中涉及的计算主要包括卷积运算、激活运算和池化运算等。已有研究表明,神经网络超过90%的计算时间被卷积过程占据。传统的卷积算法通过多重乘法累加运算,分别计算输出特征图中的每个元素。虽然之前使用该算法的解决方案已经取得了初步的成功,但当算法本身效率更高时,效率可能更高。因此,目前研究者们提出了Wino ...
【技术保护点】
1.一种基于Winograd的可配置卷积阵列加速器结构,其特征在于,包括:激活值缓存模块(1)、权重缓存模块(2)、输出缓存模块(3)、控制器(4)、权重预处理模块(5)、激活值预处理模块(6)、权重转换模块(7)、激活值矩阵转换模块(8)、点乘模块(9)、结果矩阵转换模块(10)、累加模块(11)、池化模块(12)和激活模块(13),其中,激活值缓存模块(1),用于存储输入像素值或输入特征图值,与控制器(4)相连,为激活值预处理模块(6)提供激活值数据;权重缓存模块(2),用于存储已训练好的权值,与控制器(4)相连,为权重预处理模块(5)提供权重数据;输出缓存模块(3), ...
【技术特征摘要】
1.一种基于Winograd的可配置卷积阵列加速器结构,其特征在于,包括:激活值缓存模块(1)、权重缓存模块(2)、输出缓存模块(3)、控制器(4)、权重预处理模块(5)、激活值预处理模块(6)、权重转换模块(7)、激活值矩阵转换模块(8)、点乘模块(9)、结果矩阵转换模块(10)、累加模块(11)、池化模块(12)和激活模块(13),其中,激活值缓存模块(1),用于存储输入像素值或输入特征图值,与控制器(4)相连,为激活值预处理模块(6)提供激活值数据;权重缓存模块(2),用于存储已训练好的权值,与控制器(4)相连,为权重预处理模块(5)提供权重数据;输出缓存模块(3),用于存储一次卷积层结果,与控制器(4)相连,当激活模块(13)输出数据完成后,将数据传入输出缓存模块(3),用于下一层卷积;控制器(4),根据计算过程控制待处理的激活值数据、权重数据、和卷积层数据的传输;权重预处理模块(5),接收权重缓存模块(2)传输的待运算数据,用于划分卷积核,得到时域权重矩阵K;激活值预处理模块(6),接收激活值缓存模块(1)传输的待运算数据,用于从激活值缓存模块(1)取出激活值,用于划分激活值,得到时域激活值矩阵I;权重转换模块(7),接收权重预处理模块(5)传输的待运算数据,用于实现权重数据从时域转换为Winograd域,得到Winograd域权重矩阵U;激活值矩阵转换模块(8),接收激活值预处理模块(6)传输的待运算数据,用于实现激活值从时域转换为Winograd域,得到Winograd域激活值矩阵V;点乘模块(9),分别接收权重转换模块(7)和激活值矩阵转换模块(8)传输的待运算数据,用于实现Winograd域激活值矩阵与Winograd域权重矩阵的点积操作,得到Winograd域点积结果矩阵M;结果矩阵转换模块(10),接收点乘模块(9)传输的待运算数据,用于实现点积结果矩阵从Winograd域到时域的转换,得到转换后的时域点积结果矩阵F;累加模块(11),接收结果矩阵转换模块(10)传输的待运算数据,通过将接收的数据累加,得到最终的卷积结果;池化模块(12),接收累加模块(11)传输的待运算数据,将最终的卷积结果阵进行池化;激活模块(13),接收池化模块(12)传输的待运算数据,将池化结果进行Relu激活函数处理,得到激活后的结果,传输到输出缓存模块(3)。2.根据权利要求1所述的一种基于Winograd的可配置卷积阵列加速器结构,其特征在于,所述的权重预处理模块(5)包括:(1)将一个大小为5*5的卷积核通过补零,扩展成6*6的卷积矩阵;(2)将6*6的卷积矩阵划分为四个3*3的卷积核;具体划分如下所示,其中Kinput表示一个5*5的权重矩阵,下侧分别是4个对应的划分后的时域待处理权重矩阵K1、K2、K3、K4。在计算U=GKGT中,K值依次为K1、K2、K3、K4:3.根据权利要求1所述的一种基于Winograd的可配置卷积阵列加速器结构,其特征在于,所述的激活值预处理模块(6)是将6*6大小的激活值矩阵划分为重叠的4个4*4大小的矩阵。划分如下所示,其中Iinput表示一个5*5的权重矩阵,下侧分别是划分后的大小为4*4的时域待处理激活值矩阵I1、I2、I3、I4。在计算V=BTIB中,I值依次为I1、I2、I3、I4:4.根据权利要求1所述的一种基于Winograd的可配置卷积阵列加速器结构,其特征在于,所述的权重转换模块(7),是通过行列向量相加减完成计算中的矩阵乘,从而执行Winograd卷积中针对权重矩阵的转换,得到Winograd域权重矩阵U=[GKGT]其中,K表示时域权重矩阵、G是权重转换辅助矩阵、U是Winograd域权重矩阵;具体操作:将权重矩阵K的第一行向量作为临时矩阵C2的第一行,其中临时矩阵C2=GTK;将权重矩阵K中的整数右移补0、负数右移补1完成除二;当权值为正值时,权值右移,权值左边补0;当权值为负时,权值右移,权值左边补1;将权重矩阵K的第一、二、三行元素相加之后再右移一位之后的向量结果作为临时矩阵C2的第二行;将权重矩阵K的第一、二、三行元素相加之后再右移一位之后的向量结果作为临时矩阵C2的第三行;将权重矩阵K的第三行向量作为临时矩阵C2的第四行;将临时矩阵C2第一列向量作为Winograd域权重矩阵U的第一列;将临时矩阵C2的第一、二、三列相加之后再右移一位之后的向量结果作为Winograd域权重矩阵U的第二列;将临时矩阵C2的第一、二、三列相加之后再右移一位之后的向量结果作为Winograd域权重矩阵U的第三列;将临时矩阵C2的第三列向量作为Winograd域权重矩阵U的第四列,最后得到Winograd域权重矩阵U。5.根据权利要求1所述的一种基于Winograd的可配置卷积阵列加速器结构,其特征在于,所述的激活值矩阵转换模块(8),是通过行列向量相加减,完成计算中的矩阵乘,从而执行W...
【专利技术属性】
技术研发人员:魏继增,徐文富,王宇吉,郭炜,
申请(专利权)人:天津大学,
类型:发明
国别省市:天津,12
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。