[发明专利]一种基于Winograd稀疏算法的卷积神经网络加速器在审
申请号: | 201911013112.X | 申请日: | 2019-10-23 |
公开(公告)号: | CN110807513A | 公开(公告)日: | 2020-02-18 |
发明(设计)人: | 郭阳;徐睿;马胜;刘胜;陈海燕;王耀华 | 申请(专利权)人: | 中国人民解放军国防科技大学 |
主分类号: | G06N3/04 | 分类号: | G06N3/04 |
代理公司: | 湖南兆弘专利事务所(普通合伙) 43008 | 代理人: | 周长清 |
地址: | 410073 湖南*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 winograd 稀疏 算法 卷积 神经网络 加速器 | ||
1.一种基于Winograd稀疏算法的卷积神经网络加速器,其特征在于,它包括:
控制模块,用于负责数据的搬移;
缓冲模块buffer,用于负载数据的暂存,
运算模块,用于负责完成Winograd稀疏算法的运算;
在读取阶段,由控制模块发送地址,输入缓存和权重缓存读取外部DRAM中的数据;在数据运算阶段,由运算模块从缓冲模块中读取输入数据、权重数据和权重索引,完成卷积运算;在发送阶段,当输出完成最终的累加操作,再经由输出缓存发送至外部DRAM,最终完成计算。
2.根据权利要求1所述的基于Winograd稀疏算法的卷积神经网络加速器,其特征在于,所述控制模块包括:
转化模块,用于将需要处理的数据转化到Winograd域中;
0跳过模块,用于跳过所有输入为0值的寄存器,之后重新将输入传入并行的乘法器阵列中,从而减少在计算过程中使用乘法器的压力;
压缩编码单元,用于提供稀疏存储支持;
权重压缩编码读取单元,用于对数据与索引进行分开存储,数据与索引的读取依靠自身在buffer的位置与Index的第一位来引导完成。
3.根据权利要求2所述的基于Winograd稀疏算法的卷积神经网络加速器,其特征在于,所述压缩编码单元采用一个密度约为0.4的4×4大小的稀疏矩阵;在数据结构中数据以线性形式将二维矩阵以一维形式存储,将非0元素的数据存储至向量Data中,将非0元素的位置信息存储到向量Index中,位置信息由(r×4+c)来表示,其中r表示数据在矩阵中的行,c表示数据在矩阵中的列;在Index第一位中存储矩阵中所有非0元素的个数。
4.根据权利要求2所述的基于Winograd稀疏算法的卷积神经网络加速器,其特征在于,所述权重压缩编码读取单元采用一个已经经过训练添加稀疏度的4×4大小的卷积权重,则在Index中存储数据的最大值是16,所以使用5位的无符号整型数据来存储;对于Data数据使用定点16位来保存。
5.根据权利要求2所述的基于Winograd稀疏算法的卷积神经网络加速器,其特征在于,所述转化模块用于将输入转到Winograd域中,然后将完成矩阵之间对应元素相乘的操作,最后将乘法器输出的结果由Winograd域转换到空间域中,完成结果的输出。
6.根据权利要求1-5中任意一项所述的基于Winograd稀疏算法的卷积神经网络加速器,其特征在于,所述缓冲模块采用线性buffer单元,直接把数据按照需要的一维形式传送;在数据读取过程中存在数据重用时,读取指针会在重用区域反复读取以重用数据。
7.根据权利要求1-5中任意一项所述的基于Winograd稀疏算法的卷积神经网络加速器,其特征在于,所述运算模块包括:
处理引擎,用于完成Winograd稀疏算法下输入特征数据与权重数据的卷积运算;
处理单元,用于负责处理输入的特征数据与权重数据。
8.根据权利要求7所述的基于Winograd稀疏算法的卷积神经网络加速器,其特征在于,所述处理单元包括PU、子模块处理引擎和累加器;所述PU一次可以处理四组数据,分别对应着四组输入通道;加载四组权重数据,经过计算产生一组输出数据,对应于同一个通道下的输出特征图;四组输入最终会分配给PU中对应的四个PE,由四个PE并行完成计算,并累加完成结果输出。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科技大学,未经中国人民解放军国防科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911013112.X/1.html,转载请声明来源钻瓜专利网。