基于神经网络相似度建模的实时DNN调度系统及方法

文档序号:26842048发布日期:2021-10-08 23:12阅读:254来源:国知局
基于神经网络相似度建模的实时DNN调度系统及方法
基于神经网络相似度建模的实时dnn调度系统及方法
技术领域
1.本发明涉及神经网络领域,特别涉及一种基于神经网络相似度建模的实时dnn调度系统及方法。


背景技术:

2.近年来,深度神经网络(dnns)的发展带动了人工智能(ai)在物联网(iot)和信息物理系统(cps)中的应用,如自动驾驶、环境传感和智能机器人等。为了保证收集到的环境信息的有效性和正确性,iot、cps等异构分布式系统必须对实时dnn推理任务提供及时响应,需要一个实时调度框架来满足对延迟的要求。此外,为了提高调度性能,此类系统需要提前获取推理时间。然而,在dnn模型的快速迭代中,很难实时测量每个新生成模型的实际推理时间。这也是dnn推理任务中基于时间感知的调度算法设计遇到的主要挑战。
3.现有的最先进的dnn推理框架有助于提高执行批处理任务的吞吐量和资源效率,如torch、tensorflow和caffe等。但在他们的方法中没有考虑到时间要求,这对于时间关键系统是特别重要的。在最近的研究中,大多数dnn推理框架的调度策略集中在并行机制、批处理大小、资源感知等方面。其中,有论文提出了一种采用自适应批处理来调度dnn推理作业的方法,但它们只能在云环境中,大部分边缘实时推理环境并不适用;还有论文提出了一种满足特定推理服务时延的调度方法,可以实现更短的任务调度响应时间,但该方法没有考虑多个dnn之间的推理时间差,也没有考虑dnn模型的频繁迭代,导致该方法无法适用于不断变化的实时推理调度任务。因此,由于缺乏时间预测方法,以往的工作要么不能满足时间需求,要么在异构模型或设备上调度效率较低。
4.从以上工作可以明显看出,推理时间感知在调度中是至关重要的。为了预测推理时间,越来越多的研究集中在dnn每一层计算复杂度上。一些研究通过对网络在设备上的所有层进行评估,提前获得dnn推理性能。然而,这种侵入式方法依赖于昂贵的计算,并要求框架代码是开源的,这很难应用于频繁执行复杂dnn推理任务的实时调度系统。现有技术中曾引入了一个相似性指数来衡量表征相似矩阵之间的关系,这相当于中心核对齐(cka)。然而,它们仍然无法逃避度量神经网络相似性的侵入性度量方法。尽管最近有论文提出了一种非侵入式的方法来分析每个dnn层的内存使用情况,但由于特征覆盖率不足,它只能用于分析内存,而不能用于分析网络性能。
5.综上所述,之前的研究表明,基于dnn在设备上的推断时间进行调度可以获得最佳响应时间。但是,如果通过测量来获取推理时间,将消耗大量的计算能力,这也不适用于频繁更新和迭代的dnn模型。虽然最近的研究工作已经在dnn推理调度和dnn模型剖析方面做了,但很少关注基于dnn模型独特性的实时推理框架。我们广泛的测量表明,相似的dnn结构性能可以导致相似的dnn性能表征在一定的设备上。受此启发,我们认为dnn推理时间可以通过模型的性能表征方法进行理论预测,这有助于建立最有效的调度框架。


技术实现要素:

6.本发明目的是:针对dnn推理任务的最大响应时间问题,本发明提供一种基于神经网络相似度建模的实时dnn调度系统及方法,本发明主要解决的问题有以下三点:
7.(a)根据神经网络性能表征探究其相似关系。
8.随着越来越多的人工智能应用场景的开发,dnn模型的数量呈爆炸式增长。为解决异构dnn模型之间的巨大差异带来的分析困难,本专利提出了一套分析异构dnn模型的相似度方法论。
9.(b)通过dnn性能表征的相似性来预测dnn推理时间。
10.基于以上相似度分析方法论,本专利提出了一种非侵入式的dnn性能预测方法,通过性能表征网络来分析网络在异构设备上的性能表征。
11.(c)满足实时dnn推理任务的时序要求,同时最小化它们的响应时间。
12.我们对实时推理任务调度问题给出了系统化的表述,并就dnn任务特征建模实现了一个针对实时推理任务的调度框架,解决了dnn实时调度中缺少任务感知的问题。
13.本发明的技术方案是:
14.基于神经网络相似度建模的实时dnn调度系统,包括:
15.dnn特征提取模块,对dnn网络结构进行提取分析和判断,根据判断结果将需要预测的网络结构特征发送到dnn性能表征模块,其余无需预测的网络结构特征发送到调度模块;
16.dnn性能表征模块,进行网络结构特征进行性能预测,预测其在每个设备上的运行时间,经过目标微调后,发送到调度模块;
17.调度模块,对每个任务已知的性能表征进行调度,以确保任务以最小的等待时间在最大截止时间之前完成。
18.优选的,所述dnn特征提取模块,包括:
19.网络结构分析器,对神经网络进行离线分析,得到与性能表征相关的网络结构特征;
20.结构检查器,根据网络结构分析器提取的网络结构特征选择网络性能预测策略。
21.优选的,dnn性能表征模块,包括:
22.网络特征数据库,负责维护大中型网络的结构数据,以便在推理过程中提供反馈条件;
23.性能表征网络,用于基于神经网络相似度建模对异构设备上网络的性能表征进行预测;
24.时间微调器,用于在线微调预测结果的精度。
25.优选的,所述调度模块,包括:
26.收集器,将任务建模结果集成为后续调度单元的调度矩阵;
27.任务调度器,根据从收集器获得的调度矩阵生成调度策略,在保证接受率的前提下使任务等待时间最小化。
28.基于神经网络相似度建模的实时dnn调度方法,包括步骤:
29.s1、在dnn特征提取模块,对dnn网络结构进行提取分析和判断,根据判断结果将需要预测的网络结构特征发送到dnn性能表征模块,其余无需预测的网络结构特征发送到调
度模块;
30.s2、在dnn性能表征模块中,进行网络结构特征进行性能预测,预测其在每个设备上的运行时间,经过目标微调后,发送到调度模块;
31.s3、在调度模块中,对每个任务已知的性能表征进行调度,以确保任务以最小的等待时间在最大截止时间之前完成。
32.优选的,步骤s1中,
33.采用网络结构分析器对神经网络进行离线分析,得到与性能表征相关的网络结构特征;通过特征提取方法实现对神经网络计算任务的建模分析;
34.随后针对所得到的特征,提取关键特征,并在关键特征上实现单一设备的网络性能表征预测;
35.并采用结构检查器,根据网络结构分析器提取的网络结构特征选择网络性能预测策略。
36.优选的,步骤s1中,网络结构分析器采用皮尔森系数分析和多次残差拟合提取关键特征;
37.结构检查器通过网络的总计算量来判断网络的规模,并对不同规模的网络采用不同的预测策略;小型网络根据网络参数的数量、层数和计算量来得到其在每个设备上的性能表征的传统模型,并使用线性回归模型进行预测;其他网络由运行时性能描述模块预测;
38.优选的,步骤s2中,
39.采用网络特征数据库维护大中型网络的结构数据,通过维护网络特征数据库形成反馈数据流;
40.采用性能表征网络基于神经网络相似度建模对异构设备上网络的性能表征进行预测;
41.采用时间微调器通过自动选择网络特征拟合预测残差,使预测结果更接近实际运行时间。
42.优选的,步骤s2中,网络特征数据库基于反馈数据流,设计调度系统的反馈学习算法,其中学习机制分为两部分:在线微调机制和离线再培训模式;性能表征网络基于神经网络相似度建模,具有自注意模块,作为预测dnn网络性能的一种方法。
43.优选的,步骤s3中,
44.收集器将任务建模结果集成为后续调度单元的调度矩阵,并将其传递给任务调度器进行调度;
45.任务调度器根据从收集器获得的调度矩阵生成调度策略,在保证接受率的前提下使任务等待时间最小化。
46.优选的,步骤s3中,
47.收集器对于大中型网络,直接收集dnn性能预测模型预测的结果作为任务运行时间预测;对于小型网络,收集器使用传统的预测模型来预测它们的运行时间;最后,收集器将上述任务性能表征预测的结果传递到调度矩阵中,并将其传递给任务调度器进行调度;
48.任务调度器,使用添加限制的最小松弛优先调度llf,对任务进行调度,在保证最大任务接受率的同时最小化等待时间。
49.本发明的优点是:
50.1.本发明的基于神经网络相似度建模的实时dnn调度系统及方法,通过性能表征网络实现了对异构设备的网络性能预测,误差较小;
51.2.本发明的基于神经网络相似度建模的实时dnn调度系统及方法,首先对神经网络任务进行神经网络建模,提取关键特征。紧接着,通过性能表征网络对每个设备上的每个任务进行性能表征预测,得到性能表征矩阵;最后,以性能表征矩阵为调度矩阵,利用llf算法求解最优调度策略,有效提高了性能和任务接受率;
52.3.本发明的基于神经网络相似度建模的实时dnn调度系统及方法,在使用前的模型训练阶段时间消耗较少,在系统的使用过程中,反馈学习需要少量的时间消耗,但不影响正常的任务调度,在实际调度中,可以对累计的任务数量进行批量调整,而不必每次都进行调整,这样可以节省时间。
附图说明
53.下面结合附图及实施例对本发明作进一步描述:
54.图1为基于神经网络相似度建模的实时dnn调度系统框架设计图;
55.图2为dnn特征分析的示意图;
56.图3为缩放点乘积注意力模块的示意图;
57.图4为自注意力模块的示意图;
58.图5为性能表征网络结构的示意图;
59.图6为性能表征网络对随机网络的预测分析结果;
60.图7为四种不同算法的调度结果;
61.图8为任务数t=24的任务接受率实验结果;
62.图9为任务数t=25的任务接受率实验结果;
63.图10为计算平台上的设备负载分析结果;
64.图11为实时dnn调度系统调度任务i到设备3中的调度示意图。
具体实施方式
65.如图1所示,为了dnn实时推理调度问题,本发明设计了基于神经网络相似度建模的实时dnn调度系统及方法(sniper)。图1为实时dnn调度系统的总体设计,主要由三个主要模块和七个组件组成,模块包括:dnn特征提取模块、性能表征模块、调度模块;组成部分包括:网络结构分析器、结构检查器、网络特征数据库、性能表征网络、时间微调器、收集器和任务调度器。
66.在dnn特征提取模块中,我们利用网络结构分析器对dnn网络结构进行分析。紧接着,系统根据结构检查器的判断结果,在网络结构数据库中维护性能需要预测的网络结构特征,其余部分直接交给调度模块。如果需要将该网络结构添加到数据库中,它还将进入dnn性能表征模块进行性能预测,即基于我们设计的性能表征网络(pcn)预测其在每个设备上的运行时间。最后,经过时间微调器的目标微调后,它进入调度模块。在调度模块中,对每个任务已知的性能表示进行合理的调度,以确保任务以最小的等待时间在最大截止时间之前完成。以下将参照上述结构详细介绍本发明提出的sniper调度方法。
67.一、dnn特征提取模块
68.(a)网络结构分析器
69.网络结构分析器的主要工作是对神经网络进行离线分析,得到与性能表征相关的网络结构特征。如图2所示,通过特征提取方法实现对神经网络计算任务的建模分析。
70.随后针对所提取的特征,我们采用皮尔森系数分析和多次残差拟合提取关键特征,并在关键特征上实现了单一设备的网络性能表征预测。
71.(b)结构检查器
72.结构检查器主要负责根据网络结构分析器提取的网络结构特征选择网络性能预测策略。我们通过网络的总计算量来判断网络的规模,并对不同规模的网络采用不同的预测策略。小型网络的预测时间可以根据网络参数的数量、层数和计算量来得到其在每个设备上的性能表征的传统模型,并使用线性回归等模型进行预测。其他网络由运行时性能描述模块预测。
73.二、dnn性能表征模块
74.(a)网络特征数据库
75.网络特征数据库主要负责维护大中型网络的结构数据,以便在推理过程中提供反馈条件。由于调度系统中未知网络类型较多,初始训练集和pcn不能充分考虑所有网络结构和各种设备类型。因此,我们通过维护网络特征数据库形成反馈数据流,保留了历史网络结构和推理运行时。基于反馈数据流,我们设计了调度系统的反馈学习算法,其中学习机制分为两部分:在线微调机制和离线再培训模式。算法的实现细节伪代码1所示。
76.伪代码1反馈调节机制
[0077][0078]
(b)性能表征网络(pcn)
[0079]
pcn主要用于基于神经网络相似度建模对异构设备上网络的性能表征进行预测。神经网络相似度(nns)是指神经网络基于其结构、行为等特征在单个设备上的性能表征的相似性。基于nns建模本专利提出了具有自注意模块的pcn作为神经网络相似度的载体网
络,作为预测dnn网络性能的一种方法。pcn网络结构如图5所示,图3、4分别为缩放点乘积注意力模块和自注意力模块示意图。
[0080]
(c)时间微调器
[0081]
时间微调器主要用于在线微调机构,通过自动选择网络特征拟合预测残差,使预测结果更接近实际运行时间。
[0082]
三、调度模块
[0083]
(a)收集器
[0084]
收集器主要将任务建模结果集成为后续调度单元的调度矩阵。对于大中型网络,收集器直接收集dnn性能预测模型预测的结果作为任务运行时预测;对于小型网络,收集器使用传统的预测模型来预测它们的运行时间。最后,收集器将上述任务性能表征预测的结果传递到调度矩阵中,并将其传递给任务调度器进行调度。
[0085]
(b)任务调度器
[0086]
任务调度器主要负责根据从收集器获得的调度矩阵生成调度策略,在保证接受率的前提下使任务等待时间最小化。在多个异构设备上寻找最优的dnn任务调度策略是一个np

hard问题。而在sniper框架中,该调度问题在收集器为任务调度程序生成调度矩阵后,可以通过松弛模型p得到。目前解决这类问题的算法有最小松弛优先(llf)调度,启发式算法调度等。为了快速获得最优调度策略,sniper中的任务调度器使用添加限制的llf对任务进行调度,在保证最大任务接受率的同时最小化等待时间。
[0087]
本发明在具体实施时的实验是在基于nvidia agx、nvidia tx2、nvidia nx等异构设备组成的异构推理集群上实现的。在上述设备中,我们统一安装了一些必要的运行环境,如ubuntu 16.04、cuda 10.2、cudnn 7.5、pytorch 1.7等,并以pytorch为基础框架执行dnn任务。任务集包括多种分类任务和目标检测任务,其中主干网采用densenet121、densenet169、densenet201、resnet50、resnet101、resnet152、vgg16、vgg19和inceptionv3等九种主流神经网络。这保证了平台的异构环境和dnn任务集的多样性。
[0088]
1、dnn性能预测
[0089]
本节主要通过性能表征网络实现了对异构设备的网络性能预测。如图6所示,对于自定义随机网络的性能预测,该模型对较大网络的预测相对误差较小,大多在10%以内。对于小型网络的性能预测,由于其自身网络的运行时间较短而相对误差较大,但大多数误差值都不超过0.1s。在多台设备上测试集的平均误差保持在0.024s。
[0090]
最后,我们将性能表征网络应用于实际的神经网络结构。通过对densenet、resnet、inception、vgg等不同结构网络的实证测试,验证了dnn性能表征模块的可行性,结果如表1所示。
[0091]
表1多设备上的实际网络性能预测
[0092]
[0093]
2、调度对比实验
[0094]
在调度实验中,我们基于以上异构推理集群对我们提出的调度系统进行了评估。在比较实验设置中,我们选择轮询调度(polling)和最早截止日期最先调度(edf)作为比较基准,并以m.bensalem,j.dizdarevic等人在论文中提到的调度方法(mvsp)作为性能上限进行比较,该实验以测量的任务运行时作为性能感知,不考虑dnn任务的实际测量成本。
[0095]
根据sniper调度方法的设计,实验首先对神经网络任务进行神经网络建模,提取关键特征。紧接着,我们通过性能表征网络对每个设备上的每个任务进行性能表征预测,得到性能表征矩阵(pc)。最后,以性能表征矩阵为调度矩阵,利用llf算法求解最优调度策略。本实验以任务接受率、任务总完成次数、任务总等待时间为观测量,对调度性能进行评价。sniper和三个对比实验的调度结果如图7所示,任务接受率汇总如表2所示。
[0096]
表2dnn任务接受率对比
[0097][0098]
在图7中,轮询和edf分别表示轮询调度算法和无性能感知的edf算法;mvsp为性能上限对比实验;sniper是本文提出的基于ai特征分析的调度实验;t是每秒到达的平均任务数。实验持续时间为400s,设备推断出批次大小为16的图像。
[0099]
数据表明,在硬实时环境下的异构分布式参考实验中,与polling和edf调度算法相比,sniper的任务接受率提高了25%以上(t=24)。
[0100]
与以实际测量数据作为调度依据的mvsp相比,在t≤23时sniper的接受率相同,均为100%。即使在接受率差距最大(t=24)的情况下,也只减少了10%,仍然比其他两种算法高35%。从任务的总体等待时间分析来看,sniper的性能明显优于polling调度和edf调度,在负载范围(t≤23)与mvsp的差别不大。即使在接近负载的条件下(t=24),sniper也将任务延迟最小化,且等待时间仅为edf调度的35%。更重要的是,由于mvsp在过载情况下的不稳定性,该算法的性能优于其他三种算法。
[0101]
接下来,我们对各调度算法在负载极限边缘(t∈{24,25})情况下的性能进行重点分析。本实验通过多次随机构造不同的数据集,从任务接受率的角度分析了各算法的性能。实验结果如图8、9所示。
[0102]
从图8中mvsp的调度性能可以看出,在平台负载限制下,sniper在任务集上的性能低于mvsp,但在时间序列上总体趋势是稳定的,波动不大。然而,在图9中,我们可以清楚地判断出,在超过平台负载极限时,mvsp对数据集的敏感性要比sniper高得多,甚至出现了接受率远低于sniper的情况。因此,我们可以得出结论,mvsp在不稳定数据集上的性能优于sniper,能够在短时间内保持任务密度超过集群负载时的调度稳定。
[0103]
接下来,我们分析了不同任务数(t)下算法之间的设备负载情况。如图10所示,sniper在负载均衡的理想状态下与mvsp实现了相同的均衡调度,明显优于其他调度算法。
[0104]
三、系统成本分析
[0105]
最后,我们分析sniper中的离线预测方法与实际测量相比所花费的时间,并评估
sniper的好处
[0106]
sniper调度方法在使用前需要一个模型训练阶段,它包括三个步骤,包括随机网络数据集构建、pcn训练和数据库处理。在实验构建的包含nvidia agx、tx2和nx的异构计算平台中,上述三个步骤在训练前阶段所花费的时间如表3所示。
[0107]
表3系统时间成本
[0108][0109]
初始化完成后,系统就可以使用了。在系统的使用过程中,反馈学习仍然需要少量的时间消耗,但不影响正常的任务调度。对于时间微调器的参数调整,在线微调机构的时间消耗可以忽略不计,大约需要50ms。在实际调度中,我们可以对累计的任务数量进行批量调整,而不必每次都进行调整,这样可以节省时间。对于pcn的模型更新,模型再训练机制只需要对网络特征数据库中的数据进行训练调整。如果对网络进行微调,收敛大约需要20秒;如果对模型进行再培训,大约需要60秒,这与初始化的培训时间相同。
[0110]
图11展示了sniper调度方法的使用示例。在图11中,性能表征网络在预训练过程中进行训练,训练数据来源于运行在计算平台异构设备上的随机网络发生器。从任务队列中选择任务i的特征输入到性能表征网络中,得到其在每个设备上的运行时间预测(τ
i,j
)。最后,根据上述预测和调度算法完成剩下的调度阶段。
[0111]
实施例1
[0112]
智能驾驶中的dnn任务通常由多个智能设备协同完成,由于智能驾驶中多变的场景,且不同场景下的数据并非独立同分布的,因此设备间经常需要搭载不同的模型来处理异构任务。此外,针对嵌入式环境下的低功耗要求,智能驾驶内的智能芯片趋于设备异构,采用多种异构设备的组合提高在计算平台在工作中的能效比,同时满足智能驾驶的性能需求和功耗需求。
[0113]
智能驾驶中的dnn任务处理包括以下三个过程:传感器感知、任务生成和智能设备处理,sniper调度方法主要作用于任务生成后如何调度到各智能设备上。sniper可以针对异构设备和异构网络进行硬件性能分析和网络性能预测,通过适当的硬件资源建模和任务建模得到各网络在各设备上的运行时间,并以此形成任务调度矩阵,又该矩阵即可求得最优调度策略。
[0114]
实施例2
[0115]
随着物联网、人工智能、智能嵌入式设备等技术的发展,网络边缘接入设备数量快速增长。在这种情形下,以云计算模型为核心的集中式处理方式将无法适应边缘数据爆炸式增长的趋势。为在不增加集群规模的前提下增加算力,各类计算平台也开始以定时任务的形式为企业提供算力支持。针对此类定时任务,计算平台虽然提前获得任务类型和任务数据,但由于平台被占用而只能进行离线调度,这使得实现dnn任务的性能感知变成十分困难。
[0116]
针对此类场景,sniper调度方法可对dnn任务进行离线的性能预测,并在预训练过
程中获取平台上给类设备的性能参数,最后通过性能表征网络预测各类dnn任务在各节点上的运行时间,并在离线调度中采用llf算法找到最优调度策略。
[0117]
实施例3
[0118]
智能家居也有面临着此类问题。智能家居经常以手机为主体在局域网可达范围内执行分布式推理工作,包括:电视、电脑等设备。这其中多种不同设备所构成的异构计算平台即需要任务性能感知的调度。而手机发出的任务的多样性使得计算平台无法实现基于任务性能感知的合理调度。
[0119]
sniper调度方法可部署于计算平台的调度节点上,通过神经网络相似度建模对dnn任务作性能感知,最后根据llf算法合理调度在智能家居的各异构设备上。
[0120]
上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明主要技术方案的精神实质所做的修饰,都应涵盖在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1