获得卷积结果的装置与板卡制造方法及图纸

技术编号:33992144 阅读:16 留言:0更新日期:2022-07-02 09:58
本发明专利技术涉及获得卷积结果的计算装置、集成电路装置及板卡,其中计算装置包括:正变换单元、对位乘累加运算器、逆变换单元。正变换单元用以正变换所述神经元数据,以产生正变换数据;对位乘累加运算器用以对所述正变换数据与所述Winograd权值进行对位乘累加运算,以产生对位乘数据;逆变换单元用以逆变换所述对位乘数据,以获得所述卷积结果。本发明专利技术具有保证网络精度、性能加速、面积缩减以及功耗降低的技术效果。术效果。术效果。

【技术实现步骤摘要】
获得卷积结果的装置与板卡


[0001]本专利技术一般地涉及神经网络领域。更具体地,本专利技术涉及获得卷积结果的计算装置、集成电路装置及板卡。

技术介绍

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

技术实现思路

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

(B
T
dB)]A
[0029]其中,Y表示卷积操作的输出矩阵,A
T
为逆变换左乘常量矩阵,G为权值变换左乘常量矩阵,g为原始卷积的权值,G
T
为权值变换右乘常量矩阵,

表示按位乘法,B
T
为神经元变换左乘常量矩阵,d为神经元数据,B为神经元变换右乘常量矩阵,A为逆变换右乘常量矩阵。各变换的左乘矩阵和右乘矩阵仅为转置关系。
[0030]以F(2
×
2,3
×
3)为例,前述各常数矩阵如下所示:
[0031][0032][0033][0034]图1示出F(2
×
2,3
×
3)的原始卷积转换成Winograd本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种获得卷积结果的计算装置,连接至片外内存,所述片外内存存储有神经元数据及Winograd权值,所述计算装置包括:正变换单元,用以正变换所述神经元数据,以产生正变换数据;对位乘累加运算器,用以对所述正变换数据与所述Winograd权值进行对位乘累加运算,以产生对位乘数据;以及逆变换单元,用以逆变换所述对位乘数据,以获得所述卷积结果。2.根据权利要求1所述的计算装置,还包括正变换数据缓存,用以暂存所述正变换数据,其中所述对位乘累加运算器自所述正变换数据缓存读取所述正变换数据。3.根据权利要求1所述的计算装置,还包括对位乘数据缓存,用以暂存所述对位乘数据,其中所述逆变换单元自所述对位乘数据缓存读取所述对位乘数据。4.根据权利要求1所述的计算装置,还包括直接存储器访问模块,用以控制所述计算装置与所述片上内存的数据传输。5.根据权利要求4所述的计算装置,其中所述直接存储器访问模块包括神经元直接存储器访问,用以自所述片外内存输入所述神经元数据。6.根据权利要求5所述的计算装置,还包括神经元缓存,用以暂存所述神经元直接存储器访问发送的所述神经元数据,其中所述正变换单元自所述神经元缓存读取所述神经元数据。7.根据权利要求4所述的计算装置,其中所述直接存储器访问模块还包括权值直接存储器访问,用以自所述片外内存输入所述Winograd权值。8.根据权利要求7所述的计算装置,还包括权值缓存,用以暂存所述权值直接存储器访问发送的...

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

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

1