一种指令生成过程的复用方法及装置、处理装置制造方法及图纸

技术编号:17837240 阅读:36 留言:0更新日期:2018-05-03 19:03
一种指令生成过程的复用方法及装置、处理装置,所述复用方法包括:基于预设信息计算第i层网络的Hash值;以及判断第i层网络的Hash值是否与在前网络对应的Hash值相同,若相同,则利用Hash值相同的在前网络的指令采用指令复用的方式生成第i层网络的指令,其中i为正整数。

A multiplexing method, device and processing device for instruction generation process

A multiplexing method and device and a processing device for the instruction generation process including: calculating the Hash value of the i layer network based on the preset information; and judging whether the Hash value of the i layer network is the same as the Hash value corresponding to the former network, and if the same, the Hash value is used in the instructions of the front network to use an instruction complex. Use the way to generate instructions for layer I network, where I is a positive integer.

【技术实现步骤摘要】
一种指令生成过程的复用方法及装置、处理装置
本专利技术涉及人工神经网络
,更具体地涉及一种指令生成过程的复用方法及装置、处理装置。
技术介绍
人工神经网络是众多机器学习和模式识别算法中的佼佼者,在学术界和工业界都是目前的主流方向。然而,基于在小体积、低功耗的前提下实现高性能的新要求,传统的大规模神经网络和庞大的计算设备难以真正进入人们的日常生活,因此为神经网络设计的专用处理器成为新的潮流。为神经网络加速器生成指令是一个相对繁琐的过程,尤其是在数据规模大、网络结构复杂的情况下。神经网络加速器的单条指令往往较长,同时受限于片上的计算和存储资源,较大的输入数据往往需要多条指令处理。此外,当下神经网络算法的明显趋势是网络层数越来越多、层规模越来越大。这些都导致神经网络加速器的指令生成愈发繁琐,甚至影响到硬件本身优势的发挥。
技术实现思路
鉴于现有方案存在的问题,为了克服上述现有技术方案的不足,本专利技术提出了一种指令生成过程的复用方法及装置、处理装置。根据本专利技术的一个方面,提供了一种指令生成过程的复用方法,其中,包括:基于预设信息计算第i层网络的Hash值;以及判断第i层网络的Hash值是否与在前网络对应的Hash值相同,若相同,则利用Hash值相同的在前网络的指令采用指令复用的方式生成第i层网络的指令,其中i为正整数。根据本专利技术的另一个方面,提供了一种指令生成过程的复用装置,其中,包括:运行缓存装置,用于存放在前网络对应的Hash值;处理单元,用实现指令复用,以及指令存储装置,存储所述各层网络的指令,其中,所述处理单元执行:基于预设信息计算第i层网络的Hash值;以及判断第i层网络的Hash值是否与在前网络对应的Hash值相同,若相同,则利用Hash值相同的在前网络的指令采用指令复用的方式生成第i层网络的指令,其中i为正整数。根据本专利技术的再一个方面,提供一种处理装置,其包括:前述的复用装置;神经网络处理器;和/或通用处理器。根据本专利技术的又一个方面,提供一种芯片,其中,所述芯片包括前述的处理装置。根据本专利技术的进一步的一个方面,提供一种电子装置,其中,所述电子装置包括前述的芯片。从上述技术方案可以看出,本专利技术具有以下有益效果:(1)基于判别Hash值是否相同,实现了神经网络加速器的相同Hash值层网络的指令复用,削减了指令生成过程中重复指令的生成开销,减少了神经网络的总执行时间;(2)使得神经网络加速器的硬件优势更加明显,其计算资源可以更充分地用于神经网络本身地计算,也降低了总功耗。附图说明图1为本专利技术实施例用于神经网络加速器指令生成过程的复用方法的流程图;图2为本专利技术实施例用于神经网络加速器指令生成过程的复用装置的结构框图;图3为本专利技术另一实施例用于神经网络加速器指令生成过程的复用装置的结构框图;图4为本专利技术一实施例中处理装置的结构框图;图5为本专利技术又一实施例中处理装置的结构框图;图6为本专利技术再一实施例中处理装置的结构框图。具体实施方式本专利技术某些实施例于后方将参照所附附图做更全面性地描述,其中一些但并非全部的实施例将被示出。实际上,本专利技术的各种实施例可以许多不同形式实现,而不应被解释为限于此数所阐述的实施例;相对地,提供这些实施例使得本专利技术满足适用的法律要求。在本说明书中,下述用于描述本专利技术原理的各种实施例只是说明,不应该以任何方式解释为限制专利技术的范围。参照附图的下述描述用于帮助全面理解由权利要求及其等同物限定的本专利技术的示例性实施例。下述描述包括多种具体细节来帮助理解,但这些细节应认为仅仅是示例性的。因此,本领域普通技术人员应认识到,在不悖离本专利技术的范围和精神的情况下,可以对本文中描述的实施例进行多种改变和修改。此外,为了清楚和简洁起见,省略了公知功能和结构的描述。此外,贯穿附图,相同附图标记用于相似功能和操作。为使本专利技术的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本专利技术进一步详细说明。本专利技术实施例提供了一种用于神经网络加速器指令生成过程的复用方法,通过神经网络加速器指令生成过程中的指令复用,削减了指令生成过程中重复指令的生成开销,减少了神经网络的总执行时间。这里的“指令”指的是神经网络加速器运行过程中的操作码,用于指示神经网络加速器的硬件的每一步操作。Hash算法将任意长度的二进制值映射为较短的固定长度的二进制值,这个小的二进制值就是Hash值。Hash值是一段数据唯一且极其紧凑的数值表示形式,因此只要神经网络的每一层可以用二进制码描述,那么就可以计算其Hash值,并且Hash值相同网络就一定一样,就可以复用之前生成的网络的指令。具体的,该复用方法如附图1所示,包括以下具体步骤:S101:开始;神经网络加速器指令生成步骤开始;S102:令i=1,i为神经网络加速器网络层序号,i为正整数。本实施例中从第1层来开始执行,本领域技术人员可以理解的而是,网络神经加速器的指令生成并非限定必须从第1层开始执行,也可从后续的任何一层开始执行。S103:计算第i层网络的Hash值,根据第i层网络的类型、规模等信息计算出相应的Hash值,Hash值通过给定的Hash函数计算得到。其中网络类型有卷积、全连接、降采样、归一化层、激活等;网络规模包括网络输入大小、输出大小、采样窗口大小、采样窗口移动步长、采样窗口数目等。另外具体的信息还可以包括偏置项、随机项、运算类型等所有神经网络特性的描述参数。其中运算类型包括但不限于稀疏运算、稠密运算、1位运算、定点、浮点等运算类型。以下以全连接层网络为例计算hash值:假设该层网络是全连接层,层类型编码为01,层规模为输入9,输出9,那么该网络被编码为011001100110011001(编码顺序和宽度不固定,该处引用于举例),计算该二进制码的hash值,计算方式可以是MD5、SHA1等方法,计算出的hash值是011001。S104:判断i是否大于等于a,a为正整数。针对第a层后的网络层来判别是否可以进行指令复用操作。本实施例中a优选为2。若结果为Y,即i大于等于a,则执行步骤S105,否则,结果为N,即i小于a,执行步骤S106。S105:根据Hash值在Hash表中进行查找,Hash表存储在运行缓存装置中,其存储由第i层网络之前1个或多个层Hash值,用于后面各层的Hash值作对比。如表1所示,Hash表一共包括5个域:层序号、层类型、层规模、Hash值和该层指令在指令存储装置的头地址。其中,前4个域用于前述查找判断单元确定是否可以复用,最后一个域用于后述被复用指令提取单元从指令存储装置中提取所需指令。表1层序号层类型层规模Hash值头地址1CONVinput(9,9),kernel(5,5),stride(1,1)9d28Ox10000000若结果为Y,意味着第i层网络的Hash值存在于Hash表,这说明之前某层的类型和规模与本层完全一致,指令可以复用,则执行S108,否则,说明之前所有层的类型和规模与本层均不一致,指令不能复用,则执行S106。S106:将第i层网络的Hash值及指令头地址存入Hash表中,存储在运行缓存装置中,执行S107。S107:采用常规方式生成第i层网络指令;这里的常规方式指的是神经网络加速器的硬件根据输入的神经网络的全部信本文档来自技高网...
一种指令生成过程的复用方法及装置、处理装置

【技术保护点】
一种指令生成过程的复用方法,其中,包括:基于预设信息计算第i层网络的Hash值;以及判断第i层网络的Hash值是否与在前网络对应的Hash值相同,若相同,则利用Hash值相同的在前网络的指令采用指令复用的方式生成第i层网络的指令,其中i为正整数。

【技术特征摘要】
2016.11.30 CN 20161109237271.一种指令生成过程的复用方法,其中,包括:基于预设信息计算第i层网络的Hash值;以及判断第i层网络的Hash值是否与在前网络对应的Hash值相同,若相同,则利用Hash值相同的在前网络的指令采用指令复用的方式生成第i层网络的指令,其中i为正整数。2.根据权利要求1所述的复用方法,其中,所述基于预设信息计算第i层网络的Hash值的步骤包括:基于第i层网络的类型和/或规模信息计算第i层网络的Hash值。3.根据权利要求1所述的复用方法,其中,在判断第i层网络的Hash值是否与在前网络对应的Hash值相同的步骤之前还包括:建立Hash表存储各个在先网络对应的信息,对于每一在先网络,其对应的域包括:层序号、Hash值和相应层指令的头地址。4.根据权利要求3所述的复用方法,其中,所述域还包括:层类型和/或层规模。5.根据权利要求3所述的复用方法,其中,所述采用指令复用的方式生成第i层网络的指令包括:根据Hash表中存储的Hash值相同的在前网络对应信息中的指令头地址拷贝待复用指令;修改待复用指令生成第i层网络的指令。6.根据权利要求3所述的复用方法,其中,若所述第i层网络的Hash值不存在于Hash表中,则将第i层网络Hash值及其指令头地址存入Hash表,并直接生成第i层网络的指令。7.根据权利要求1至6中任一所述的复用方法,其中,还包括:存储所述第i层网络的指令。8.根据权利要求3所述的复用方法,其中,在判断第i层网络的Hash值是否存在于Hash表中的步骤之前还包括:判断i是否大于等于a,其中a为正整数,且a≥2:若i≥a,则判断第i层网络的Hash值是否存在于Hash表中;否则,将第i层网络Hash值及其指令头地址存入Hash表,并直接生成第i层网络的指令。9.根据权利要求7所述的复用方法,其中,在存储所述第i层网络的指令的步骤之后还包括:令i=i+1,判断i是否小于等于b,其中b为正整数,且b>a:若i≤b,则返回步骤计算第i层网络的Hash值;否则,指令生成结束;其中,b等于神经网络加速器网络层数。10.根据权利要求1-9中任一所述的复用方法,其中,所述网络为人工神经网络。11.一种指令生成过程的复用装置,其中,包括:运行缓存装置(2),用于存放在前网络对应的Hash值;处理单元(10),用实现指令复用,以及指令存储装置(5),存储所述各层网络的指令,其中,所述处理单元(10)执行:基于预设信息计算第i层网络的Hash值;以及判断第i层网络的Hash值是否与在前网络对应的Hash值相同,若相同,则利用Hash值相同的在前网络的指令采用指令复用的方式生成第i层网络的指令,其中i为正整数。12.根据权利要求11所述的复用装置,其中,所述基于预设信息计算第i层网络的Hash值包括:基于第i层网络的类型和/或规模信息计算第i层网络的H...

【专利技术属性】
技术研发人员:不公告发明人
申请(专利权)人:上海寒武纪信息科技有限公司
类型:发明
国别省市:上海,31

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

1