执行Winograd卷积的计算装置、集成电路装置及板卡制造方法及图纸

技术编号:34972184 阅读:60 留言:0更新日期:2022-09-21 14:12
本发明专利技术涉及基于神经元数据及Winograd权值执行Winograd卷积的计算装置、集成电路装置及板卡,所述计算装置包括:神经元转换单元,用以正变换所述神经元数据,以产生多个数据块;正变换数据缓存,用以暂存所述多个数据块;对位乘累加运算器,用以接收所述数据块,与Winograd权值进行对位乘累加运算,以产生对位乘数据;逆转换单元,用以逆变换所述对位乘数据,以获得卷积结果。本发明专利技术具有保证网络精度、性能加速、面积缩减以及功耗降低的技术效果。面积缩减以及功耗降低的技术效果。面积缩减以及功耗降低的技术效果。

【技术实现步骤摘要】
执行Winograd卷积的计算装置、集成电路装置及板卡


[0001]本专利技术一般地涉及神经网络领域。更具体地,本专利技术涉及基于神经元数据及Winograd权值执行Winograd卷积的计算装置、集成电路装置及板卡。

技术介绍

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

技术实现思路

[0007]为了至少部分地解决
技术介绍
中提到的技术问题,本专利技术的方案提供了一种基于神经元数据及Winograd权值执行Winograd卷积的计算装置、集成电路装置及板卡。
[0008]在一个方面中,本专利技术揭露一种基于神经元数据及Winograd权值执行Winograd卷积的计算装置,所述Winograd权值的规模为γ
×
[l l(r+1)
×
(s+1)]。计算装置包括神经元转换单元、正变换数据缓存、对位乘累加运算器及逆转换单元。
[0009]神经元转换单元用以正变换所述神经元数据,以产生多个[l(r+1)
×
(s+1)]的数据块;正变换数据缓存用以暂存所述多个数据块,并以γ个数据块为单位传送;对位乘累加运算器用以接收所述γ个数据块,与所述Winograd权值进行对位乘累加运算,以产生对位乘数据;逆转换单元用以逆变换所述对位乘数据,以获得卷积结果。其中,γ为Co/l的方向系数,Co为输出神经元通道数,l为向量化长度参数,r为所述Winograd权值的高度,s为所述
Winograd权值的宽度。
[0010]在另一个方面,本专利技术揭露一种集成电路装置,包括前述的计算装置,还揭露一种板卡,包括根据前述的集成电路装置。
[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是示出正变换时重叠部分的示意图;
[0021]图9是示出示出本专利技术实施例的神经元缓存的示意图;
[0022]图10是示出本专利技术实施例的正变换单元的示意图;
[0023]图11是示出本专利技术实施例的权值缓存的示意图;
[0024]图12是示出本专利技术实施例的正变换数据缓存输出侧的示意图;以及
[0025]图13是示出本专利技术实施例的逆变换单元的示意图。
具体实施方式
[0026]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0027]应当理解,本专利技术的权利要求、说明书及附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。本专利技术的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
[0028]还应当理解,在此本专利技术说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本专利技术。如在本专利技术说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本专利技术说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
[0029]如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释
为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。
[0030]下面结合附图来详细描述本专利技术的具体实施方式。
[0031]Winograd卷积加速算法(以下简称Winograd算法或Winograd卷积)是利用对卷积运算中的操作数进行线性变换,进而找出需要乘法数最少的变换方法,再通过增加部分加法操作代替所需要的乘法操作。从硬件层面来说,乘法器的结构相比于加法器更加复杂,面积功耗更大,综合处理性能更差,实务上以加法取代乘法的Winograd算法在处理卷积运算时具有极大优势。
[0032]对于二维卷积来说,假设输入神经元图像的大小为H
×
W(H为输入神经元图像的高度,W为输入神经元图像的宽度),权值的大小为r
×
s(r为权值的高度,s为权值的宽度),卷积结果可以表示为F(本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于神经元数据及Winograd权值执行Winograd卷积的计算装置,所述Winograd权值的规模为γ
×
[ll(r+1)
×
(s+1)],所述计算装置包括:神经元转换单元,用以正变换所述神经元数据,以产生多个[l(r+1)
×
(s+1)]的数据块;正变换数据缓存,用以暂存所述多个数据块,并以γ个数据块为单位传送;对位乘累加运算器,用以接收所述γ个数据块,与所述Winograd权值进行对位乘累加运算,以产生对位乘数据;以及逆转换单元,用以逆变换所述对位乘数据,以获得卷积结果;其中,γ为的方向系数,C
o
为输出神经元通道数,l为向量化长度参数,r为所述Winograd权值的高度,s为所述Winograd权值的宽度。2.根据权利要求1所述的计算装置,其中所述正变换数...

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

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

1