面向边缘集群的并行计算方法和系统

文档序号:29693416发布日期:2022-04-16 12:22阅读:307来源:国知局
面向边缘集群的并行计算方法和系统

1.本发明涉及深度神经网络技术领域,尤其涉及一种面向边缘集群的可伸缩并行计算方法和装置。


背景技术:

2.深度神经网络(deep neural networks,dnn)已经成为解决如图像识别、自然语言处理等复杂问题不可或缺的工具。dnn在提供了强大的特征提取能力的同时,对设备的计算能力提出了更高的要求。同时,近年来物联网设备呈指数级增长,为了应对呈指数级增长的物联网设备带来的数据爆炸现象,边缘计算应运而生。边缘计算是指在靠近数据产生的网络边缘如终端设备或边缘服务器执行计算任务,从而以较低的时延提供计算服务。但是边缘设备难以快速的执行大型dnn模型,而边缘计算场景下的应用一般对任务的延迟有较高的要求。在资源有限的边缘设备上运行深度神经网络将带来不可接受的时延,这阻碍了人工智能为边缘设备赋能。在边缘计算场景下,边缘设备对于不同类型的任务通常有着不同的时延及准确率的需求。以交通摄像头为例,检测交通堵塞的任务对时延要求高,对精度要求低;识别车牌的任务对精度要求高,对时延要求低。因此,根据应用需求提供具有可伸缩性的深度学习服务是十分必要的。而目前的深度学习模型通常不具有可伸缩性,其推理时延是固定的,难以动态适配不同需求的任务。
3.专利申请号为cn202010100106.4的中国专利申请提出了一种面向神经网络编解码工具的并行推理方法,其包括:对待处理的图像进行边界扩充,得到边界完整的图像;根据光栅扫描顺序将所述边界完整的图像划分成大小相同的图像块;将所述大小相同的图像块组织成若干个张量,并将所述若干个张量作为一组张量同时送入神经网络中进行前向传播处理,其中,根据神经网络编码工具以及硬件显存大小设置所述张量的批尺寸值。该方法能减少神经网络执行过程中对gpu显存的占用,但在加速神经网络推理速度方面仍有较大的提升空间。
4.为了提高深度学习模型在资源受限的设备上的推理速度,人们常常将计算任务卸载到云或边缘服务器。en li等人提出一种终端设备和边缘服务器协同执行dnn的框架(参见“on-demand accelerating deep neural network inference via edge computing.”ieee transactions on wireless communications 19(1),447

457(2020))。终端设备复杂执行dnn的前部,随后将中间数据发送到边缘服务器,由边缘服务器执行剩下的计算任务。由于边缘服务器的计算能力远大于终端设备,因此dnn任务能够迅速的完成,该方法虽然能有效降低任务整体时延,但是其性能高度依赖于终端设备与远端服务器的网络质量,当设备与服务器的网络质量下降时,dnn任务执行速度也随之急剧下降。此外,这种服务器辅助的方法需要将中间数据发送到边缘服务器或云端服务器,这可能造成隐私数据的泄露。
5.dnn模型的复杂结构是其需要大量计算资源的根本原因,因此,另一种加速的dnn推理速度的方法关注于优化dnn模型结构以减少所需的计算量。如对原dnn模型进行剪枝,
去掉模型中重要程度低的权重,以降低计算量;或者使用低比特权重代替原有的浮点数权重,这种方法有效的减少了模型对设备内存的需求。但是这种在降低模型计算量的同时,会使模型的特征提取能力大幅下降,模型的准确率会有较大程度的衰减。
6.mao等人提出了将推理任务分配给多个设备并行计算(参见“modnn:local distributed mobile computing system for deep neural network.”in:design,automation test in europe conference exhibition(date),2017.pp.1396

1401(2017)),从而加速dnn在计算能力弱的设备上的推理速度,但是其在任务分发过程中,其采用了分层的方法,即各设备执行完dnn模型的每一层后都需要交换各自的数据,以移除数据依赖问题。这种分层方法造成了频繁的设备间通信,计算速度也高度依赖网络质量。
7.因此,如何在保证神经网络模型准确率的前提下提高神经网络模型在资源受限的边缘集群设备上的运行速度以及根据任务需求提供可伸缩性的深度神经网络成为了亟待解决的问题。


技术实现要素:

8.鉴于此,本发明实施例提供了一种面向边缘集群的可伸缩并行计算方法和装置,以消除或改善现有技术中存在的一个或更多个缺陷。
9.本发明的一个方面提供了一种面向边缘集群的可伸缩并行计算方法,该方法包括以下步骤:
10.计算能力获取步骤,用于获得边缘集群中各计算设备的计算能力;多融合层块生成步骤,用于将包括主分支以及与预设的主分支不同退出点对应的子分支的多层卷积神经网络按多融合层块方式进行划分,针对划分的多融合层块的各个卷积层,根据获取的各计算设备的计算能力向各个计算设备分配与其计算能力对应的工作负载,以使得各计算设备执行当前多融合层块内连续卷积层的计算时间与平均计算时间的最大差值小于预定同步阈值;各个计算设备每执行完毕一个多融合层块内多个连续卷积层的任务后进行计算设备间数据交换;分支选择步骤,在各个计算设备执行主分支中多融合层块的计算而到子分支时,保存当前主分支的计算结果,基于当前主分支的计算结果由各个计算设备执行当前位置的子分支的卷积层,由计算能力最强的计算设备执行全连接层,并依据全连接层的执行结果获得输入样本的熵值,依据获得的熵值与预设的置信度阈值的比较结果确定继续执行主分支还是退出计算。
11.在本发明的一些实施例中,所述多融合层块生成步骤包括:初始多融合层块设置步骤:针对所述多层卷积神经网络设置包括至少一个卷积层的多融合层块;多融合层块扩展步骤:基于获取的各计算设备的计算能力预估所述多融合层块的冗余数据计算开销,基于边缘集群所处的网络的带宽计算通信节省开销,基于计算的冗余数据计算开销和通信节省开销扩展所述多融合层块,以在冗余数据计算开销大于通信节省开销且结束卷积层后方相邻的卷积层不是退出点或多层卷积神经网络的最后一层时,将所述结束卷积层后方相邻的卷积层加入多融合层块并作为结束卷积层;任务分配步骤:根据获取的各计算设备的计算能力向参与计算的各个计算设备分配与其计算能力对应的工作负载,以使得各计算设备执行当前多融合层块内连续卷积层的计算时间与平均计算时间的最大差值小于预定同步阈值;重复所述任务分配步骤和所述多融合层块扩展步骤,直至冗余数据计算开销大于或
等于通信节省开销、扩展到达退出点或扩展到达多层卷积神经网络的最后一层。
12.在本发明的一些实施例中,所述任务分配步骤包括:计算设备分得的工作负载的计算量为该计算设备的计算能力与参与计算的所有计算设备的计算能力之和的比值与总工作负载的计算量的乘积;计算设备分得的工作负载为当前融合层块的结束层的工作负载,当前融合层块除结束层以外的其他卷积层的工作负载由结束层的工作负载向当前融合层块起始层的方向逐层扩展后得到当前融合层块的所有卷积层的工作负载,每层卷积层的工作负载的扩展方式为向结束层方向相邻的卷积层的工作负载边界向外扩展卷积核大小的一半。
13.在本发明的一些实施例中,所述任务分配步骤还包括:各计算设备执行当前多融合层块内连续卷积层的计算时间与平均计算时间的最大差值大于预定同步阈值时,则减小分得最大工作负载对应计算设备的工作负载并增大分得最小工作负载对应计算设备的工作负载直至所述计算时间与平均计算时间的最大差值小于预定同步阈值。
14.在本发明的一些实施例中,所述多融合层块生成步骤还包括:当完成一个多融合层块的扩展时,参与计算的所有计算设备将计算结果发送给计算能力最强的计算设备进行汇总并由其依据该计算结果重新分发工作负载后开始下一个多融合层块的扩展,重复多融合层块生成步骤直至多融合层块中的最后一层为多层卷积神经网络的主分支或子分支的最后一层时停止。
15.在本发明的一些实施例中,所述多融合层块扩展步骤还包括:计算多融合层块中传输除去起始层和结束层以外的所有卷积层所用的时间作为通信节省开销;计算计算设备计算多融合层块中除结束层外所有卷积层的扩展量的时间作为冗余数据计算开销。
16.在本发明的一些实施例中,所述置信度阈值的计算方法为:记录训练多层卷积神经网络时在每个分支的所有测试数据的输出熵值;根据多层卷积神经网络在计算每个分支的计算时间与对应退出点的退出概率乘积之和小于或等于对多层卷积神经网络需求的最大计算时间以及所有退出点的退出概率之和为1的条件计算得出多组退出点的退出概率的可行解,每组可行解包括预设的所有退出点的退出概率;所述最大计算时间是基于多层卷积神经网络的时延性能要求或准确率性能要求设置的;记录多层卷积神经网络在每个退出点的计算准确率并算出每个退出点的计算准确率与所有退出点计算准确率之和的权重比值;将每组可行解的每个退出点概率与其退出点对应的权重比值相乘并求和得到每组可行解的得分,选择得分高的一组可行解;当计算熵值的方式得出的熵值正比于计算准确率时,选择所述每个测试数据的输出熵值中的最大值,并将获得的所有最大值按降序排列方向时的位数与所有最大值的个数的比值等于该退出点概率的熵值作为该退出点的置信度阈值,或者当计算熵值的方式得出的熵值反比于计算准确率时,选择所述每个测试数据的输出熵值中的最小值,并将获得的所有最小值按升序排列方向时的位数与所有最小值的个数的比值等于该退出点概率的熵值作为该退出点的置信度阈值。
17.在本发明的一些实施例中,所述方法还包括训练带分支的多层卷积神经网络;所述计算能力获取步骤为边缘集群中的每个设备运行多个具有不同参数的卷积层后得到每个设备的计算能力线性回归模型。
18.本发明的另一方面,提供了一种面向边缘集群的可伸缩并行计算系统,该系统包括处理器和存储器,所述存储器中存储有计算机指令,所述处理器用于执行所述存储器中
存储的计算机指令,当所述计算机指令被处理器执行时该系统实现上述实施例任一项所述方法的步骤。
19.本发明的再一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述实施例任一项所述方法的步骤。
20.本发明提供的面向边缘集群的并行计算方法和装置能够为边缘设备提供权衡多层卷积神经网络的准确性和响应性的能力,从而能够根据不同的任务调整多层卷积神经网络的响应时间,进一步改善现有技术中在边缘计算场景下的运行速度,并且克服了现有技术中存在的深度神经网络不具备可伸缩性的问题。
21.本发明的附加优点、目的,以及特征将在下面的描述中将部分地加以阐述,且将对于本领域普通技术人员在研究下文后部分地变得明显,或者可以根据本发明的实践而获知。本发明的目的和其它优点可以通过在说明书以及附图中具体指出的结构实现到并获得。
22.本领域技术人员将会理解的是,能够用本发明实现的目的和优点不限于以上具体所述,并且根据以下详细说明将更清楚地理解本发明能够实现的上述和其他目的。
附图说明
23.此处所说明的附图用来提供对本发明的进一步理解,构成本技术的一部分,并不构成对本发明的限定。在附图中:
24.图1为本发明一实施例中面向边缘集群的实施并行计算方法的逻辑流程图。
25.图2为本发明一实施例中面向边缘集群的可伸缩并行计算方法的计算示意图。
26.图3为本发明一实施例中数据依赖示意图。
27.图4为本发明一实施例中多融合层块方法示意图。
28.图5为本发明一实施例中本发明与现有的并行计算方法的性能对比图。
29.图6为本发明一实施例中本发明基于不同的神经网络的平均计算时延性能对比图。
具体实施方式
30.为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本发明做进一步详细说明。在此,本发明的示意性实施方式及其说明用于解释本发明,但并不作为对本发明的限定。
31.在此,还需要说明的是,为了避免因不必要的细节而模糊了本发明,在附图中仅仅示出了与根据本发明的方案密切相关的结构和/或处理步骤,而省略了与本发明关系不大的其他细节。
32.应该强调,术语“包括/包含”在本文使用时指特征、要素、步骤或组件的存在,但并不排除一个或更多个其它特征、要素、步骤或组件的存在或附加。
33.在下文中,将参考附图描述本发明的实施例。在附图中,相同的附图标记代表相同或类似的部件,或者相同或类似的步骤。
34.为解决现有技术中存在的一个或多个问题,本发明提供了一种面向边缘集群的可伸缩并行计算方法和装置。
35.本发明针对传统的计算多层卷积神经网络存在的无法根据任务需求动态调整多层卷积神经网络的计算深度,以及计算速度较低的问题提出一种按需退出的可伸缩多设备并行计算框架,充分利用了边缘环境中空闲异构设备的计算资源,多设备共同参与多层卷积神经网络推理任务,从而提高在计算能力弱的设备上多层卷积神经网络任务的执行速度。具体为,在多层卷积神经网络的不同卷积层位置加入分支,如果计算过程中进入分支后满足在分支的退出条件并退出时,总计算时延会减小,故分支的加入可以使带分支的多层卷积神经网络动态适应任务对任务的低时延需求或高准确率需求,以此来实现动态调整多层卷积神经网络计算深度(即可伸缩性)。对于相同深度的多层卷积神经网络的优化计算速度,本发明采用以层融合块的方式计算带分支的多层卷积神经网络以及按计算设备的计算能力进行工作负载的分发来实现,该方法受网络干扰较小的同时降低了任务总时延,且本发明数据仅在边缘集群中传输,避免将数据发送到远端服务器从而避免了数据泄露的风险。
36.如图1所示为本发明面向边缘集群的实施并行计算方法的逻辑流程图,本发明实施并行计算方法包括三个步骤:计算能力获取步骤s110,用于获得边缘集群中各设备的计算能力;多融合层块生成步骤s120,用于将包括主分支以及与预设的主分支不同退出点对应的子分支的多层卷积神经网络按多融合层块方式进行划分,针对划分的多融合层块的各个卷积层,根据获取的各计算设备的计算能力向各个计算设备分配与其计算能力对应的工作负载,以使得各计算设备执行当前多融合层块内连续卷积层的计算时间与平均计算时间的最大差值小于同步点等待时间(预定同步阈值);各个计算设备每执行完毕一个多融合层块内多个连续卷积层的任务后进行计算设备间数据交换;分支选择步骤s130,在各个计算设备执行主分支中多融合层块的计算而到子分支时,保存当前主分支的计算结果,基于当前主分支的计算结果由各个计算设备执行当前位置的子分支的卷积层,由计算能力最强的计算设备执行全连接层,并依据全连接层的执行结果获得输入样本的熵值,依据获得的熵值与预设的置信度阈值的比较结果确定继续执行主分支还是退出计算。
37.在本发明中为方便描述,工作负载为图片,计算任务为图片识别,但本发明并不限于此,本发明的重点在于在边缘集群中如何优化计算多层卷积神经网络,并不拘泥于使用具体的某个多层卷积神经网络,本发明适用于多种现有的多层卷积神经网络例如alexnet,vgg,resnet等多层卷积神经网络。本发明经过变体(即针对不同的多层卷积神经网络进行在边缘集群中的优化计算)后可以适用于目标识别领域或语音处理等领域,在此以图像分类领域的卷积神经网络为例。
38.接下来对本发明的计算能力获取步骤s110进行详细描述,其次,计算能力获取步骤为本发明的准备阶段,在此阶段还训练带分支的多层卷积神经网络,并记录训练数据的输出熵值,并依据该输出熵值计算得出置信度阈值,计算置信度阈值步骤为步骤s140,同在下文中详细描述。
39.计算能力获取步骤s110:在本发明的一些实施例中,由于边缘设备集群普遍具有异构性,不同的设备具有不同的计算能力和网络资源,因此,需要将多层卷积神经网络推理任务合理的分配给各个异构设备,基于以上需求,在准备阶段需要获得边缘集群中个计算设备的计算能力。由于计算设备的计算能力是固定不变的,因此每个计算设备只需要训练一次计算能力即可。获得边缘集群中计算设备的计算能力的方式为:边缘集群中的每个计
算设备dk={d1,d2,

,dk}运行一系列具有不同参数的卷积层以训练其计算能力。以工作负载为图片举例,对于特征图为m{chm,h,w},卷积核为k{chk,f,f}的卷积层,其计算量flops可表示为:
40.flops=2hw(chmf2+1)chkꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
41.其中h和w指特征图的高度和宽度,f指卷积核的大小,chm和chk分别指卷积神经网络的输入和输出通道数。由此可训练出计算设备的计算能力线性回归模型ck,则对于特定的卷积层l,其执行时间表示为ck(l),随后每个计算设备将向参与协同推理的其他设备广播训练好的计算能力模型,最终,每个设备都将获得其他设备的计算能力的值。之后发起多层卷积神经网络推理任务的设备将根据每个设备的计算能力为其分配工作负载。但本发明并不限于此,例如在发明的另一些实施例中,读取边缘集群中计算设备的硬件信息,依据其处理器及存储器等获得其计算能力。
42.计算置信度阈值步骤s140:为了满足不同实时任务的需要,我们利用为设备提供了权衡延迟和准确性的能力(并行计算方法的可伸缩性)。提前退出机制通过在原多层卷积神经网络中添加分支,使得简单的输入样本在多层卷积神经网络的浅层就可以计算出高可信的结果。如何根据任务时延需求确定每个退出分支的自信度阈值是我们需要解决的问题。对于每个退出分支n{1,2,

,n},在此退出点退出的概率为pn,根据准备阶段训练得到的各设备的计算能力模型和网络带宽质量,我们可以预测出每个分支的执行时间tn。用户基于多层卷积神经网络的时延性能要求或准确率性能要求设置t
th
;则pn需满足:
[0043][0044]
即:根据多层卷积神经网络在计算每个分支的计算时间tn与该分支对应退出点的退出概率pn乘积之和小于或等于对多层卷积神经网络需求的最大计算时间t
th
,以及所有退出点的退出概率之和为1的条件联立方程组,计算得出多组退出点的退出概率的可行解p,所述计算分支的计算时间tn为从多层卷积神经网络的第一层到分支的全连接层间所有卷积层的计算时间。每组可行解包括预设的所有退出点的退出概率;本发明实施例中以图2的带分支的多层卷积神经网络为例的一个可行解为p=(40%,40%,20%),即分支1和分支2的退出概率为40%;计算中有20%概率不提前退出直至将主分支执行完毕。
[0045]
在每个退出点对整个训练数据集进行计算,记录训练多层卷积神经网络时在每个分支的所有测试数据的输出熵值,并记录各个样本的熵值列表l。
[0046]
由于本发明在设计理念上倾向于在满足计算时间到达最大计算时间前尽可能晚的退出计算(这样在满足计算时间的需求上具有更高的计算准确率),故设计如下的可行解选择方案:
[0047]
记录多层卷积神经网络在训练阶段每个退出点计算准确率,记为acc1、acc2、...、accn。并算出每个退出点分支的计算准确率与所有退出点计算准确率之和的权重比值ωn表示为
[0048]
将每组可行解的每个退出点概率pn与其退出点对应的权重比值ωn相乘并求和得到每组可行解的得分,选择得分高的一组可行解p;
[0049]
在实际计算过程中,在本发明的一实施例中,分支计算结果的熵值表示为:
[0050][0051]
其中,y是包含所有可能类别标签的计算概率的向量,是数据集所有结果的集合。熵值大于自信度阈值的输入样本即可在此处退出网络。由于本发明设计的并行计算方法具有多个同步点,这种结构与加入的分支具有很好的适配性。该计算熵值的方式得出的熵值反比于计算准确率,选择所述每个测试数据的输出熵值中的最小值,并将获得的所有最小值按升序排列方向时的位数与所有最小值的个数的比值等于该退出点概率的熵值作为该退出点的置信度阈值,并按此方法给所有退出点设置置信度阈值。
[0052]
在本发明的另一实施例中,计算熵值的方式得出的熵值正比于计算准确率时,选择所述每个测试数据的输出熵值中的最大值,并将获得的所有最大值按降序排列方向时的位数与所有最大值的个数的比值等于该退出点概率的熵值作为该退出点的置信度阈值,并按此方法给所有退出点设置置信度阈值。
[0053]
为介绍多融合层块生成步骤s120需先描述本发明选择多融合层块的原因:在本发明的一些实施例中,如图3所示,由于卷积神经网络固有结构是紧耦合的,将多层卷积神经网络卷积推理过程分配给多个设备执行会在各设备间产生数据依赖。依旧以参与计算的设备数为三个进行说明,输入特征图被分配给三个设备,经过一个2*2的卷积核进行卷积操作后,其输出特征图如图3的右边所示。为了得到右图输出数据中的12,需要左图输入数据中的2*2大小的矩阵的内容(正方形框),而这些数据被存储在两个不同的设备中。为克服边缘集群中计算设备的对于f*f的卷积核,每个设备需要其所分得的特征图分区沿着边缘扩展以包含卷积计算所需的数据。
[0054]
由此每个设备可执行连续的多个卷积层,在这期间无需进行重叠数据的交换,从而避免了额外通信开销。在任务分配时,我们首先根据设备计算能力和网络带宽划分融合块的最后一层卷积层的特征图,然后融合层块中每个卷积层的工作负载为沿着后方相邻的卷积层的工作负载的边缘向外扩展后得到的工作负载,也即每层卷积层的工作负载的扩展方式为向结束层方向相邻的卷积层的工作负载边界向外扩展卷积核大小的一半。并逐层递归的扩展至融合层块的起始层(也即第一层),以此得到融合层块中所有卷积层的工作负载
[0055]
在本发明的一实施例中,层融合方法会导致设备对重叠数据进行冗余计算。并且随着融合层数的增加,冗余计算的量也将逐层增加。因此,我们对额外通信和冗余计算进行了权衡,并采用多融合层块的方法来减少融合层数过多造成的大量冗余计算,其结构如图4所示,其中图4中左侧为单融合层块的方式,右图为多融合层块的方式。多融合层块将整个多层卷积神经网络网络分为多个块,每个设备连续执行一个块内的任务,然后各个设备到达同步点,在同步点各个设备将对此时的特征图进行汇总,汇总到边缘集群中计算能力最强的计算设备,并由其重新分发。通过对比图4中左图和右图可以看出,为了计算第四层,采用单融合层块方法的单个设备的计算量大于多融合层块,这是由于,虽然每层卷积层的工作负载扩展方式为沿着后方相邻的卷积层的工作负载(在本实施例为特征图)的边缘扩展但当获得融合层块中的起始层的工作负载扩展时,其沿着后方相邻的卷积层的工作负载本身体量较大,故扩展量也较大(比如图片的面积大边长就大,对于正多边形,扩展量为边数、边长和三者的乘积),导致的冗余计算也越多,当融合层块中的卷积层数过多
时该现象更加明显。单融合层块的方法可以理解为计算多层卷积神经网络时只有一个融合层块,其中每个卷积层的工作负载为后方相邻的卷积层的工作负载进行扩展,故单融合层块的方法总体产生的冗余计算量相当巨大。本发明提出的多融合层块方法可以有效的避免因融合过多的层造成的大量的冗余计算。
[0056]
影响每个独立融合层块的执行时间的另一个因素是数据传输造成的时延。由于边缘设备通常在相同的网络下,故在本发明中,我们的研究关注于在同一局域网下的边缘集群。我们用b表示边缘集群所处局域网的带宽。我们采取一种从下至上的通信数据大小分析方式,即首先计算融合层块最后一层的大小。若设备dk分得的层融合块的最后一层的工作负载的大小为w
end
,则传输最后一层所需的数据量为4w
end
字节,因为每个浮点数大小为4字节。根据对最后一层特征图逐层扩展得到融合层块的第一层的特征图的大小为w
first
。则设备dk执行具有v融合层的融合层块的总时间可表示为:
[0057][0058]
多融合层块生成步骤s120用于将包括主分支以及与预设的主分支不同退出点对应的子分支的多层卷积神经网络按多融合层块方式进行划分,针对划分的多融合层块的各个卷积层,根据获取的各计算设备的计算能力向各个计算设备分配与其计算能力对应的工作负载,以使得各计算设备执行当前多融合层块内连续卷积层的计算时间与平均计算时间的最大差值小于预定同步阈值;各个计算设备每执行完毕一个多融合层块内多个连续卷积层的任务后进行计算设备间数据交换。多融合层块生成步骤基于参与计算的计算设备dk,各设备计算能力模型ck,已训练好的具有分支的多层卷积神经网络开展。输出为融合层块。
[0059]
多融合层块生成步骤s120进一步分为初始多融合层块设置步骤s121、多融合层块扩展步骤s122,和任务分配步骤s123。
[0060]
首先,初始多融合层块设置步骤s121为针对所述多层卷积神经网络设置包括至少一个卷积层的多融合层块;已知参与本次并行计算的设备数为m个,每个设备记为dk,其中,k=1,2,...,m。在本发明的一实施例中,首先将多层卷积神经网络的第一层作为融合层块第一层l
first
,融合层块最后一层(结束卷积层)l
end
指向l
first
,此时多融合层块只有一个卷积层。
[0061]
其次,在多融合层块扩展步骤s122中:
[0062]
当结束卷积层后方相邻的卷积层不是主分支中退出点所在的卷积层或者不是各分支的最后一层卷积层时:向后扩展l
end
,表示为l
end
=l
end+1
,也即将结束卷积层后方相邻的卷积层加入多融合层块并作为结束卷积层;此时融合层块具有两层卷积层。
[0063]
每当融合层块的卷积层数增加时执行任务分配步骤s123,此时步骤s123基于当前的融合层块执行任务分配,融合层块的大小表示为{l
first
,l
end
}:
[0064]
任务分配步骤s123具体为:根据获取的各计算设备的计算能力向参与计算的各个计算设备分配与其计算能力对应的工作负载,计算设备分得的工作负载为当前融合层块的结束层的工作负载,当前融合层块除结束层以外的其他卷积层的工作负载由结束层的工作负载向当前融合层块起始层的方向逐层扩展后得到当前融合层块的所有卷积层的工作负载,每层卷积层的工作负载的扩展量为工作负载边界向外扩展宽度为卷积核大小的一半的工作负载。
[0065]
每个计算设备分得的工作负载的计算量为该计算设备的计算能力与参与计算的所有计算设备的计算能力之和的比值与总工作负载的计算量的乘积;具体表示为之和的比值与总工作负载的计算量的乘积;具体表示为并根据公式4计算tk。计算所有计算设备计算当前分得的工作负载的时间记各设备执行时间tk与平均时间t
avg
的差值为的差值为的差值为为使小于预定同步阈值,也即为使所有计算设备中,计算速度最慢的设备的计算时间与平均计算时间t
avg
相差大于预定同步阈值,在本发明中不被接受。故当大于预定同步阈值时,重复进行将分得最大工作负载的设备的工作负载减小一个像素点并将分得最小工作负载的设备将工作负载增大一个像素点的步骤,每次执行完判断是否小于预定同步阈值,满足小于关系时停止该步骤。所述预定同步阈值为在同步点的设置的等待因子ζ与t
avg
的乘积。也即各计算设备执行当前多融合层块内连续卷积层的计算时间与平均计算时间的最大差值大于预定同步阈值时,则减小分得最大工作负载对应计算设备的工作负载并增大分得最小工作负载对应计算设备的工作负载直至所述计算时间与平均计算时间的最大差值小于预定同步阈值。
[0066]
当每次增加多融合层块的融合层数后并执行完s123时,继续执行s122步骤,具体为:
[0067]
基于获取的各计算设备的计算能力ck预估所述多融合层块的冗余数据w
oc
的计算开销,表示为ck(w
oc
),也即计算设备计算多融合层块中除结束层外所有卷积层的扩展量的时间作为冗余数据计算开销。冗余数据w
oc
的获取方法具体为,在任务负载分配算法中发起并行计算的设备依据计算设备的计算能力分发工作负载wk,wk表示为当前融合层块的最后一层的工作负载,所述冗余数据w
oc
为每层卷积层wk在边缘扩展f/2的扩展量之和。本发明一实施例在所有参与计算的计算设备的冗余数据w
oc
的计算开销中的选择计算时长最长的冗余数据计算开销参与后续计算,也即该计算设备计算冗余数据的时长比其他计算设备长。
[0068]
基于边缘集群所处的网络的带宽b计算通信节省开销,其表示为也即计算多融合层块中传输除去起始层和结束层以外的所有卷积层所用的时间作为通信节省开销;本发明一实施例中,在所有计算设备的通信节省开销中选择传输时长最长的通信节省开销参与后续计算。
[0069]
基于计算的冗余数据计算开销和通信节省开销扩展所述多融合层块,具体为,当ck(w
oc
)大于时,停止扩展多融合层块,也即在冗余数据计算开销小于通信节省开销时结束扩展多融合层块,并定义当前融合层块中的结束层后方相邻的卷积层作为下一个融合层块的起始层。此时继续扩展融合层块只会增大计算时间,并不能提高多层卷积神经网络的计算速度。当完成一个多融合层块的扩展时,参与计算的所有计算设备将计算结果发送给计算能力最强的计算设备进行汇总并由其依据该计算结果重新分发工作负载后开始下一个多融合层块的扩展,重复多融合层块生成步骤直至多融合层块中的最后一层为多层卷积神经网络的主分支或子分支的最后一层时停止。
[0070]
综上,以在冗余数据计算开销大于通信节省开销且结束卷积层后方的卷积层不是
退出点或多层卷积神经网络的最后一层时,以将所述结束卷积层后方相邻的卷积层加入多融合层块并作为结束卷积层的方式扩展多融合层块;当结束层后方相邻卷积层为分支的最后一层时停止扩展多融合层块并停止融合层快生成步骤,当结束层后方相邻卷积层为分支的退出点所在卷积层时或冗余数据计算开销大于通信节省开销停止扩展多融合层块并开始下一轮多融合块的生成步骤。
[0071]
接下来描述分支选择步骤s130:在结合图2对分支选择步骤进行详细描述。如图2所示为本发明面向边缘集群的并行计算方法的计算示意图,在该实施例中有三个边缘集群中的计算设备参与具有两个退出点的多层卷积神经网络的并行计算,但本发明并不限于此,可以在多层卷积神经网络中人为添加多个退出点及与其对应的分支。首先,设备1得到计算任务为图片识别,图片为工作负载。由设备1发起并行计算任务并分配工作负载,此时运行多融合层块扩展步骤得到多融合层块,在各个计算设备执行主分支中多融合层块的计算而到子分支时,也即计算到达分支1对应的退出点时,保存当前主分支的计算结果,在本实施例中为各设备保留此时主分支中计算的特征图,基于当前主分支的计算结果由各个计算设备执行当前位置的子分支的卷积层,并以多融合层块的方式开始执行分支1的卷积层,当计算到达分支1的卷积神经网络的全连接层时,各设备将计算的特征图发送到集群中具有最强计算能力的设备中,在本实施例为设备2。由计算能力最强的计算设备执行全连接层,在本实施例中设备2执行全连接层,并依据全连接层的执行结果获得输入样本的熵值,依据获得的熵值与预设的置信度阈值的比较结果确定继续执行主分支还是退出计算。在本实施例中具体为,判断执行结果是否符合预先设定的置信度阈值。如果此时的计算结果具有足够高的置信度,则设备2将结果发送至任务发起设备设备1,否则,设备2将发送继续执行主网络的命令给设备1和设备3,边缘集群恢复刚才保留的特征图并继续执行主网络。当计算到达分支2对应的退出点时,各设备的处理方式与计算到达分支1时相同,并判断分支2的置信度是否满足预先设定的置信度阈值,若符合,则结束计算卷积神经网络,否则将执行全部的卷积神经网络,并最终由最强计算能力的设备执行主分支的全连接层并将结果发送给设备1。在本发明的一些实施例中,退出点和分支一一对应,带分支的多层卷积神经网络可以有多对退出点和分支,每个退出点的位置由人为设定,分支的多层卷积神经网络为简化的主分支多层神经网络用于提升计算速度。
[0072]
如图5所示为本发明与本发明与现有的并行计算方法的性能对比图。图5(a)为本发明和现有的并行计算方法modnn在针对alexnet卷积神经网络处理cifar10数据集时采用不同数量的计算设备的平均时延性能对比,图5(b)为本发明和现有的并行计算方法modnn在针对resnet50卷积神经网络处理cifar10数据集时采用不同数量的计算设备的平均时延性能对比,图5(c)为本发明和现有的并行计算方法modnn在针对resnet50卷积神经网络处理imagenet数据集时采用不同数量的计算设备的平均时延性能对比。同时在图5中,本发明还与两种现有的云辅助的深度学习加速方法进行了对比,即图中的两个虚横线,当设备数多于五个时,本发明能够比云辅助加速方法更快的计算卷积神经网络。本发明使用两台处理器为cortex-a72的树莓派4b,两台cpu设为单核800mhz的虚拟机,两台cpu设为单核1000mhz的虚拟机来模拟的具有异构计算能力的边缘集群。为了与“边端”和“边端云”的推理加速形式进行对比,我们使用一台cpu为i5-8400,主频赫兹为2.8ghz的pc模拟边缘服务器,使用搭载4块3090显卡的服务器模拟边缘服务器。本发明以alexnet,resnet50和
resnet101这些现有的典型卷积神经网络模型为例对这些卷积神经网络模型进行优化实现了本发明的面向边缘集群的并行计算方法。因为alexnet,resnet50和resnet101这些现有的典型卷积神经网络模型具有不同的深度,也即含有的卷积层数不同。在不同难度的任务下采用cifar10和imagenet数据集来评估本发明的方法的表现情况。图5中分别为本发明针对alexnet神经网络和resnet在退出率为pn=(40%,40%,20%)时和modnn的性能对比,网络带宽为100mbps情况下平均推理时延的变化。退出率为(40%,40%,20%)的一组可行解具有理想的加速性能。因其能够遍历本发明提出的带分支的多层卷积神经网络的所有分支。pn=(40%,40%,20%)表示40%的测试数据从第一个退出点分支退出,40%的测试数据从第二个退出点分支退出,20%的测试数据完成了主分支中所有卷积层的计算。可以看到,随着边缘集群中计算设备数量的增加,卷积神经网络任务的平均时延也在降低。本发明的方法在三个不同规模和难度的任务中都能取得较为理想的性能。由于本发明在卷积神经网络中添加了提前退出分支,故本发明的方法的平均时延始终低于modnn。同时,因为本发明采用多融合层块的方法而不是modnn的分层方法,本发明的通信时间也低于modnn。当设备数量超过四个时,我们提出的并行计算方法能够以比edgent和三分区网络以更快的速度完成卷积神经网络的推理任务。这是因为虽然其借助于边缘服务器和云端来加速推理,但是仍有一部分任务驻留在边缘设备上。此外,本发明的方法使得数据不必上传至云端服务器,从而避免了隐私泄露的风险。
[0073]
如图6所示为本发明基于不同的神经网络的平均计算时延性能对比图。本发明的并行计算方法能够根据任务时延要求调整推理时间。图6(a)为本发明的并行计算方法针对alexnet卷积神经网络在cifar10数据集的性能图。图6(b)为本发明的并行计算方法针对resnet50卷积神经网络在cifar10数据集的性能图,图6(c)为本发明的并行计算方法针对resnet50卷积神经网络在imagenet数据集的性能图,以图6(a)的alexnet神经网络在cifar10数据集的性能为例,当延迟需求为60ms时,单一设备只能达到78%的准确率,而多设备并行则可以到达79%的准确率,且单一设备无法在38ms内完成推理任务。随着设备数量的增加,本发明可以在规定的时延要求下达到更高的准确率,比如当时延要求为24ms时,两个设备能达到76.6%的准确率,而四个设备能够达到78.3%的准确率。由于imagenet数据集的复杂性,提前退出分支的准确率不及在cifar10数据集上的准确率高,因此图6(c)中平均准确率会有比图b中更多的衰减,但仍在可接受的范围。在图6(b)和图6(c)中,因为resnet卷积神经网络结构的特殊性,具有多个退出点的resnet在单一设备上运行时会出现加速瓶颈现象。这是因为前面的退出分支的准确率不高,并且后面的分支执行时间比较长,为了满足时延要求,大部分输入样本只能从准确率较低的第一个分支退出。但是本发明的多设备并行计算方法可以消除掉加速瓶颈的影响,在保证低时延的前提下,提供具有更高准确率的卷积神经网络推理服务。
[0074]
本发明提出的一种面向边缘集群的并行计算方法,充分利用了边缘环境中空闲异构设备的计算资源,多设备共同参与多层卷积神经网络计算任务,从而提高在计算能力弱的设备上提高多层卷积神经网络任务的执行速度。与“端-边-云”架构不同,本发明提出的架构能够将任务保留在本地集群中运行,无需借助于云端,从而降低了云端的工作负载,并且数据一直保留在本地集群中,避免了隐私泄露的风险。同时,我们提出的方法具有在动态响应时间和准确性之间进行权衡的能力,从而具备了可伸缩性。能够适应边缘环境中不同
任务的需求,用户可以根据需求调整任务时延。具备降低在边缘集群中执行多层卷积神经网络的总时间,提高了边缘集群空闲计算资源的利用率;具备根据异构边缘设备和不同网络条件的自适应工作负载分配算法,并采用多层融合技术进一步减少通信和额外计算开销;根据用户时延需求确定分支网络退出点阈值的方法,从而使得多层卷积神经网络能在规定的时间内完成推理任务等诸多优点。
[0075]
与上述方法相应地,本发明还提供了一种面向边缘集群的并行计算系统,该系统包括计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有计算机指令,所述处理器用于执行所述存储器中存储的计算机指令,当所述计算机指令被处理器执行时该系统实现如前所述方法的步骤。
[0076]
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时以实现前述边缘计算服务器部署方法的步骤。该计算机可读存储介质可以是有形存储介质,诸如随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、软盘、硬盘、可移动存储盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质。
[0077]
本领域普通技术人员应该可以明白,结合本文中所公开的实施方式描述的各示例性的组成部分、系统和方法,能够以硬件、软件或者二者的结合来实现。具体究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(asic)、适当的固件、插件、功能卡等等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。
[0078]
需要明确的是,本发明并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本发明的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本发明的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
[0079]
本发明中,针对一个实施方式描述和/或例示的特征,可以在一个或更多个其它实施方式中以相同方式或以类似方式使用,和/或与其他实施方式的特征相结合或代替其他实施方式的特征。
[0080]
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1