CN112749778B - 一种强同步下的神经网络映射方法及装置 - Google Patents
一种强同步下的神经网络映射方法及装置 Download PDFInfo
- Publication number
- CN112749778B CN112749778B CN201911035345.XA CN201911035345A CN112749778B CN 112749778 B CN112749778 B CN 112749778B CN 201911035345 A CN201911035345 A CN 201911035345A CN 112749778 B CN112749778 B CN 112749778B
- Authority
- CN
- China
- Prior art keywords
- stage
- phase
- trimming
- neural network
- balancing
- 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
- 238000013507 mapping Methods 0.000 title claims abstract description 67
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 49
- 238000009966 trimming Methods 0.000 claims abstract description 73
- 238000012545 processing Methods 0.000 claims abstract description 62
- 238000004364 calculation method Methods 0.000 claims abstract description 38
- 238000013527 convolutional neural network Methods 0.000 claims abstract description 20
- 239000013598 vector Substances 0.000 claims description 36
- 238000004590 computer program Methods 0.000 claims description 7
- 230000001105 regulatory effect Effects 0.000 claims description 5
- 238000004422 calculation algorithm Methods 0.000 abstract description 19
- 230000008569 process Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000012854 evaluation process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 238000012827 research and development Methods 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/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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- 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)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Complex Calculations (AREA)
- Multi Processors (AREA)
- Image Analysis (AREA)
Abstract
本公开提供了一种强同步下的神经网络映射方法及装置,该方法包括:将卷积神经网络中各网络层针对预设特征图的计算任务映射至芯片的至少一个处理单元上;获取芯片中各处理单元中完成所述计算任务所需的阶段Phase数目,并对多个处理单元的Phase数目进行第一阶段配平;将卷积神经网络中各网络层针对预设特征图的计算任务映射至经过第一阶段配平后的芯片的至少一个处理单元上。在本公开所提供方案中,在一个同步单位的约束下,可以将神经网络映射前进行一阶段配平,并给出每个阶段的以资源配平为目标及满足资源约束条件的映射算法,相较传统方案,本实施例的神经网络映射方法可以在同步约束下更好的解决众核负载均衡的问题。
Description
技术领域
本公开涉及神经网络技术领域,特别是涉及一种强同步下的神经网络映射方法及装置。
背景技术
随着人工智能智能技术在各个领域的不断应用,芯片的研发如火如荼。大多数人工智能的主要目的都是更快或者更低功耗地运行芯片,而神经网络算法拥有高计算量、高并行度、资源分布不均衡的特点,因此,如何将神经网络算法映射到芯片上便成为了一个重要的问题。
发明内容
鉴于上述问题,本公开提供了一种克服上述问题或至少部分地解决了上述问题的一种强同步下的神经网络映射方法及装置。
根据本公开的一个方面,提供了一种强同步下的神经网络映射方法,应用于包括多个处理单元的芯片,所述方法包括:
获取所述芯片中各处理单元中完成预设特征图所需的阶段Phase数目,并对所述多个处理单元的Phase数目进行配平;
基于各所述处理单元配平后的Phase数目,将所述卷积神经网络中各网络层针对所述预设特征图的计算任务映射至所述芯片的至少一个处理单元上。
可选地,所述对所述多个处理单元的Phase数目进行配平,包括:
判断是否存在第一阶段配平下降方向;
若是,则计算所述第一阶段配平基准,并根据所述第一阶段基准进行第一阶段配平;
获取各Phase中的MAC数目,基于所述MAC数目进行第二阶段配平。
可选地,所述判断是否存在第一阶段配平下降方向,包括:
获取预设的配平向量,基于所述配平向量判断是否存在第一阶段配平下降方向。
可选地,所述配平向量p的公式如下:
p=(pr,px,pf,py,pw)
其中,pr,用于调节一个Phase内的MAC数;
px,用于调节Phase数;
pf,用于调节一个Phase内的MAC数;
py,用于调节Phase数;
pw,用于调节Phase数与Phase内MAC数。
可选地,所述计算所述第一阶段配平基准,包括:
获取各所述处理单元的负载,基于各所述处理单元的负载设置配平的基准负载,将所述基准负载作为所述第一阶段配平基准。
可选地,所述根据所述第一阶段基准进行第一阶段配平,包括:
在所述配平向量p中提取第一配平向量p1,根据所述第一阶段基准利用所述第一配平向量进行第一阶段配平;
其中,第一配平向量为p1,p1=(px,py,pw)。
可选地,获取各Phase中的MAC数目,基于所述MAC数目进行第二阶段配平,包括:
对于任一Phase,获取所述Phase中的MAC数目,判断是否存在第二阶段配平下降方向;
若是,则计算所述第二阶段配平基准,并根据所述第二阶段基准进行第一阶段配平。
可选地,所述将所述卷积神经网络中各网络层针对所述预设特征图的计算任务映射至经过第二阶段配平后的所述芯片的至少一个处理单元上之后,还包括:
迭代进行所述第一阶段配平和第二阶段配平。
根据本公开的又一个方面,还提供了一种强同步下的神经网络映射装置,应用于芯片,包括:
配平模块,配置为获取所述芯片中各处理单元中完成预设特征图所需的阶段Phase数目,并对所述多个处理单元的Phase数目进行配平;
映射模块,配置为基于各所述处理单元配平后的Phase数目,将所述卷积神经网络中各网络层针对所述预设特征图的计算任务映射至所述芯片的至少一个处理单元上。
根据本公开的又一个方面,还提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行以实现上述任一项所述的强同步下的神经网络映射方法。
根据本公开的又一个方面,还提供了一种计算机程序产品,其特征在于,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如上述任一项所述的强同步下的神经网络映射方法。
本公开提出一种强同步下的神经网络映射方法及装置,在本公开所提供方案中,在一个同步单位的约束下,可以将神经网络映射前进行一阶段配平与二阶段配平,并给出每个阶段的以资源配平为目标及满足资源约束条件的映射算法,其中资源配平及资源约束会综合抽象为下降可行方向。相较传统算法,本实施例的神经网络映射方法可以在同步约束下更好的解决众核负载均衡的问题。
上述说明仅是本公开技术方案的概述,为了能够更清楚了解本公开的技术手段,而可依照说明书的内容予以实施,并且为了让本公开的上述和其它目的、特征和优点能够更明显易懂,以下特举本公开的具体实施方式。
根据下文结合附图对本公开具体实施例的详细描述,本领域技术人员将会更加明了本公开的上述以及其它目的、优点和特征。
附图说明
通过阅读下文优选实施方式的详细描述,各种其它的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了传统方案的神经网络映射示意图;
图2示出了本发明一实施例的神经网络映射示意图;
图3示出了本发明另一实施例的神经网络映射示意图;
图4示出了本公开一实施例的不同网络层的Phase数差异示意图;
图5示出了本公开一实施例的不同网络层的MAC数差异示意图;
图6示出了本公开一实施例的强同步下的神经网络映射方法流程示意图;
图7示出了本公开一实施例的按负载对PE排序示意图;
图8示出了本公开一实施例的线性插值并选取配平基准;
图9示出了本公开一实施例的卷积计算编码示意图;
图10示出了本公开另一实施例的强同步下的神经网络映射方法流程示意图;
图11示出了本公开又一实施例强同步下的神经网络映射方法流程示意图;
图12示出了本公开一实施例的强同步下的神经网络映射装置结构示意图;
图13示出了本公开另一实施例的强同步下的神经网络映射装置结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
将任务分配到处理器上运行的算法一般称作调度算法,调度分为静态调度与动态调度。所谓静态调度,就是指在可并行算法执行前,制定好调度的策略,运行时完全按照制定好的策略运行。动态调度则不同,动态调度会在并行算法运行时,根据自身及环境的状态,决定下一步要怎样调度。本公开将关注神经网络的“映射”过程,这里的映射狭义上指的是一种静态调度算法,强调将算法的某一部分映射到芯片的处理单元(ProcessingElement,PE)上,每个处理单元运行且只运行被映射的那部分算法。
一般来讲,为了发挥神经网络高度可并行的特点,芯片会有多个PE,且每个PE可以并行工作。一个朴素的映射算法是神经网络的每一层依次映射到每个PE,直到将所有层分配完为止。图1示出了传统方案的神经网络映射示意图,如图1所示,神经网络共有Layer0、Layer1、Layer2、Layer3、Layer4、Layer5六层,则会分别映射到PE0、PE1、PE2、PE3、PE4、PE5。由此可知,通过简单的映射,每个PE的负载是很不均衡的,造成了很多PE计算资源的浪费。
在并行计算领域,还涉及其他负载均衡的方法,例如,可以将计算量比较大的层拆分,利用多个PE计算一层,减少高负载PE的负载量,从而提高负载均衡水平,如图2所示,将计算量比较大的Layer5进行拆分,分别映射至PE5和PE6。除上述介绍的之外,还可以将负载比较小的层进行融合,即一个PE可以计算多层,这样可以提高这些PE的计算利用率,提高负载均衡水平,如图3所示,将Layer0和Layer1进行融合,并共同映射至PE0。
实际应用中,一些芯片在运行神经网络算法时,为了保证神经网络计算时序正确、内存读取不冲突、控制简单等等,采用了一些强同步机制。举例来说,将卷积神经网络映射到芯片上,所有的PE拥有一个强同步单位Phase(阶段),在负载均衡之前,一层卷积中的一个Phase计算对应一个滑窗。其中,一层卷积包括多个滑窗计算,一个Phase完成一个滑窗,因此,一层卷积则需要多个Phase完成。每经过一个Phase,所有PE经过一次强同步。每个Phase内,PE完成所负责滑窗的卷积运算。因为神经网络的不均衡性,每一层网络的Phase数可能差别很大。
如图4所示,假设网络只有两层网络层,并且这两层网络映射到两个PE上,分别为PE0、PE1,由PE0和PE1完成相应网络层的计算。网络计算完一张输入特征图需要16个Phase,PE0工作16个Phase,PE1工作9个Phase,这样PE1便有7个Phase在空闲,造成了计算资源的浪费。
另外,在每个Phase内部不同层的计算量也可能是不一样的,如图5所示,可通过运算所需的MAC(Multiply Accumulate,乘累加运算)数来衡量各网络层的计算量。本公开中的Phase和MAC都可以看作是一种负载单位,即描述工作量的单位,而工作量在芯片上体现为工作时长,因此,在芯片中,MAC数可以正比等价为消耗芯片的clock数(时钟周期)。图5,第一层网络层的滑窗是3x3,所以MAC=3x3=9。
每个PE在繁忙的Phase中,所需的MAC长度也不一样,称之为Phase长度。由于Phase为所有PE之间的强同步,所以整体的Phase长度只能按每个PE最大的所需Phase长度计算,例如,Phase长度为9MAC。这样,即便在PE1繁忙的Phase中,PE1也不会一直工作,其在繁忙Phase中的计算利用率也只有
强同步的出现,导致计算负载分为了两个阶段。之前介绍的拆分、融合这样的负载均衡方法无法直接应用于这种情况下。因此,可两阶段负载均衡,即两阶段配平。第一阶段为Phase数的配平,相应利用率为Phase利用率,记作Use(1)。假设PEi完成一张特征图所需的总Phase数为Pi,整个网络共需要n个PE,芯片全局最大Phase数为:
则PEi的第一阶段利用率为:
配平的第二阶段为Phase内MAC(或clock)的配平,相应的利用率为Phase内MAC利用率,记作Use(2)。假设PEi一个繁忙Phase内所需的MAC数为PMaci,芯片全局最大的Phase长度(Phase长度即为Phase内clock数)为:
则PEi的第二阶段利用率为:
则PEi的的总计算利用率为:
即n个PE的全局利用率(也可称为平均利用率)为:
其中,i与j含义相同,用于表示第i个,或第j个PE,且i、j均为大于1的自然数。
GlobalUse是最终要优化的目标。然而,发现一阶段利用率与二阶段利用率通过乘累加的方式混杂在一起,即便每个阶段的平均利用率都很高,总体利用率也不一定高。将GlobalUse作为目标一步完成优化任务是很困难的。而且,两个阶段之间可能相互影响,即优化一个阶段的利用率,可能会影响另一个阶段的利用率,很难解决强同步下的神经网络映射负载均衡问题。因此,本公开提供一种强同步下的神经网络映射方法,以解决强同步下的神经网络映射负载均衡问题,完成GlobalUse的优化任务。
本公开实施例的强同步下的神经网络映射方法,应用于包括多个处理单元的芯片,例如人工智能芯片,并且在芯片实现强同步的条件下,参见图6可知,本实施例提供的强同步下的神经网络映射方法包括:
S601,将卷积神经网络中各网络层针对预设特征图的计算任务映射至所述芯片的至少一个处理单元上;
S602,获取芯片中各处理单元中完成上述计算任务所需的阶段Phase数目,并对多个处理单元的Phase数目进行第一阶段配平;
S603,基于各处理单元配平后的Phase数目,将卷积神经网络中各网络层针对预设特征图的计算任务映射至经过第一阶段配平后的芯片的至少一个处理单元上。
上文介绍,一层卷积包括多个滑窗计算,一个Phase完成一个滑窗,一层卷积则需要多个Phase完成。每经过一个Phase,所有PE经过一次强同步。每个Phase内,PE完成所负责滑窗的所有卷积运算。因此,在将神经网络层分别映射至所述芯片的各处理单元之后,可以获取各处理单元的Phase数目,进而执行配平。
本公开实施例可以先将神经网络对预设特征图的计算任务映射至芯片的至少一个处理单元上,进而执行上述步骤S602以基于各处理单元完成所分配计算任务的Phase数据,从而对多个处理单元的Phase数目进行第一阶段配平。可选地,进行第一阶段配平时,可以包括:判断是否存在第一阶段配平下降方向;若是,则计算第一阶段配平基准,并根据所述第一阶段基准进行第一阶段配平。
本实施例中,对于芯片的任意一个处理单元,均可以获取其Phase数目,进而对总的Phase数目进行第一阶段配平,其可以包括:判断是否存在第一阶段配平下降方向。在判断是否存在第一阶段配平下降方向,即判断应用一种配平技术是否会使全局利用率1-GlobalUse不上升,即配平效果不会变得更差。这里的下降方向就是一种配平技术可以在本阶段可以应用的限度,在此方向限定下配平,以尽量保证算法迭代过程GlobalUse不下降。下降方向,就是在当前的向量下,浪费的计算资源更少,即怎样改变这个向量会使1-GlobalUse下降。因此,判断是否存在第一阶段配平的下降方向时,即可以获取预设的配平向量,基于该配平向量判断是否存在第一阶段配平下降方向。
在本公开一可选实施例中,预设的配平向量p的公式可以如下:
p=(pr,px,pf,py,pw)
其中,pr,用于调节一个Phase内的MAC数;
px,用于调节Phase数;
pf,用于调节一个Phase内的MAC数;
py,用于调节Phase数;
pw,用于调节Phase数与Phase内MAC数。
以上述配平向量为例,比如pr加1可以使1-GlobalUse下降,那么(1,0,0,0,0)就是一个下降方向。在本实施例中,可在pr、px、pf、py、pw五个方向分别加1,以选取使全局利用率GlobalUse不下降的最优效果。
如果判断存在第一阶段配平下降方向,则可以计算第一阶段配平基准。可选地,可以获取各所述处理单元的负载,基于各处理单元的负载设置配平的基准负载,将该基准负载作为所述第一阶段配平基准。
可选地,设置基准负载时,作为一种实施方式,可以在多个处理单元PE中选定基准PE,即,以某一PE所负责任务的负载为基准负载,将尽量向此PE的负载看齐。在另外一种实施方式中,可以设置配平比率,即,将所有的PE按负载排序,如图7所示,将PE0-PE4按照负载从高到低进行排序。进一步地,将图7中所有PE的负载进行线性插值,并将横坐标缩放到0到1,然后选取一点作为配平基准,如图8所示。
确定配平基准后,可以利用预设的配平方式进行配平。例如,配平时可以设置一个配平的基准负载load_base,超过此负载的可以计算出一个并行度,比如配平基准是2,负载是3,则理想的并行度是2,后续步骤会根据此并行度分配并行参数。本公开实施例中,可基于上述配平向量p中提取第一配平向量p1,根据第一阶段基准利用所述第一配平向量进行第一阶段配平;其中,第一配平向量可以为p1,p1=(px,py,pw)。
前文介绍,配平向量p=(pr,px,pf,py,pw),及本实施例中提供了五种配平技术,分别如下:
pr:parallelism of reduction loop,在reduction loop方向上的并行度。
px:parallelism of x loop,在x loop方向上的并行度。
pf:parallelism of feature loop,在输出feature loop上的并行度。
py:parallelism of y loop,在y loop方向上的并行度。
pw:phase window,一个Phase计算的滑窗数。
以上loop的命名,基于卷积运算的标准for循环,卷积for循环标准描述如下:
卷积运算包含6层循环,可看作6个方向:x,y,f,r,ky,kx。6个方向前加n(number)即表示这个方向上的大小,如图9(其中nix,niy表示number of input x和number ofinput y)。将上述五种方式技术起来,即得到配平向量,每种技术对于配平会产生不同的效果。图9示出了本公开实施例的卷积计算编码示意图。
pr:调节一个Phase内的MAC数,但是对Phase数无影响。所以当一个Phase内的负载较大时,可以增大pr,以减少Phase内的MAC数。由于其无冗余存储,且对MAC并行度影响较大,因此可主要用于第二阶段配平。
px:调节Phase数,对Phase内MAC无影响。所以当一个PE包含的Phase数过大时,可以增大px。其限制pw最大值,输入和权重存储冗余,可主要用于第一阶段配平。
pf:调节一个Phase内的MAC数,但是对Phase数无影响。所以当一个Phase内的负载较大时,可以增大pf,以减少Phase内的MAC数。其输入冗余存储,可能造成复杂路由,可主要用于第二阶段配平。
py:调节Phase数,对Phase内MAC无影响。所以当一个PE包含的Phase数过大时,可以增大py。其限制pw最大值,输入和权重存储冗余,可主要用于第一阶段配平。
pw:调节Phase数与Phase内MAC数。当增大pw时,Phase数减少(pw为一个Phase计算的滑窗数,一层网络的总滑窗数是不变的,增大pw,所需的Phase也会减小),Phase内MAC数增大。其限制px最大值,可用于第一或第二阶段配平。
在本公开一可选实施例中,在第一阶段配平结束并将神经网络各网络层对预设特征图的计算任务映射至处理单元上之后,还可以进行第二阶段配平,即;获取各Phase中的MAC数目,基于MAC数目进行第二阶段配平,并且在第二阶段配平完成之后,再次将卷积神经网络中各网络层针对预设特征图的计算任务映射至经过第二阶段配平后的芯片的至少一个处理单元上。本实施例中,第二阶段配平的方式类似于第一阶段配平,其可以包括:获取各phase的MAC数目,判断是否存在第第二阶段配平下降方向;若是,则计算第二阶段配平基准,并根据所述第二阶段基准进行第二阶段配平。其中,对于判断是否存在第第二阶段配平下降方向以及计算第二阶段配平基准的方式可参见第一阶段配平时所采用的方式,此处不再赘述。
进一步地,在执行第二阶段配平时,可以在配平向量中提取第二配平向量p2,根据第二阶段基准利用所述第二配平向量进行第二阶段配平;其中,第二配平向量可为p2,p2=(pr,pf,pw)。
另外,如果判断不存在第一阶段配平下降方向或是不存在第二配平下降方向,则说明此时已达到配平要求或是无法继续执行,此时,配平结束。
在本发明另一可选实施例中,假设在执行第一阶段配平和第二阶段配平之后还存在第一阶段配平下降方向或第二阶段配平下降方向,此时,可进一步迭代进行第一阶段配平和第二阶段配平,直至达到配平要求或是无法再继续配平。
图10示出了本公开一实施例的强同步下的神经网络映射方法流程示意图,参见图10可知,本实施例中主要包两个阶段的配平,其包括:
步骤S1001,将卷积神经网络中各网络层针对预设特征图的计算任务映射至芯片上后,判断是否存在第一阶段的配平方向;若是,则执行步骤S1002,若否,则执行步骤S1004;
步骤S1002,计算第一阶段配平基准;
步骤S1003,根据第一阶段配平基准进行第一阶段配平;
步骤S1004,判断是否存在第二阶段的配平方向;若是,则执行步骤S1005,若否,则执行步骤S1007;
步骤S1005,计算第二阶段配平基准;
步骤S1006,根据第二阶段配平基准进行第二阶段配平;
步骤S1007,判断是否达到配平要求或无法继续;若是,则结束;若否,则返回执行步骤S1001。
本实施例以两阶段配平为例,其过程可以归纳为是:映射→第一阶段配平→映射→第二阶段配平→映射→第一阶段配平,以进行两个阶段间的迭代,减少两个阶段的相互影响。在本实施例中,进行映射时,可以通过一个硬件的仿真器,迭代过程中在这个仿真器中进行映射算法的评估,最终得到一个好的映射方案,再应用到真正的硬件上。这个评估过程,可将策略映射到仿真器上。
在本公开实施例中,如果芯片存在多层的同步机制,则配平的阶段数将超过2。图11示出了本公开又一实施例强同步下的神经网络映射方法流程示意图,参见图11,在本实施例中,若步骤S1004判断不存在第二阶段配平的下降方向时,则执行步骤S1008;
步骤S1008,判断是否存在第三阶段的配平方向;若是,则执行步骤S1009,若否,则执行步骤S1007;
步骤S1009,计算第三阶段配平基准;
步骤S1010,根据第三阶段配平基准进行第三阶段配平。
举例来说,芯片为了实现高度并行,可能会有脉冲阵列单元,一个脉冲阵列单元可以在一个时钟周期内完成大量的乘累加计算。假设一个脉冲阵列单元为64并行度,即一个时钟周期可以最多完成64次乘累加计算。如果此时钟周期的计算量不足64个次乘累加计算,则该时钟周期的计算资源便没有被充分利用。在这种情况下,时钟作为一个强同步单位,加上之前的Phase同步,会将配平的阶段的数变为三个阶段。
基于同一发明构思,本公开实施例还提供了一种强同步下的神经网络映射装置,应用于芯片,如图12所示,该装置可以包括:
映射模块1210,配置为将卷积神经网络中各网络层针对预设特征图的计算任务映射至所述芯片的至少一个处理单元上;
第一配平模块1210配置为获取所述芯片中各处理单元中完成所述计算任务所需的阶段Phase数目,并对所述多个处理单元的Phase数目进行第一阶段配平;
所述映射模块1210,还配置为基于各所述处理单元配平后的Phase数目,将所述卷积神经网络中各网络层针对所述预设特征图的计算任务映射至经过第一阶段配平后的所述芯片的至少一个处理单元上。
在本公开一可选实施例中,配平模块1220还可以配置为:
判断是否存在第一阶段配平下降方向;
若是,则计算所述第一阶段配平基准,并根据所述第一阶段基准进行第一阶段配平;
获取各Phase中的MAC数目,基于所述MAC数目进行第二阶段配平。
在本公开一可选实施例中,配平模块1220还可以配置为:获取预设的配平向量,基于所述配平向量判断是否存在第一阶段配平下降方向。
在本公开一可选实施例中,配平模块1220还可以配置为:
获取各所述处理单元的负载,基于各所述处理单元的负载设置配平的基准负载,将所述基准负载作为所述第一阶段配平基准。
在本公开一可选实施例中,配平模块1220还可以配置为:
在所述配平向量p中提取第一配平向量p1,根据所述第一阶段基准利用所述第一配平向量进行第一阶段配平;
其中,第一配平向量为p1,p1=(px,py,pw)。
在本公开一可选实施例中,如图13所示,上述装置还可以包括:
第二配平模块1230,配置为获取各Phase中的MAC数目,基于所述MAC数目进行第二阶段配平;
映射模块1210还可以配置为将所述卷积神经网络中各网络层针对所述预设特征图的计算任务映射至经过第二阶段配平后的所述芯片的至少一个处理单元上。
在本公开一可选实施例中,第二配平模块1230还可以配置为:对于任一Phase,获取所述Phase中的MAC数目,判断是否存在第二阶段配平下降方向;
若是,则计算所述第二阶段配平基准,并根据所述第二阶段基准进行第一阶段配平。
基于同一发明构思,本公开实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行以实现上述任一实施例所述的强同步下的神经网络映射方法。
基于同一发明构思,本公开实施例还提供了一种计算机程序产品,其特征在于,当所述计算机程序产品在计算机上运行时,使得所述计算机执行上述任一实施例所述的强同步下的神经网络映射方法。
本公开实施例提出一种强同步下的神经网络映射方法及装置,在本公开所提供方案中,在一个同步单位的约束下,可以将神经网络映射前进行一阶段配平与二阶段配平,并给出每个阶段的以资源配平为目标及满足资源约束条件的映射算法,其中资源配平及资源约束会综合抽象为下降可行方向。进一步地,如果有多(m)个同步单位,则映射算法可以扩展为多(m+1)个阶段。相较传统算法,本实施例的神经网络映射方法可以在同步约束下更好的解决众核负载均衡的问题。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本公开的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本公开的示例性实施例的描述中,本公开的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本公开要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本公开的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本公开的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
应该注意的是上述实施例对本公开进行说明而不是对本公开进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本公开可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
至此,本领域技术人员应认识到,虽然本文已详尽示出和描述了本公开的多个示例性实施例,但是,在不脱离本公开精神和范围的情况下,仍可根据本公开公开的内容直接确定或推导出符合本公开原理的许多其它变型或修改。因此,本公开的范围应被理解和认定为覆盖了所有这些其它变型或修改。
Claims (11)
1.一种强同步下的神经网络映射方法,应用于包括多个处理单元的芯片,所述方法包括:
将卷积神经网络中各网络层针对预设特征图的计算任务映射至所述芯片的至少一个处理单元上;
获取所述芯片中各处理单元中完成所述计算任务所需的阶段Phase数目,并对所述多个处理单元的Phase数目进行第一阶段配平,所述对所述多个处理单元的Phase数目进行第一阶段配平,包括,判断是否存在第一阶段配平下降方向;
将所述卷积神经网络中各网络层针对所述预设特征图的计算任务映射至经过第一阶段配平后的所述芯片的至少一个处理单元上。
2.根据权利要求1所述的方法,其特征在于,所述对所述多个处理单元的Phase数目进行第一阶段配平,包括:
判断存在第一阶段配平下降方向的情况下,则计算所述第一阶段配平基准,并根据所述第一阶段基准进行第一阶段配平。
3.根据权利要求2所述的方法,其特征在于,所述判断是否存在第一阶段配平下降方向,包括:
获取预设的配平向量,基于所述配平向量判断是否存在第一阶段配平下降方向。
4.根据权利要求3所述的方法,其特征在于,所述配平向量p的公式如下:
p=(pr,px,pf,py,pw)
其中,pr,用于调节一个Phase内的MAC数;
px,用于调节Phase数;
pf,用于调节一个Phase内的MAC数;
py,用于调节Phase数;
pw,用于调节Phase数与Phase内MAC数。
5.根据权利要求2-4任一项所述的方法,其特征在于,所述计算所述第一阶段配平基准,包括:
获取各所述处理单元的负载,基于各所述处理单元的负载设置配平的基准负载,将所述基准负载作为所述第一阶段配平基准。
6.根据权利要求4所述的方法,其特征在于,所述根据所述第一阶段基准进行第一阶段配平,包括:
在所述配平向量p中提取第一配平向量p 1,根据所述第一阶段基准利用所述第一配平向量进行第一阶段配平;
其中,第一配平向量为p 1,p 1=(px,py,pw)。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述将所述卷积神经网络中各网络层针对所述预设特征图的计算任务映射至经过第一阶段配平后的所述芯片的至少一个处理单元上之后,还包括:
获取各Phase中的MAC数目,基于所述MAC数目进行第二阶段配平;
将所述卷积神经网络中各网络层针对所述预设特征图的计算任务映射至经过第二阶段配平后的所述芯片的至少一个处理单元上。
8.根据权利要求7所述的方法,其特征在于,所述获取各Phase中的MAC数目,基于所述MAC数目进行第二阶段配平,包括:
对于任一Phase,获取所述Phase中的MAC数目,判断是否存在第二阶段配平下降方向;
若是,则计算所述第二阶段配平基准,并根据所述第二阶段基准进行第一阶段配平。
9.根据权利要求7所述的方法,其特征在于,所述将所述卷积神经网络中各网络层针对所述预设特征图的计算任务映射至经过第二阶段配平后的所述芯片的至少一个处理单元上之后,还包括:
迭代进行所述第一阶段配平和第二阶段配平。
10.一种强同步下的神经网络映射装置,应用于芯片,所述装置包括:
映射模块,将卷积神经网络中各网络层针对预设特征图的计算任务映射至所述芯片的至少一个处理单元上;
配平模块,配置为获取所述芯片中各处理单元中完成所述计算任务所需的阶段Phase数目,并对所述多个处理单元的Phase数目进行第一阶段配平,所述对所述多个处理单元的Phase数目进行第一阶段配平,包括,判断是否存在第一阶段配平下降方向;
所述映射模块,还配置为基于各所述处理单元配平后的Phase数目,将所述卷积神经网络中各网络层针对所述预设特征图的计算任务映射至经过第一阶段配平后的所述芯片的至少一个处理单元上。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行以实现权利要求1-9中任一项所述的强同步下的神经网络映射方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911035345.XA CN112749778B (zh) | 2019-10-29 | 2019-10-29 | 一种强同步下的神经网络映射方法及装置 |
PCT/CN2020/123878 WO2021083105A1 (zh) | 2019-10-29 | 2020-10-27 | 神经网络映射方法及装置 |
US17/642,266 US11769044B2 (en) | 2019-10-29 | 2020-10-27 | Neural network mapping method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911035345.XA CN112749778B (zh) | 2019-10-29 | 2019-10-29 | 一种强同步下的神经网络映射方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112749778A CN112749778A (zh) | 2021-05-04 |
CN112749778B true CN112749778B (zh) | 2023-11-28 |
Family
ID=75640116
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911035345.XA Active CN112749778B (zh) | 2019-10-29 | 2019-10-29 | 一种强同步下的神经网络映射方法及装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11769044B2 (zh) |
CN (1) | CN112749778B (zh) |
WO (1) | WO2021083105A1 (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180048407A (ko) * | 2016-10-31 | 2018-05-10 | 삼성전자주식회사 | 차선 검출 장치 및 방법 |
CN108765282A (zh) * | 2018-04-28 | 2018-11-06 | 北京大学 | 基于fpga的实时超分辨方法及系统 |
WO2019127838A1 (zh) * | 2017-12-29 | 2019-07-04 | 国民技术股份有限公司 | 卷积神经网络实现方法及装置、终端、存储介质 |
CN110175671A (zh) * | 2019-04-28 | 2019-08-27 | 华为技术有限公司 | 神经网络的构建方法、图像处理方法及装置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10783900B2 (en) * | 2014-10-03 | 2020-09-22 | Google Llc | Convolutional, long short-term memory, fully connected deep neural networks |
US10540588B2 (en) * | 2015-06-29 | 2020-01-21 | Microsoft Technology Licensing, Llc | Deep neural network processing on hardware accelerators with stacked memory |
US10452971B2 (en) * | 2015-06-29 | 2019-10-22 | Microsoft Technology Licensing, Llc | Deep neural network partitioning on servers |
CN108304922B (zh) * | 2017-01-13 | 2020-12-15 | 华为技术有限公司 | 用于神经网络计算的计算设备和计算方法 |
US10387298B2 (en) * | 2017-04-04 | 2019-08-20 | Hailo Technologies Ltd | Artificial neural network incorporating emphasis and focus techniques |
CN108229566B (zh) * | 2018-01-05 | 2020-06-05 | 厦门华联电子股份有限公司 | 一种层次性分类方法及装置 |
US20190362227A1 (en) * | 2018-05-23 | 2019-11-28 | Microsoft Technology Licensing, Llc | Highly performant pipeline parallel deep neural network training |
CN109993809B (zh) * | 2019-03-18 | 2023-04-07 | 杭州电子科技大学 | 基于残差U-net卷积神经网络的快速磁共振成像方法 |
US11423254B2 (en) * | 2019-03-28 | 2022-08-23 | Intel Corporation | Technologies for distributing iterative computations in heterogeneous computing environments |
-
2019
- 2019-10-29 CN CN201911035345.XA patent/CN112749778B/zh active Active
-
2020
- 2020-10-27 WO PCT/CN2020/123878 patent/WO2021083105A1/zh active Application Filing
- 2020-10-27 US US17/642,266 patent/US11769044B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180048407A (ko) * | 2016-10-31 | 2018-05-10 | 삼성전자주식회사 | 차선 검출 장치 및 방법 |
WO2019127838A1 (zh) * | 2017-12-29 | 2019-07-04 | 国民技术股份有限公司 | 卷积神经网络实现方法及装置、终端、存储介质 |
CN108765282A (zh) * | 2018-04-28 | 2018-11-06 | 北京大学 | 基于fpga的实时超分辨方法及系统 |
CN110175671A (zh) * | 2019-04-28 | 2019-08-27 | 华为技术有限公司 | 神经网络的构建方法、图像处理方法及装置 |
Non-Patent Citations (1)
Title |
---|
卷积神经网络的FPGA并行加速方案设计;方睿;刘加贺;薛志辉;杨广文;;计算机工程与应用(第08期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
US20220318608A1 (en) | 2022-10-06 |
CN112749778A (zh) | 2021-05-04 |
WO2021083105A1 (zh) | 2021-05-06 |
US11769044B2 (en) | 2023-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Çatalyürek et al. | Integrated data placement and task assignment for scientific workflows in clouds | |
Liu et al. | Multi-objective scheduling of scientific workflows in multisite clouds | |
Wieder et al. | Brief announcement: modelling mapreduce for optimal execution in the cloud | |
Shetti et al. | Optimization of the HEFT algorithm for a CPU-GPU environment | |
CN112559053B (zh) | 可重构处理器数据同步处理方法及装置 | |
CN107329822A (zh) | 面向多源多核系统的基于超任务网的多核调度方法 | |
CN115134371A (zh) | 包含边缘网络算力资源的调度方法、系统、设备及介质 | |
Gong et al. | Improving hw/sw adaptability for accelerating cnns on fpgas through a dynamic/static co-reconfiguration approach | |
CN100531070C (zh) | 网络资源调度仿真系统 | |
CN114429195A (zh) | 混合专家模型训练的性能优化方法和装置 | |
CN112749778B (zh) | 一种强同步下的神经网络映射方法及装置 | |
CN112051981B (zh) | 一种数据流水线计算路径结构及单线程数据流水线系统 | |
Kang et al. | Scheduling multiple divisible loads in a multi-cloud system | |
CN111198977B (zh) | 一种基于图算法负载的图大数据流式划分方法 | |
Jeon et al. | Loop pipelining in hardware-software partitioning | |
CN105468726B (zh) | 基于本地计算和分布式计算的数据计算方法及系统 | |
Han et al. | Distributed loop scheduling schemes for cloud systems | |
Liu et al. | A survey of speculative execution strategy in MapReduce | |
Nazarenko et al. | An experimental study of workflow scheduling algorithms for heterogeneous systems | |
CN115309502A (zh) | 一种容器调度方法及装置 | |
Jiang et al. | An optimized resource scheduling strategy for Hadoop speculative execution based on non-cooperative game schemes | |
Menouer et al. | Towards a parallel constraint solver for cloud computing environments | |
Tereso et al. | Project management: multiple resources allocation | |
EP4206999A1 (en) | Artificial intelligence core, artificial intelligence core system, and loading/storing method of artificial intelligence core system | |
CN116980423B (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 |