运算装置制造方法及图纸

技术编号:28374437 阅读:16 留言:0更新日期:2021-05-08 00:01
本申请实施例提供一种运算装置中,运算装置包括存储单元、控制单元和运算单元。本申请提供的技术方案可降低卷积运算的资源消耗、提高卷积运算速度、减少运算时间。

【技术实现步骤摘要】
运算装置
本申请涉及人工智能
,具体涉及一种运算装置。
技术介绍
随着人工智能技术的发展,用于实现人工智能技术的各种运算装置和包含运算装置的网络,被广泛应用于计算机视觉、自然语言处理等领域。为了适应越来越高的任务要求,包含运算装置的网络规模越来越大,需要做更大量的运算,尤其是卷积运算。而在进行卷积运算时,现有的运算装置功耗高、计算时间较长,影响其在人工智能
中的应用。
技术实现思路
基于此,有必要针对上述技术问题,提供一种能够提高运算速度、减少运算时间、降低功耗的运算装置。本申请实施例第一方面提供了一种运算装置,所述装置用于进行winograd卷积运算,所述装置包括:控制单元、存储单元、以及运算单元;所述控制单元,用于发送控制指令,所述控制指令用于指示所述运算单元进行winograd卷积运算,所述存储单元,用于存储用于winograd卷积运算的数据;所述运算单元,用于响应所述控制指令,从所述存储单元中提取数据进行winograd卷积运算,其中,所述运算单元将所述winograd卷积运算中对所述数据的变换运算拆解为求和运算,并根据所述求和运算完成所述数据的winograd变换。本申请实施例第二方面提供了一种人工智能芯片,所述芯片包括如本申请第一方面中任意一项所述的运算装置。本申请实施例第三方面提供了一种电子设备,所述电子设备包括如本申请第二方面所述的人工智能芯片。本申请实施例第四方面提供了一种板卡,所述板卡包括:存储器件、接口装置和控制器件以及如本申请第二方面所述的人工智能芯片;其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;所述存储器件,用于存储数据;所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;所述控制器件,用于对所述人工智能芯片的状态进行监控。本申请实施例第五方面提供了一种运算方法,应用于运算装置,所述运算装置包括:控制单元、存储单元、以及运算单元;其中,所述控制单元发送控制指令,所述控制指令用于指示所述运算单元进行winograd卷积运算,所述存储单元存储用于winograd卷积运算的数据;所述运算单元响应所述控制指令,从所述存储单元中提取数据进行winograd卷积运算,其中,所述运算单元将所述winograd卷积运算中对所述数据的变换运算拆解为求和运算,并根据所述求和运算完成所述数据的winograd变换。以上,本申请实施例的方案中,控制单元发送控制指令,控制指令用于指示运算单元进行winograd卷积运算,存储单元存储用于winograd卷积运算的数据;运算单元响应控制指令,从存储单元中提取数据进行winograd卷积运算,其中,运算单元将winograd卷积运算中对数据的变换运算拆解为求和运算,并根据求和运算完成数据的winograd变换,通过以加法运算替代变换运算中的大量乘法运算,加速了winograd卷积运算的速度,也节约了运算资源,本申请提供的方案可降低卷积运算的资源消耗、提高卷积运算速度、减少运算时间。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍。图1为一个实施例中运算装置的结构框图;图2为另一个实施例中运算装置的结构框图;图3为再一个实施例中运算装置的结构框图;图4为又一个实施例中运算装置的结构框图;图5为一个实施例中运算方法的流程示意图;图6为一个实施例中板卡的结构框图。其中,图1至图6中的标识如下:10:运算装置;11:控制单元;12:存储单元;13:运算单元;131:第一运算单元;132:第二运算单元;1321:乘法单元;1322:逆变换单元;141:加法运算单元;142:乘法运算单元;389:芯片;390:存储器件;391:接口装置;392:控制器件。具体实施方式下面将结合本披露实施例中的附图,对本披露实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本披露一部分实施例,而不是全部的实施例。基于本披露中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本披露保护的范围。应当理解,本披露的权利要求、说明书及附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。本披露的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。还应当理解,在此本披露说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本披露。如在本披露说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本披露说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。为了清楚理解本申请的技术方案,下面对现有技术和本申请实施例中涉及的技术术语进行解释:卷积运算:卷积运算是指从图像的左上角开始,开一个与模板同样大小的活动窗口,活动窗口对应一个窗口图像,该窗口图像为卷积核,窗口图像与图像中的像素对应起来相乘再相加,并用计算结果作为卷积运算后新图像的第一个像素值。然后,活动窗口向右移动一列,并作同样的运算。以此类推,从左到右、从上到下,即可得到一幅新图像。winograd卷积:Winograd卷积是一种基于多项式插值算法的卷积加速实现方式。它通过对卷积操作的两个输入:第一目标矩阵和第二目标矩阵分别进行winograd卷积正变换,再将正变换后的第一目标矩阵和第二目标矩阵进行对位乘法,最后对对位乘法结果再次进行winograd卷积逆变换,得到与原卷积操作等价的卷积结果。现有的人工智能技术,通常是基于处理器的卷积运算来实现特征的提取,例如神经网络中对特征数据的运算处理。神经网络中的卷积层对输入的特征数据以预设的卷积核进行卷积处理,并输出运算结果。其中,卷积层具体可以包含有相邻设置的多层卷积层,且每一层卷积层得到的运算结果,为对其上一层卷积层输入的特征数据。针对每一卷积层中的运算,现有的卷积运算中,以包含权值数据的卷积核为窗口,在输入的特征数据的矩阵上“滑动”,对每个滑动位置上的局部矩阵执行矩阵乘,并根据矩阵乘的结果得到最后的运算结果。可见,现有的卷积运算中,需要大量运用到矩阵乘,而矩阵乘需要对特征数据中每行矩阵元素与卷积核的每列矩阵元素,进行对位相乘后累加的处理,其计算量庞大、处理效率低,运算装置能耗也高。为了解决上述问题,本申请实施例提供了一本文档来自技高网...

【技术保护点】
1.一种运算装置,所述装置用于进行winograd卷积运算,其特征在于,所述装置包括:控制单元、存储单元、以及运算单元;/n所述控制单元,用于发送控制指令,所述控制指令用于指示所述运算单元进行winograd卷积运算;/n所述存储单元,用于存储用于winograd卷积运算的数据;/n所述运算单元,用于响应所述控制指令,从所述存储单元中提取数据进行winograd卷积运算,其中,所述运算单元将所述winograd卷积运算中对所述数据的变换运算拆解为求和运算,并根据所述求和运算完成所述数据的winograd变换。/n

【技术特征摘要】
1.一种运算装置,所述装置用于进行winograd卷积运算,其特征在于,所述装置包括:控制单元、存储单元、以及运算单元;
所述控制单元,用于发送控制指令,所述控制指令用于指示所述运算单元进行winograd卷积运算;
所述存储单元,用于存储用于winograd卷积运算的数据;
所述运算单元,用于响应所述控制指令,从所述存储单元中提取数据进行winograd卷积运算,其中,所述运算单元将所述winograd卷积运算中对所述数据的变换运算拆解为求和运算,并根据所述求和运算完成所述数据的winograd变换。


2.根据权利要求1所述的运算装置,其特征在于,
所述运算单元,具体用于将所述数据拆解为多个子张量;对所述多个子张量进行变换运算并求和,根据求和运算的结果得到所述数据的winograd变换结果。


3.根据权利要求2所述的运算装置,其特征在于,
所述运算单元,具体用于从所述数据解析得到多个子张量,其中,所述数据为所述多个子张量之和,所述多个子张量的个数与所述数据中非0元素的个数相同,每个所述子张量中有单个非0元素,且在所述子张量中的非0元素与在所述数据中对应位置的非0元素相同。


4.根据权利要求2所述的运算装置,其特征在于,
所述运算单元,具体用于获取各子张量对应的元子张量的winograd变换结果,其中,所述元子张量是将所述子张量的非0元素置为1的张量;将所述子张量中非0的元素值作为系数乘以对应的元子张量的winograd变换结果,得到所述子张量的winograd变换结果;将多个子张量的winograd变换结果相加得到所述数据的winograd变换结果。


5.根据权利要求4所述的运算装置,其特征在于,所述运算单元,具体用于对于每一个所述子张量,将所述子张量对应的元子张量左边乘以左乘矩阵、右边乘以右乘矩阵,得到所述元子张量的winograd变换结果,其中,所述左乘矩阵和所述右乘矩阵都是由所述子张量的规模以及winograd变换类型确定的,其中所述winograd变换类型包括正变换的winograd变换类型和逆变换的winograd变换类型。


6.根据权利要求1至5任一所述的运算装置,其特征在于,
所述数据包括特征数据、权值数据中的至少一种;
所述winograd变换包括正变换和/或逆变换。


7.根据权利要求6所述的运算装置,其特征在于,
所述控制指令包括第一指令和第二指令,其中,所述第一指令包括正变换指令,所述第二指令包括对位乘指令和逆变换指令;
所述运算单元,用于响应所述第一指令,从所述存储单元中提取所述特征数据,对所述特征数据进行正变换,其中,所述运算单元将对所述特征数据的正变换拆解为求和运算,并根据所述求和运算完成所述特征数据的正变换,得到特征变换结果;
所述运算单元,还用于响应所述第二指令获取经过正变换的权值变换结果,对所述权值变换结果和特征变换结果进行对位乘,得到乘法运算结果;对所述乘法运算结果进行逆变换,其中,所述运算单元将对所述乘法运算结果的逆变换拆解为求和运算,并根据所述求和运算完成所述乘法运算结果的逆变换,得到运算结果。


8.根据权利要求7所述的运算装置,其特征在于,
所述存储单元,具体用于接收权值变换结果并存储;
所述运算单元,具体用于响应所述第二指令,从所述存储单元中提取所述权值变换结果。


9.根据权利要求7所述的运算装置,其特征在于,
所述存储单元,具体用于存储权值数据;
所述运算单元,具体用于从所述存储单元中提取所述权值数据,对所述权值数据进行正变换,其中,所述运算单元将对所述权值数据的正变换拆解为求和运算,并根据求和运算完成所述权值数据的正变换,获得权值变换结果。


10.根据权利要求7所述的运算装置,其特征在于,所述运算单元包括:
第一运算单元,用于响应所述第一指令,从所述存储单元提取特征数据,对所述特征数据进行正变换,其中,所述第一运算单元将对所述特征数据的正变换拆解为求和运算,并根据所述求和运算完成所述特征数据的正变换,得到特征变换结果;
第二运算单元,用于响应所述第二指令获取权值变换结果,对所述权值变换结果和特征变换结果进行对位乘,得到乘法运算结果;对所述乘法运算结果进行逆变换,其中,所述第二运算单元将所述逆变换中对所述乘法运算结果的逆变换运算拆解为求和运算,并根据所述求和运算完成所述乘法运算结果的逆变换,得到运算结果。


11.根据权利要求10所述的运算装置,其特征在于,所述第二运算单元包括:
乘法单元,用于响应所述第二指令,获取权值变换结果,对所述权值变换结果和特征变换结果进行对位乘,得到乘法运算结果;
逆变换单元,用于对所述乘法运算结果进行逆变换,其中,所述逆变换单元将所述逆变换中对所述乘法运算结果的变换运算拆解为求和运算,并根据所述求和运算完成所述乘法运算结果的逆变换,得到所述运算结果。


12.根据权利要求7所述的运算装置,其特征在于,所述运算单元包括:
加法运算单元,用于响应所述第一指令,从所述存储单元获取特征数据,对所述特征数据进行正变换,其中,所述加法运算单元将对所述特征数据的正变换拆解为求和运算,并根据所述求和运算完成所述特征数据的正变换,得到特征变换结果;
乘法运算单元,用于响应所述第二指令获取权值变换结果,对所述权值变换结果和特征变换结果进行对位乘,得到乘法运算结果;
所述加法运算单元,还用于响应所述第二指令,对所述乘法运算结果进行逆变换,其中,所述加法运算单元将对所述乘法运算结果的逆变换拆解为求和运算,并根据所述求和运算完成所述乘法运算结果的逆变换,得到运算结果。


13.一种人工智能芯片,其特征在于,所述芯片包括如权利要求1-12中任意一项所述的运算装置。


14.一种电子设备,其特征在于,所述电子设备包括如权利要求13所述的人工智能芯片。


15.一种板卡,其特征在于,所述板卡包括:存储器件、接口装置和控制器件以及如权利要求13所述的人工智能芯片;
其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;
所述存储器件,用于存储数据;
所...

【专利技术属性】
技术研发人员:不公告发明人
申请(专利权)人:中科寒武纪科技股份有限公司
类型:发明
国别省市:北京;11

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

1