CN110516790B - 一种卷积网络加速方法、装置及系统 - Google Patents
一种卷积网络加速方法、装置及系统 Download PDFInfo
- Publication number
- CN110516790B CN110516790B CN201910760810.XA CN201910760810A CN110516790B CN 110516790 B CN110516790 B CN 110516790B CN 201910760810 A CN201910760810 A CN 201910760810A CN 110516790 B CN110516790 B CN 110516790B
- Authority
- CN
- China
- Prior art keywords
- instruction
- register
- fixed
- length
- code
- 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
- 238000000034 method Methods 0.000 title claims abstract description 61
- 230000001133 acceleration Effects 0.000 title claims abstract description 39
- 238000004364 calculation method Methods 0.000 claims description 51
- 230000003993 interaction Effects 0.000 claims description 18
- 238000011176 pooling Methods 0.000 claims description 17
- 230000008569 process Effects 0.000 claims description 16
- 230000006870 function Effects 0.000 claims description 13
- 238000005070 sampling Methods 0.000 claims description 7
- 238000007493 shaping process Methods 0.000 claims description 4
- 230000004913 activation Effects 0.000 claims description 3
- 239000011159 matrix material Substances 0.000 claims description 3
- 230000011218 segmentation Effects 0.000 claims description 3
- 238000013507 mapping Methods 0.000 abstract description 10
- 238000013528 artificial neural network Methods 0.000 description 7
- 230000009286 beneficial effect Effects 0.000 description 4
- 238000013135 deep learning Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 101100385237 Mus musculus Creg1 gene Proteins 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000002349 favourable effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
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
-
- 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/08—Learning methods
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Error Detection And Correction (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明公开了一种卷积网络加速方法、装置及系统,包括获取预先存储的固定长度指令集,固定长度指令集为预先基于待处理卷积网络的结构和参数信息建立的;固定长度指令集中包括多个固定长度赋值指令和固定长度操作指令,每个固定长度赋值指令和每个固定长度操作指令分别对应至少一个寄存器;依据与固定长度赋值指令对应的寄存器值对相应的固定长度操作指令的寄存器进行赋值,以便依据寄存器的寄存器值确定相应的指令参数;固定长度赋值指令对应的寄存器值为依据卷积网络的参数信息确定的;依据与固定长度操作指令对应的寄存器值获取相应的指令参数,并根据指令参数执行相应的操作;本发明节约内存、使用灵活性强、编译和映射的效率高、难度低。
Description
技术领域
本发明实施例涉及神经网络技术领域,特别是涉及一种卷积网络加速方法、装置及系统。
背景技术
通常卷积网络加速过程包括卷积、数据操作、通用计算、主机交互和池化等过程,现有技术中在对卷积网络进行卷积网络加速时,需要根据具体参数分别设计独立的指令,每条指令的参数固定,也即每条指令对应固定的操作,由于操作量较大,因此需要设计成千上万条指令,占用较大的内存,影响深度神经网络编译和映射的效率及难度。另外,由于指令的通用性较差,导致在对不同卷积网络进行卷积网络加速时,均需要针对每个卷积网络的具体参数设计大量的指令,费时费力。
鉴于此,如何提供一种解决上述技术问题的卷积网络加速方法、装置及系统成为本领域技术人员需要解决的问题。
发明内容
本发明实施例的目的是提供一种卷积网络加速方法、装置及系统,在使用过程中不仅节约内存,提高深度神经网络编译和映射的效率、降低编译和映射难度,而且使用灵活性强,有利于支持深度学习应用的快速自适应部署。
为解决上述技术问题,本发明实施例提供了一种卷积网络加速方法,包括:获取预先存储的固定长度指令集,所述固定长度指令集为预先基于待处理卷积网络的结构和参数信息建立的;其中,所述固定长度指令集中包括多个固定长度赋值指令和固定长度操作指令,每个所述固定长度赋值指令和每个所述固定长度操作指令分别对应至少一个寄存器;
依据与所述固定长度赋值指令对应的寄存器值对相应的固定长度操作指令的寄存器进行赋值,以便依据所述寄存器的寄存器值确定相应的指令参数;所述固定长度赋值指令对应的寄存器值为依据所述卷积网络的参数信息确定的;
依据与所述固定长度操作指令对应的寄存器值获取相应的指令参数,并根据所述指令参数执行相应的操作。
可选的,所述依据与所述固定长度操作指令对应的寄存器值获取对应的指令参数,并根据所述指令参数执行相应的操作的过程为:
对所述固定长度操作指令进行解析得到所述固定长度操作指令的指令编码和指令格式,所述指令格式包括寄存器编码;
依据所述指令编码以及预先建立的指令编码及操作部件的对应关系,确定出与所述指令编码对应的目标操作部件;
依据所述寄存器编码从各个所述寄存器中确定出与所述固定长度操作指令对应的寄存器,并获取所述寄存器的寄存器值;
将与所述寄存器值对应的指令参数发送至所述目标操作部件,以便所述目标操作部件依据所述指令参数执行相应的操作。
可选的,与每个所述固定长度操作指令分别对应的寄存器包括条件寄存器;所述寄存器编码包括条件寄存器编码;
则,在所述依据所述指令编码以及预先建立的指令编码及操作部件的对应关系,确定出与所述指令编码对应的目标操作部件之前,还包括:
依据所述条件寄存器编码从各个所述寄存器中确定出与所述固定长度操作指令对应的条件寄存器,并读取所述条件寄存器的寄存器值;
依据所述条件寄存器的寄存器值及第一预设规则判断是否执行所述固定长度操作指令,若是,则执行下一步。
可选的,所述与每个所述固定长度操作指令分别对应的寄存器还包括相关寄存器;所述寄存器编码中还包括相关寄存器编码;
则,在当依据所述条件寄存器的寄存器值确定出执行所述固定长度操作指令后,在执行所述依据所述指令编码以及预先建立的指令编码及操作部件的对应关系,确定出与所述指令编码对应的目标操作部件的步骤之前,所述方法还包括:
依据所述相关寄存器编码从各个所述寄存器中确定出与所述固定长度操作指令对应的相关寄存器编码,并读取所述相关寄存器编码的寄存器值;
依据所述相关寄存器编码的寄存器值及第二预设规则,确定出与所述固定长度操作指令相关的操作指令是否执行完毕,若是,则执行所述依据所述指令编码以及预先建立的指令编码及操作部件的对应关系,确定出与所述指令编码对应的目标操作部件的步骤。
可选的,所述依据与所述固定长度赋值指令对应的寄存器值对相应的固定长度操作指令的寄存器进行赋值的过程为:
对所述固定长度赋值指令进行解析,得到所述固定长度操作指令的赋值指令编码和赋值指令格式,所述赋值指令格式包括寄存器编码;
依据所述赋值指令格式中的寄存器编码从各个所述寄存器中确定出与所述固定长度赋值指令对应的寄存器,并获取相应的寄存器值;
依据所述赋值指令编码以及所述预先建立的指令编码及操作部件的对应关系,确定出与所述赋值指令编码对应的通用计算部件;所述操作部件包括所述通用计算部件,并使所述通用计算部件依据与所述固定长度赋值指令对应的寄存器值对相应的固定长度操作指令的寄存器进行赋值。
可选的,所述操作部件还包括:卷积网络部件、数据操作部件、主机交互部件和池化部件。
可选的,每个所述固定长度赋值指令和每个所述固定长度操作指令的长度均为64bit。
本发明实施例还相应的提供了一种卷积网络加速装置,包括:
获取模块,用于获取预先存储的固定长度指令集,所述固定长度指令集为预先基于待处理卷积网络的结构和参数信息建立的;其中,所述固定长度指令集中包括多个固定长度赋值指令和固定长度操作指令,每个所述固定长度赋值指令和每个所述固定长度操作指令分别对应至少一个寄存器;
赋值模块,用于依据与所述固定长度赋值指令对应的寄存器值对相应的固定长度操作指令的寄存器进行赋值,以便依据所述寄存器的寄存器值确定相应的指令参数;所述固定长度赋值指令对应的寄存器值为依据所述卷积网络的参数信息确定的;
执行模块,用于依据与所述固定长度操作指令对应的寄存器值获取相应的指令参数,并根据所述指令参数执行相应的操作。
本发明实施例还提供了一种卷积网络加速系统,包括主机端和卷积网络加速器,其中:
所述主机端,用于将预先基于待处理卷积网络的结构和参数信息建立的固定长度指令集存储至所述卷积网络加速器的内存中;
所述卷积网络加速器,用于执行如上述所述的卷积网络加速方法。
可选的,所述卷积网络加速器包括调度核、卷积网络部件、数据操作部件、通用计算部件、主机交互部件及池化部件。
本发明实施例提供了一种卷积网络加速方法、装置及系统,通过预先基于待处理卷积网络的结构和参数信息建立固定长度指令集,并且将该固定长度指令集进行存储,其中,该固定长度指令集包括多个固定长度赋值指令和固定长度操作指令,每个固定长度赋值指令和每个固定长度操作指令分别对应至少一个寄存器,并且能够根据卷积网络的参数信息对固定长度赋值指令的寄存器进行预先赋值;通过获取存储的固定长度指令集,并根据固定长度赋值指令对应的寄存器值能够进一步对相应的固定长度操作指令的寄存器进行赋值,其中,寄存器值对应相应指令的指令参数,进而可以根据与固定长度操作指令对应的寄存器值获取相应的指令参数,并根据指令参数执行相应的操作;本发明能够根据待处理卷积网络的不同来修改寄存器值进一步修改相应指令的指令参数,不需要再设计大量的独立指令,不仅节约内存,提高深度神经网络编译和映射的效率、降低编译和映射难度,而且使用灵活性强,有利于支持深度学习应用的快速自适应部署。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种卷积网络加速方法的流程示意图;
图2为本发明实施例提供的一种卷积网络加速装置的结构示意图;
图3为本发明实施例提供的一种卷积网络加速系统的结构示意图。
具体实施方式
本发明实施例提供了一种卷积网络加速方法、装置及系统,在使用过程中不仅节约内存,提高深度神经网络编译和映射的效率、降低编译和映射难度,而且使用灵活性强,有利于支持深度学习应用的快速自适应部署。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参照图1,图1为本发明实施例提供的一种卷积网络加速方法的流程示意图。该方法,包括:
S110:获取预先存储的固定长度指令集,固定长度指令集为预先基于待处理卷积网络的结构和参数信息建立的;其中,固定长度指令集中包括多个固定长度赋值指令和固定长度操作指令,每个固定长度赋值指令和每个固定长度操作指令分别对应至少一个寄存器;
需要说明的是,在对待处理卷积网络进行卷积网络加速时,可以预先获取该待处理卷积网络的结构和参数信息,并根据该待处理卷积网络的结构和参数信息建立固定长度指令集,也即固定长度指令序列,其中,该固定长度指令集可以为固定长度RISC指令集,包括多个固定长度子指令,具体可以包括多个固定长度赋值指令和多个固定长度操作指令,并且预先为每个固定长度赋值指令分配至少一个寄存器,为每个固定长度操作指令分配至少一个寄存器,并且将建立好的固定长度指令集进行存储。其中,为了便于存储和简化译码逻辑,本实施例中的每个固定长度赋值指令和每个固定长度操作指令的固定长度均可以为64bit(当然,也可以为其他数值,具体长度可以根据实际需要进行确定,本实施例不做特殊限定),并且每个固定长度赋值指令和每个固定长度操作指令各自对应的寄存器的个数可以根据待处理卷及网络的参数信息中的参数数量决定,由于受指令最大长度限制,所以单条子指令中寄存器个数最多不超过8个,也即,与每条子指令对应的寄存器数量不超过8个,与每条子指令对应的寄存器数量可以根据实际需要进行确定,本申请不做特殊限定。
具体的,可以通过为寄存器赋值来进一步确定相应的子指令的指令参数,也即每条子指令的指令参数由与其对应的寄存器的寄存器值确定,又由于通常卷积相关计算的参数均较长,所以为了能够极大缩短指令长度,实现较短的固定长度子指令,进一步降低译码电路硬件设计的复杂度,本实施例中的每条子指令中具体可以定义对应的一个或多个寄存器的寄存器编码,以便在对相应的子指令解析后可以通过获取寄存器编码确定出与其对应的寄存器,并通过读取寄存器值进一步获取相应的指令参数。由于本实施例中通过对寄存器赋值来进一步确定相应的指令参数,并且寄存器的值可以修改,所以本实施例中的固定长度RISC指令集具有通用性,不受卷积网络规格或类型的限制。
S120:依据与固定长度赋值指令对应的寄存器值对相应的固定长度操作指令的寄存器进行赋值,以便依据寄存器的寄存器值确定相应的指令参数;固定长度赋值指令对应的寄存器值为依据卷积网络的参数信息确定的;
需要说明的是,在对待处理卷积网络进行卷积加速时,可以根据预先存储的地址获取了固定长度指令集后,可以通过执行固定长度指令集中的固定长度赋值指令对相应的固定长度操作指令的寄存器进行赋值,当与固定长度操作指令对应的各个寄存器均被赋值后,该固定长度操作指令的指令参数便确定下来,其中,具体可以根据固定长度赋值指令对应的寄存器的寄存器值对相应的固定长度操作指令的寄存器进行赋值,并且固定长度赋值指令的寄存器值可以为预先根据待处理卷积网络的参数信息确定的。
S130:依据与固定长度操作指令对应的寄存器值获取相应的指令参数,并根据指令参数执行相应的操作。
可以理解的是,本实施例中的当对固定长度操作指令对应的各个寄存器赋值完成后,在执行该固定长度操作指令时,可以根据与该固定长度操作指令对应的各个寄存器的寄存器值确定出该固定长度操作指令的指令参数,并根据该指令参数进一步执行与该固定长度操作指令对应的操作。
可见,本发明通过预先基于待处理卷积网络的结构和参数信息建立固定长度指令集,并且将该固定长度指令集进行存储,其中,该固定长度指令集包括多个固定长度赋值指令和固定长度操作指令,每个固定长度赋值指令和每个固定长度操作指令分别对应至少一个寄存器,并且能够根据卷积网络的参数信息对固定长度赋值指令的寄存器进行预先赋值;通过获取存储的固定长度指令集,并根据固定长度赋值指令对应的寄存器值能够进一步对相应的固定长度操作指令的寄存器进行赋值,其中,寄存器值对应相应指令的指令参数,进而可以根据与固定长度操作指令对应的寄存器值获取相应的指令参数,并根据指令参数执行相应的操作;本发明能够根据待处理卷积网络的不同来修改寄存器值进一步修改相应指令的指令参数,不需要再设计大量的独立指令,不仅节约内存,提高深度神经网络编译和映射的效率、降低编译和映射难度,而且使用灵活性强,有利于支持深度学习应用的快速自适应部署。
在上述实施例的基础上,本实施例对技术方案作了进一步的说明和优化,具体的:
在将预先建立的固定长度指令集存储后,通过加载该固定长度指令集来获取该固定长度指令集中的每条子指令,并对当前获取的子指令进行解析执行,其中,由于固定长度赋值指令对应的寄存器值可以预先根据待处理卷积网络的参数信息进行赋值,并且固定长度操作指令的寄存器值需要在执行固定长度赋值指令时进行赋值,所以在固定长度指令集中最初的几条(具体数量根据待处理卷积网络的结构和参数信息进行确定)指令应该为固定长度赋值指令,以便根据这些固定长度赋值指令对相应的固定长度操作指令的一个或多个寄存器进行赋值,如果在对某个固定长度操作指令的各个寄存器赋值完成后,需要立刻执行该固定长度操作执行,则在固定长度指令集中位于该相应的固定长度赋值指令后可以接一条执行指令,以便根据该执行指令获取并解析对应的固定长度操作指令,例如,在第5条固定长度赋值指令执行完成后,对某个固定长度操作指令中的最后一个需要赋值的寄存器赋值完成,则可以在第5条固定长度赋值指令后接一条执行指令,当然,各个子指令的执行顺序可以根据待处理卷积网络的结构和参数信息进行确定,本实施例不做具体限定。
进一步的,上述S130中依据与固定长度操作指令对应的寄存器值获取对应的指令参数,并根据指令参数执行相应的操作的过程,具体可以为:
对固定长度操作指令进行解析得到固定长度操作指令的指令编码和指令格式,指令格式包括寄存器编码;
依据指令编码以及预先建立的指令编码及操作部件的对应关系,确定出与指令编码对应的目标操作部件;
依据寄存器编码从各个寄存器中确定出与固定长度操作指令对应的寄存器,并获取寄存器的寄存器值;
将与寄存器值对应的指令参数发送至目标操作部件,以便目标操作部件依据指令参数执行相应的操作。
需要说明的是,本实施例中的固定长度操作指令中包括指令编码和指令格式,其中,指令编码能够确定出指令类型,进一步确定出相应的操作类型,其中,可以预先建立指令编码与操作部件的对应关系,每类操作部件用于执行相应的操作类型的指令;指令格式包括寄存器编码,其中,寄存器编码的数量与该固定长度操作指令对应的寄存器数量相同。
具体的,在执行该固定长度操作指令时,可以通过对该固定长度操作指令进行解析,获取与其对应的指令编码和指令格式,并根据该指令编码和预先建立的指令编码及操作部件的对应关系(具体可以为对应关系表)确定出与该指令编码对应的目标操作部件,依据与该固定长度操作指令对应的各个寄存器的寄存器编码从各个寄存器中确定出与固定长度操作指令对应的寄存器(一个或多个,具体根据实际情况确定),并获取与该固定长度操作指令对应的每个寄存器的寄存器值,根据每个寄存器的寄存器值能够进一步获取与该固定长度操作指令对应的指令参数,进而可以将该指令参数发送至上述目标操作部件,并由该目标操作部件根据该指令参数执行相应的固定长度操作指令。
其中,本实施例中的固定长度操作指令可以分为4类,具体可以包括卷积计算指令、数据操作指令、主机交互指令和池化计算指令;本实施例中的固定长度赋值指令可以为通用计算指令,则相应的操作部件具体可以包括卷积网络部件、数据操作部件、主机交互部、池化部件和通用计算部件,具体的,则本实施例中的指令编码与操作部件的对应关系中的指令编码包括与卷积计算指令、数据操作指令、主机交互指令、池化计算指令和通用操作指令分别对应的指令编码。
更进一步的,上述实施例中的S120中依据与固定长度赋值指令对应的寄存器值对相应的固定长度操作指令的寄存器进行赋值的过程,具体可以为:
对固定长度赋值指令进行解析,得到固定长度操作指令的赋值指令编码和赋值指令格式,赋值指令格式包括寄存器编码;
依据赋值指令格式中的寄存器编码从各个寄存器中确定出与固定长度赋值指令对应的寄存器,并获取相应的寄存器值;
依据赋值指令编码以及预先建立的指令编码及操作部件的对应关系,确定出与赋值指令编码对应的通用计算部件;操作部件包括通用计算部件,并使通用计算部件依据与固定长度赋值指令对应的寄存器值对相应的固定长度操作指令的寄存器进行赋值。
具体的,本实施例中在对固定长度赋值指令进行执行时,通过对固定长度赋值指令进行解析能够得到与其对应的赋值指令编码和赋值指令格式,通过上述预先建立的指令编码及操作部件的对应关系,确定出与该赋值指令编码对应的通用计算部件,依据赋值指令格式中的寄存器编码从各个寄存器中确定出与该固定长度赋值指令对应的寄存器,并获取其寄存器值,其中,寄存器值的具体数量根据与该固定长度赋值指令对应的寄存器数量确定,然后将该寄存器值发送至通用计算部件,并通过该通用计算部件根据该寄存器值对相应的固定长度操作指令进行赋值。
可以理解的是,具体可以由卷积网络加速器中的调度核将预存的固定长度指令集加载至指令Cache中,在对固定长度指令集执行读取、解析和指令参数获取的过程,并将指令参数发送至卷积网络加速器中的各个操作部件去执行相应的操作。其中,当调度核读取当前的指令后,对当指令进行解析,确定出其指令编码和寄存器编码,并且若指令编码对应的操作类型为卷积计算,则调度核将获取的指令参数发送给卷积网络部件,该部件按照寄存器中的指令参数执行卷积操作;
若指令编码对应的操作类型为数据操作,则调度核将获取的指令参数发送给数据操作部件,该部件对指令参数中指定的地址空间执行数据操作;数据操作包括数据切分、数据连接、数据附接、数据整形、LOAD、STORE、激活、残差操作中的至少一者。
若指令编码对应的操作类型为通用计算,则调度核将获取的指令参数发送给通用计算部件,由该部件执行ADD、SUB、MOV、SET、CLEAR、WAIT、JMP、CMP中的至少一者。
若指令编码对应的操作类型为主机交互,则调度核将各部件的执行状态与主机执行交互操作,当前的主机交互操作包括RESET、NOTIFY、END中的至少一者。
若指令编码对应的操作类型为池化计算,则调度核将获取的指令参数发送给池化部件,该部件按照寄存器中的参数执行池化操作。
更进一步的,为了满足卷积网络的各种计算需求,本实施例中可以为每个固定长度操作指令分配一个条件寄存器(Creg),并通过该调节寄存器控制该指令是否被执行。
也即,与每个固定长度操作指令分别对应的寄存器包括条件寄存器;相应的,寄存器编码包括条件寄存器编码;
则,在依据指令编码以及预先建立的指令编码及操作部件的对应关系,确定出与指令编码对应的目标操作部件之前,该方法还可以包括:
依据条件寄存器编码从各个寄存器中确定出与固定长度操作指令对应的条件寄存器,并读取条件寄存器的寄存器值;
依据条件寄存器的寄存器值及第一预设规则判断是否执行固定长度操作指令,若是,则执行下一步。
也即,在获取了与固定长度操作指令对应的寄存器编码后,根据该寄存器编码中的条件寄存器编码从各个寄存器中确定出与该固定长度操作指令对应的条件寄存器,并读取该条件寄存器的寄存器值,根据第一预设规则(例如当条件寄存器的寄存器值为1时,则说明执行相应的操作指令,当条件寄存器的寄存器值为0时,不执行相应的操作指令)进一步确定是否执行该固定长度操作指令,若执行,则继续下一步操作,若不执行,则可以继续读取固定长度指令集中的下一个指令。其中,第一预设规则可以根据实际需要进行确定,本实施例不做特殊限定。
更进一步的,在面向多个计算部件的指令乱序发射过程中,为了防止出现RAW(Read After Write,写后读)、WAR(Write After Read读后写)、WAW(Write After Write,写后写)竞争的发生,可以为每个固定长度操作指令分配一个相关寄存器,其中,具体可以为类型为卷积计算指令、数据操作指令和池化计算指令的指令分别分配一个相关寄存器,相应的寄存器编码还包括相关寄存器编码;
则相应的,在当依据条件寄存器的寄存器值确定出执行固定长度操作指令后,在执行依据指令编码以及预先建立的指令编码及操作部件的对应关系,确定出与指令编码对应的目标操作部件的步骤之前,该方法还可以包括:
依据相关寄存器编码从各个寄存器中确定出与固定长度操作指令对应的相关寄存器编码,并读取相关寄存器编码的寄存器值;
依据相关寄存器编码的寄存器值及第二预设规则,确定出与固定长度操作指令相关的操作指令是否执行完毕,若是,则执行依据指令编码以及预先建立的指令编码及操作部件的对应关系,确定出与指令编码对应的目标操作部件的步骤。
需要说明的是,具体可以根据固定长度操作指令对应的相关寄存器的寄存器值及第二预设规则确定出与该固定长度操作指令相关联的操作指令是否执行完毕,如果已经执行完毕,则可以执行依据指令编码以及预先建立的指令编码及操作部件的对应关系,确定出与指令编码对应的目标操作部件的步骤,如没有执行完毕,则不执行下一步,并且等待相关联的操作指令执行完毕后,再执行下一步。其中,第二预设规则可以为相关寄存器的寄存器值为1时,表示相关联的操作指令执行完毕,寄存器值为0时,表示相关联的操作指令没有执行完成;当然,也可以反过来规定,第二预设规则的具体形式可以根据实际情况进行确定,本实施例不做特殊限定。
具体的,本实施例中除了通用计算指令和主机交互指令,可以将每条固定长度操作指令中的第一个寄存器都定义为源寄存器,最后一个寄存器都定义为目标寄存器,这是由于在设计中存在多个计算部件,为提高指令派发效率,引入了记分板的指令动态调度方法,在面向多个计算部件的指令乱序发射过程中,防止出现RAW、WAR、WAW竞争的发生。具体的,在指令执行过程中,可以将上一条操作指令中的目标寄存器作为与其相关联的下一条操作指令的源寄存器,其中,源寄存器即为条件寄存器,当上一条操作指令执行完成后,其目标寄存器的值将发生变化,例如由0变为1,当读取下一条操作指令后,该操作指令的条件寄存器(即其源寄存器)的值为1,则说明上一条相关联的操作指令执行完毕,表示该指令可以执行,并继续执行下一步操作即可。也即,如果派发给两个不同部件的操作指令对应的操作数据不存在数据依赖关系,则操作指令可以直接派发给相应的部件,反之,当存在数据依赖时,为防止出现RAW、WAR、WAW竞争的发生,当前待处理操作指令的源寄存器通常为当前正在执行的指令的目标寄存器,在当前操作指令执行完成后,执行这条操作指令的部件会设置其目标寄存器的值,也就是设置下一条指令的源寄存器的寄存器值,在检测到该寄存器的值后确定不再存在数据依赖从而将待发射指令派发出去。
另外,本实施中还可以引入循环寻址寄存器,在循环计算中,给定起始值和最大值后,系统执行过程中,当寄存器的值累加到最大值后,自动再从起始值开始,避免重复赋值。
还需要说明的是,为了便于理解,本实施中以表1至表9中所列出的内容为例对固定长度指令集中的参数定义、相应的寄存器组、各类指令格式进行举例说明,当然,在实际应用中,固定长度指令集不仅限于本实施例中表1至表9中的特定设计,如指令集中的参数位宽、寄存器个数、指令集宽度、指令编码格式等均可以根据实际需要进行设定,本实施例不做特殊限定。
具体请参照表1至表9,其中,表1为参数定义表,表2为指令集,表3为寄存器组,表4为卷积计算指令格式表,表5为数据操作指令格式表,表6为通用计算指令格式表,表7为主机交互指令格式表,表8为池化计算指令格式表,表9为上下采样指令格式表,其中:
如表1中定义了一种固定长度指令集中使用到的用于卷积网络计算的各种参数及其位宽;
表2中定义了固定长度指令集中所有子指令的指令类型(即指令编码)、指令功能和用到的寄存器(也即指令格式),其中:
1)指令编码为0x0_xx的为卷积计算指令,可以执行一层卷积计算;
2)指令编码为0x1_xx的为数据操作指令,包括卷积网络中用到的数据切分、数据连接、数据附接、数据整形、矩阵向量乘、激活、残差和LOAD、STORE等操作;
3)指令编码为指令编码为0x2_xx的为通用计算指令,包括MOV、ADD、SUB、SET、CLEAR、WAIT、JMP、CMP等常用的寄存器计算操作。其中,根据用32位立即数给64位寄存器的高32位和低32位赋值而分为MOVH和MOVL;根据给循环寻址寄存器的初始值和最高值赋值分为MOVRIH、MOVRIL、MOVREH和MOVREL;另外由于条件寄存器是通过立即数进行赋值和计算,不同于通用寄存器,因此有条件寄存器专用的MOVCH、MOVCL、ADDC和SUBC;还有为了便于条件寄存器在使用中的灵活性和一些实际需求,增加了CMPGTC、CMPGEC、CMPEQC、CMPLTC和CMPLEC等操作;
4)指令编码为0x3_xx的为主机交互指令,包括复位各计算部件、计算完通知主机程序结束和程序结束等操作;
5)指令编码为0x4_xx的为池化计算指令,包括池化计算和配合池化计算用到的上采样和下采样操作;表3中定义了指令集中使用到的寄存器组,包括条件寄存器组、支持循环寻址的寄存器组和通用寄存器组,其中:
1)条件寄存器,每条指令都会包含一个条件寄存器(Creg),通过设置该寄存器的值来控制当前指令是否被执行;
2)循环寻址寄存器,在循环计算中,事先给定起始值和最大值,在执行过程中,当寄存器的值累加到最大值后,会回到起始值再次循环,从而避免了重复赋值;也可作为通用寄存器来存计算参数;
3)通用寄存器,用来存计算参数;
表4中定义了卷积计算指令中的位定义、指令中用到的寄存器的用途及寄存器中包含的参数;
表5中定义了数据操作指令中的位定义、指令中用到的寄存器的用途及寄存器中包含的参数;其中,根据参数量的不同及其对应的寄存器数量不同,将这些指令分为了四组,SPLIT/CONCAT/ATTACH/RESHAPE/ACTIVE为一组,LOAD/STORE为一组,MATVECTMULT为一组,ELTWISE为一组;
表6中定义了通用计算指令中的位定义、指令中用到的寄存器的用途及寄存器中包含的参数;其中,根据参数量的不同及其对应的寄存器数量不同,将这些指令分为了六组,MOVH/MOVL/MOVRIH/MOVRIL/MOVREH/MOVREL为一组,ADD/SUB/MOV/CMP为一组,MOVCH/MOVCL/ADDC/SUBC为一组,CMPGTC/CMPGEC/CMPEQC/CMPLTC/CMPLEC为一组,SET/CLEAR/WAIT为一组,JMP为一组;
表7中定义了主机交互相关指令中的位定义;
表8中定义了池化计算指令中的位定义、指令中用到的寄存器的用途及寄存器中包含的;
表9中定义了上采样、下采样指令中的位定义、指令中用到的寄存器的用途及寄存器中包含的参数。
综上,这些指令均为固定长度RISC指令集,单个指令长度固定(当前为64bit),优点是便于存取,简化译码逻辑。
由表1至表9可知,指令集中定义了全局寄存器,这些寄存器可以通过通用计算指令来进行赋值,这样方便将卷积神经网络中相关计算存到这些寄存器中,在指令格式中可以看到,通过定义每条指令使用的寄存器编号,从而使用相应寄存器中的参数,这样能增强指令编码的灵活性,由于指令中定义的是寄存器的编号,相比在指令中直接使用卷积相关计算的参数,可以极大缩短指令长度,从而实现较短的固定长度指令,进而降低了译码电路硬件设计的复杂度;
在指令格式中我们看到,每条指令的高4bit均指定了一个条件寄存器,通过在指令中指定特定的条件寄存器来控制该指令是否要被执行;这个方便控制在某些条件下禁止部分计算,比如在多batchsize的神经网络并行计算中,只进行部分batch的计算;
在指令格式中可以看到,除了通用计算指令和主机交互指令,每条指令中的第一个寄存器都定义为源寄存器,最后一个寄存器都定义为目标寄存器,这是由于在设计中存在多个计算部件,为提高指令派发效率,引入了记分板的指令动态调度方法,在面向多个计算部件的指令乱序发射过程中,防止出现RAW、WAR、WAW竞争的发生。
表1
/>
/>
/>
表2
/>
/>
/>
/>
/>
表3
表4
/>
表5
/>
/>
表6
/>
表7
表8
表9
在上述实施例的基础上,本发明实施例还相应的提供了一种卷积网络加速装置,具体请参照图2。该装置包括:
获取模块21,用于获取预先存储的固定长度指令集,固定长度指令集为预先基于待处理卷积网络的结构和参数信息建立的;其中,固定长度指令集中包括多个固定长度赋值指令和固定长度操作指令,每个固定长度赋值指令和每个固定长度操作指令分别对应至少一个寄存器;
赋值模块22,用于依据与固定长度赋值指令对应的寄存器值对相应的固定长度操作指令的寄存器进行赋值,以便依据寄存器的寄存器值确定相应的指令参数;固定长度赋值指令对应的寄存器值为依据卷积网络的参数信息确定的;
执行模块23,用于依据与固定长度操作指令对应的寄存器值获取相应的指令参数,并根据指令参数执行相应的操作。
需要说明的是,本实施例中提供的卷积网络加速装置具有与上述实施例中所提供的卷积网络加速方法相同的有益效果,并且对于本实施中所涉及到的卷积网络加速方法的具体介绍请参照上述实施例,本申请在此不再赘述。
在上述实施例的基础上,本发明实施例还提供了一种卷积网络加速系统,具体请参照图3。该系统包括主机端3和卷积网络加速器4,其中:
主机端3,用于将预先基于待处理卷积网络的结构和参数信息建立的固定长度指令集存储至卷积网络加速器的内存中;
卷积网络加速器4,用于执行如上述的卷积网络加速方法。
进一步的,卷积网络加速器4包括调度核41、卷积网络部件42、数据操作部件43、通用计算部件44、主机交互部件45及池化部件46。
需要说明的是,本实施例中提供的卷积网络加速系统具有与上述实施例中所提供的卷积网络加速方法相同的有益效果,并且对于本实施中所涉及到的卷积网络加速方法的具体介绍请参照上述实施例,本申请在此不再赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (9)
1.一种卷积网络加速方法,其特征在于,包括:
获取预先存储的固定长度指令集,所述固定长度指令集为预先基于待处理卷积网络的结构和参数信息建立的;其中,所述固定长度指令集中包括多个固定长度赋值指令和固定长度操作指令,每个所述固定长度赋值指令和每个所述固定长度操作指令分别对应至少一个寄存器;
依据与所述固定长度赋值指令对应的寄存器值对相应的固定长度操作指令的寄存器进行赋值,以便依据所述寄存器的寄存器值确定相应的指令参数;所述固定长度赋值指令对应的寄存器值为依据所述卷积网络的参数信息确定的;
依据与所述固定长度操作指令对应的寄存器值获取相应的指令参数,并根据所述指令参数执行相应的操作;其中:
所述固定长度指令集为固定长度RISC指令集,包括多个固定长度子指令,每个固定长度子指令的指令类型、指令功能和指令格式,包括:
指令编码为0x0_xx的为卷积计算指令,指令功能为执行一层卷积计算;
指令编码为0x1_xx的为数据操作指令,指令功能包括卷积网络中用到的数据切分、数据连接、数据附接、数据整形、矩阵向量乘、激活、残差和LOAD、STORE操作;
指令编码为0x2_xx的为通用计算指令,指令功能为寄存器计算操作;
指令编码为0x3_xx的为主机交互指令,指令功能包括复位各计算部件、计算完通知主机程序结束和程序结束的操作;
指令编码为0x4_xx的为池化计算指令,指令功能包括池化计算和配合池化计算用到的上采样和下采样操作;
所述依据与所述固定长度操作指令对应的寄存器值获取对应的指令参数,并根据所述指令参数执行相应的操作的过程为:
对所述固定长度操作指令进行解析得到所述固定长度操作指令的指令编码和指令格式,所述指令格式包括寄存器编码;
依据所述指令编码以及预先建立的指令编码及操作部件的对应关系,确定出与所述指令编码对应的目标操作部件;
依据所述寄存器编码从各个所述寄存器中确定出与所述固定长度操作指令对应的寄存器,并获取所述寄存器的寄存器值;
将与所述寄存器值对应的指令参数发送至所述目标操作部件,以便所述目标操作部件依据所述指令参数执行相应的操作。
2.根据权利要求1所述的卷积网络加速方法,其特征在于,与每个所述固定长度操作指令分别对应的寄存器包括条件寄存器;所述寄存器编码包括条件寄存器编码;
则,在所述依据所述指令编码以及预先建立的指令编码及操作部件的对应关系,确定出与所述指令编码对应的目标操作部件之前,还包括:
依据所述条件寄存器编码从各个所述寄存器中确定出与所述固定长度操作指令对应的条件寄存器,并读取所述条件寄存器的寄存器值;
依据所述条件寄存器的寄存器值及第一预设规则判断是否执行所述固定长度操作指令,若是,则执行下一步。
3.根据权利要求2所述的卷积网络加速方法,其特征在于,所述与每个所述固定长度操作指令分别对应的寄存器还包括相关寄存器;所述寄存器编码中还包括相关寄存器编码;
则,在当依据所述条件寄存器的寄存器值确定出执行所述固定长度操作指令后,在执行所述依据所述指令编码以及预先建立的指令编码及操作部件的对应关系,确定出与所述指令编码对应的目标操作部件的步骤之前,所述方法还包括:
依据所述相关寄存器编码从各个所述寄存器中确定出与所述固定长度操作指令对应的相关寄存器编码,并读取所述相关寄存器编码的寄存器值;
依据所述相关寄存器编码的寄存器值及第二预设规则,确定出与所述固定长度操作指令相关的操作指令是否执行完毕,若是,则执行所述依据所述指令编码以及预先建立的指令编码及操作部件的对应关系,确定出与所述指令编码对应的目标操作部件的步骤。
4.根据权利要求1所述的卷积网络加速方法,其特征在于,所述依据与所述固定长度赋值指令对应的寄存器值对相应的固定长度操作指令的寄存器进行赋值的过程为:
对所述固定长度赋值指令进行解析,得到所述固定长度操作指令的赋值指令编码和赋值指令格式,所述赋值指令格式包括寄存器编码;
依据所述赋值指令格式中的寄存器编码从各个所述寄存器中确定出与所述固定长度赋值指令对应的寄存器,并获取相应的寄存器值;
依据所述赋值指令编码以及所述预先建立的指令编码及操作部件的对应关系,确定出与所述赋值指令编码对应的通用计算部件;所述操作部件包括所述通用计算部件,并使所述通用计算部件依据与所述固定长度赋值指令对应的寄存器值对相应的固定长度操作指令的寄存器进行赋值。
5.根据权利要求4所述的卷积网络加速方法,其特征在于,所述操作部件还包括:卷积网络部件、数据操作部件、主机交互部件和池化部件。
6.根据权利要求1所述的卷积网络加速方法,其特征在于,每个所述固定长度赋值指令和每个所述固定长度操作指令的长度均为64bit。
7.一种卷积网络加速装置,其特征在于,包括:
获取模块,用于获取预先存储的固定长度指令集,所述固定长度指令集为预先基于待处理卷积网络的结构和参数信息建立的;其中,所述固定长度指令集中包括多个固定长度赋值指令和固定长度操作指令,每个所述固定长度赋值指令和每个所述固定长度操作指令分别对应至少一个寄存器;
赋值模块,用于依据与所述固定长度赋值指令对应的寄存器值对相应的固定长度操作指令的寄存器进行赋值,以便依据所述寄存器的寄存器值确定相应的指令参数;所述固定长度赋值指令对应的寄存器值为依据所述卷积网络的参数信息确定的;
执行模块,用于依据与所述固定长度操作指令对应的寄存器值获取相应的指令参数,并根据所述指令参数执行相应的操作;其中:
所述固定长度指令集为固定长度RISC指令集,包括多个固定长度子指令,每个固定长度子指令的指令类型、指令功能和指令格式,包括:
指令编码为0x0_xx的为卷积计算指令,指令功能为执行一层卷积计算;
指令编码为0x1_xx的为数据操作指令,指令功能包括卷积网络中用到的数据切分、数据连接、数据附接、数据整形、矩阵向量乘、激活、残差和LOAD、STORE操作;
指令编码为0x2_xx的为通用计算指令,指令功能为寄存器计算操作;
指令编码为0x3_xx的为主机交互指令,指令功能包括复位各计算部件、计算完通知主机程序结束和程序结束的操作;
指令编码为0x4_xx的为池化计算指令,指令功能包括池化计算和配合池化计算用到的上采样和下采样操作;
所述依据与所述固定长度操作指令对应的寄存器值获取对应的指令参数,并根据所述指令参数执行相应的操作的过程为:
对所述固定长度操作指令进行解析得到所述固定长度操作指令的指令编码和指令格式,所述指令格式包括寄存器编码;
依据所述指令编码以及预先建立的指令编码及操作部件的对应关系,确定出与所述指令编码对应的目标操作部件;
依据所述寄存器编码从各个所述寄存器中确定出与所述固定长度操作指令对应的寄存器,并获取所述寄存器的寄存器值;
将与所述寄存器值对应的指令参数发送至所述目标操作部件,以便所述目标操作部件依据所述指令参数执行相应的操作。
8.一种卷积网络加速系统,其特征在于,包括主机端和卷积网络加速器,其中:
所述主机端,用于将预先基于待处理卷积网络的结构和参数信息建立的固定长度指令集存储至所述卷积网络加速器的内存中;
所述卷积网络加速器,用于执行如权利要求1至6任意一项所述的卷积网络加速方法。
9.根据权利要求8所述的卷积网络加速系统,其特征在于,所述卷积网络加速器包括调度核、卷积网络部件、数据操作部件、通用计算部件、主机交互部件及池化部件。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910760810.XA CN110516790B (zh) | 2019-08-16 | 2019-08-16 | 一种卷积网络加速方法、装置及系统 |
PCT/CN2019/114537 WO2021031350A1 (zh) | 2019-08-16 | 2019-10-31 | 一种卷积网络加速方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910760810.XA CN110516790B (zh) | 2019-08-16 | 2019-08-16 | 一种卷积网络加速方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110516790A CN110516790A (zh) | 2019-11-29 |
CN110516790B true CN110516790B (zh) | 2023-08-22 |
Family
ID=68626462
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910760810.XA Active CN110516790B (zh) | 2019-08-16 | 2019-08-16 | 一种卷积网络加速方法、装置及系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110516790B (zh) |
WO (1) | WO2021031350A1 (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3346423A1 (en) * | 2017-01-04 | 2018-07-11 | STMicroelectronics Srl | Deep convolutional network heterogeneous architecture system and device |
CN109086875A (zh) * | 2018-08-16 | 2018-12-25 | 郑州云海信息技术有限公司 | 一种基于宏指令集的卷积网络加速方法及装置 |
CN110058883A (zh) * | 2019-03-14 | 2019-07-26 | 成都恒创新星科技有限公司 | 一种基于opu的cnn加速方法及系统 |
CN110058882A (zh) * | 2019-03-14 | 2019-07-26 | 成都恒创新星科技有限公司 | 一种用于cnn加速的opu指令集定义方法 |
CN110069284A (zh) * | 2019-03-14 | 2019-07-30 | 成都恒创新星科技有限公司 | 一种基于opu指令集的编译方法及编译器 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108197705A (zh) * | 2017-12-29 | 2018-06-22 | 国民技术股份有限公司 | 卷积神经网络硬件加速装置及卷积计算方法及存储介质 |
CN109189475B (zh) * | 2018-08-16 | 2022-06-10 | 北京算能科技有限公司 | 可编程人工智能加速器指令集的构建方法 |
-
2019
- 2019-08-16 CN CN201910760810.XA patent/CN110516790B/zh active Active
- 2019-10-31 WO PCT/CN2019/114537 patent/WO2021031350A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3346423A1 (en) * | 2017-01-04 | 2018-07-11 | STMicroelectronics Srl | Deep convolutional network heterogeneous architecture system and device |
CN109086875A (zh) * | 2018-08-16 | 2018-12-25 | 郑州云海信息技术有限公司 | 一种基于宏指令集的卷积网络加速方法及装置 |
CN110058883A (zh) * | 2019-03-14 | 2019-07-26 | 成都恒创新星科技有限公司 | 一种基于opu的cnn加速方法及系统 |
CN110058882A (zh) * | 2019-03-14 | 2019-07-26 | 成都恒创新星科技有限公司 | 一种用于cnn加速的opu指令集定义方法 |
CN110069284A (zh) * | 2019-03-14 | 2019-07-30 | 成都恒创新星科技有限公司 | 一种基于opu指令集的编译方法及编译器 |
Non-Patent Citations (1)
Title |
---|
Detection of the Curves based on Lateral Acceleration using Hidden Markov Models;Roza Maghsood et al;《Procedia Engineering》;第66卷;425434 * |
Also Published As
Publication number | Publication date |
---|---|
CN110516790A (zh) | 2019-11-29 |
WO2021031350A1 (zh) | 2021-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20090271790A1 (en) | Computer architecture | |
JP2006508447A (ja) | データ・プロセッサ用ループ制御回路 | |
CN108572876B (zh) | 一种读写锁的实现方法及装置 | |
US9086911B2 (en) | Multiprocessing transaction recovery manager | |
JP2008529119A (ja) | マルチスレッドプロセッサ | |
CN111666210A (zh) | 一种芯片验证方法及装置 | |
CN110516790B (zh) | 一种卷积网络加速方法、装置及系统 | |
US20110276979A1 (en) | Non-Real Time Thread Scheduling | |
US20030188132A1 (en) | Computer instruction dispatch | |
CN116324718A (zh) | 具有多个提取和解码管线的处理器 | |
CN111241537A (zh) | 任务栈溢出检测方法及系统 | |
US6493781B1 (en) | Servicing of interrupts with stored and restored flags | |
CN116260876A (zh) | 基于K8s的AI应用调度方法、装置及电子设备 | |
CN115202662B (zh) | 一种弱内存序架构下的代码检查方法及相应设备 | |
CN115525343A (zh) | 一种并行译码的方法、处理器、芯片及电子设备 | |
US9176738B2 (en) | Method and apparatus for fast decoding and enhancing execution speed of an instruction | |
WO2022134426A1 (zh) | 可重构处理器中的指令分发方法、系统以及存储介质 | |
JP2010140239A (ja) | 割り込みレイテンシーを短縮する装置及び方法 | |
CN109949819B (zh) | 节省音频处理的程序和数据空间的方法、装置及电子设备 | |
CN111400281B (zh) | 一种面向oss对象存储的gis数据质检与入库方法 | |
US8621470B2 (en) | Wakeup-attribute-based allocation of threads to processors | |
CN109766170A (zh) | 存储器、移动终端及其应用程序的动态重启方法 | |
CN107133081B (zh) | 指令分派方法和解释器 | |
CN113190497B (zh) | 一种可重构处理器的任务处理方法及可重构处理器 | |
CN115392063B (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 |