预处理Winograd卷积的方法、计算机可读存储介质及装置制造方法及图纸

技术编号:34971947 阅读:21 留言:0更新日期:2022-09-21 14:11
本发明专利技术涉及预处理Winograd卷积的神经元数据与权值数据的方法、计算机可读存储介质及组合处理装置,其中方法包括:设定数据单元的大小为向量化方向与数据位数的乘积;以及以数据单元为单位对齐存储神经元数据与权值数据。本发明专利技术具有保证网络精度、性能加速、面积缩减以及功耗降低的技术效果。以及功耗降低的技术效果。以及功耗降低的技术效果。

【技术实现步骤摘要】
预处理Winograd卷积的方法、计算机可读存储介质及装置


[0001]本专利技术一般地涉及神经网络领域。更具体地,本专利技术涉及预处理Winograd卷积的神经元数据与权值数据的方法、计算机可读存储介质及组合处理装置。

技术介绍

[0002]随着信息化时代的高速发展,人工智能与机器学习领域的研究炙手可热,相关产业蓬勃发展。卷积神经网络在计算机视觉、自动驾驶、机器翻译、语音识别、智能家居等各方面都有着广泛的作用。
[0003]卷积神经网络的参数量大,运算量大,使得卷积神经网络模型在便携移动终端有限面积和算力下被严重的限制其执行性能,同时非专用性设计的处理器在进行卷积运算时也会造成功耗的巨大开销。
[0004]Winograd卷积是一种基于多项式插值算法的卷积加速实现方式。它通过对卷积操作的两个输入:神经元及权值进行一定规模切分后,分别做线性变换,也就是Winograd正变换,再将变换后的神经元和权值进行对位乘法,把对位乘法结果再次进行线性变换,即Winograd逆变换,最后得到与原卷积操作等价的卷积结果。
[0005]由于在Winograd卷积操作的过程中,神经元和权值的正逆变换矩阵都由简单的固定数值构成,故而可以仅利用加法来实现Winograd神经元和权值的正逆变换过程。而Winograd算法中所需的乘法操作仅出现在对位乘过程中,此过程的乘法复杂度较原始卷积算法有相当程度缩减。由于硬件实现乘法运算的开销(时序、功耗、面积)比实现同位宽的加法要高很多,因此以Winograd卷积替代原始卷积操作能够带来硬件能效比和运算时间上的明显收益。
[0006]然而,目前没有一种硬件针对Winograd卷积加速算法来设计,使得现有人工智能芯片无法完全展现Winograd卷积运算的优势。因此,一种能够高效预处理Winograd卷积算法的方案是迫切需要的。

技术实现思路

[0007]为了至少部分地解决
技术介绍
中提到的技术问题,本专利技术的方案提供了一种涉及预处理Winograd卷积的神经元数据与权值数据的方法、计算机可读存储介质及组合处理装置。
[0008]在一个方面中,本专利技术揭露一种预处理Winograd卷积的神经元数据与权值数据的方法,包括:设定数据单元的大小为向量化方向与数据位数的乘积;以及以所述数据单元为单位对齐存储所述神经元数据。
[0009]在另一个方面,本专利技术揭露一种计算机可读存储介质,其上存储有预处理Winograd卷积的神经元数据与权值数据的计算机程序代码,当所述计算机程序代码由处理装置运行时,执行前述的方法。
[0010]在另一个方面,本专利技术揭露一种预处理Winograd卷积的神经元数据与权值数据的
组合处理装置,包括处理装置及片外内存。处理装置用以设定数据单元的大小为向量化方向与数据位数的乘积,片外内存用以依数据单元为单位对齐存储神经元数据。
[0011]本专利技术提出的预处理方案能够匹配Winograd卷积加速算法,具有保证网络精度、性能加速、面积缩减以及功耗降低的技术效果。
附图说明
[0012]通过参考附图阅读下文的详细描述,本专利技术示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本专利技术的若干实施方式,并且相同或对应的标号表示相同或对应的部分其中:
[0013]图1是示出卷积核与输入神经元图像进行卷积运算的示意图;
[0014]图2是示出F(2
×
2,3
×
3)的原始卷积转换成Winograd卷积的示意图;
[0015]图3是示出对位乘运算的可视化示意图;
[0016]图4是示出正变换数据与权值进行同质操作的示意图;
[0017]图5是示出本专利技术实施例的板卡的结构图;
[0018]图6是示出本专利技术实施例的集成电路装置的结构图;
[0019]图7是示出二维奇数元素的神经元数据进行填充预处理的示意图;
[0020]图8是示出本专利技术实施例预处理Winograd卷积的流程图;
[0021]图9是示出本专利技术实施例的计算装置的内部结构示意图;
[0022]图10是示出正变换时重叠部分的示意图;
[0023]图11是示出示出本专利技术实施例的神经元缓存的示意图;
[0024]图12是示出本专利技术实施例的正变换单元的示意图;
[0025]图13是示出本专利技术实施例的正变换数据缓存的示意图;
[0026]图14是示出本专利技术实施例的权值缓存的示意图;
[0027]图15是示出本专利技术实施例的正变换数据缓存输出侧的示意图;
[0028]图16是示出本专利技术实施例的权值缓存输出侧的示意图;
[0029]图17是示出本专利技术实施例的逆变换单元的示意图;以及
[0030]图18是示出本专利技术实施例的结果缓存的连接关系示意图。
具体实施方式
[0031]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0032]应当理解,本专利技术的权利要求、说明书及附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。本专利技术的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
[0033]还应当理解,在此本专利技术说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本专利技术。如在本专利技术说明书和权利要求书中所使用的那样,除非上下文
清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本专利技术说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
[0034]如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。
[0035]下面结合附图来详细描述本专利技术的具体实施方式。
[0036]Winograd卷积加速算法(以下简称Winograd算法或Winograd卷积)是利用对卷积运算中的操作数进行线性变换,进而找出需要乘法数最少的变换方法,再通过增加部分加法操作代替所需要的乘法操作。从硬件层面来说,乘法器的结构相比于加法器更加复杂,面积功耗更大,综合处理性能更差,实务上以加法取代乘法的Winograd算法在处理卷积运算时具有极大优势。
[0037]对于二维卷积来说,假设输入神经元图像的大小为H
×
W(H为输入神经元图像的高度,W为输入神经元本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种预处理Winograd卷积的神经元数据与权值数据的方法,包括:设定数据单元的大小为向量化方向与数据位数的乘积;以及以所述数据单元为单位对齐存储所述神经元数据。2.根据权利要求1所述的方法,还包括:判断所述神经元数据中任一维度的输入规模是否为奇数;以及如是,填充所述输入规模为奇数的维度使所述输入规模为偶数。3.根据权利要求2所述的方法,其中如所述神经元数据中任一维度的输入规模不为奇数,所述方法还包括:维持所述输入规模不为奇数的维度。4.根据权利要求1所述的方法,还包括:设定基卷积的大小;以及根据所述基卷积的大小,将所述权值数据转换为Winograd权值数据。5.根据权利要求4所述的方法,还包括:以所述数据单元为单位对齐存储所述Winograd权值数据。6.一种计算机可读存储介质,其上存储有预处理Winograd卷积的神经元数据与权值数据的计算机程序代码,当所述计算机程序代码由处理装置运行时,执行权利...

【专利技术属性】
技术研发人员:ꢀ七四专利代理机构
申请(专利权)人:安徽寒武纪信息科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1