一种面向异构集群的DNN推理任务批调度方法

文档序号:30217488发布日期:2022-05-31 18:32阅读:166来源:国知局
一种面向异构集群的DNN推理任务批调度方法
一种面向异构集群的dnn推理任务批调度方法
技术领域
1.本发明实施例涉及dnn推理任务批调度技术,尤其涉及一种面向异构集群的dnn推理任务批调度方法。


背景技术:

2.近年来,随着深度神经网络(dnn)的蓬勃发展,人工智能(ai)类的应用进行了充分发展,应用类别和数量规模都大幅增长。由于具有出众的大规模并行计算能力,通用目标图形处理单元(gpgpu)成为了主流的深度学习网络加速器。
3.在gpu上加速dnn网络通常包含两个阶段,首先需要一个规模庞大的训练数据集对一个被选定的dnn模型进行训练,这个训练过程十分耗时往往被放置在具有高算力的计算集群上,之后当训练完成后这个网络模型会随即被部署到大规模集群上来进行实际的推理阶段工作。另一方面,高精度的dnn网络催生了大批基于此技术的人工智能应用,这些应用具有大量的用户群体并且对应着不同的使用目标。通常这些应用会把在终端收集来的数据发送回云端数据中心使用高性能的gpu去执行推理工作。
4.然而由于gpu硬件资源之间的差异性,使得现在的集群多数是异构的,主要体现在算力异构方面,即集群中往往划分出众多具有不同算力的计算节点用来进行dnn类应用推理任务的执行。集群中的任务调度通常需要注意不同计算节点之间的负载均衡程度以及所有任务的平均完成时间。
5.对于dnn类应用推理按应用需求的不同应用可以分为三类:实时任务、交互性任务和后台任务。实时任务要求推理必须在一个很小的延迟内完成,应用场景诸如安保摄像头实时监测和自动驾驶等。后台任务则相反,它对于推理所用的时延要求甚少但却对于推理所需的精度十分敏感。较为复杂的是交互性任务,它们往往可以容忍一定的推理延迟,并且也并不是随时要求保持最高的推理精度,因此可以合理的降低推理精度和降低推理速率。综上三种任务对应的应用需求可知,不同类别dnn推理任务的特征是不同的,有些要求推理速率高,响应快。另外一些则是并不要求快速响应但是要求较高的推理精度。即推理任务可以被划分为很多种类,它们所使用模型,推理速率及推理精度也不同。因此对于任务来说,推理任务的超时量时一个调度结果优劣的重要衡量指标。
6.在任务流层面,庞大的用户每天产生数目众多的dnn类应用的推理请求,这些推理请求在不同的时间点到达异构集群后进行推理。在大数据下,庞大的用户群体产生的任务流会呈现出明显的潮汐规律。例如任务数在一天中的时间段上的密度分布,往往白天很多深夜较少。在传统任务调度中,很少针对任务流中任务的分布特性进行研究。


技术实现要素:

7.本发明提供一种面向异构集群的dnn推理任务批调度方法,以实现在集群上进行dnn推理任务批调度的优化。
8.本发明的技术方案主要解决的问题有以下三点:
9.(a)对异构集群动态硬件处理能力进行建模
10.集群多数由各种类型的具有不同算力的计算板卡构成,为解决异构集群不同节点算力的度量,本发明提出了一套硬件动态处理能力的建模方法。
11.(b)通过对dnn推理任务的分析给出dnn推理任务的建模
12.对于不同类别的dnn推理任务,其使用的dnn模型、需要的推理时间约束、需要的推理精度约束是不同的。本发明提出了一种dnn推理任务建模方法,可以将dnn推理任务集中的任务进行有效分类。
13.(c)对dnn推理任务进行调度,使得调度结果可以在每个评价指标组成的评价函数下达到最优。本发明提出了基于静态策略和动态参数的降维方法,构建了一个表征调度结果的低维参数解空间,之后引入元启发式搜索算法搜索调度的最优解。
14.本发明的技术方案:
15.本实施例提供了一种面向异构集群的dnn推理任务批调度方法,包括:
16.dnn推理任务表征模块、异构集群动态硬件处理能力提取模块和dnn推理任务批调度模块;
17.其中,所述dnn推理任务表征模块用于根据任务类型对dnn推理任务进行分类,以得到dnn推理任务划分集合;
18.所述异构集群动态硬件处理能力提取模块用于对将计算节点进行划分,并根据划分结果构建异构计算节点集合;
19.所述dnn推理任务批调度模块用于通过目标搜索算法,根据dnn推理任务划分集合和异构计算节点集合对dnn推理任务进行调度。
20.可选的,所述dnn推理任务表征模块包括:
21.集群部署模型统计器,用于对集群中各个节点上可推理的dnn模型进行统计,确定dnn模型列表;
22.集群外部dnn应用统计器,用于统计集群中所有可推理的dnn模型所对应的外部dnn应用集合;
23.dnn推理任务划分器,用于根据所述dnn模型列表和所述外部dnn应用集合确定dnn推理任务划分集合。
24.可选的,所述dnn推理任务划分集合包括:dnn推理的所有任务类型,每个所有任务类型对应的允许的响应时间、目标使用模型和目标节点集合。
25.可选的,所述异构集群动态硬件处理能力提取模块包括:
26.集群计算节点划分器,用于根据算力对集群中的板卡进行动态划分,以得到异构计算节点集;
27.集群推理任务处理计时器,用于根据dnn推理任务划分集合和异构计算节点集,通过预先将每类dnn推理任务在每个可处理的异构计算节点上实际执行,,统计出所有处理的耗时,根据耗时结果生成动态硬件处理能力矩阵并将该矩阵发送至所述dnn推理任务批调度模块中。
28.可选的,基于静态策略和动态参数的降维方法,构建表征调度结果的动态参数矩阵;
29.相应的,所述dnn推理任务批调度模块包括:
30.任务调度器,用于对dnn推理任务划分集合中输入的任务流进行分段,生成对应的调度结果流;
31.调度结果评价器,用于根据评价函数对调度结果流中的各调度结果进行评价;
32.搜索器,用于通过元启发式算法在所述动态参数矩阵中进行搜索,将元启发式算法收敛之后的解作为最优调度解。
33.可选的,所述评价函数为:
[0034][0035]
其中,σ1为任务的平均完成时间,σ2为所有任务的平均超时量,σ3为负载均衡程度;ξ为某个调度结果,λ1、λ2和λ3为三个不同的权重。
[0036]
本发明通过dnn推理任务表征模块可以将dnn推理任务进行有效分类;通过异构集群动态硬件处理能力提取模块解决了异构集群不同节点算力的度量;通过dnn推理任务批调度模块实现了对dnn推理任务进行调度,使得调度结果可以在每个评价指标组成的评价
[0037][0038]
函数下达到最优,从而实现了面向异构集群的dnn推理任务批调度的优化。
附图说明
[0039]
图1为本发明中的一种面向异构集群的dnn推理任务批调度方法的框架设计图;
[0040]
图2为本发明中的dnn推理任务批调度实现方法示意图;
[0041]
图3为本发明中的批调度实现方法的示例算法流程;
[0042]
图4为本发明中的不同类型任务流调度结果对比图;
[0043]
图5为本发明中的多种异构集群节点配置调度结果对比图;
[0044]
图6为本发明中的多种优化目标调度结果对比图;
[0045]
图7为本发明中的多种优化算法收敛速率对比图;
[0046]
图8为本发明中的面向异构集群的dnn推理任务批调度方法框架调度示例图。
具体实施方式
[0047]
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
[0048]
为了实现面向异构集群的dnn推理任务批调度优化方法,本发明设计了一个基于静动态混合降维机制的调度优化方法。图1为dnn-bs调度优化方法的总体设计框架图,包括:
[0049]
dnn推理任务表征模块、异构集群动态硬件处理能力提取模块和dnn推理任务批调度模块;
[0050]
其中,所述dnn推理任务表征模块,用于根据任务类型对dnn推理任务进行分类,以得到dnn推理任务划分集合;其中,这些不同的dnn推理任务由任务特征向量表征。
[0051]
所述异构集群动态硬件处理能力提取模块用于对将计算节点进行划分,并根据划
分结果构建异构计算节点集合。
[0052]
所述dnn推理任务批调度模块用于通过目标搜索算法,根据dnn推理任务划分集合和异构计算节点集合对dnn推理任务进行调度。
[0053]
下面对上述三个模块的具体组成和执行步骤进行详述。
[0054]
一、dnn推理任务表征模块
[0055]
(a)集群部署模型统计器,用于对集群中各个节点上可推理的dnn模型进行统计,确定dnn模型列表,具体参见表1,表1列出了在每个节点上可推理的模型集合。
[0056]
计算节点1计算节点2
……
计算节点n模型集1模型集2
……
模型机n
[0057]
表1
[0058]
(b)集群外部dnn应用统计器,用于统计集群中所有可推理的dnn模型所对应的外部dnn应用集合。每个应用有不同的任务分类,即是实时任务、交互式任务或者后台任务。根据集群外部dnn应用统计器可以得出每个dnn应用产生的推理请求任务所允许的响应时间。并且统计所使用的模型,统一构成应用信息矩阵,如图2。
[0059]
dnn应用1dnn应用2
……
dnn应用n允许的响应允许的响应
……
允许的响应时间1时间2
……
时间n使用模型1使用模型2
……
使用模型n
[0060]
表2
[0061]
(c)dnn推理任务划分器,用于根据所述dnn模型列表和所述外部dnn应用集合确定dnn推理任务划分集合。具体的,dnn推理任务划分器综合集群部署模型统计器和集群外部dnn应用统计器二者给出的模型统计列表和应用信息矩阵,得出了如表3所示的dnn推理任务划分集合。这个集合给出了在集群上进行dnn推理的所有任务类型,每个类型对应着允许的响应时间、使用的模型和可处理这个推理任务的节点集合。
[0062]
dnn推理任务类型1dnn推理任务类型2
……
dnn推理任务类型n允许的响应时间1允许的响应时间2
……
允许的响应时间n使用模型1使用模型2
……
使用模型n可处理节点集合1可处理节点集合2
……
可处理节点集合n
[0063]
表3
[0064]
二、异构集群动态硬件处理能力提取模块
[0065]
(a)集群计算节点划分器,用于根据算力对集群中的板卡进行动态划分,以得到异构计算节点集。
[0066]
具体的,大型集群中往往具有数目十分众多的算力异构的板卡,集群计算节点划分器主要是为了将集群中的板卡动态划分成算力不同的计算节点。划分好之后会得到一个异构计算节点集,这个集合给出了当前集群中所有能处理dnn推理任务的异构计算节点。
[0067]
(b)集群推理任务处理计时器,用于根据dnn推理任务划分集合和异构计算节点集,通过预先将每类dnn推理任务在每个可处理的异构计算节点上实际执行,统计出所有处理的耗时,这个耗时包含了实际推理时间和通信时间。进一步的,根据耗时结果生成动态硬
件处理能力矩阵并将该矩阵发送至所述dnn推理任务批调度模块中用于生成调度结果流。
[0068]
三、dnn推理任务批调度模块
[0069]
(a)批调度实现方法
[0070]
本实施例中基于静态策略和动态参数的降维方法,构建了一个表征调度结果的低维参数解空间,之后引入元启发式搜索算法搜索调度的最优解,以实现dnn推理任务批调度方法的优化。具体参见图2,在本调度实现方法中,首先构建了调度方法模板,其由静态策略集和这些策略中的所有参数的集合构成。这个调度方法模板可以进行实例化,即将静态策略进行组合并且其中的所有参数集构成动态参数向量。当有任务流过来时,利用任务调度的短期特性,对此任务流进行动态分段,每一段使用不同的调度方法实例进行实际的调度。整个任务流中的所有调度方法实例中的动态参数向量构成动态参数矩阵。这是个低维度的参数矩阵。由于将整个任务流通过所有的调度方法实例进行调度后可以得到一个调度结果,而当前所有调度方法实例中的动态参数向量都有当前的取值。于是最终等价为这个矩阵中的某个整体取值都对应了一个任务流的调度结果。接下来,通过搜索器结合优化目标和动态硬件处理能力去搜索这个动态参数矩阵k的取值。每个取值都对应了一个调度结果。当搜索过程收敛时,得到最优k。最后一次根据任务流各个段的调度实例方法加上参数矩阵k的最优取值就可以生成最优调度结果,具体的实现流程图可以参见图3。
[0071]
(b)任务调度器
[0072]
调度器进行对输入的任务流进行分段,每一段使用一个调度方法实例执行任务调度操作。当分段、所有调度方法实例和动态参数矩阵确定后,对应一个任务流输入,它会生成一个调度结果流。结果流中给定了每个dnn推理任务在什么时刻调度给某个计算节点进行推理。
[0073]
(c)调度结果评价器,用于根据评价函数对调度结果流中的各调度结果进行评价。
[0074]
此场景下有三个评价指标,所有任务的平均完成时间σ1、所有任务的平均超时量σ2和负载均衡程度σ3。评价函数的公式具体为:
[0075][0076]
对于某个调度结果ξ,通过三个不同的权重λ1、λ2和λ3将这三者使用线性函数组合起来构成score评价函数。当生成一个调度结果后,通过score的评分可以得到这个调度结果的优劣程度。这里的权重都是根据现实需要人为设定。
[0077]
(d)搜索器
[0078]
通过使用元启发式算法(例如粒子群算法)在动态参数矩阵k中进行搜索,当收敛之后可以得到最优调度解。通过这个调度解可以得到最终的调度结果流。
[0079]
本方案的实验验证如下:
[0080]
本发明的实验是在基于nvidia a100、nvidia titan xp等异构设备组成的异构推理集群上实现的。在上述设备中,本实验统一安装了一些必要的运行环境,如ubuntu 16.04、cuda 10.2、cudnn 7.5、pytorch 1.7等,并以pytorch为基础框架执行dnn推理任务。任务集包括多种分类任务和目标检测任务,其中主干网采用densenet121、densenet169、densenet201、resnet50、resnet101、resnet152、vgg16、vgg19和inceptionv3等九种主流神经网络。这保证了平台的异构环境和dnn推理任务集的多样性。本实验设计了五个实验从不
同方面来评估dnn-bs相较于已有算法的优秀性。
[0081]
在调度实验中,本实验基于以上异构推理集群对本实验提出的dnn推理任务批调度系统dnn-bs进行了评估。在比较实验设置中,本实验选择最小完成时间调度(minimum completion time)、min-min、max-min、改进型min-min、改进型max-min、遗传算法(ga)和粒子群算法(pso)作为调度方法比较基准。同时设置了多个方面的对比实验,包括:1)在不同规模的任务流、多种类型的任务流、多种异构集群节点配置和多种优化目标下调度结果在评价函数下的评分对比,这里使用了所有七种对比方法;2)多种任务流规模与计算节点数目比例情况下收敛速率和调度结果优劣对比,由于另外5种都不具有收敛率的性质,在这里比较的是ga和pso。本实验以所有任务的平均完成时间σ1、所有任务的平均超时量σ2和负载均衡程度σ3为观测量,对调度性能进行评价。默认设置20个计算节点和8000个推理任务。
[0082]
1、在不同规模的任务流下调度结果的对比
[0083]
这里设置了3000、5000和8000三种任务流规模,进行实验。给出所有任务的平均完成时间σ1、所有任务的平均超时量σ2和负载均衡程度σ3以及最后组合评价函数的评分结果,如表1所示。这里可以看出对于不同的任务流规模,dnn-bs在各项指标方面均有着最好的效果。由于ga和pso是全局搜索算法,它们的结果也会相较于其它五种方法更优。具体结果参见表4:
[0084][0085]
表4
[0086]
2、在不同类型的任务流下调度结果的对比
[0087]
任务流中任务的时空特性是不一样的,例如不同时间段内的推理任务到达数、不同类别的任务在任务流中的分布等。这个实验中选取了五种任务分布的任务流进行实验。如图4所示,每个类别中从左到右依次表示mct、min-min、modified min-min、max-min、modified max-min、ga、pso和本方案dnn-bs的调度结果,结果表明dnn-bs对不同种类的任务流均有十分优秀的调度结果。
[0088]
3、在多种异构集群节点配置下调度结果的对比
[0089]
本实验中设置了集群中不同的节点算力分布。使用相同的任务流进行实验,并且在每个节点算力配置的情况下统计了十个不同任务流的评分均值。如图5,每个类别中从左到右依次表示mct、min-min、modified min-min、max-min、modified max-min、ga、pso和本方案dnn-bs的调度结果,结果表明dnn-bs具有最好的调度效果。
[0090]
4、在多种优化目标下调度结果的对比
[0091]
在所有任务的平均完成时间σ1、所有任务的平均超时量σ2和负载均衡程度σ3组成的评价函数中,通常实际中会根据需要进行这三者权重的调整来体验哪个指标是调度中更重要的。这个实验中本实验依照λ1、λ2、λ3的次序调整了权重参数来构成不同的调度优化目标。如图6,每个类别中从左到右依次表示mct、min-min、modified min-min、max-min、
modified max-min、ga、pso和本方案dnn-bs的调度结果,图中表明本实验的dnn-bs依然具有优越其他七种方法的调度结果。
[0092]
5、收敛速率的对比
[0093]
在dnn-bs中,由于具有全局搜索环节的存在,导致需要对其收敛速率进行评估。本实验中,以常用的pso和ga作为对比实验方法,并且对不同规模的任务流进行实验。选取任务流规模为1000、3000、5000、8000、10000和20000六种情况进行实验。如图7所示,每个类别中比较ga、pso和本方案dnn-bs的收敛速度。由图可得,dnn-bs在所有情况下均有非常快的收敛速率,同时最终的收敛结果也大幅度超过pso和ga算法。
[0094]
抽象例:
[0095]
图8展示了基于静动态混合降维机制的调度优化方法,dnn-bs调度优化方法的使用示例。
[0096]
实施例1:
[0097]
大型数据中心通常具有十分庞大的异构计算集群,可以容纳几百上千个计算节点。其中部署非常多的训练好的神经网络模型。集群之外有着十分广泛的用户群体使用各类dnn应用发送dnn推理任务请求到达数据中心进行推理。这些任务对应着不同的推理模型和允许的推理时延。这个场景中的dnn任务推理调度包括以下三个过程:集群dnn推理请求收集、dnn推理任务初始化和计算节点dnn推理。dnn-bs调度优化方法主要作用于这些dnn推理任务达到集群后如何调度每个任务到各个算力不同的计算节点上。dnn-bs可以针对当前的集群异构计算节点划分情况进行动态硬件处理能力分析,通过运行dnn-bs的调度算法找到最合适的任务-计算节点匹配结果。
[0098]
实施例2:
[0099]
随着物联网、人工智能、智能嵌入式设备等技术的发展,已经不仅仅是部署少数的大型的数据中心来处理所有dnn推理任务。而是在网络边缘设备较集中的地方部署多个小型的处理集群。在这种情形下,需要在网络边缘的小型处理集群上进行局部范围的dnn推理任务调度。
[0100]
针对此类场景,dnn-bs调度方法可针对网络边缘的局部所有的dnn类应用进行分析,先行对这个dnn推理任务进行类别划分。同时对边缘小型集群的所有计算节点进行划分,进而得到动态硬件处理能力矩阵。当局部的dnn推理任务到达小型处理集群后,可以根据调度目标,调整优化目标函数里的权重参数,从而继续进行完整的dnn推理任务调度流程。
[0101]
实施例3:
[0102]
智能家居也有面临着此类问题。在智能家居中通常有一个处理中心处理所有传感器的数据。这些数据到达处理中心后转变为dnn推理任务。并且往往处理中心里不止有一个硬件处理单元。那么智能家居内部的所有类型数据分析都可以归结为有限数目的dnn推理任务类别,给到处理中心的多个硬件处理单元上进行推理。
[0103]
此场景中,dnn-bs调度优化方法可部署于家庭小型处理中心的调度节点上,通过得到所有类别dnn推理任务在每个硬件处理单元的推理时间得到动态硬件处理能力矩阵。之后可以通过余下的dnn-bs调度算法流程将所有的dnn推理任务调度到对应的硬件处理单元上进行推理。
[0104]
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1