CN112884127A - 多处理器并行神经网络加速方法、装置、设备和存储介质 - Google Patents
多处理器并行神经网络加速方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN112884127A CN112884127A CN202110226972.2A CN202110226972A CN112884127A CN 112884127 A CN112884127 A CN 112884127A CN 202110226972 A CN202110226972 A CN 202110226972A CN 112884127 A CN112884127 A CN 112884127A
- Authority
- CN
- China
- Prior art keywords
- neural network
- layer
- sub
- processor
- multiprocessor
- 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.)
- Pending
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 119
- 238000000034 method Methods 0.000 title claims abstract description 73
- 230000001133 acceleration Effects 0.000 title claims abstract description 25
- 238000004590 computer program Methods 0.000 claims description 22
- 238000004364 calculation method Methods 0.000 claims description 16
- 238000011176 pooling Methods 0.000 claims description 8
- 238000000547 structure data Methods 0.000 claims description 8
- 238000012216 screening Methods 0.000 claims description 7
- 238000013527 convolutional neural network Methods 0.000 abstract description 11
- 238000010586 diagram Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000009434 installation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 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)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种多处理器并行神经网络加速方法、装置、计算机设备和存储介质,属于神经网络处理领域,具体包括获取所述多处理器中各处理器运行神经网络的理论运算过程,所述多处理器包含多种不同类型的处理器;统计整个神经网络中每一层层结构的计算量;基于所述神经网络的层连接关系,将所述神经网络拆分成多个子网络;根据所述理论运算过程和所述计算量将所述子网络分配到所述处理器生成多种组合,并纪录各组合的处理器运行时间;筛选出所述处理器运行时间最少的组合,并将所述子网络固定分配给所述处理器。通过本申请的处理方案,不受第三方框架的限制,能够快速的实现卷积神经网络的部署。
Description
技术领域
本发明涉及神经网络处理领域,具体涉及一种多处理器并行神经网络加速方法、装置、计算机设备和存储介质。
背景技术
目前人工智能的发展已经很多年,越来越多的机器上部署有人工智能,其中卷积神经网络是较为常用的,且在图像视觉上有很广的应用。为了实现各器件神经网络的快速安装,一般需要在高性能机器上训练模型,再在移动端(手机上,嵌入式系统上)进行部署。一般设定手机上运行是神经网络的计算。随着现在需求的升高,很多卷积神经网络越来越复杂。神经网络越大,计算量就越大,推理的计算时间就越长,在移动端,计算能力有限,以及电池容量的限制,一些大的神经网络,整个计算过程要很长,有些甚至需要几分钟或者更多的时间。如果把网络变小,很多功能无法很好的实现。因此受手机处理器计算能力的限制和卷积神经网络需要巨大计算,很多场景下都使用GPU来进行推理计算的加速,同时很多处理器厂家对手机处理器增加了DSP、NPU、APU等用来提高神经网络计算的协作处理器。如何使用处理器上这些来对神经网络的加速成了各应用程序需要解决的问题。
发明内容
因此,为了克服上述现有技术的缺点,本发明涉提供了一种不受第三方框架的限制,能够快速的实现卷积神经网络的部署的多处理器并行神经网络加速方法、装置、计算机设备和存储介质。
为了实现上述目的,本发明提供一种多处理器并行神经网络加速方法,包括:获取所述多处理器中各处理器运行神经网络的理论运算过程,所述多处理器包含多种不同类型的处理器;统计整个神经网络中每一层层结构的计算量;基于所述神经网络的层连接关系,将所述神经网络拆分成多个子网络;根据所述理论运算过程和所述计算量将所述子网络分配到所述处理器生成多种组合,并纪录各组合的处理器运行时间;筛选出所述处理器运行时间最少的组合,并将所述子网络固定分配给所述处理器。
在其中一个实施例中,获取所述多处理器中各处理器运行神经网络的理论运算过程,包括:获取所述多处理器中各处理器分别运行所述神经网络的输入层、卷积层、池化层、全连接层或者神经网络其他层的理论运算过程。
在其中一个实施例中,所述统计整个神经网络中每一层层结构的计算量,包括:统计整个网络中整个神经网络中每一层层结构需要的乘法和加法的次数;计算所述次数对应的计算量。
在其中一个实施例中,所述基于所述神经网络的层连接关系,将所述神经网络拆分成多个子网络,包括:根据所述计算量的数值,逐层获取层结构以及与该层结构数据处理相关的关联层;判断所述关联层是否与多个层结构并行关联;确定判定为否的关联层与相关的所述层结构属于一个子网络。
在其中一个实施例中,所述根据所述理论运算过程和所述计算量将所述子网络分配到所述处理器生成多种组合,包括:根据所述计算量确定可运行所述子网络的所述处理器;判断所述子网络是否存在可并行运行的关联网络;将判定存在可并行运行的子网络和关联网络分配到不同的所述处理器上,生成多种所述子网络和所述处理器组合。
本发明还提供了一种多处理器并行神经网络加速装置,所述装置包括:获取模块,用于获取所述多处理器中各处理器运行神经网络的理论运算过程,所述多处理器包含多种不同类型的处理器;计算量统计模块,用于统计整个神经网络中每一层层结构的计算量;网络拆分模块,用于基于所述神经网络的层连接关系,将所述神经网络拆分成多个子网络;分配模块,用于根据所述理论运算过程和所述计算量将所述子网络分配到所述处理器生成多种组合,并纪录各组合的处理器运行时间;筛选模块,用于筛选出所述处理器运行时间最少的组合,并将所述子网络固定分配给所述处理器。
本发明还提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述的方法的步骤。
与现有技术相比,本发明的优点在于:对卷积神经网络进行了拆分成子网络,拆分的过程中根据不同处理器的特点进行分配子网络,得出性能最佳的结果的子网络和处理器组合,并能够得到最好的加速效果运行。同时不受第三方框架的限制,能够快速的实现卷积神经网络的部署。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为一个实施例中多处理器并行神经网络加速方法的应用场景图;
图2为一个实施例中多处理器并行神经网络加速方法的流程示意图;
图3为一个实施例中网络拆分步骤的流程示意图;
图4为一个实施例中神经网络拆分示意图;
图5为一个实施例中多处理器并行神经网络加速装置的结构框图;
图6为一个实施例中计算机设备的内部结构图。
具体实施方式
下面结合附图对本申请实施例进行详细描述。
以下通过特定的具体实例说明本申请的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本申请的其他优点与功效。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。本申请还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本申请的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
要说明的是,下文描述在所附权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本申请,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例来说,可使用本文中所阐述的任何数目和方面来实施设备及/或实践方法。另外,可使用除了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践此方法。
还需要说明的是,以下实施例中所提供的图示仅以示意方式说明本申请的基本构想,图式中仅显示与本申请中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
另外,在以下描述中,提供具体细节是为了便于透彻理解实例。然而,所属领域的技术人员将理解,可在没有这些特定细节的情况下实践所述方面。
本申请提供的多处理器并行神经网络加速方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。服务器104可以获取终端102中多处理器中各处理器运行神经网络的理论运算过程,多处理器包含多种不同类型的处理器;服务器104可以统计整个神经网络中每一层层结构的计算量;服务器104基于神经网络的层连接关系,将神经网络拆分成多个子网络;服务器104根据理论运算过程和计算量将子网络分配到处理器生成多种组合,并纪录各组合的处理器运行时间;服务器104筛选出处理器运行时间最少的组合,并将子网络固定分配给终端102的处理器。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式智能设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种多处理器并行神经网络加速方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
步骤202,获取多处理器中各处理器运行神经网络的理论运算过程,多处理器包含多种不同类型的处理器。
服务器获取多处理器中各处理器运行神经网络的理论运算过程,多处理器包含多种不同类型的处理器。处理器可以是CPU、GPU、DSP、NPU、APU等中的任意一种。卷积神经网络包含输入层、卷积层、池化层、全连接层等层结构,一个卷积神经网络可以具有多层卷积层、池化层等。服务器获取神经网络中各个层结构的理论运算过程。在其中一个实施例中,服务器获取多处理器中各处理器分别运行神经网络的输入层、卷积层、池化层、全连接层或者神经网络其他层的理论运算过程。
步骤204,统计整个神经网络中每一层层结构的计算量。
服务器统计整个神经网络中每一层层结构的计算量。在其中一个实施例中,统计整个神经网络中每一层层结构的计算量,包括:统计整个网络中整个神经网络中每一层层结构需要的乘法和加法的次数;计算次数对应的计算量。以卷积层为例,一个k×k的卷积,执行一次卷积操作,需要k×k次乘法操作(卷积核中每个参数都要和特征图上的元素相乘一次),k×k-1次加法操作(将卷积结果,k×k个数加起来)。所以,一次卷积操作需要的乘加次数:(K×K)+(K×K-1)=2×K×K-1。服务器计算整个神经网络中每一层层结构需要的乘法和加法的次数。服务器再计算次数对应的计算量。
步骤206,基于神经网络的层连接关系,将神经网络拆分成多个子网络。
服务器可以遍历神经网络的所有层结构,先确定所有层结构之间的层连接关系,再确定整个神经网络中可以并行计算的层结构,进而将神经网络拆分成多个子网络。
步骤208,根据理论运算过程和计算量将子网络分配到处理器生成多种组合,并纪录各组合的处理器运行时间。
服务器根据理论运算过程和计算量将子网络分配到处理器生成多种组合,并纪录各组合的处理器运行时间。服务器将子网络分配给可以运行该子网络的处理器,并生成多种组合。服务器可以将各种组合分配给终端,终端运行各种组合分别生成处理器运行时间。服务器纪录各组合的处理器运行时间。
步骤210,筛选出处理器运行时间最少的组合,并将子网络固定分配给处理器。
服务器筛选出处理器运行时间最少的组合,并将子网络固定分配给处理器。服务器将处理器运行时间最少的组合加入执行配置文件。服务器可以根据执行配置文件对各终端进行子网络配置,甚至进行参数配置等。终端可以直接获取已存储在子网络配置参数等,而后进行神经网络的执行。
上述多处理器并行神经网络加速方法,对卷积神经网络进行了拆分成子网络,拆分的过程中根据不同处理器的特点进行分配子网络,得出性能最佳的结果的子网络和处理器组合,并能够得到最好的加速效果运行。同时不受第三方框架的限制,能够快速的实现卷积神经网络的部署。
在其中一个实施例中,如图3所示,基于神经网络的层连接关系,将神经网络拆分成多个子网络,包括:
步骤302,根据计算量的数值,逐层获取层结构以及与该层结构数据处理相关的关联层。
服务器可以根据计算量的数值,逐层获取层结构以及与该层结构数据处理相关的关联层。服务器可以先根据计算量的数值直接查找出整个神经网络中计算量最大的层结构,也可以先根据计算量的数值对整个神经网络中的层结构进行排序,再选取计算量较大的层结构。服务器根据每层层结构的输入和输出确定与该层结构数据处理相关的关联层。如图4所示,设定网络中7这一层层结构是计算量最大的层结构。然后通过查找第7层结构的输入和输出层查找和其有关的层结构,如神经网络中第7层结构输入是第6层结构,输出是第8层结构。6和8是和7相关的关联层。
步骤304,判断关联层是否与多个层结构并行关联。
服务器判断关联层是否与多个层结构并行关联。服务器判断关联层和层结构是否为单分支。
步骤306,确定判定为否的关联层与相关的层结构属于一个子网络。
服务器确定判定为否的关联层与相关的层结构属于一个子网络。如图4中的6、7、8、9、10这几个层结构构成的处理链路为单分支,这样这几个层结构组成一个子网络。当服务器确定关联层与多个层结构并行关联时,服务器可以设定输入数据的关联层与该层结构不属于一个子网络;输出数据的关联层与该层结构属于一个子网络。服务器再从剩下的层结构中获取计算量数值次大的层结构。如图4中可以查找到4、5这个分支与6、7、8、9、10可以并行运行,4、5组成一个子网络。根据上述可以确定1、2、3这个分支和11、12这个分支分别分为一个子网络。这样图4中的神经网络可以分成了4个子网络。
在其中一个实施例中,根据理论运算过程和计算量将子网络分配到处理器生成多种组合,包括:根据计算量确定可运行子网络的处理器;判断子网络是否存在可并行运行的关联网络;将判定存在可并行运行的子网络和关联网络分配到不同的处理器上,生成多种子网络和处理器组合。
服务器根据计算量确定可运行子网络的处理器,例如,确定子网络可以分配的处理器,例如CPU、GPU、DSP、NPU、APU等。服务器判断子网络是否存在可并行运行的关联网络,以图4为例,4、5分支与6、7、8、9、10分支可以并行运行。服务器将判定存在可并行运行的子网络和关联网络分配到不同的处理器上,生成多种子网络和处理器组合。例如,服务器将4、5分支与6、7、8、9、10分支分别分配到两个不同的处理器上,增加并行性。
应该理解的是,虽然图2-3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图5所示,提供了一种多处理器并行神经网络加速装置,装置包括获取模块502、计算量统计模块504、网络拆分模块506、分配模块508和筛选模块510,其中:
获取模块502,用于获取多处理器中各处理器运行神经网络的理论运算过程,多处理器包含多种不同类型的处理器。
计算量统计模块504,用于统计整个神经网络中每一层层结构的计算量。
网络拆分模块506,用于基于神经网络的层连接关系,将神经网络拆分成多个子网络。
分配模块508,用于根据理论运算过程和计算量将子网络分配到处理器生成多种组合,并纪录各组合的处理器运行时间。
筛选模块510,用于筛选出处理器运行时间最少的组合,并将子网络固定分配给处理器。
在其中一个实施例中,获取模块包括:
获取单元,用于获取多处理器中各处理器分别运行神经网络的输入层、卷积层、池化层、全连接层或者神经网络其他层的理论运算过程。
在其中一个实施例中,计算量统计模块包括:
统计单元,用于统计整个网络中整个神经网络中每一层层结构需要的乘法和加法的次数。
计算单元,用于计算次数对应的计算量。
在其中一个实施例中,网络拆分模块包括:
关联层获取单元,用于根据计算量的数值,逐层获取层结构以及与该层结构数据处理相关的关联层。
判断单元,用于判断关联层是否与多个层结构并行关联。
判定单元,用于确定判定为否的关联层与相关的层结构属于一个子网络。
在其中一个实施例中,分配模块包括:
处理器确定单元,用于根据计算量确定可运行子网络的处理器。
关联网络判断单元,用于判断子网络是否存在可并行运行的关联网络。
分配单元,用于将判定存在可并行运行的子网络和关联网络分配到不同的处理器上,生成多种子网络和处理器组合。
关于多处理器并行神经网络加速装置的具体限定可以参见上文中对于多处理器并行神经网络加速方法的限定,在此不再赘述。上述多处理器并行神经网络加速装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储神经网络数据、计算量数据等。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种多处理器并行神经网络加速方法。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现以下步骤:获取多处理器中各处理器运行神经网络的理论运算过程,多处理器包含多种不同类型的处理器;统计整个神经网络中每一层层结构的计算量;基于神经网络的层连接关系,将神经网络拆分成多个子网络;根据理论运算过程和计算量将子网络分配到处理器生成多种组合,并纪录各组合的处理器运行时间;筛选出处理器运行时间最少的组合,并将子网络固定分配给处理器。
在一个实施例中,处理器执行计算机程序时实现的获取多处理器中各处理器运行神经网络的理论运算过程,包括:获取多处理器中各处理器分别运行神经网络的输入层、卷积层、池化层、全连接层或者神经网络其他层的理论运算过程。
在一个实施例中,处理器执行计算机程序时实现的统计整个神经网络中每一层层结构的计算量,包括:统计整个网络中整个神经网络中每一层层结构需要的乘法和加法的次数;计算次数对应的计算量。
在一个实施例中,处理器执行计算机程序时实现的基于神经网络的层连接关系,将神经网络拆分成多个子网络,包括:根据计算量的数值,逐层获取层结构以及与该层结构数据处理相关的关联层;判断关联层是否与多个层结构并行关联;确定判定为否的关联层与相关的层结构属于一个子网络。
在一个实施例中,处理器执行计算机程序时实现的根据理论运算过程和计算量将子网络分配到处理器生成多种组合,包括:根据计算量确定可运行子网络的处理器;判断子网络是否存在可并行运行的关联网络;将判定存在可并行运行的子网络和关联网络分配到不同的处理器上,生成多种子网络和处理器组合。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取多处理器中各处理器运行神经网络的理论运算过程,多处理器包含多种不同类型的处理器;统计整个神经网络中每一层层结构的计算量;基于神经网络的层连接关系,将神经网络拆分成多个子网络;根据理论运算过程和计算量将子网络分配到处理器生成多种组合,并纪录各组合的处理器运行时间;筛选出处理器运行时间最少的组合,并将子网络固定分配给处理器。
在一个实施例中,计算机程序被处理器执行时实现的获取多处理器中各处理器运行神经网络的理论运算过程,包括:获取多处理器中各处理器分别运行神经网络的输入层、卷积层、池化层、全连接层或者神经网络其他层的理论运算过程。
在一个实施例中,计算机程序被处理器执行时实现的统计整个神经网络中每一层层结构的计算量,包括:统计整个网络中整个神经网络中每一层层结构需要的乘法和加法的次数;计算次数对应的计算量。
在一个实施例中,计算机程序被处理器执行时实现的基于神经网络的层连接关系,将神经网络拆分成多个子网络,包括:根据计算量的数值,逐层获取层结构以及与该层结构数据处理相关的关联层;判断关联层是否与多个层结构并行关联;确定判定为否的关联层与相关的层结构属于一个子网络。
在一个实施例中,计算机程序被处理器执行时实现的根据理论运算过程和计算量将子网络分配到处理器生成多种组合,包括:根据计算量确定可运行子网络的处理器;判断子网络是否存在可并行运行的关联网络;将判定存在可并行运行的子网络和关联网络分配到不同的处理器上,生成多种子网络和处理器组合。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (8)
1.一种多处理器并行神经网络加速方法,其特征在于,包括:
获取所述多处理器中各处理器运行神经网络的理论运算过程,所述多处理器包含多种不同类型的处理器;
统计整个神经网络中每一层层结构的计算量;
基于所述神经网络的层连接关系,将所述神经网络拆分成多个子网络;
根据所述理论运算过程和所述计算量将所述子网络分配到所述处理器生成多种组合,并纪录各组合的处理器运行时间;
筛选出所述处理器运行时间最少的组合,并将所述子网络固定分配给所述处理器。
2.根据权利要求1所述的多处理器并行神经网络加速方法,其特征在于,获取所述多处理器中各处理器运行神经网络的理论运算过程,包括:
获取所述多处理器中各处理器分别运行所述神经网络的输入层、卷积层、池化层、全连接层或者神经网络其他层的理论运算过程。
3.根据权利要求1所述的多处理器并行神经网络加速方法,其特征在于,所述统计整个神经网络中每一层层结构的计算量,包括:
统计整个网络中整个神经网络中每一层层结构需要的乘法和加法的次数;
计算所述次数对应的计算量。
4.根据权利要求1所述的多处理器并行神经网络加速方法,其特征在于,所述基于所述神经网络的层连接关系,将所述神经网络拆分成多个子网络,包括:
根据所述计算量的数值,逐层获取层结构以及与该层结构数据处理相关的关联层;
判断所述关联层是否与多个层结构并行关联;
确定判定为否的关联层与相关的所述层结构属于一个子网络。
5.根据权利要求1所述的多处理器并行神经网络加速方法,其特征在于,所述根据所述理论运算过程和所述计算量将所述子网络分配到所述处理器生成多种组合,包括:
根据所述计算量确定可运行所述子网络的所述处理器;
判断所述子网络是否存在可并行运行的关联网络;
将判定存在可并行运行的子网络和关联网络分配到不同的所述处理器上,生成多种所述子网络和所述处理器组合。
6.一种多处理器并行神经网络加速装置,其特征在于,所述装置包括:
获取模块,用于获取所述多处理器中各处理器运行神经网络的理论运算过程,所述多处理器包含多种不同类型的处理器;
计算量统计模块,用于统计整个神经网络中每一层层结构的计算量;
网络拆分模块,用于基于所述神经网络的层连接关系,将所述神经网络拆分成多个子网络;
分配模块,用于根据所述理论运算过程和所述计算量将所述子网络分配到所述处理器生成多种组合,并纪录各组合的处理器运行时间;
筛选模块,用于筛选出所述处理器运行时间最少的组合,并将所述子网络固定分配给所述处理器。
7.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述方法的步骤。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110226972.2A CN112884127A (zh) | 2021-03-01 | 2021-03-01 | 多处理器并行神经网络加速方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110226972.2A CN112884127A (zh) | 2021-03-01 | 2021-03-01 | 多处理器并行神经网络加速方法、装置、设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112884127A true CN112884127A (zh) | 2021-06-01 |
Family
ID=76055132
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110226972.2A Pending CN112884127A (zh) | 2021-03-01 | 2021-03-01 | 多处理器并行神经网络加速方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112884127A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113408718A (zh) * | 2021-06-07 | 2021-09-17 | 厦门美图之家科技有限公司 | 设备处理器选择方法、系统、终端设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110298437A (zh) * | 2019-06-28 | 2019-10-01 | Oppo广东移动通信有限公司 | 神经网络的分割计算方法、装置、存储介质及移动终端 |
CN110633149A (zh) * | 2019-09-10 | 2019-12-31 | 中国人民解放军国防科技大学 | 均衡非结构网格单元计算量的并行负载均衡方法 |
CN110674936A (zh) * | 2019-09-24 | 2020-01-10 | 上海寒武纪信息科技有限公司 | 一种神经网络处理方法、装置、计算机设备及存储介质 |
WO2020040599A1 (en) * | 2018-08-23 | 2020-02-27 | Samsung Electronics Co., Ltd. | Electronic device and operating method thereof of processing neural network model by using plurality of processors |
US20200082274A1 (en) * | 2018-09-11 | 2020-03-12 | Apple Inc. | Compiling models for dedicated hardware |
CN112084038A (zh) * | 2020-09-23 | 2020-12-15 | 安徽寒武纪信息科技有限公司 | 神经网络的内存分配方法及装置 |
US20210012207A1 (en) * | 2019-07-09 | 2021-01-14 | Qualcomm Incorporated | Run-time neural network re-allocation across heterogeneous processors |
-
2021
- 2021-03-01 CN CN202110226972.2A patent/CN112884127A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020040599A1 (en) * | 2018-08-23 | 2020-02-27 | Samsung Electronics Co., Ltd. | Electronic device and operating method thereof of processing neural network model by using plurality of processors |
US20200082274A1 (en) * | 2018-09-11 | 2020-03-12 | Apple Inc. | Compiling models for dedicated hardware |
CN110298437A (zh) * | 2019-06-28 | 2019-10-01 | Oppo广东移动通信有限公司 | 神经网络的分割计算方法、装置、存储介质及移动终端 |
US20210012207A1 (en) * | 2019-07-09 | 2021-01-14 | Qualcomm Incorporated | Run-time neural network re-allocation across heterogeneous processors |
CN110633149A (zh) * | 2019-09-10 | 2019-12-31 | 中国人民解放军国防科技大学 | 均衡非结构网格单元计算量的并行负载均衡方法 |
CN110674936A (zh) * | 2019-09-24 | 2020-01-10 | 上海寒武纪信息科技有限公司 | 一种神经网络处理方法、装置、计算机设备及存储介质 |
CN112084038A (zh) * | 2020-09-23 | 2020-12-15 | 安徽寒武纪信息科技有限公司 | 神经网络的内存分配方法及装置 |
Non-Patent Citations (1)
Title |
---|
王丽;郭振华;曹芳;高开;赵雅倩;赵坤;: "面向模型并行训练的模型拆分策略自动生成方法", 计算机工程与科学, no. 09, 15 September 2020 (2020-09-15) * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113408718A (zh) * | 2021-06-07 | 2021-09-17 | 厦门美图之家科技有限公司 | 设备处理器选择方法、系统、终端设备及存储介质 |
CN113408718B (zh) * | 2021-06-07 | 2024-05-31 | 厦门美图之家科技有限公司 | 设备处理器选择方法、系统、终端设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111225050B (zh) | 云计算资源分配方法及装置 | |
CN112559163A (zh) | 优化张量计算性能的方法及装置 | |
CN111666131A (zh) | 负载均衡分配方法、装置、计算机设备和存储介质 | |
CN111400555A (zh) | 图数据查询任务处理方法、装置、计算机设备和存储介质 | |
CN112231054A (zh) | 基于k8s集群的多模型推理服务部署方法及装置 | |
CN107797865A (zh) | 用户任务处理方法及应用服务器 | |
CN112884127A (zh) | 多处理器并行神经网络加速方法、装置、设备和存储介质 | |
CN111160516A (zh) | 一种深度神经网络的卷积层稀疏化方法及装置 | |
CN114444676A (zh) | 模型通道剪枝方法、装置、计算机设备和存储介质 | |
CN113283575A (zh) | 用于重构人工神经网络的处理器及其操作方法、电气设备 | |
CN108601027B (zh) | 频谱资源分配方法、装置、计算机设备和存储介质 | |
CN108648136B (zh) | 对二维查找表进行压缩的方法及装置 | |
CN113672489B (zh) | 超级计算机的资源性能等级确定方法及设备 | |
CN106844037B (zh) | 一种基于knl的测试方法及系统 | |
CN115941622A (zh) | 一种带宽调节方法、系统、设备及存储介质 | |
CN116303343A (zh) | 数据分片方法、装置、电子设备及存储介质 | |
CN113157806B (zh) | 网格数据分布式存储服务系统、方法、装置、设备及介质 | |
CN114897426A (zh) | 分案信息处理方法、装置、计算机设备及存储介质 | |
CN113412493B (zh) | 基于推理引擎的计算资源分配方法、装置和计算机设备 | |
CN112118135A (zh) | 云边协同架构工业互联网平台的最小资源配置方法和装置 | |
CN111325339A (zh) | 人工智能处理器执行学习任务的方法及相关产品 | |
CN111240830A (zh) | 一种公链合约资源分配方法、装置、电子设备、存储介质 | |
Barack et al. | Effectiveness of code refactoring techniques for energy consumption in a mobile environment | |
CN115328631A (zh) | 大数据任务调度模型训练方法、装置、设备及存储介质 | |
CN115361293B (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 |