CN110516789B - 卷积网络加速器中指令集的处理方法、装置及相关设备 - Google Patents
卷积网络加速器中指令集的处理方法、装置及相关设备 Download PDFInfo
- Publication number
- CN110516789B CN110516789B CN201910736368.7A CN201910736368A CN110516789B CN 110516789 B CN110516789 B CN 110516789B CN 201910736368 A CN201910736368 A CN 201910736368A CN 110516789 B CN110516789 B CN 110516789B
- Authority
- CN
- China
- Prior art keywords
- instruction
- execution
- target instruction
- target
- instruction set
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012545 processing Methods 0.000 title claims abstract description 58
- 238000000034 method Methods 0.000 title claims description 54
- 238000004590 computer program Methods 0.000 claims description 11
- 238000004458 analytical method Methods 0.000 claims description 6
- 238000013527 convolutional neural network Methods 0.000 abstract description 22
- 230000001133 acceleration Effects 0.000 abstract description 10
- 238000003672 processing method Methods 0.000 abstract description 6
- 230000009286 beneficial effect Effects 0.000 abstract description 3
- 230000008569 process Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 8
- 238000013461 design Methods 0.000 description 7
- 230000004913 activation Effects 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 238000013528 artificial neural network Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 102100023882 Endoribonuclease ZC3H12A Human genes 0.000 description 1
- 101710112715 Endoribonuclease ZC3H12A Proteins 0.000 description 1
- 101100385237 Mus musculus Creg1 gene Proteins 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Manipulator (AREA)
- Advance Control (AREA)
Abstract
本申请公开了一种卷积网络加速器中指令集的处理方法,包括接收主机发送的指令集,其中,指令集中的每个指令均配置有序号信息和参数信息;根据序号信息在指令集中调取目标指令,对目标指令对应的参数信息进行解析,获得执行参数和设置参数;其中,目标指令的执行参数对应于上一指令的设置参数,目标指令的设置参数对应于下一指令的执行参数;根据执行参数确定是否执行目标指令,若是,则执行目标指令,并在目标指令执行完毕时,更新设置参数;该处理方法可以有效提升卷积网络加速器的加速性能,进而提高卷积神经网络的运算效率。本申请还公开了一种卷积网络加速器中指令集的处理装置、设备及计算机可读存储介质,均具有上述有益效果。
Description
技术领域
本申请涉及卷积网络技术领域,特别涉及一种卷积网络加速器中指令集的处理方法,还涉及一种卷积网络加速器中指令集的处理装置、设备以及计算机可读存储介质。
背景技术
卷积神经网络(Convolutional Neural Network,CNN)是一种深度前馈人工神经网络,主要用于大型图像处理,卷积神经网络的计算量巨大,其在运算过程中需要调用和存储大量的参数信息,为保证运算效率,一般会采用相应的加速器来完成。
目前,在卷积网络加速器设计中,将卷积、池化、归一化等过程均作为独立的部件,并分别设计了独立的指令,进而通过执行指令完成卷积神经网络的计算,为进一步提升卷积网络加速器性能,现有技术中为卷积网络加速器设置了宏指令集,该宏指令集将卷积神经网络计算中的各个部分组成一条宏指令,实现了不同规格和不同类型的卷积网络到卷积网络加速器硬件的高效映射和调度。但是,该种加速方法仅针对于单指令的加速,而卷积网络加速器中部件众多,指令众多,多个部件同时运行必然会导致指令调度的复杂化,并不能很好的提高卷积网络加速器的加速性能。
因此,如何有效提升卷积网络加速器的加速性能,进而提高卷积神经网络的运算效率是本领域技术人员亟待解决的问题。
发明内容
本申请的目的是提供一种卷积网络加速器中指令集的处理方法,该卷积网络加速器中指令集的处理方法可以有效提升卷积网络加速器的加速性能,进而提高卷积神经网络的运算效率;本申请的另一目的是提供一种卷积网络加速器中指令集的处理装置、设备以及计算机可读存储介质,也具有上述有益效果。
为解决上述技术问题,本申请提供了一种卷积网络加速器中指令集的处理方法,所述卷积网络加速器中指令集的处理方法包括:
接收主机发送的指令集,其中,所述指令集中的每个指令均配置有序号信息和参数信息;
根据所述序号信息在所述指令集中调取目标指令,对所述目标指令对应的参数信息进行解析,获得执行参数和设置参数;其中,所述目标指令的执行参数对应于上一指令的设置参数,所述目标指令的设置参数对应于下一指令的执行参数;
根据所述执行参数确定是否执行所述目标指令,若是,则执行所述目标指令,并在所述目标指令执行完毕时,更新所述设置参数。
优选的,所述执行参数预存于等待寄存器中;所述设置参数预存于设置寄存器中。
优选的,所述目标指令执行完毕之后,还包括:
将所述目标指令对应的等待寄存器清零。
优选的,所述将所述目标指令对应的等待寄存器清零之后,还包括:
回收所述目标指令对应的等待寄存器。
优选的,所述回收所述目标指令对应的等待寄存器之后,还包括:
利用回收的所述等待寄存器为所述目标指令对应的下一指令配置设置寄存器。
优选的,所述卷积网络加速器中指令集的处理方法还包括:
当所述目标指令执行完毕后,将对应的执行结果存储至预设存储空间;
当所述指令集中的所有指令执行完毕后,将所述预设存储空间中的各所述执行结果反馈至所述主机。
为解决上述技术问题,本申请还提供了一种卷积网络加速器中指令集的处理装置,所述卷积网络加速器中指令集的处理装置包括:
指令集接收模块,用于接收主机发送的指令集,其中,所述指令集中的每个指令均配置有序号信息和参数信息;
执行参数解析模块,用于根据所述序号信息在所述指令集中调取目标指令,对所述目标指令对应的参数信息进行解析,获得执行参数和设置参数;其中,所述目标指令的执行参数对应于上一指令的设置参数,所述目标指令的设置参数对应于下一指令的执行参数;
指令处理模块,用于根据所述执行参数确定是否执行所述目标指令,若是,则执行所述目标指令,并在所述目标指令执行完毕时,更新所述设置参数。
优选的,所述卷积网络加速器中指令集的处理装置还包括:
存储模块,用于当所述目标指令执行完毕后,将对应的执行结果存储至预设存储空间;
反馈模块,用于当所述指令集中的所有指令执行完毕后,将所述预设存储空间中的各所述执行结果反馈至所述主机。
为解决上述技术问题,本申请还提供了一种卷积网络加速器中指令集的处理设备,所述卷积网络加速器中指令集的处理设备包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述任意一种卷积网络加速器中指令集的处理方法的步骤。
为解决上述技术问题,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一种卷积网络加速器中指令集的处理方法的步骤。
本申请所提供的一种卷积网络加速器中指令集的处理方法,包括接收主机发送的指令集,其中,所述指令集中的每个指令均配置有序号信息和参数信息;根据所述序号信息在所述指令集中调取目标指令,对所述目标指令对应的参数信息进行解析,获得执行参数和设置参数;其中,所述目标指令的执行参数对应于上一指令的设置参数,所述目标指令的设置参数对应于下一指令的执行参数;根据所述执行参数确定是否执行所述目标指令,若是,则执行所述目标指令,并在所述目标指令执行完毕时,更新所述设置参数。
可见,本申请所提供的卷积网络加速器中指令集的处理方法,针对指令的具体执行过程,为指令集中的每个指令均配置执行参数和设置参数,且当前指令的执行参数即为上一指令的设置参数,当前指令的设置参数即为下一指令的执行参数,执行参数的取值对应于当前指令是否执行,设置参数的取值对应于当前指令是否执行完毕,如此,实现了卷积神经网络中各个指令的流水执行,当前指令完成后直接执行下一指令,有效掩藏了指令执行前后所需要耗费的数据访存时间,既保证了指令的有序执行,又提升了卷积网络加速器的加速性能,从而有效提高了卷积神经网络的运算效率。
本申请所提供的一种卷积网络加速器中指令集的处理装置、设备以及计算机可读存储介质,均具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请所提供的一种卷积网络加速器中指令集的处理方法的流程示意图;
图2为本申请所提供的一种卷积神经网络的指令流水策略示意图;
图3为本申请所提供的一种卷积神经网络计算流程图;
图4为本申请所提供的一种Batch间的指令流水策略示意图;
图5为本申请所提供的另一种卷积神经网络计算流程图;
图6为本申请所提供的一种分支间的指令流水策略示意图;
图7为本申请所提供的一种卷积网络加速器中指令集的处理装置的结构示意图;
图8为本申请所提供的一种卷积网络加速器中指令集的处理设备的结构示意图。
具体实施方式
本申请的核心是提供一种卷积网络加速器中指令集的处理方法,该卷积网络加速器中指令集的处理方法可以有效提升卷积网络加速器的加速性能,进而提高卷积神经网络的运算效率;本申请的另一核心是提供一种卷积网络加速器中指令集的处理装置、设备以及计算机可读存储介质,也具有上述有益效果。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
请参考图1,图1为本申请所提供的一种卷积网络加速器中指令集的处理方法的流程示意图,该卷积网络加速器中指令集的处理方法可以包括:
S101:接收主机发送的指令集,其中,指令集中的每个指令均配置有序号信息和参数信息;
本步骤旨在实现指令集的获取,具体的,该指令集可以由主机下发至主控器,其中包括有多个用于进行卷积神经网络计算的指令,如卷积指令、激活指令等,每个指令均配置有其对应的序号信息和参数信息,其中,序号信息对应于指令集中各个指令的执行顺序,参数信息则包括对应指令在运行过程中所需要的各类参数数据。
可以理解的是,上述主机发送的指令集,可以具体由技术人员基于主机下发,也可以由主机通过响应预设条件自动触发,因此,对于上述主机下发指令集的具体实现方式,本申请不做限定。
S102:根据序号信息在指令集中调取目标指令,对目标指令对应的参数信息进行解析,获得执行参数和设置参数;其中,目标指令的执行参数对应于上一指令的设置参数,目标指令的设置参数对应于下一指令的执行参数;
本步骤旨在实现参数解析,具体的,在获取到指令集后,即可根据序号信息调取对应的目标指令,该目标指令即为当前需要执行的指令;进一步,对该目标指令的参数信息进行解析,获得执行参数和设置参数,其中,目标指令的执行参数即为上一指令的设置参数,目标指令的设置参数即为下一指令的执行参数,当然,此处上一指令是指在目标指令执行之前就已经执行完毕的指令,下一指令则是指在目标指令执行完毕之后即将要执行的指令,如此,在指令集各个指令的执行过程中,当前指令一旦执行完毕,则将直接跳转到下一指令进入执行操作,由此,即实现了卷积神经网络中各个指令的流水执行。
可以理解的是,目标指令的执行参数的取值代表目标指令是否执行,设置参数则代表目标指令是否执行完毕,例如,当执行参数取0时,不执行目标指令,当执行参数取1时,执行目标指令;当设置参数取0时,目标指令还未执行完毕,当设置参数取1时,目标指令执行完毕,相应的,当执行参数取1时,对应的配置参数必然取0。
S103:根据执行参数确定是否执行目标指令,若是,则执行目标指令,并在目标指令执行完毕时,更新设置参数。
本步骤旨在实现目标指令的执行,具体的,在获得执行参数后,即可根据执行参数的取值判断是否可以执行目标指令,若可以执行目标指令,则继续执行即可,若不可以执行目标指令,则进入等待状态,进一步,当目标指令执行完毕后,对设置参数的取值进行更新即可。对应于上一举例,假如执行参数当前取值为1,则开始执行目标指令,此时,由于目标指令在执行过程中,其对应的设置参数必然为0,当目标指令执行完毕后,将设置参数的取值更新为1即可。
本申请所提供的卷积网络加速器中指令集的处理方法,针对指令的具体执行过程,为指令集中的每个指令均配置执行参数和设置参数,且当前指令的执行参数即为上一指令的设置参数,当前指令的设置参数即为下一指令的执行参数,执行参数的取值对应于当前指令是否执行,设置参数的取值对应于当前指令是否执行完毕,如此,实现了卷积神经网络中各个指令的流水执行,当前指令完成后直接执行下一指令,有效掩藏了指令执行前后所需要耗费的数据访存时间,既保证了指令的有序执行,又提升了卷积网络加速器的加速性能,从而有效提高了卷积神经网络的运算效率。
在上述实施例的基础上:
作为一种优选实施例,上述执行参数可以预存于等待寄存器中,设置参数可以预存于设置寄存器中。
具体的,在硬件方面,可以为指令集中的每个指令配置等待寄存器和设置寄存器,其中,等待寄存器用于存储执行参数,设置寄存器用于存储设置参数,从而实现了信号灯机制,更加方便解析、调用以及更新,进而也更加便于实现指令流水策略。
可以理解的是,对于上述等待寄存器和设置寄存器的具体类型以及配置方式,参照已有技术即可,本申请在此不再赘述。此外,由于目标指令的执行参数为上一指令的设置参数,目标指令的设置参数为下一指令的执行参数,那么,目标指令的等待寄存器即为上一指令的设置寄存器,目标指令的设置寄存器即为下一指令的等待寄存器,而且,等待寄存器和设置寄存器都只是用于存储参数信息的寄存器,二者并无本质上的区别。
优选的,上述目标指令执行完毕之后,还可以包括将目标指令对应的等待寄存器清零。
具体的,在目标指令执行完毕后,其对应的执行参数已经不再产生作用,为避免存储空间占用导致资源浪费,可以在目标指令执行完毕后,进一步将目标指令对应的等待寄存器清零,即删除其中的执行参数。
优选的,上述将目标指令对应的等待寄存器清零之后,还可以包括回收目标指令对应的等待寄存器。
具体的,在目标指令完毕后,由于其对应的执行参数已经不再产生作用,那么,该执行参数所处的等待寄存器同样也不会再起作用,因此,为避免过多的寄存器占用,还可对该等待寄存器做进一步的回收处理。
优选的,上述回收目标指令对应的等待寄存器之后,还可以包括利用回收的等待寄存器为目标指令对应的下一指令配置设置寄存器。
具体的,对应于等待寄存器的回收,为进一步节省资源,还可以利用回收的等待寄存器对后续指令的设置寄存器进行配置,即在指令集中各个指令的初始配置过程中,可以只对序号靠前的指令配置等待寄存器和设置寄存器,进而在每执行完一个指令后,回收其对应的等待寄存器,并对后续没有配置寄存器的指令进行寄存器配置,如此,既减少了由于寄存器占用过多导致的资源浪费,又完好的实现了指令流水策略。
优选的,该卷积网络加速器中指令集的处理方法还可以包括:当目标指令执行完毕后,将对应的执行结果存储至预设存储空间;当指令集中的所有指令执行完毕后,将预设存储空间中的各执行结果反馈至主机。
具体的,卷积神经网络计算过程中所涉及的指令众多,每个指令在执行完毕后均有其对其的执行结果,此时,可以执行数据写回操作,将各个执行对应的执行结果存储至预设存储空间即可;进一步,当指令集中的所有指令全部执行完毕后,可将预设存储空间中的各个执行结果反馈至主机,也可以根据预设存储空间中的各个执行结果进行处理,获得最终的卷积结果,进而反馈至主机,以便技术人员进行后续处理。
在上述各个实施例的基础上,本申请实施例提供了一种更为具体的卷积网络加速器中指令集的处理方法。
具体的,请参考图2,图2为本申请所提供的一种卷积神经网络的指令流水策略示意图,每个指令的执行过程均可以分为三个阶段:数据读取、执行指令和数据写回,如此,通过多指令间的流水涉及即可掩藏数据读取和数据写回两阶段所需要的时间损耗。进一步,请参考图3,图3为本申请所提供的一种卷积神经网络计算流程图,由于实现指令流水策略需要保证各个指令之间无依赖,即各个指令的执行顺序不会影响结果的正确性,参考图3可知,虽然卷积神经网络的计算过程往往具有明确的执行顺序,但是有两种指令是不存在依赖关系的,一种是batch之间的指令,另一种是分支之间的指令。其中,batch1、batch2是指待处理的两批数据,两批数据会经过相同的计算流程,分支1、分支2则为神经网络结构中的两个分支。相应的,指令流水策略的设计流程如下:
(1)基于信号灯机制的指令集设计:
根据图3可知,卷积神经网络计算流程图是一种有向无环图,具有明确的依赖关系,为有效区分指令间的依赖关系,可以在指令参数中增加等待寄存器序号和设置寄存器序号,其中,等待寄存器是指令需要等待该寄存器的存储值为1时,才能执行对应指令,并在开始执行指令后,清零该寄存器;设置寄存器则是指对应指令执行完毕后,向该寄存器写1,这种通过寄存器实现多指令间通信的机制,即为信号灯机制,相应的,指令结构如表1所示:
表1
指令序号 | 等待寄存器序号 | 通用寄存器序号 | 设置寄存器序号 |
其中,指令序号为指令名称对应的序号(序号信息);通用寄存器序号有多个,分别存储当前指令操作所需要的各类参数,等待寄存器和设置寄存器也可通过通用寄存器实现,相应的,以卷积神经网络中的卷积操作为例,卷积指令设计如表2所示:
表2
其中,CReg为条件寄存器序号,条件寄存器值为非零时,该条指令才能执行;Instr为执行序号;Reg1-8为通用寄存器序号,Reg1为等待寄存器序号,Reg2-7用于存储卷积计算过程所需参数,Reg8为设置寄存器序号,至此,通过为指令集中每条指令添加等待寄存器和设置寄存器,实现了支持信号灯机制的指令集设计。
(2)Batch间指令流水控制:
流水控制是指软件端通过等待寄存器和设置寄存器的配置,指导硬件指令执行流程,进而在保证结果正确性的前提下,实现指令流水。根据图3可以看出,batch内部的指令往往具有依赖性,例如,激活指令的输入为卷积指令的输出,因此,激活指令需要等待卷积指令完成后才可以执行,但是,batch之间却是相互独立的,相应的,其指令关系可以描述为:同batch等待,不同batch不等待,如此,其对应的指令流水设计则如图4所示,请参考图4,图4为本申请所提供的一种Batch间的指令流水策略示意图,其中,卷积i为第i个batch的卷积指令,激活i为第i个batch的激活指令,卷积i指令的等待寄存器为上一指令对应batch的设置寄存器,卷积i指令的设置寄存器为新分配的空闲通用寄存器Ri,激活i指令的等待寄存器同样为Ri,激活i指令的设置寄存器则为新分配的空闲通用寄存器。另外,软件在设定等待寄存器的同时,也回收该寄存器,并为设置寄存器分配新的空闲通用寄存器,并且,硬件在执行指令的同时,清零其对应的等待寄存器,在指令执行结束时将设置寄存器置1。
(3)分支间指令流水控制:
请参考图5,图5为本申请所提供的另一种卷积神经网络计算流程图,其计算流程为卷积1→卷积2-1→卷积2-2→卷积2-3→卷积3,通过分析可以发现,卷积2-1需要等待卷积1,因为卷积2-1的执行可以保证卷积1已经执行完毕,因此,卷积2-2、卷积2-3不需要等待任何指令;而卷积2-3的执行可以保证卷积2-1、卷积2-2已经执行完毕,因此,卷积3只需等待卷积2-3,此处,该依赖关系可以总结为最小子节点需等待最大父节点,其余节点无依赖,其中,最小子节点和最大父节点的判定可以通过设计额外的子节点记录器实现,如此,其对应的指令流水设计则如图6所示,请参考图6,图6为本申请所提供的一种分支间的指令流水策略示意图,其中,卷积2-1的等待寄存器为卷积1的设置寄存器,卷积2-2、卷积2-3的等待寄存器均为空,卷积2-1、卷积2-2的设置寄存器均为空,卷积3的等待寄存器为卷积2-3的设置寄存器。
请实施例所提供的卷积网络加速器中指令集的处理方法,针对指令的具体执行过程,为指令集中的每个指令均配置执行参数和设置参数,且当前指令的执行参数即为上一指令的设置参数,当前指令的设置参数即为下一指令的执行参数,执行参数的取值对应于当前指令是否执行,设置参数的取值对应于当前指令是否执行完毕,如此,实现了卷积神经网络中各个指令的流水执行,当前指令完成后直接执行下一指令,有效掩藏了指令执行前后所需要耗费的数据访存时间,既保证了指令的有序执行,又提升了卷积网络加速器的加速性能,从而有效提高了卷积神经网络的运算效率。
为解决上述问题,请参考图7,图7为本申请所提供的一种卷积网络加速器中指令集的处理装置的结构示意图,该卷积网络加速器中指令集的处理装置可包括:
指令集接收模块10,用于接收主机发送的指令集,其中,指令集中的每个指令均配置有序号信息和参数信息;
执行参数解析模块20,用于根据序号信息在指令集中调取目标指令,对目标指令对应的参数信息进行解析,获得执行参数和设置参数;其中,目标指令的执行参数对应于上一指令的设置参数,目标指令的设置参数对应于下一指令的执行参数;
指令处理模块30,用于根据执行参数确定是否执行目标指令,若是,则执行目标指令,并在目标指令执行完毕时,更新设置参数。
可见,本申请实施例所提供的卷积网络加速器中指令集的处理装置,针对指令的具体执行过程,为指令集中的每个指令均配置执行参数和设置参数,且当前指令的执行参数即为上一指令的设置参数,当前指令的设置参数即为下一指令的执行参数,执行参数的取值对应于当前指令是否执行,设置参数的取值对应于当前指令是否执行完毕,如此,实现了卷积神经网络中各个指令的流水执行,当前指令完成后直接执行下一指令,有效掩藏了指令执行前后所需要耗费的数据访存时间,既保证了指令的有序执行,又提升了卷积网络加速器的加速性能,从而有效提高了卷积神经网络的运算效率。
作为一种优选实施例,上述执行参数预存于等待寄存器中;设置参数预存于设置寄存器中。
作为一种优选实施例,该卷积网络加速器中指令集的处理装置还可包括:
寄存器清零模块,用于在目标指令执行完毕之后,将目标指令对应的等待寄存器清零。
作为一种优选实施例,该卷积网络加速器中指令集的处理装置还可包括:
寄存器回收模块,用于在将目标指令对应的等待寄存器清零之后,回收目标指令对应的等待寄存器。
作为一种优选实施例,该卷积网络加速器中指令集的处理装置还可包括:
寄存器配置模块,用于在回收目标指令对应的等待寄存器之后,利用回收的等待寄存器为目标指令对应的下一指令配置设置寄存器。
作为一种优选实施例,该卷积网络加速器中指令集的处理装置还可包括:
存储模块,用于当目标指令执行完毕后,将对应的执行结果存储至预设存储空间;
反馈模块,用于当指令集中的所有指令执行完毕后,将预设存储空间中的各执行结果反馈至主机。
对于本申请提供的装置的介绍请参照上述方法实施例,本申请在此不做赘述。
为解决上述问题,请参考图8,图8为本申请所提供的一种卷积网络加速器中指令集的处理设备的结构示意图,该卷积网络加速器中指令集的处理设备可包括:
存储器1,用于存储计算机程序;
处理器2,用于执行计算机程序时实现如上所述任意一种卷积网络加速器中指令集的处理方法的步骤。
对于本申请提供的设备的介绍请参照上述方法实施例,本申请在此不做赘述。
为解决上述问题,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现如上所述任意一种卷积网络加速器中指令集的处理方法的步骤。
该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
对于本申请提供的计算机可读存储介质的介绍请参照上述方法实施例,本申请在此不做赘述。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其他形式的存储介质中。
以上对本申请所提供的卷积网络加速器中指令集的处理方法、装置、设备以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围要素。
Claims (10)
1.一种卷积网络加速器中指令集的处理方法,其特征在于,包括:
接收主机发送的指令集,其中,所述指令集中的每个指令均配置有序号信息和参数信息;
根据所述序号信息在所述指令集中调取目标指令,对所述目标指令对应的参数信息进行解析,获得执行参数和设置参数;其中,所述目标指令的执行参数对应于上一指令的设置参数,所述目标指令的设置参数对应于下一指令的执行参数;
根据所述执行参数确定是否执行所述目标指令,若是,则执行所述目标指令,并在所述目标指令执行完毕时,更新所述设置参数。
2.如权利要求1所述的卷积网络加速器中指令集的处理方法,其特征在于,所述执行参数预存于等待寄存器中;所述设置参数预存于设置寄存器中。
3.如权利要求2所述的卷积网络加速器中指令集的处理方法,其特征在于,所述目标指令执行完毕之后,还包括:
将所述目标指令对应的等待寄存器清零。
4.如权利要求3所述的卷积网络加速器中指令集的处理方法,其特征在于,所述将所述目标指令对应的等待寄存器清零之后,还包括:
回收所述目标指令对应的等待寄存器。
5.如权利要求4所述的卷积网络加速器中指令集的处理方法,其特征在于,所述回收所述目标指令对应的等待寄存器之后,还包括:
利用回收的所述等待寄存器为所述目标指令对应的下一指令配置设置寄存器。
6.如权利要求1至5任意一项所述的卷积网络加速器中指令集的处理方法,其特征在于,还包括:
当所述目标指令执行完毕后,将对应的执行结果存储至预设存储空间;
当所述指令集中的所有指令执行完毕后,将所述预设存储空间中的各所述执行结果反馈至所述主机。
7.一种卷积网络加速器中指令集的处理装置,其特征在于,包括:
指令集接收模块,用于接收主机发送的指令集,其中,所述指令集中的每个指令均配置有序号信息和参数信息;
执行参数解析模块,用于根据所述序号信息在所述指令集中调取目标指令,对所述目标指令对应的参数信息进行解析,获得执行参数和设置参数;其中,所述目标指令的执行参数对应于上一指令的设置参数,所述目标指令的设置参数对应于下一指令的执行参数;
指令处理模块,用于根据所述执行参数确定是否执行所述目标指令,若是,则执行所述目标指令,并在所述目标指令执行完毕时,更新所述设置参数。
8.如权利要求7所述的卷积网络加速器中指令集的处理装置,其特征在于,还包括:
存储模块,用于当所述目标指令执行完毕后,将对应的执行结果存储至预设存储空间;
反馈模块,用于当所述指令集中的所有指令执行完毕后,将所述预设存储空间中的各所述执行结果反馈至所述主机。
9.一种卷积网络加速器中指令集的处理设备,其特征在于,还包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至6任意一项所述的卷积网络加速器中指令集的处理方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任意一项所述的卷积网络加速器中指令集的处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910736368.7A CN110516789B (zh) | 2019-08-09 | 2019-08-09 | 卷积网络加速器中指令集的处理方法、装置及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910736368.7A CN110516789B (zh) | 2019-08-09 | 2019-08-09 | 卷积网络加速器中指令集的处理方法、装置及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110516789A CN110516789A (zh) | 2019-11-29 |
CN110516789B true CN110516789B (zh) | 2022-02-18 |
Family
ID=68624686
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910736368.7A Active CN110516789B (zh) | 2019-08-09 | 2019-08-09 | 卷积网络加速器中指令集的处理方法、装置及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110516789B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111124500B (zh) * | 2019-12-12 | 2022-03-08 | 浪潮(北京)电子信息产业有限公司 | 一种指令执行方法、装置、设备及存储介质 |
CN111124491B (zh) * | 2019-12-12 | 2022-04-22 | 浪潮(北京)电子信息产业有限公司 | 一种批处理方法、装置、设备及存储介质 |
CN111538714B (zh) * | 2020-04-24 | 2023-10-17 | 咪咕文化科技有限公司 | 一种指令执行方法、装置、电子设备和存储介质 |
CN112348179B (zh) * | 2020-11-26 | 2023-04-07 | 湃方科技(天津)有限责任公司 | 一种高效的卷积神经网络运算指令集架构构建方法及装置、服务器 |
CN112784970B (zh) * | 2020-12-31 | 2023-08-15 | 深圳大普微电子科技有限公司 | 一种硬件加速器、数据处理方法、系统级芯片及介质 |
CN114153313B (zh) * | 2021-11-29 | 2022-10-04 | 苏州密尔光子科技有限公司 | 激光手术器械控制方法、装置及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7302528B2 (en) * | 2004-11-19 | 2007-11-27 | Intel Corporation | Caching bypass |
CN108804139A (zh) * | 2017-06-16 | 2018-11-13 | 上海兆芯集成电路有限公司 | 可编程设备及其操作方法和计算机可用介质 |
CN109086875A (zh) * | 2018-08-16 | 2018-12-25 | 郑州云海信息技术有限公司 | 一种基于宏指令集的卷积网络加速方法及装置 |
CN109409510A (zh) * | 2018-09-14 | 2019-03-01 | 中国科学院深圳先进技术研究院 | 神经元电路、芯片、系统及其方法、存储介质 |
CN110045960A (zh) * | 2018-01-16 | 2019-07-23 | 腾讯科技(深圳)有限公司 | 基于芯片的指令集处理方法、装置及存储介质 |
-
2019
- 2019-08-09 CN CN201910736368.7A patent/CN110516789B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7302528B2 (en) * | 2004-11-19 | 2007-11-27 | Intel Corporation | Caching bypass |
CN108804139A (zh) * | 2017-06-16 | 2018-11-13 | 上海兆芯集成电路有限公司 | 可编程设备及其操作方法和计算机可用介质 |
CN110045960A (zh) * | 2018-01-16 | 2019-07-23 | 腾讯科技(深圳)有限公司 | 基于芯片的指令集处理方法、装置及存储介质 |
CN109086875A (zh) * | 2018-08-16 | 2018-12-25 | 郑州云海信息技术有限公司 | 一种基于宏指令集的卷积网络加速方法及装置 |
CN109409510A (zh) * | 2018-09-14 | 2019-03-01 | 中国科学院深圳先进技术研究院 | 神经元电路、芯片、系统及其方法、存储介质 |
Non-Patent Citations (3)
Title |
---|
《Cambricon:An instruction set architecture for neural networks》;Liu Shaoli等;《2016 ACM/IEEE 43rd Annual International Symposium on Computer Architecture》;20161231;第393-405页 * |
《具有卷积神经网络扩展指令的微处理器的设计与实现》;马珂;《中国优秀硕士学位论文全文数据库 信息科技辑》;20181215(第12期);第I137-31页 * |
《硬件加速神经网络综述》;陈桂林等;《计算机研究与发展》;20190228;第56卷(第2期);第240-253页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110516789A (zh) | 2019-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110516789B (zh) | 卷积网络加速器中指令集的处理方法、装置及相关设备 | |
CN112948079B (zh) | 任务调度方法、装置、设备和计算机存储介质 | |
US11061539B2 (en) | Reference nodes in a computational graph | |
WO2024065867A1 (zh) | 一种用于神经网络编译的内存优化方法及装置 | |
CN112363913A (zh) | 一种并行测试任务调度寻优的方法、装置和计算设备 | |
CN114091029B (zh) | 恶意文件检测模型的训练系统、方法、设备、介质及平台 | |
CN111857825A (zh) | 指令执行方法、装置、电子设备和计算机可读存储介质 | |
CN112947907A (zh) | 一种创建代码分支的方法 | |
US20140082330A1 (en) | Enhanced instruction scheduling during compilation of high level source code for improved executable code | |
CN111310929A (zh) | 面向量子计算的数据交互设备、方法、装置及介质 | |
CN113296788B (zh) | 指令调度方法、装置、设备及存储介质 | |
CN114880983A (zh) | 基于聚类的h形时钟树主干节点坐标选择方法及系统 | |
US20140013312A1 (en) | Source level debugging apparatus and method for a reconfigurable processor | |
CN114595047A (zh) | 一种批量任务处理方法和装置 | |
CN111400013B (zh) | 一种多核处理器的数据流的处理方法及系统 | |
CN114721725B (zh) | 一种分支指令执行方法、装置、电子设备及存储介质 | |
CN113031962B (zh) | 编译方法、编译装置、电子设备、存储介质和程序产品 | |
CN118113660B (zh) | Fpga延时优化方法、装置、设备、存储介质及程序产品 | |
JP7461433B2 (ja) | リソース再設定可能な深層ニューラルネットワーク加速器、システムおよび方法 | |
CN116700911A (zh) | 算子调度方法、装置、电子设备和可读存储介质 | |
CN114615144B (zh) | 网络优化方法及系统 | |
CN117056068B (zh) | ETL中JobEngine任务拆分方法 | |
CN117216140A (zh) | 用于数据集成平台的etl任务处理方法、系统、介质及设备 | |
US20240104016A1 (en) | Intermediate Representation Method and Apparatus for Compiling Computation Graphs | |
CN115204085A (zh) | 片上网络仿真模型及最短路径规划方法、装置、多核芯片 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |