CN114662661B - 边缘计算下异构处理器加速多出口dnn推理的方法 - Google Patents
边缘计算下异构处理器加速多出口dnn推理的方法 Download PDFInfo
- Publication number
- CN114662661B CN114662661B CN202210282401.5A CN202210282401A CN114662661B CN 114662661 B CN114662661 B CN 114662661B CN 202210282401 A CN202210282401 A CN 202210282401A CN 114662661 B CN114662661 B CN 114662661B
- Authority
- CN
- China
- Prior art keywords
- reasoning
- network
- cpu
- layer
- gpu
- 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 32
- 238000013528 artificial neural network Methods 0.000 claims abstract description 33
- 230000001133 acceleration Effects 0.000 claims abstract description 14
- 238000012544 monitoring process Methods 0.000 claims abstract description 4
- 238000004364 calculation method Methods 0.000 claims description 19
- 238000005457 optimization Methods 0.000 claims description 18
- 238000013135 deep learning Methods 0.000 claims description 17
- 230000005540 biological transmission Effects 0.000 claims description 16
- 238000012549 training Methods 0.000 claims description 12
- 238000007667 floating Methods 0.000 claims description 10
- 230000006870 function Effects 0.000 claims description 9
- 230000011218 segmentation Effects 0.000 claims description 9
- 239000008186 active pharmaceutical agent Substances 0.000 claims description 8
- 238000011176 pooling Methods 0.000 claims description 8
- 238000013139 quantization Methods 0.000 claims description 8
- 230000005284 excitation Effects 0.000 claims description 7
- 230000008569 process Effects 0.000 claims description 7
- 238000012795 verification Methods 0.000 claims description 6
- 238000010586 diagram Methods 0.000 claims description 4
- 210000004205 output neuron Anatomy 0.000 claims description 4
- 230000008859 change Effects 0.000 claims description 3
- 238000003672 processing method Methods 0.000 claims description 3
- 238000012360 testing method Methods 0.000 claims description 3
- 238000012546 transfer Methods 0.000 claims description 3
- 238000012545 processing Methods 0.000 description 7
- 238000013136 deep learning model Methods 0.000 description 6
- 230000000875 corresponding effect Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000011160 research Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000000605 extraction Methods 0.000 description 2
- 238000003062 neural network model Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000002079 cooperative effect Effects 0.000 description 1
- 238000002790 cross-validation Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 210000002364 input neuron Anatomy 0.000 description 1
- 238000013140 knowledge distillation Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000013138 pruning Methods 0.000 description 1
- 238000000638 solvent extraction 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/08—Learning methods
-
- 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
-
- 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)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开一种边缘计算下异构处理器加速多出口DNN(Deep Neural Networks)推理的方法,首先针对不同负载下的CPU与GPU,分别统计深度神经网络各层在CPU、GPU上的计算成本、各层提前退出分支出口的分类能力以及各网络层中间数据量大小;然后分析数据,得出特定负载情况下,将深度神经网络各层分配给CPU(GPU)处理器的最优并行组合模型;最后在终端设备上在线监测分析CPU、GPU的负载情况、以及当前的计算能力,以最小化推理时延为目标对深度神经网络推理任务进行切分,任务切块分别被分配在GPU与CPU,最终形成基于异构处理器的推理加速框架。此种方法能够提高推理的灵活性,保证准确率,降低推理总时延,满足边缘智能应用的实时性与高精度需求。
Description
技术领域
本发明属于智能终端领域和深度学习领域,具体地说是在具有异构处理器的智能终端中部署智能应用的场景下,实现应用所依赖的深度学习模型推理优化加速的方法,具体涉及一种边缘计算下异构处理器加速多出口DNN推理的方法。
背景技术
近年来,随着深度学习技术的不断发展以及智能手机、智能手环以及各类IOT(Internet of Things)设备等智能终端的快速普及,在智能终端上运行深度学习应用已成为了必然趋势。在这种模式下,智能终端实时采集周围环境以及用户行为等海量数据,并通过多种相应的深度学习算法对这些环境与用户数据进行挖掘分析,如利用深度神经网络构建的目标检测应用、模拟现实场景的虚拟现实应用以及强大的智能生活助手等。这些智能应用往往是数据密集型与计算密集型任务,它所依赖的深度神经网络模型,主要通过增加网络深度、优化网络结构来获得更优的特征表达与学习推理能力,以达到更高的准确率。然而,更深更复杂的模型极大地增加了推理延迟与计算能耗,例如ResNet-50所需的浮点运算量已达到4×109,这些计算成本对于资源有限、能耗敏感的移动智能终端来说难以接受。因此,单靠智能终端的计算能力往往难以满足深度学习处理应用的需求。于是将资源密集型的深度学习任务卸载给强大的云数据中心变成了常用的处理方案,但是,将大量智能终端捕获的原始数据直接传输到云端执行可能会由于不受控制的长广域网延迟和不稳定的主干网络,带来不可预测的性能问题,在移动智能终端上运行深度学习应用面临着巨大的阻力。
为了减少云计算处理模式的延迟和缓解集中式处理的单点压力问题,近几年来学术界提出了一种具有终端设备与边缘服务器协同作用的体系架构——“边缘计算”,即将部分智能服务从云数据中心下沉到边缘设备,在靠近智能终端设备的位置提供计算、存储资源和通信服务,相比于云数据中心,边缘服务器具有高带宽、低延迟的特点,缓解了云数据中心的计算和存储压力,提高可用性,并保护数据安全和隐私。由于边缘节点距离用户较近,则可以为延迟敏感型的智能应用服务,从而满足终端应用的实时性要求。同时,边缘节点也可以对终端上传的数据进行预处理,从而减少核心网络的传输流量。另一方面,对于深度神经网络模型本身的优化,相关研究关注点主要在模型压缩方面,使用知识蒸馏,网络剪枝,参数量化等方法减少模型的参数量与计算量,从而使深度学习模型能成功部署在移动智能终端上。然而,深度神经网络的精度会因模型压缩而降低,且深度学习框架对模型压缩后的稀疏结构的支持并不友好。结合边缘计算这一新型计算模型的优势,许多研究工作逐渐开始将边缘计算与人工智能应用两者进行结合,边缘智能(Edge Intelligence)成为了新的趋势。
为了在边缘计算环境下高效运行深度学习应用,边缘智能的部分相关工作已经在关注终端层、边缘层两者的计算和存储能力特点,将其与深度神经网络的结构特点结合考虑,以减少总体的计算开销和传输时延。现有的方法仍处于初步研究阶段,可以用终端上的方法主要包括以下两类:(1)模型提前退出机制;(2)推理策略加速机制。
在研究(1)中,基于模型输入数据的复杂程度分布特点以及深度学习模型各网络层的特征提取能力差异,研究者发现模型中浅层网络提取的特征已可用于部分样本提前完成分类任务,输入数据不再无差别地执行整个模型的前向推理,而是根据自身数据的复杂程度选择合适的浅层分支出口提前退出,每个出口都有手动设置的阈值对早期结果进行决策。目前的工作简单地在深度神经网络原型上添加三个出口,使得简单任务可以在较浅层完成推理任务,避免无差别的执行整个深度学习模型的推理。然而,此类方法忽略了极端情况下的任务执行模式(所有的分支都需要执行一遍),将导致不可预测的性能骤降问题。
在研究(2)中,推理策略加速机制主要分为推理任务的卸载算法优化和硬件推理的加速优化。在推理任务的卸载算法优化中,根据边缘环境中服务器的资源是有限的这一特点,为了在终端设备上执行深度学习任务,现阶段主要采取0-1任务卸载的方式,即,将部分任务卸载给边缘服务器进行处理,剩余部分的任务利用终端的资源进行处理。在智能终端上的硬件推理的加速优化方面,现有在智能终端上的研究工作,仅简单地提升GPU硬件的算力并将深度学习推理任务卸载给GPU处理,未考虑智能终端上各处理器的实际计算能力和资源利用情况,留有性能提升的空间。
故现有的深度学习模型推理加速方法应用于边缘计算融合人工智能应用的场景下仍存在较大的局限性,无法满足边缘智能应用低时延、高精度的运行需求,本案由此产生。
发明内容
本发明的目的,在于提供一种边缘计算下异构处理器加速多出口DNN推理的方法,基于深度神经网络各层计算量和分类效益分析进行任务推理优化,主干层与分支出口网络层采用异构处理器并行推理以达到加速多路径的推理加速效果,在边缘计算环境下实现多路径深度神经网络基于异构处理器的推理加速框架,提高模型推理的灵活性,保证准确率的同时最小化推理总时延,从而满足边缘智能应用的实时性与高精度需求。
为了达成上述目的,本发明的解决方案是:
一种边缘计算下异构处理器加速多出口DNN推理的方法,包括如下步骤:
步骤1,在已有的数据集上,分析深度神经网络各层的输出特征图的数据量大小,对各层分支出口的分类能力、在异构处理器上的计算开销差异以及中间特征的数据量传输延迟进行量化表示,构建量化模型;
步骤2,针对不同的处理器负载情况下,即,在不同的CPU利用率、GPU利用率情况下,在步骤1的“量化模型”、“各层分支的分类能力”以及“中间特征的数据量传输延迟”三者之间决策,从而确定最终基于异构处理器的推理组合;
步骤3,结合步骤2中对传输阶段的中间特征图处理方法,将深度神经网络部署至终端异构处理器的环境下,CPU层实时监测系统中的设备资源负载情况与当前处理器的计算能力,以最小化时延为目标对多路径的深度学习推理模型进行切分,将计算分割为“GPU-CPU”两部分,按照最佳性能将不同网络层的推理任务分别卸载到CPU或GPU上,实现在线的推理加速。
上述步骤1的具体内容是:
步骤101,分析卷积层、池化层、激励层和全连接层的内部参数结构,参数包括卷积核窗口大小、池化窗口大小、滑动步长、激励函数和输出神经元个数,计算各类型层的浮点运算量;
步骤102,在实际环境中,测试各类网络层在设备上的执行情况,修改层的参数改变浮点运算量,同时改变系统CPU利用率、统计各种情况下的时间开销,制作数据集用于训练预测推理耗时的回归模型;
步骤103,在深度神经网络的每个卷积层后添加分类器作为浅层出口,与模型主干同时训练,浅层出口使用独立的损失函数,模型主干使用联合损失函数;
步骤104,训练时使用交叉验证法,获得每个出口在不同验证集上的准确率,假设深度神经网络共有n-1个备选出口(不包含主干出口),进入分支的样本都有一定的概率达到置信度,可以退出网络,各分支出口的退出概率用先验统计概率pi来表示,P={p0,p1,p2,p3,...,pn-1,pn},假设p0为虚拟出口,p0=0;pn表示多出口网络主干网络的出口退出概率,pn=1。设置μi为执行第i个网络层的概率,f(μi,pi)为执行第i个分支退出的概率,其中f(μi,pi)=μi*pi。
步骤105,从初始输入到每个出口所经过的计算层,形成n条推理路径,其中,最长的路径为模型主干,使用步骤102的回归模型所预测主干各网络层使用CPU/GPU计算所需的时间开销分别为即:/>各出口路径的网络层使用CPU/GPU计算所需的时间开销分别为/>即:令模型推理任务执行到第i个网络层后的中间数据量大小DSi,其中i∈[0,n],DSi从GPU到CPU的传输延迟为:其中BWpcie表示PCIE带宽;
上述步骤2的具体内容是:
步骤201,在步骤1的基础上,添加决策变量。设计一个决策变量,表示第i个分支在CPU上计算,/>表示第i个分支在GPU上计算。则/>其中/>表示在CPU和GPU之间二选一;
步骤202,根据201添加的决策变量,建立推理优化目标。推理任务的优化目标是,通过合理地设置决策变量数值,使得分支有选择地在CPU和GPU之间做权衡,以最小化推理任务时延为目标,给出优化目标用公式化的表现形式:
步骤203,多出口网络中,最长的路径作为主干,前向传播过程中,每执行一个网络层都会获得一个中间特征数据,若当前分支点存在分支出口网络,则根据变量决定在CPU或者GPU执行该出口网络的推理任务,若满足置信度,则任务直接从当前出口退出,返回分类结果;若不满足置信度要求,则执行步骤204。若当前分支点不存在分支出口网络,则执行步骤204。
步骤204,推理任务继续前向传播,重复步骤203直到最长路径出口,即主干出口,根据步骤203直接退出并返回结果。
上述步骤3的具体内容是:
步骤301,CPU实时监测本地计算负载,接收到任务后,根据特定负载情况下先验的CPU、GPU性能模型,结合CPU与GPU之间的数据传输开销,获取最佳的多出口网络任务分配策略,即
步骤302,CPU主进程执行模型切分决策,使用步骤301取得的Xb结果,CPU核GPU按照任务分配策略,分别执行推理任务。
步骤303,当执行到达分支出口网络与主干网络的交叉点时,若时,从分支点扩展出去两个箭头表示启动两个子任务a和b(主干和分支),两个子任务并行执行。若时,此时只有一个任务a,先执行分支的推理,若分支执行结果满足置信度,则退出网络;否则,若任务无法在浅层切块内提前退出,则按照原有的步骤203模式执行;
步骤304,若且分支执行结果满足置信度,则任务直接从当前出口退出,返回分类结果,并发送stop信息给子任务a,终止子任务a的执行。若/>时,此时只有一个任务a,先执行分支的推理,若分支执行结果满足置信度,则退出网络;若任务无法在浅层切块内提前退出,则进入步骤203。
上述负载信息包括PCIE带宽、CPU利用率、GPU利用率。
采用上述方案后,本发明与现有技术相比,具有以下优点:
(1)本发明通过切分深度神经网络“端到端”的模型推理结构,结合边缘智能的领域优势,实现深度神经网络的多路径推理加速,为分布式深度学习方法提供了一种基础框架;
(2)本发明,通过衡量智能终端设备上CPU和GPU在各网络层上的计算时间,明确了终端设备上CPU与GPU协同推理的有效性,为终端设备上深度学习推理任务的执行优化提供了新的思路;
(3)本发明结合多路径推理、模型细粒度切分以及异构处理器协同的方法,有效利用终端计算资源,更好地适应边缘智能应用的实时性要求。
本发明主要解决边缘计算环境下运行人工智能应用时,传统深度神经网络的计算模式无法满足实时性的问题以及多出口深度学习网络极端情况下的性能骤降问题,在有效地区分任务难易程度的情况下,可以充分利用智能终端的计算存储资源,保证推理时延的稳定性,显著地提高用户体验。
附图说明
图1是本发明的面向边缘智能应用的基于异构处理器的多路径DNN推理框架示意图;
图2是本发明的异构处理器下的各网络层任务划分示意图。
具体实施方式
以下将结合附图,对本发明的技术方案及有益效果进行详细说明。
本发明基于对深度学习模型的可解构性分析,利用边缘计算的分布式结构,提出了一种面向边缘智能应用的深度神经网络多路径推理加速方法,包含三个部分,分别是:
①多路径深度神经网络各网络层的计算量衡量与预测;
②多路径深度神经网络各网络层在异构处理器间的任务分配;
③基于异构处理器的多路径DNN推理框架生成。本发明基于深度神经网络各层在异构处理器上的计算开销差异以及不同分支出口网络的分类能力,利用异构处理器并行执行多路径的推理任务,于边缘计算环境下实时分析设备的性能参数,执行最优模型切分,完成深度神经网络多路径在线推理框架。
该方法包括以下步骤:
步骤1)首先在传统的DNN原型上添加合适的出口组合,形成多路径DNN的基础结构。DNN的特征提取能力一般由卷积层的参数和数量决定,绝大部分的计算量也集中在卷积层,因此出口均设置在各卷积层之后;在已有的数据集上,分析深度神经网络各层的输出特征图的数据量大小,对各层分支出口的分类能力、在异构处理器上的计算开销差异以及中间特征的数据量传输延迟进行量化表示,构建量化模型;
具体步骤如下所示:
步骤101)分析卷积层、池化层、激励层和全连接层的内部参数结构,参数包括卷积核窗口大小、池化窗口大小、滑动步长、激励函数和输出神经元个数,计算各类型层的浮点运算量;
步骤102)在实际环境中,测试各类网络层在设备上的执行情况,修改层的参数改变浮点运算量,同时改变系统CPU利用率、统计各种情况下的时间开销,制作数据集用于训练预测推理耗时的回归模型;
步骤103)在深度神经网络的每个卷积层后添加分类器作为浅层出口,与模型主干同时训练,浅层出口使用独立的损失函数,模型主干使用联合损失函数;
步骤104)训练时使用交叉验证法,获得每个出口在不同验证集上的准确率,假设深度神经网络共有n-1个备选出口(不包含主干出口),进入分支的样本都有一定的概率达到置信度,可以退出网络,各分支出口的退出概率用先验统计概率pi来表示,P={p0,p1,p2,p3,...,pn-1,pn},假设p0为虚拟出口,p0=0;pn表示多出口网络主干网络的出口退出概率,pn=1。设置μi为执行第i个网络层的概率,f(μi,pi)为执行第i个分支退出的概率,其中f(μi,pi)=μi*pi。
步骤105)从初始输入到每个出口所经过的计算层,形成n条推理路径,其中,最长的路径为模型主干,使用步骤102的回归模型所预测主干各网络层使用CPU/GPU计算所需的时间开销分别为即:/>各出口路径的网络层使用CPU/GPU计算所需的时间开销分别为/>即:令模型推理任务执行到第i个网络层后的中间数据量大小DSi,其中i∈[0,n],DSi从GPU到CPU的传输延迟为:其中BWpcie表示PCIE带宽;
步骤2)针对不同的处理器负载情况下,即,在不同的CPU利用率、GPU利用率情况下,在步骤1的“量化模型”、“各层分支的分类能力”以及“中间特征的数据量传输延迟”三者之间决策,从而确定最终基于异构处理器的推理组合。
具体步骤如下所示:
步骤201)在步骤1的基础上,添加决策变量。设计一个决策变量,表示第i个分支在CPU上计算,/>表示第i个分支在GPU上计算。则/>其中/>表示在CPU和GPU之间二选一;
步骤202)根据201添加的决策变量,建立推理优化目标。推理任务的优化目标是,通过合理地设置决策变量数值,使得分支有选择地在CPU和GPU之间做权衡,以最小化推理任务时延为目标,给出优化目标用公式化的表现形式:
步骤203)多出口网络中,最长的路径作为主干,前向传播过程中,每执行一个网络层都会获得一个中间特征数据,若当前分支点存在分支出口网络,则根据变量决定在CPU或者GPU执行该出口网络的推理任务,若满足置信度,则任务直接从当前出口退出,返回分类结果;若不满足置信度要求,则执行步骤204。若当前分支点不存在分支出口网络,则执行步骤204。
步骤204)推理任务继续前向传播,重复步骤203直到最长路径出口,即主干出口,根据步骤203直接退出并返回结果。
步骤3)结合步骤2中对传输阶段的中间特征图处理方法,将深度神经网络部署至终端异构处理器的环境下,CPU层实时监测系统中的设备资源负载情况与当前处理器的计算能力,以最小化时延为目标对多路径的深度学习推理模型进行切分,将计算分割为“GPU-CPU”两部分,按照最佳性能将不同网络层的推理任务分别卸载到CPU或GPU上,实现在线的推理加速。
具体步骤如下所示:
步骤301)CPU实时监测本地计算负载,接收到任务后,根据特定负载情况下先验的CPU、GPU性能模型,结合CPU与GPU之间的数据传输开销,获取最佳的多出口网络任务分配策略,即
步骤302)CPU主进程执行模型切分决策,使用步骤301取得的Xb结果,CPU核GPU按照任务分配策略,分别执行推理任务。
步骤303)当执行到达分支出口网络与主干网络的交叉点时,若时,从分支点扩展出去两个箭头表示启动两个子任务a和b(主干和分支),两个子任务并行执行。若时,此时只有一个任务a,先执行分支的推理,若分支执行结果满足置信度,则退出网络;否则,若任务无法在浅层切块内提前退出,则按照原有的步骤203模式执行;
步骤304)若且分支执行结果满足置信度,则任务直接从当前出口退出,返回分类结果,并发送stop信息给子任务a,终止子任务a的执行。若/>时,此时只有一个任务a,先执行分支的推理,若分支执行结果满足置信度,则退出网络;若任务无法在浅层切块内提前退出,则进入步骤203。
本发明实施例的整体实施步骤如图1所示,图中以图像分类应用为典型案例,离线阶段完成多路径推理模型的构造与训练,即出口的设定和训练;然后在不同负载下,在异构处理器上分别对多出口网络的各网络层进行计算衡量,通过训练一个回归模型预测实际系统环境下各层的时间开销,作为切分点预测模型的依据;在线推理阶段执行模型部署,模型切分,多路径网络并行推理。
实施例1:如图1所示,本发明通过训练时延预测模型来预测各网络层所需的计算时间开销,并以此来表示各网络层的计算量。仅考虑模型参数的情况下,各层计算量主要由浮点运算量(FLOPs)体现,层的类型包含卷积层、池化层、激励层和全连接层,决定运算量的重要参数包括:输入特征图的大小(W×H),输入和输出的通道数(Cin,Cout),卷积核窗口大小(kw×kh);池化窗口(pw×ph),以及全连接层的输入和输出神经元个数(Fin,Fout),浮点运算量的计算如下:
结合实际系统,考虑CPU占用率(u)和可用内存大小(m)的影响,上述浮点运算量(f)可假设一般情况各窗口高宽相等,训练的时延预测回归模型yt定义如下:
yt(u,m,f(Cin,Cout,Fin,Fout,kw,pw);θ)
从初始输入到每个出口所经过的计算层,形成多条推理路径,各出口交叉验证得到的准确率作为对应路径的先验退出概率P={p0,p1,p2,p3,...,pn-1,pn}回归模型预测得到每条路径的时间开销,如主干各网络层使用CPU/GPU计算所需的时间开销分别为各出口路径的网络层使用CPU/GPU计算所需的时间开销分别为/>并令模型推理任务执行到第i个网络层后的中间数据量大小DSi,其中i∈[0,n],DSi从GPU到CPU的传输延迟为/>其中BWpcie表示PCIE带宽。
实施例2:如图1所示,不同CPU利用率情况下,对应着不同的执行时间,有着不同的执行策略。基于上述的多路径模型所得到的的时延量化预测模型、分支的“提前退出概率”以及“中间特征的数据量传输延迟”,通过切分预测模型对多出口深度神经网络进行切分,本发明将模型主干和出口网络的推理过程并行化,从而在提高资源利用率的同时,降低多路径的推理延迟,并解决了多出口网络推理在极端情况下由于冗余计算导致的性能骤降问题。在模型的切分策略中,需要明确模型切分决策变量其中,1-n表示n个分支,主干部分由GPU执行,分支部分的网络模型需要通过决策变量Xb决定当前任务的处理流程。
如图2所示的并行流程图,每一个分支节点i都对应着一个概率μi,用于表示第i个网络层被执行的概率,那么第i个网络层执行的时间即可表示为且相应输入样本可以在分支出口退出的概率和时延分别为/>其中/>表示分支的执行时间,具体而言:
可得最终的优化目标为最小化所有分支出口处输入样本的退出时延:
其中决策变量表征了多出口网络的各分支出口网络在异构处理器上的任务分配决策情况。
实施例3:异步执行多出口网络推理工作。如图2所示,在线阶段包括模型的切分和异构处理器的协同多路径并行推理步骤,实现所有的离线阶段之后,将生成的多路径深度神经网络部署在移动智能终端设备的异构处理器上,执行在线多路径并行推理。智能终端设备实时监测本地的计算负载,接收到任务后根据实时的负载情况,预测得到对应的任务分配决策情况Xb,任务的执行分为主干网络的推理和分支出口网络的推理两大并行部分,当分支出口网络被分配给CPU执行时,若任务能从分支出口网络退出,则主干网络的执行也随即停止更深层次的推理,直接返回分支出口网络的推理结果。
以上实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。
Claims (4)
1.边缘计算下异构处理器加速多出口DNN推理的方法,其特征在于,包括如下步骤:
步骤1,在已有的数据集上,分析深度神经网络各层的输出特征图的数据量大小,对各层分支出口的分类能力、在异构处理器上的计算开销差异以及中间特征的数据量传输延迟进行量化表示,构建量化模型;
步骤2,针对不同的处理器负载情况下,即,在不同的CPU利用率、GPU利用率情况下,在步骤1的“量化模型”、“各层分支出口的分类能力”以及“中间特征的数据量传输延迟”三者之间决策,从而确定最终基于异构处理器的推理组合;
步骤3,结合步骤2中对传输阶段的中间特征图处理方法,将深度神经网络部署至终端异构处理器的环境下,CPU层实时监测系统中的设备资源负载情况与当前处理器的计算能力,以最小化时延为目标对多路径的深度学习推理模型进行切分,将计算分割为“GPU-CPU”两部分,按照最佳性能将不同网络层的推理任务分别卸载到CPU或GPU上,实现在线的推理加速;
所述步骤3的具体内容是:
步骤301,CPU实时监测本地计算负载,接收到任务后,根据特定负载情况下先验的CPU、GPU性能模型,结合CPU与GPU之间的数据传输开销,获取最佳的多出口网络任务分配策略,即
步骤302,CPU主进程执行模型切分决策,使用步骤301取得的Xb结果,CPU核GPU按照任务分配策略,分别执行推理任务;
步骤303,当执行到达分支出口网络与主干网络的交叉点时,若时,从分支点扩展出去两个箭头表示启动两个子任务a和b,即主干和分支,两个子任务并行执行;若时,此时只有一个任务a,先执行分支的推理,若分支执行结果满足置信度,则退出网络;否则,若任务无法在浅层切块内提前退出,则按照原有的步骤203模式执行;
步骤304,若且分支执行结果满足置信度,则任务直接从当前出口退出,返回分类结果,并发送stop信息给子任务a,终止子任务a的执行;若/>时,此时只有一个任务a,先执行分支的推理,若分支执行结果满足置信度,则退出网络;若任务无法在浅层切块内提前退出,则进入步骤203。
2.如权利要求1所述的边缘计算下异构处理器加速多出口DNN推理的方法,其特征在于:所述步骤1的具体内容是:
步骤101,分析卷积层、池化层、激励层和全连接层的内部参数结构,参数包括卷积核窗口大小、池化窗口大小、滑动步长、激励函数和输出神经元个数,计算各类型层的浮点运算量;
步骤102,在实际环境中,测试各类网络层在设备上的执行情况,修改层的参数改变浮点运算量,同时改变系统CPU利用率、统计各种情况下的时间开销,制作数据集用于训练预测推理耗时的回归模型;
步骤103,在深度神经网络的每个卷积层后添加分类器作为浅层出口,与模型主干同时训练,浅层出口使用独立的损失函数,模型主干使用联合损失函数;
步骤104,训练时使用交叉验证法,获得每个出口在不同验证集上的准确率,假设深度神经网络共有n-1个备选出口,其中不包含主干出口,进入分支的样本都有一定的概率达到置信度,退出网络,各分支出口的退出概率用先验统计概率pi来表示,P={p0,p1,p2,p3,...,pn-1,pn},假设p0为虚拟出口,p0=0;pn表示多出口网络主干网络的出口退出概率,pn=1;设置μi为执行第i个网络层的概率,f(μi,pi)为执行第i个分支退出的概率,其中f(μi,pi)=μi*pi;
步骤105,从初始输入到每个出口所经过的计算层,形成n条推理路径,其中,最长的路径为模型主干,使用步骤102的回归模型所预测主干各网络层使用CPU/GPU计算所需的时间开销分别为即:/>各出口路径的网络层使用CPU/GPU计算所需的时间开销分别为/>即:令模型推理任务执行到第i个网络层后的中间数据量大小DSi,其中i∈[0,n],DSi从GPU到CPU的传输延迟为:其中BWpcie表示PCIE带宽。
3.如权利要求1所述的边缘计算下异构处理器加速多出口DNN推理的方法,其特征在于:所述步骤2的具体内容是:
步骤201,在步骤1的基础上,添加决策变量;设计一个决策变量,表示第i个分支在CPU上计算,/>表示第i个分支在GPU上计算;则/>其中表示在CPU和GPU之间二选一;
步骤202,根据201添加的决策变量,建立推理优化目标;推理任务的优化目标是,通过合理地设置决策变量数值,使得分支有选择地在CPU和GPU之间做权衡,以最小化推理任务时延为目标,给出优化目标用公式化的表现形式:
步骤203,多出口网络中,最长的路径作为主干,前向传播过程中,每执行一个网络层都会获得一个中间特征数据,若当前分支点存在分支出口网络,则根据变量决定在CPU或者GPU执行该出口网络的推理任务,若满足置信度,则任务直接从当前出口退出,返回分类结果;若不满足置信度要求,则执行步骤204;若当前分支点不存在分支出口网络,则执行步骤204;
步骤204,推理任务继续前向传播,重复步骤203直到最长路径出口,即主干出口,根据步骤203直接退出并返回结果。
4.如权利要求1所述的边缘计算下异构处理器加速多出口DNN推理的方法,其特征在于:所述负载的信息包括CPU利用率、GPU利用率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210282401.5A CN114662661B (zh) | 2022-03-22 | 2022-03-22 | 边缘计算下异构处理器加速多出口dnn推理的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210282401.5A CN114662661B (zh) | 2022-03-22 | 2022-03-22 | 边缘计算下异构处理器加速多出口dnn推理的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114662661A CN114662661A (zh) | 2022-06-24 |
CN114662661B true CN114662661B (zh) | 2024-04-16 |
Family
ID=82030987
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210282401.5A Active CN114662661B (zh) | 2022-03-22 | 2022-03-22 | 边缘计算下异构处理器加速多出口dnn推理的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114662661B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114997401B (zh) * | 2022-08-03 | 2022-11-04 | 腾讯科技(深圳)有限公司 | 自适应推理加速方法、装置、计算机设备和存储介质 |
CN115841590B (zh) * | 2022-11-16 | 2023-10-03 | 中国烟草总公司湖南省公司 | 神经网络推理优化方法、装置、设备及可读存储介质 |
CN115545198B (zh) * | 2022-11-25 | 2023-05-26 | 成都信息工程大学 | 一种基于深度学习模型的边缘智能协同推断方法及系统 |
CN116451757B (zh) * | 2023-06-19 | 2023-09-08 | 山东浪潮科学研究院有限公司 | 一种神经网络模型的异构加速方法、装置、设备及介质 |
CN116974654B (zh) * | 2023-09-21 | 2023-12-19 | 浙江大华技术股份有限公司 | 一种图像数据的处理方法、装置、电子设备及存储介质 |
CN116991564B (zh) * | 2023-09-28 | 2024-01-09 | 之江实验室 | 面向异构双核mcu的算子内并行加速方法 |
CN117834643B (zh) * | 2024-03-05 | 2024-05-03 | 南京邮电大学 | 一种面向工业物联网的深度神经网络协同推理方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111445026A (zh) * | 2020-03-16 | 2020-07-24 | 东南大学 | 面向边缘智能应用的深度神经网络多路径推理加速方法 |
CN112685176A (zh) * | 2020-12-25 | 2021-04-20 | 国网河北省电力有限公司信息通信分公司 | 一种改进ddnn的资源受限边缘计算方法 |
-
2022
- 2022-03-22 CN CN202210282401.5A patent/CN114662661B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111445026A (zh) * | 2020-03-16 | 2020-07-24 | 东南大学 | 面向边缘智能应用的深度神经网络多路径推理加速方法 |
CN112685176A (zh) * | 2020-12-25 | 2021-04-20 | 国网河北省电力有限公司信息通信分公司 | 一种改进ddnn的资源受限边缘计算方法 |
Non-Patent Citations (1)
Title |
---|
ADDA: Adaptive Distributed DNN Inference Acceleration in Edge Computing Environment;Huitian Wang 等;2019 IEEE 25th International Conference on Parallel and Distributed Systems;20200131;第438-445页 * |
Also Published As
Publication number | Publication date |
---|---|
CN114662661A (zh) | 2022-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114662661B (zh) | 边缘计算下异构处理器加速多出口dnn推理的方法 | |
CN110347500B (zh) | 用于边缘计算环境中面向深度学习应用的任务卸载方法 | |
CN111445026B (zh) | 面向边缘智能应用的深度神经网络多路径推理加速方法 | |
CN113242568B (zh) | 一种不确定网络环境中的任务卸载和资源分配方法 | |
CN110971706B (zh) | Mec中近似最优化与基于强化学习的任务卸载方法 | |
CN113950066B (zh) | 移动边缘环境下单服务器部分计算卸载方法、系统、设备 | |
CN112380008B (zh) | 一种面向移动边缘计算应用的多用户细粒度任务卸载调度方法 | |
CN108920280B (zh) | 一种单用户场景下的移动边缘计算任务卸载方法 | |
CN112788605B (zh) | 基于双延迟深度确定性策略边缘计算资源调度方法和系统 | |
CN111930436A (zh) | 一种基于边缘计算的随机型任务排队卸载优化方法 | |
CN111711666B (zh) | 一种基于强化学习的车联网云计算资源优化方法 | |
CN109246761B (zh) | 考虑延迟及能耗的基于交替方向乘子法的卸载方法 | |
CN113286329B (zh) | 基于移动边缘计算的通信和计算资源联合优化方法 | |
CN111475274A (zh) | 云协同多任务调度方法及装置 | |
Wang et al. | ADDA: Adaptive distributed DNN inference acceleration in edge computing environment | |
CN112214301B (zh) | 面向智慧城市基于用户偏好的动态计算迁移方法及装置 | |
CN113128681B (zh) | 一种多边缘设备辅助的通用cnn推理加速系统 | |
CN115934333A (zh) | 基于历史数据感知的云计算资源调度方法及调度系统 | |
CN115292032A (zh) | 一种多用户接入的智能边缘计算系统中的任务卸载方法 | |
CN113573363A (zh) | 基于深度强化学习的mec计算卸载与资源分配方法 | |
CN115967990A (zh) | 一种基于分类和预测的边端协同业务卸载方法 | |
Shi et al. | Multiuser co-inference with batch processing capable edge server | |
CN113703984A (zh) | 5g云边协同场景下基于soa架构的云任务优化策略方法 | |
CN113139639A (zh) | 一种基于mombi面向智慧城市应用多目标计算迁移方法和装置 | |
CN112685162A (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 |