CN117762602A - 面向边缘异构硬件的深度学习级联任务调度方法及装置 - Google Patents
面向边缘异构硬件的深度学习级联任务调度方法及装置 Download PDFInfo
- Publication number
- CN117762602A CN117762602A CN202410198709.0A CN202410198709A CN117762602A CN 117762602 A CN117762602 A CN 117762602A CN 202410198709 A CN202410198709 A CN 202410198709A CN 117762602 A CN117762602 A CN 117762602A
- Authority
- CN
- China
- Prior art keywords
- task
- cascade
- deep learning
- learning network
- task graph
- 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.)
- Granted
Links
- 238000013135 deep learning Methods 0.000 title claims abstract description 234
- 238000000034 method Methods 0.000 title claims abstract description 40
- 230000004044 response Effects 0.000 claims abstract description 33
- 238000012545 processing Methods 0.000 claims description 30
- 238000010586 diagram Methods 0.000 claims description 27
- 238000004590 computer program Methods 0.000 claims description 9
- 230000001186 cumulative effect Effects 0.000 claims description 5
- 238000001514 detection method Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000013528 artificial neural network Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 241000207875 Antirrhinum Species 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Classifications
-
- 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
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请提供了一种面向边缘异构硬件的深度学习级联任务调度方法及装置,所述方法包括:获取响应时间要求,以及,获取待处理的视频帧;预测视频帧对应的级联任务图,所述级联任务图表征按照顺序执行的多个深度学习网络任务,在级联任务图中一个深度学习网络任务的输出作为另一个深度学习网络任务的输入;根据响应时间要求,将级联任务图与离线级联任务图模板进行匹配;在级联任务图与离线级联任务图模板至少部分匹配的情况下,按照匹配的离线级联任务图模板对应的调度策略,将级联任务图中的多个深度学习网络任务调度到异构硬件上执行。如此,优化了级联任务场景下的多个深度学习网络任务的执行,实现级联任务的高吞吐量和高效率调度。
Description
技术领域
本申请涉及边缘设备技术领域,特别涉及一种面向边缘异构硬件的深度学习级联任务调度方法及装置。
背景技术
深度神经网络(Deep Neural Network,DNN)推理存在从云数据中心迁移到边缘设备的新趋势,例如,智能手机、可穿戴设备和物联网设备等。这种迁移的目的是将DNN部署在用户附近,以更好地保护用户数据隐私,并避免高延迟和不可靠网络带来的影响。
在边缘设备上完成DNN任务推理的关键在于性能(即延迟和吞吐量),但由于大多数边缘设备的硬件资源有限,需要对DNN任务的执行进行优化。相关技术中,主要是针对优化单个DNN任务的执行。
而在实际应用中,机器学习任务通常由多个DNN任务(即级联任务)组成。例如,对操作人员是否佩戴合格的头盔和手套进行检测,至少需要4个DNN任务:人体检测、姿态估计、头盔和手套分类。因此,如何优化级联任务场景下的多个DNN任务的执行是亟待解决的技术问题。
发明内容
鉴于上述问题,本申请实施例提供了一种面向边缘异构硬件的深度学习级联任务调度方法及装置,以便克服上述问题或者至少部分地解决上述问题。
本申请实施例的第一方面,公开了一种面向边缘异构硬件的深度学习级联任务调度方法,所述方法包括:
获取响应时间要求,以及,获取待处理的视频帧;
预测所述视频帧对应的级联任务图,所述级联任务图表征按照顺序执行的多个深度学习网络任务,在所述级联任务图中一个深度学习网络任务的输出作为另一个深度学习网络任务的输入;
根据所述响应时间要求,将所述级联任务图与离线级联任务图模板进行匹配;
在所述级联任务图与离线级联任务图模板至少部分匹配的情况下,按照匹配的离线级联任务图模板对应的调度策略,将所述级联任务图中的多个深度学习网络任务调度到异构硬件上执行。
可选地,所述视频帧包括多个;预测所述视频帧对应的级联任务图,包括:
执行当前视频帧对应的第一个深度学习网络任务;
根据所述第一个深度学习网络任务的执行结果,预测新的级联任务图;
根据所述新的级联任务图和当前的级联任务图,确定后续多个视频帧对应的级联任务图。
可选地,在所述新的级联任务图和所述当前的级联任务图不同的情况下,根据所述新的级联任务图和当前的级联任务图,确定后续多个视频帧对应的级联任务图,包括:
确定所述新的级联任务图与所述离线级联任务图模板之间的第一距离,以及,确定所述当前的级联任务图与所述离线级联任务图模板之间的第二距离;
比较所述第一距离和所述第二距离之间的大小关系;
将所述第一距离和所述第二距离中较小的一者对应的级联任务图确定为后续多个视频帧对应的级联任务图。
可选地,在所述级联任务图与离线级联任务图模板至少部分匹配的情况下,按照匹配的离线级联任务图模板对应的调度策略,将所述级联任务图中的多个深度学习网络任务调度到异构硬件上执行,包括:
在所述级联任务图与离线级联任务图模板完全匹配的情况下,按照匹配的离线级联任务图模板对应的调度策略,将所述级联任务图中的多个深度学习网络任务调度到异构硬件上执行;
在所述级联任务图与离线级联任务图模板部分匹配的情况下,对所述的调度策略进行调整,并按照调整后的调度策略将所述级联任务图中的多个深度学习网络任务调度到异构硬件上执行。
可选地,在所述级联任务图与离线级联任务图模板部分匹配的情况下,对所述的调度策略进行调整,包括:
根据所述级联任务图和所述匹配的离线级联任务图模板的匹配情况,确定匹配深度学习网络任务和不匹配深度学习网络任务,所述不匹配深度学习网络任务包括新增深度学习网络任务和多余深度学习网络任务;
将所述匹配深度学习网络任务的调度位置与所述调度策略中对应的深度学习网络任务的调度位置保持一致;
将所述新增深度学习网络任务的调度位置放置在可用的空闲时间段,并在所述调度策略中删除所述多余深度学习网络任务的调度位置。
可选地,所述离线级联任务图模板对应的调度策略是通过以下步骤生成的:
确定离线级联任务图模板,所述离线级联任务图模板包括离线级联任务图、视频帧数量、多种资源状态和延迟要求;
对异构硬件的信息和深度学习网络模型进行剖析,得到深度学习网络任务和异构硬件的剖析信息;
确定级联任务调度问题定义,所述级联任务调度问题包括配置文件、深度学习网络级联任务图模型、批处理推理延迟、异构硬件执行模型、级联调度问题约束;
根据所述剖析信息、所述级联任务调度问题定义和所述离线级联任务图模板,生成调度策略。
可选地,确定级联任务调度问题定义,包括:
根据深度学习网络模型执行的异构硬件的信息和深度学习网络模型对异构硬件的利用情况定义深度学习网络模型和异构硬件的配置文件;
利用有向无环图定义深度学习网络级联任务图模型;
根据单个深度学习网络任务的处理时间、批处理大小、以及向现有批处理执行中添加新深度学习网络任务输入时所增加的额外延迟,确定批处理执行延迟;
根据深度学习网络任务在异构硬件上的执行顺序、批处理和并行模式,确定异构硬件执行模型;
根据深度学习网络任务间的依赖关系、批处理、并行执行和资源约束,确定级联调度问题约束。
可选地,所述级联调度问题约束,包括:
深度学习网络任务到异构硬件的选择约束,用于约束不允许多个异构硬件合作完成单个深度学习网络任务推断;
级联依赖性约束,用于约束具有级联依赖关系的前置深度学习网络任务和后置深度学习网络任务的执行顺序,所述执行顺序为:所述后置深度学习网络任务在所述前置深度学习网络任务执行完的情况下执行;
执行不可打断约束,用于约束在同一个异构硬件上,当前深度学习网络N任务执行完之后才能执行下一个深度学习网络任务;
并行执行时间约束,用于约束并行执行的深度学习网络任务的第一开始执行时间差,所述第一开始执行时间差小于所述并行执行的深度学习网络任务的执行时间;
批处理执行时间约束,用于约束批处理的深度学习网络任务的第二开始执行时间差,所述第二开始执行时间差等于0;
任务完成实时性约束,用于约束一个视频帧中的所有深度学习网络N任务的执行时间小于用户响应时间要求;
异构硬件允许任务并行运行上限约束,用于约束多个并行执行的深度学习网络任务的累计异构硬件利用率不超过异构硬件的容量。
本申请实施例的第二方面,公开了一种面向边缘异构硬件的深度学习级联任务调度装置,所述装置包括:
获取模块,用于获取响应时间要求,以及,获取待处理的视频帧;
预测模块,用于预测所述视频帧对应的级联任务图,所述级联任务图表征按照顺序执行的多个深度学习网络任务,在所述级联任务图中一个深度学习网络任务的输出作为另一个深度学习网络任务的输入;
匹配模块,用于根据所述响应时间要求,将所述级联任务图与离线级联任务图模板进行匹配;
调度模块,用于在所述级联任务图与离线级联任务图模板至少部分匹配的情况下,按照匹配的离线级联任务图模板对应的调度策略,将所述级联任务图中的多个深度学习网络任务调度到异构硬件上执行。
本申请实施例的第三方面,公开了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本申请实施例第一方面所述的面向边缘异构硬件的深度学习级联任务调度方法的步骤。
本申请实施例包括以下优点:
在本申请实施例中,获取响应时间要求,以及,获取待处理的视频帧;预测视频帧对应的级联任务图,所述级联任务图表征按照顺序执行的多个深度学习网络任务,在级联任务图中一个深度学习网络任务的输出作为另一个深度学习网络任务的输入;根据响应时间要求,将级联任务图与离线级联任务图模板进行匹配;在级联任务图与离线级联任务图模板至少部分匹配的情况下,按照匹配的离线级联任务图模板对应的调度策略,将级联任务图中的多个深度学习网络任务调度到异构硬件上执行。
通过将级联任务图中的多个深度学习网络任务调度到异构硬件执行,以充分利用边缘设备上异构硬件的计算能力,实现级联任务的高吞吐量。并且,通过将视频帧对应的级联任务图与离线级联任务图模板匹配的方式确定调度策略,而不是根据级联任务图在线生成调度策略,提高了级联任务的调度效率。如此,优化了级联任务场景下的多个深度学习网络任务的执行,实现级联任务的高吞吐量和高效率调度。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种面向边缘异构硬件的深度学习级联任务调度方法的步骤流程图;
图2是本申请实施例提供的一种面向边缘异构硬件的深度学习级联任务调度系统的结构示意图;
图3是本申请实施例提供的一种面向边缘异构硬件的深度学习级联任务调度装置的结构示意图;
图4是本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
将一个机器学习任务(例如,违规检测、车牌识别和游戏分析等)对应的具有执行顺序的多个深度学习网络任务(即DNN任务)称为DNN级联任务图(或级联任务图),考虑到在资源受限的边缘设备上执行多个DNN任务推断时,经常会面临低吞吐量的挑战,而相关技术主要集中在优化单个DNN任务的执行,但这种方法在应对在级联任务环境下的性能瓶颈方面存在一定限制。为此,本申请实施例提供了一种面向边缘异构硬件的深度学习级联任务调度方法,通过将级联任务图中的多个DNN任务调度到异构硬件执行,以充分利用边缘设备上异构硬件的计算能力,实现级联任务的高吞吐量。具体说明请见下文。
本申请实施例提供了一种面向边缘异构硬件的深度学习级联任务调度方法,参照图1所示,图1是本申请实施例提供的一种面向边缘异构硬件的深度学习级联任务调度方法的步骤流程图。如图1所示,该方法可以包括步骤S110至步骤S140:
步骤S110:获取响应时间要求,以及,获取待处理的视频帧。
本申请实施例中,响应时间要求为用户期望的任务处理时间要求,视频帧必须在响应时间要求内完成处理。视频帧可以是用户输入的图片,也可以是从输入视频中抽取出来的帧图像,视频帧可以是一个或多个,在具体实施时,可以从用户发起的任务请求中获取待处理的视频帧。
步骤S120:预测所述视频帧对应的级联任务图,所述级联任务图表征按照顺序执行的多个深度学习网络任务,在所述级联任务图中一个深度学习网络任务的输出作为另一个深度学习网络任务的输入。
本申请实施例中,视频帧对应的级联任务图是指:对视频帧进行处理时按照顺序执行的多个DNN任务(即深度学习网络)。例如,对于视频帧中操作人员是否佩戴合格的头盔和手套进行检测,需要人体检测、姿态估计、头盔和手套分类四个DNN任务,则这四个DNN任务构成级联任务图。
对于不同的视频帧,尽管视频帧的内容会发生变化,但视频帧对应的级联任务图仍然能保持一致。例如,视野中的人物可能不断移动,但只要人物数量不改变,级联任务图就会保持不变。也就是说,预测的级联任务图可能比内容更为稳定,基于该级联任务图能够实现更准确的预测。
因此,通过对一个视频帧图像进行预测,能够得到后续多个视频则图像对应的级联任务图。在一种实施方式中,若视频帧为一个,则预测的级联任务图为一个视频帧对应的级联任务图。在另一种实施方式中,若视频帧为多个,则预测的级联任务图为后续待处理的多个视频帧对应的级联任务图。
在具体实施时,级联任务图以二维矩阵格式进行存储,在该二维矩阵中,使用数值1表示DNN任务之间的依赖关系,若DNN任务之间不存在依赖关系,则使用数值0表示。例如,若DNN任务1的输出结果为DNN任务2的输入,则DNN任务1和DNN任务2之间的依赖关系表示为1;若DNN任务1和DNN任务3不存在依赖关系,则DNN任务1和DNN任务3之间的依赖关系表示为0。
步骤S130:根据所述响应时间要求,将所述级联任务图与离线级联任务图模板进行匹配。
本申请实施例中,考虑到大多数任务模式随时间的推移表现出了显著的稳定性。例如,人脸识别之类的任务一直涉及到诸如人员检测、人脸检测和人脸识别等DNN任务。因此,提出离线级联任务图模板的概念,离线级联任务图模板是指实际业务场景中包含的任务模式。具体地,离线级联任务图模板包括:离线级联任务图G、视频帧数量RN、多种资源状态S和延迟要求LatRQmax;每RN个后续视频帧将按照相同的离线级联任务图G进行处理,离线级联任务图G中的DNN任务是在边缘设备的异构硬件上执行,因此需要考虑到多种资源状态S(例如,可用的空闲CPU(Central Processing Unit,中央处理器)资源,或者忙碌GPU(Graphics Processing Unit,图形处理器)的利用率)。并且,离线级联任务图G中的每个DNN任务必须在延迟要求LatRQmax内完成。
在一种实施方式中,根据响应时间要求,将级联任务图与离线级联任务图模板进行匹配,包括:将响应时间要求与离线级联任务图模板中的延迟要求LatRQmax进行匹配,以及将级联任务图与离线级联任务图模板中的离线级联任务图G进行匹配。在另一种实施方式中,还考虑异构硬件状态将级联任务图与离线级联任务图模板进行匹配。具体地,通过对边缘设备中各异构硬件的状态进行实时监测,进而将监测的异构硬件状态与离线级联任务图模板中的多种资源状态S进行匹配,将响应时间要求与离线级联任务图模板中的最大延迟要求LatRQmax进行匹配,以及将级联任务图与离线级联任务图模板中的离线级联任务图G进行匹配。
在具体实施时,利用欧几里得距离度量来衡量级联任务图与离线级联任务图模板,从而确定级联任务图与离线级联任务图模板是否匹配。当级联任务图与离线级联任务图模板之间的欧几里得距离低于预设阈值(如,预设阈值为0.5)时,确定级联任务图与离线级联任务图模板匹配,若级联任务图与离线级联任务图模板之间的欧几里得距离超过预设阈值,则级联任务图与离线级联任务图模板匹配不匹配,进而从大量的离线级联任务图模板中重新选择出离线级联任务图模板进行匹配,直到确定出与级联任务图匹配的离线级联任务图模板。
若级联任务图与离线级联任务图模板匹配,说明级联任务图的任务模式和离线级联任务图模板的任务模式相匹配,因而后续可以基于离线级联任务图模板对应的调度策略来对级联任务图中的DNN任务进行调度。
步骤S140:在所述级联任务图与离线级联任务图模板至少部分匹配的情况下,按照匹配的离线级联任务图模板对应的调度策略,将所述级联任务图中的多个深度学习网络任务调度到异构硬件上执行。
本申请实施例中,每个离线级联任务图模板对应有预先生成的调度策略,若级联任务图与离线级联任务图模板匹配,说明级联任务图的任务模式和离线级联任务图模板的任务模式相同或相似,因而可以按照匹配的离线级联任务图模板对应的调度策略进行任务调度。例如,在级联任务图中包含DNN任务1、DNN任务2、DNN任务3、DNN任务4,按照调度策略分别将DNN任务1、DNN任务2、DNN任务3、DNN任务4调度到对应的异构硬件上执行。
综上所述,本申请实施例通过将级联任务图中的多个深度学习网络任务调度到异构硬件执行,以充分利用边缘设备上异构硬件的计算能力,实现级联任务的高吞吐量。并且,通过将视频帧对应的级联任务图与离线级联任务图模板匹配的方式确定调度策略,而不是根据级联任务图在线生成调度策略,提高了级联任务的调度效率。如此,优化了级联任务场景下的多个深度学习网络任务的执行,实现级联任务的高吞吐量和高效率调度。
下面结合上述各实施步骤来详细说明本申请。
在一种可选的实施例中,所述视频帧包括多个;预测所述视频帧对应的级联任务图,包括步骤A1至步骤A3:
步骤A1:执行当前视频帧对应的第一个深度学习网络任务;
步骤A2:根据所述第一个深度学习网络任务的执行结果,预测新的级联任务图;
步骤A3:根据所述新的级联任务图和当前的级联任务图,确定后续多个视频帧对应的级联任务图。
本申请实施例中,每一个视频帧对应的第一个DNN任务都会自动执行,在第一个DNN任务的执行结果中包含视频帧的关键信息(例如,视频帧中的人数、车辆数量等),这些关键信息构成了预测当前视频帧的级联任务图的基础,进而根据第一个DNN任务的执行结果,来预测新的级联任务图。
由于多个视频帧不相同,因此对应的级联任务图不一定完全相同,所以在预测得到新的级联任务图之后,需要将新的级联任务图与当前的级联任务图(即当前使用的级联任务图)进行比较,确定新的级联任务图和当前的级联任务图是否相同。在新的级联任务图和当前的级联任务图相同的情况下,确定当前的级联任务图仍为后续多个视频帧对应的级联任务图;在新的级联任务图和当前的级联任务图不同的情况下,通过比较新的级联任务图和当前的级联任务图的准确性,进而选择准确性更高的作为后续多个视频帧对应的级联任务图。例如,新的级联任务图的准确性更高,则将新的级联任务图作为后续多个视频帧对应的级联任务图;若当前的级联任务图的准确性更高,则将当前的级联任务图作为后续多个视频帧对应的级联任务图。
具体地,在所述新的级联任务图和所述当前的级联任务图不同的情况下,根据所述新的级联任务图和当前的级联任务图,确定后续多个视频帧对应的级联任务图,包括步骤B1至步骤B3:
步骤B1:确定所述新的级联任务图与所述离线级联任务图模板之间的第一距离,以及,确定所述当前的级联任务图与所述离线级联任务图模板之间的第二距离;
步骤B2:比较所述第一距离和所述第二距离之间的大小关系;
步骤B3:将所述第一距离和所述第二距离中较小的一者对应的级联任务图确定为后续多个视频帧对应的级联任务图。
其中,第一距离是指新的级联任务图与离线级联任务图模板之间的欧几里得距离,第二距离是指当前的级联任务图与离线级联任务图模板之间欧几里得距离,欧几里得距离越小,说明越相识。因此将第一距离和第二距离中较小的一者对应的级联任务图,确定为后续多个视频帧对应的级联任务图。例如,若第一距离较小,则确定新的级联任务图作为后续多个视频帧对应的级联任务图,若第二距离较小,则确定当前的级联任务图作为后续多个视频帧对应的级联任务图。
本申请实施例中,由于是根据第一个DNN任务的执行结果进行预测,在第一个DNN任务的执行结果中包含视频帧的关键信息,因此该方法与直接根据图片进行预测相比,得到的预测结果更加准确。并且,后续多个视频帧对应的级联任务图是通过加权移动平均方法来确定的,即根据最近当前的视频帧预测的新的级联任务图,以及当前的级联任务图共同确定的,因此,确定的后续多个视频帧对应的级联任务图更加准确。
在一种可选的实施例中,在所述级联任务图与离线级联任务图模板至少部分匹配的情况下,按照匹配的离线级联任务图模板对应的调度策略,将所述级联任务图中的多个深度学习网络任务调度到异构硬件上执行,包括步骤C1至步骤C2:
步骤C1:在所述级联任务图与离线级联任务图模板完全匹配的情况下,按照匹配的离线级联任务图模板对应的调度策略,将所述级联任务图中的多个深度学习网络任务调度到异构硬件上执行;
步骤C2:在所述级联任务图与离线级联任务图模板部分匹配的情况下,对所述的调度策略进行调整,并按照调整后的调度策略将所述级联任务图中的多个深度学习网络任务调度到异构硬件上执行。
本申请实施例中,级联任务图与离线级联任务图模板至少部分匹配包括部分匹配(即不完全匹配)和完全匹配两种情况,完全匹配是指级联任务图中的多个DNN任务与离线级联任务图模板中的多个DNN任务完全匹配,即级联任务图和与离线级联任务图模板中的DNN任务类型和数量相同,且各DNN任务之间的依赖关系也相同,此时执行步骤C1。例如,级联任务图A中的4个DNN任务为:DNN任务1、DNN任务2、DNN任务3、DNN任务4,离线级联任务图模板a中的4个DNN任务同样为:DNN任务1、DNN任务2、DNN任务3、DNN任务4,且4个DNN在级联任务图A和离线级联任务图模板a中的执行和各DNN任务之间的依赖关系一致,则级联任务图A和离线级联任务图模板a完全匹配。
部分匹配是指级联任务图中的多个DNN任务与离线级联任务图模板中的多个DNN任务部分匹配,即级联任务图和与离线级联任务图模板中的DNN任务类型或数量不相同,或各DNN任务之间的依赖关系不相同。此时执行步骤C2。例如,级联任务图A中的4个DNN任务为:DNN任务1、DNN任务2、DNN任务3、DNN任务4,离线级联任务图模板b中的5个DNN任务为:DNN任务1、DNN任务2、DNN任务3、DNN任务5、DNN任务6,则级联任务图A和离线级联任务图模板b部分匹配。
具体地,在所述级联任务图与离线级联任务图模板部分匹配的情况下,对所述的调度策略进行调整,包括步骤D1至步骤D3:
步骤D1:根据所述级联任务图和所述匹配的离线级联任务图模板的匹配情况,确定匹配深度学习网络任务和不匹配深度学习网络任务,所述不匹配深度学习网络任务包括新增深度学习网络任务和多余深度学习网络任务;
步骤D2:将所述匹配深度学习网络任务的调度位置与所述调度策略中对应的深度学习网络任务的调度位置保持一致;
步骤D3:将所述新增深度学习网络任务的调度位置放置在可用的空闲时间段,并在所述调度策略中删除所述多余深度学习网络任务的调度位置。
本申请实施例中,在级联任务图与离线级联任务图模板部分匹配的情况下,通过调整机制来适配部分匹配的情况,通过重新组织离线级联任务图模板,使级联任务图中的DNN任务尽可能与离线级联任务图模板中的DNN任务匹配,并将匹配不到的DNN任务进行标记,确定出不匹配DNN任务和匹配DNN任务。其中,不匹配DNN任务中的新增DNN任务是指级联任务图中存在,但在离线级联任务图模板中不存在的DNN任务;多余DNN任务是指在级联任务图中不存在,但在离线级联任务图模板中存在的DNN任务。
在对调度策略进行调整时,匹配DNN任务的调度位置与调度策略中对应的DNN任务的调度位置保持一致;对于新增DNN任务的调度位置,将其放置在可以的空闲时段(例如,将第一个新增DNN任务的调度位置放在最早的可用空闲时间段);对于多余DNN任务的调度位置,在调度策略中删除多余DNN任务的调度位置。
在一种可选的实施例中,通过利用GUROBI求解器(GUROBI求解器是一种解决各种数学规划和整数规划问题的优化软件)对多个级联任务的调度问题进行求解,发现虽然DNN任务决策变量较少,且求解器产生的解决方案优化损失不超过10%。但通过这种方法获得近似最优解可能需要较长的时间才能时间,这使得在线调度变得不切实际。因此,根据离线级联任务图模板预先生成调度策略,进而通过将级联任务图和离线级联任务图模板进行匹配的方式,确定调度策略。
具体地,所述离线级联任务图模板对应的调度策略是通过以下步骤E1至步骤E4生成的:
步骤E1:确定离线级联任务图模板,所述离线级联任务图模板包括离线级联任务图、视频帧数量、多种资源状态和延迟要求。
本申请实施例中,设置不同的离线级联任务图、视频帧数量、多种资源状态和延迟要求,生成针对各种情况的调度策略。具体地,通过对现有任务请求数据进行分析,以识别在单个视频帧内级联任务的尽可能多的请求模式。对于视频帧数量,其范围为1至N,其中N表示单秒内可处理的最大视频帧数。通过对异构硬件的状态进行了全面的探索,以确定多种资源状态。例如,以Snapdragon 8gen3 SoC(Snapdragon 8gen3 SoC是高通公司推出的第3代骁龙8处理器)为例,它系统地考虑了CPU核心、GPU和NPU(Neural network ProcessingUnit,神经网络处理器)等各种资源状态情景的组合,以适应不同的硬件配置。通过设备不同的延迟要求,以生成针对各种情况的调度策略。例如,在时间间隔为50毫秒到1000毫秒的范围内,以确保响应要求。
步骤E2:对异构硬件的信息和深度学习网络模型进行剖析,得到深度学习网络任务和异构硬件的剖析信息。
本申请实施例中,异构硬件的信息是指边缘设备中异构硬件的信息,例如,GPU和NPU的数量,以及每个异构硬件的配置参数。DNN模型是指边缘设备所支持的DNN模型,DNN模型与离线级联任务图中的DNN任务对应。通过对异构硬件的信息和DNN模型进行剖析,得到DNN任务和异构硬件的剖析信息,其中,剖析信息包括:每个DNN任务的延迟、异构硬件利用率、异构硬件容量、以及用户定义的响应需求,以便后续可基于剖析信息生成调度策略。
步骤E3:确定级联任务调度问题定义,所述级联任务调度问题包括配置文件、深度学习网络级联任务图模型、批处理推理延迟、异构硬件执行模型、级联调度问题约束。
本申请实施例中,通过DNN模型对异构硬件的选择、DNN模型间的管道、批处理、并行执行以及异构硬件资源约束,确定级联任务调度问题定义,进而后续采用混合整数二次问题(Mixed Integer Quadratic Programming|,MIQP)求解器找到可行解(即调度策略)。
步骤E4:根据所述剖析信息、所述级联任务调度问题定义和所述离线级联任务图模板,生成调度策略。
本申请实施例中,采用混合整数二次问题求解器,对剖析信息、级联任务调度问题定义和离线级联任务图模板进行求解,得到调度策略。进而后续通过将级联任务图和离线级联任务图模板进行匹配的方式,确定互联任务的调度策略,以基于该调度策略将级联任务中的多个DNN任务调度到相应的异构硬件上执行。
进一步地,步骤E3确定级联任务调度问题定义,包括步骤E3-1至步骤E3-5:
步骤E3-1:根据深度学习网络模型执行的异构硬件的信息和深度学习网络模型对异构硬件的利用情况定义深度学习网络模型和异构硬件的配置文件。
本申请实施例中,通过对DNN模型和异构硬件的配置文件进行定义,以将各种DNN任务调度到异构硬件上。并且,为了维护准确性和性能,本申请实施例不修改这些任务中DNN模型的结构,每个DNN任务的开发者需要提供指定关于DNN模型和异构硬件的重要细节的配置文件。具体地,这些配置文件包括DNN模型可能执行的异构硬件的信息,以及每个DNN模型对异构硬件的利用情况。后续对视频帧进行处理时,只需要调用DNN任务并提供其输入数据(即视频帧和响应时间要求)。
步骤E3-2:利用有向无环图定义深度学习网络级联任务图模型。
本申请实施例中,利用有向无环图来表示深度学习网络级联任务图模型,即表示DNN级联任务之间的依赖关系。具体的,边缘设备需要处理RN个连续视频帧,产生N个任务,表示为V = {v1,v2,...,vN},这些任务属于L(L≤N)种类型,则使用有向无环图G=(V,E)来表示DNN级联任务之间的依赖关系,其中V表示DNN任务集合,E表示这些DNN任务之间依赖关系的边集。如果存在任何两个DNN任务vi和DNN任务vk之间的边ei,k,则意味着DNN任务vi的输出作为DNN任务vk的输入,表示DNN任务vk在DNN任务vi完成其任务之前无法开始执行。
步骤E3-3:根据单个深度学习网络任务的处理时间、批处理大小、以及向现有批处理执行中添加新深度学习网络任务输入时所增加的额外延迟,确定批处理执行延迟。
本申请实施例中,使用线性模型来描述批处理执行的延迟,具体地,批处理执行延迟表示为:
,
其中,batch_lat( ) 表示批处理执行延迟,b表示批处理大小,a表示向现有批处理执行中添加新任务输入时所增加的额外延迟,lat_single表示单个DNN任务的处理时间。由于DNN任务和异构硬件的多样性,a是一个二维矩阵,其维度等于DNN任务类型的数量和异构硬件类型的数量,通过利用剖析结果进行线性拟合,可以离线确定这些参数。
步骤E3-4:根据深度学习网络任务在异构硬件上的执行顺序、批处理和并行模式,确定异构硬件执行模型。
本申请实施例中,在边缘设备中存在M种类型的异构硬件,则异构硬件表示为R ={r1, r2, ··· , rM},每个异构硬件rj∈R都具有其独特的处理能力,用Ej表示。DNN任务vi可以灵活地在任何异构硬件rj∈Ri上以顺序、批处理或并行等各种模式执行。因此,可以根据DNN任务在异构硬件上的执行顺序、批处理和并行模式,确定异构硬件执行模型。
并且,DNN任务执行只能在任何给定时间内的一个异构硬件上进行,无论执行模式如何,任务都不能被中断或抢占,并且必须在延迟要求LatRQmax内完成执行。当多个DNN任务并行执行时,全部异构硬件利用率不能超过异构硬件的容量。
步骤E3-5:根据深度学习网络任务间的依赖关系、批处理、并行执行和资源约束,确定级联调度问题约束。
本申请实施例中,考虑DNN任务到异构硬件的选择、批处理执行和并行执行,引入了五个变量,即任务-硬件控制变量xi,j、批处理执行控制变量Bi,k,j、并行执行控制变量PLi,k,j、任务开始时间变量ti、任务执行时间中间变量Ti,j,并基于这五个变量确定级联调度问题约束。其中,任务-硬件控制变量xi,j是指DNN任务vi∈V是否在异构硬件rj∈R上执行;批处理执行控制变量Bi,k,j是指DNN任务vi,vk∈V是否在异构硬件rj∈R上进行批处理;并行执行控制变量PLi,k,j是指DNN任务vi, vk∈V是否在异构硬件rj∈R上并行执行,任务开始时间变量ti是指DNN任务i的开始时间;任务执行时间中间变量Ti,j是指当在第j种类型异构硬件上运行第i个DNN任务时的延迟,如果第i个DNN任务单独执行,则在第j种类型异构硬件上运行第i个DNN任务时的延迟等于Li,j,当第i个DNN任务进行批处理时,则在第j种类型异构硬件上运行第i个DNN任务时的延迟表示为。
具体地,所述级联调度问题约束,包括以下7种约束:
(1)深度学习网络任务到异构硬件的选择约束,用于约束不允许多个异构硬件合作完成单个深度学习网络任务推断。
也就是说,任何DNN任务应该在一个支持的异构硬件上执行,不允许多个异构硬件合作完成单个DNN任务推断。
(2)级联依赖性约束,用于约束具有级联依赖关系的前置深度学习网络任务和后置深度学习网络任务的执行顺序,所述执行顺序为:所述后置深度学习网络任务在所述前置深度学习网络任务执行完的情况下执行。
也就是说,对于具有依赖关系的两个DNN级联任务,任何DNN任务只有在所有前置DNN任务完成后才能开始执行,具体可以表达为对于任何边<i, k>∈E,如果第i个DNN任务vi完成,则第k个DNN任务vk可以开始。
(3)执行不可打断约束,用于约束在同一个异构硬件上,当前深度学习网络任务执行完之后才能执行下一个深度学习网络任务。
也就是说,如果第i个DNN任务vi和第k个DNN任务vk在同一个异构硬件j上按顺序执行,并且vi执行时间比vk早,则vk必须等待vi完成后才能开始执行。
(4)并行执行时间约束,用于约束并行执行的深度学习网络任务的第一开始执行时间差,所述第一开始执行时间差小于所述并行执行的深度学习网络任务的执行时间。
也就是说,并行执行的DNN任务的执行时间必须有重叠,在同一异构硬件j上执行的第i个DNN任务vi和第k个DNN任务vk,如果并行执行,它们开始执行时间差必须小于等于它们的执行时间。
(5)批处理执行时间约束,用于约束批处理的深度学习网络任务的第二开始执行时间差,所述第二开始执行时间差等于0。
也就是说,批处理的DNN任务必须同时开始,第i个DNN任务vi和第k个DNN任务vk在异构硬件j上执行并被批处理,它们的开始时间差必须为零。
(6)任务完成实时性约束,用于约束一个视频帧中的所有深度学习网络任务的执行时间小于用户响应时间要求。
也就是说,在一个视频帧中的所有DNN任务必须在用户需求的响应时间要求内完成,以确保实时响应。
(7)异构硬件允许任务并行运行上限约束,用于约束多个并行执行的深度学习网络任务的累计异构硬件利用率不超过异构硬件的容量。
也就是说,在异构硬件j上并行执行的DNN任务的累积利用率,不能超过异构硬件j的容量。
在本申请实施例中,获取响应时间要求,以及,获取待处理的视频帧;预测视频帧对应的级联任务图,所述级联任务图表征按照顺序执行的多个深度学习网络任务,在级联任务图中一个深度学习网络任务的输出作为另一个深度学习网络任务的输入;根据响应时间要求,将级联任务图与离线级联任务图模板进行匹配;在级联任务图与离线级联任务图模板至少部分匹配的情况下,按照匹配的离线级联任务图模板对应的调度策略,将级联任务图中的多个深度学习网络任务调度到异构硬件上执行。通过将级联任务图中的多个深度学习网络任务调度到异构硬件执行,以充分利用边缘设备上异构硬件的计算能力,实现级联任务的高吞吐量。并且,通过将视频帧对应的级联任务图与离线级联任务图模板匹配的方式确定调度策略,而不是根据级联任务图在线生成调度策略,提高了级联任务的调度效率。如此,优化了级联任务场景下的多个深度学习网络任务的执行,实现级联任务的高吞吐量和高效率调度。
本申请实施例还提供了一种面向边缘异构硬件的深度学习级联任务调度系统,基于该调度系统实现面向边缘异构硬件的深度学习级联任务调度方法。参照图2所示,图2是本申请实施例提供的一种面向边缘异构硬件的深度学习级联任务调度系统的结构示意图。
具体地,该调度系统包括在线调度模块和离线优化模块,其中,离线优化模板包括剖析模块和策略生成模块,剖析模块用于对深度学习网络模型和异构硬件信息进行剖析,策略生成模块根据剖析信息、级联任务调度问题定义和离线级联任务图模板生成调度策略。在线调度模块包括级联任务图预测模块、状态监控模块和模板匹配模块,级联任务图预测模块根据视频帧预测对应的级联任务图,状态监控模块用于对边缘设备的异构硬件的状态进行监测,进而模板匹配模块基于响应时间要求和异构硬件的状态,将级联任务图和离线级联任务图模板进行匹配,并在级联任务图与离线级联任务图模板至少部分匹配的情况下,按照匹配的离线级联任务图模板对应的调度策略,将级联任务图中的多个深度学习网络任务调度到异构硬件上执行。
本申请实施例还提供了一种面向边缘异构硬件的深度学习级联任务调度装置,参照图3所示,图3是本申请实施例提供的一种面向边缘异构硬件的深度学习级联任务调度装置的结构示意图,所述装置包括:
获取模块310,用于获取响应时间要求,以及,获取待处理的视频帧;
预测模块320,用于预测所述视频帧对应的级联任务图,所述级联任务图表征按照顺序执行的多个深度学习网络任务,在所述级联任务图中一个深度学习网络任务的输出作为另一个深度学习网络任务的输入;
匹配模块330,用于根据所述响应时间要求,将所述级联任务图与离线级联任务图模板进行匹配;
调度模块340,用于在所述级联任务图与离线级联任务图模板至少部分匹配的情况下,按照匹配的离线级联任务图模板对应的调度策略,将所述级联任务图中的多个深度学习网络任务调度到异构硬件上执行。
在一种可选的实施例中,所述视频帧包括多个;所述预测模块包括:
执行模块,用于执行当前视频帧对应的第一个深度学习网络任务;
预测子模块,用于根据所述第一个深度学习网络任务的执行结果,预测新的级联任务图;
第一确定模块,用于根据所述新的级联任务图和当前的级联任务图,确定后续多个视频帧对应的级联任务图。
在一种可选的实施例中,在所述新的级联任务图和所述当前的级联任务图不同的情况下,所述第一确定模块包括:
第一确定子模块,用于确定所述新的级联任务图与所述离线级联任务图模板之间的第一距离,以及,确定所述当前的级联任务图与所述离线级联任务图模板之间的第二距离;
比较模块,用于比较所述第一距离和所述第二距离之间的大小关系;
第二确定子模块,用于将所述第一距离和所述第二距离中较小的一者对应的级联任务图确定为后续多个视频帧对应的级联任务图。
在一种可选的实施例中,所述匹配模块包括:
第一匹配子模块,用于在所述级联任务图与离线级联任务图模板完全匹配的情况下,按照匹配的离线级联任务图模板对应的调度策略,将所述级联任务图中的多个深度学习网络任务调度到异构硬件上执行;
第二匹配子模块,用于在所述级联任务图与离线级联任务图模板部分匹配的情况下,对所述的调度策略进行调整,并按照调整后的调度策略将所述级联任务图中的多个深度学习网络任务调度到异构硬件上执行。
在一种可选的实施例中,所述第二匹配子模块包括:
第三确定模块,用于根据所述级联任务图和所述匹配的离线级联任务图模板的匹配情况,确定匹配深度学习网络任务和不匹配深度学习网络任务,所述不匹配深度学习网络任务包括新增深度学习网络任务和多余深度学习网络任务;
第一调整模块,用于将所述匹配深度学习网络任务的调度位置与所述调度策略中对应的深度学习网络任务的调度位置保持一致;
第二调整模块,用于将所述新增深度学习网络任务的调度位置放置在可用的空闲时间段,并在所述调度策略中删除所述多余深度学习网络任务的调度位置。
在一种可选的实施例中,所述装置包括策略生成模块,用于生成所述离线级联任务图模板对应的调度策略,所述策略生成模块包括:
第四确定模块,用于确定离线级联任务图模板,所述离线级联任务图模板包括离线级联任务图、视频帧数量、多种资源状态和延迟要求;
剖析模块,用于对异构硬件的信息和深度学习网络模型进行剖析,得到深度学习网络任务和异构硬件的剖析信息;
第五确定模块,用于确定级联任务调度问题定义,所述级联任务调度问题包括配置文件、深度学习网络级联任务图模型、批处理推理延迟、异构硬件执行模型、级联调度问题约束;
策略生成子模块,用于根据所述剖析信息、所述级联任务调度问题定义和所述离线级联任务图模板,生成调度策略。
在一种可选的实施例中,所述第五确定模块包括:
第一定义模块,用于根据深度学习网络模型执行的异构硬件的信息和深度学习网络模型对异构硬件的利用情况定义深度学习网络模型和异构硬件的配置文件;
第二定义模块,用于利用有向无环图定义深度学习网络级联任务图模型;
第三确定子模块,用于根据单个深度学习网络任务的处理时间、批处理大小、以及向现有批处理执行中添加新深度学习网络任务输入时所增加的额外延迟,确定批处理执行延迟;
第四确定子模块,用于根据深度学习网络任务在异构硬件上的执行顺序、批处理和并行模式,确定异构硬件执行模型;
第五确定子模块,用于根据深度学习网络任务间的依赖关系、批处理、并行执行和资源约束,确定级联调度问题约束。
在一种可选的实施例中,所述级联调度问题约束,包括:
深度学习网络任务到异构硬件的选择约束,用于约束不允许多个异构硬件合作完成单个深度学习网络任务推断;
级联依赖性约束,用于约束具有级联依赖关系的前置深度学习网络任务和后置深度学习网络任务的执行顺序,所述执行顺序为:所述后置深度学习网络任务在所述前置深度学习网络任务执行完的情况下执行;
执行不可打断约束,用于约束在同一个异构硬件上,当前深度学习网络任务执行完之后才能执行下一个深度学习网络任务;
并行执行时间约束,用于约束并行执行的深度学习网络任务的第一开始执行时间差,所述第一开始执行时间差小于所述并行执行的深度学习网络任务的执行时间;
批处理执行时间约束,用于约束批处理的深度学习网络任务的第二开始执行时间差,所述第二开始执行时间差等于0;
任务完成实时性约束,用于约束一个视频帧中的所有深度学习网络任务的执行时间小于用户响应时间要求;
异构硬件允许任务并行运行上约束,用于约束多个并行执行的深度学习网络任务的累计异构硬件利用率不超过异构硬件的容量。
本申请实施例还提供了一种电子设备,参照图4,图4是本申请实施例提供的一种电子设备的结构示意图。如图4所示,电子设备400包括:存储器410和处理器420,存储器410与处理器420之间通过总线通信连接,存储器410中存储有计算机程序,该计算机程序可在处理器420上运行,进而实现本申请实施例所述的面向边缘异构硬件的深度学习级联任务调度方法的步骤。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本申请实施例是参照根据本申请实施例的方法、装置的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种面向边缘异构硬件的深度学习级联任务调度方法及装置进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种面向边缘异构硬件的深度学习级联任务调度方法,其特征在于,所述方法包括:
获取响应时间要求,以及,获取待处理的视频帧;
预测所述视频帧对应的级联任务图,所述级联任务图表征按照顺序执行的多个深度学习网络任务,在所述级联任务图中一个深度学习网络任务的输出作为另一个深度学习网络任务的输入;
根据所述响应时间要求,将所述级联任务图与离线级联任务图模板进行匹配;
在所述级联任务图与离线级联任务图模板至少部分匹配的情况下,按照匹配的离线级联任务图模板对应的调度策略,将所述级联任务图中的多个深度学习网络任务调度到异构硬件上执行。
2.根据权利要求1所述的面向边缘异构硬件的深度学习级联任务调度方法,其特征在于,所述视频帧包括多个;预测所述视频帧对应的级联任务图,包括:
执行当前视频帧对应的第一个深度学习网络任务;
根据所述第一个深度学习网络任务的执行结果,预测新的级联任务图;
根据所述新的级联任务图和当前的级联任务图,确定后续多个视频帧对应的级联任务图。
3.根据权利要求2所述的面向边缘异构硬件的深度学习级联任务调度方法,其特征在于,在所述新的级联任务图和所述当前的级联任务图不同的情况下,根据所述新的级联任务图和当前的级联任务图,确定后续多个视频帧对应的级联任务图,包括:
确定所述新的级联任务图与所述离线级联任务图模板之间的第一距离,以及,确定所述当前的级联任务图与所述离线级联任务图模板之间的第二距离;
比较所述第一距离和所述第二距离之间的大小关系;
将所述第一距离和所述第二距离中较小的一者对应的级联任务图确定为后续多个视频帧对应的级联任务图。
4.根据权利要求1所述的面向边缘异构硬件的深度学习级联任务调度方法,其特征在于,在所述级联任务图与离线级联任务图模板至少部分匹配的情况下,按照匹配的离线级联任务图模板对应的调度策略,将所述级联任务图中的多个深度学习网络任务调度到异构硬件上执行,包括:
在所述级联任务图与离线级联任务图模板完全匹配的情况下,按照匹配的离线级联任务图模板对应的调度策略,将所述级联任务图中的多个深度学习网络任务调度到异构硬件上执行;
在所述级联任务图与离线级联任务图模板部分匹配的情况下,对所述的调度策略进行调整,并按照调整后的调度策略将所述级联任务图中的多个深度学习网络任务调度到异构硬件上执行。
5.根据权利要求4所述的面向边缘异构硬件的深度学习级联任务调度方法,其特征在于,在所述级联任务图与离线级联任务图模板部分匹配的情况下,对所述的调度策略进行调整,包括:
根据所述级联任务图和所述匹配的离线级联任务图模板的匹配情况,确定匹配深度学习网络任务和不匹配深度学习网络任务,所述不匹配深度学习网络任务包括新增深度学习网络任务和多余深度学习网络任务;
将所述匹配深度学习网络任务的调度位置与所述调度策略中对应的深度学习网络任务的调度位置保持一致;
将所述新增深度学习网络任务的调度位置放置在可用的空闲时间段,并在所述调度策略中删除所述多余深度学习网络任务的调度位置。
6.根据权利要求1所述的面向边缘异构硬件的深度学习级联任务调度方法,其特征在于,所述离线级联任务图模板对应的调度策略是通过以下步骤生成的:
确定离线级联任务图模板,所述离线级联任务图模板包括离线级联任务图、视频帧数量、多种资源状态和延迟要求;
对异构硬件的信息和深度学习网络模型进行剖析,得到深度学习网络任务和异构硬件的剖析信息;
确定级联任务调度问题定义,所述级联任务调度问题包括配置文件、深度学习网络级联任务图模型、批处理推理延迟、异构硬件执行模型、级联调度问题约束;
根据所述剖析信息、所述级联任务调度问题定义和所述离线级联任务图模板,生成调度策略。
7.根据权利要求6所述的面向边缘异构硬件的深度学习级联任务调度方法,其特征在于,确定级联任务调度问题定义,包括:
根据深度学习网络模型执行的异构硬件的信息和深度学习网络模型对异构硬件的利用情况定义深度学习网络模型和异构硬件的配置文件;
利用有向无环图定义深度学习网络级联任务图模型;
根据单个深度学习网络任务的处理时间、批处理大小、以及向现有批处理执行中添加新深度学习网络任务输入时所增加的额外延迟,确定批处理执行延迟;
根据深度学习网络任务在异构硬件上的执行顺序、批处理和并行模式,确定异构硬件执行模型;
根据深度学习网络任务间的依赖关系、批处理、并行执行和资源约束,确定级联调度问题约束。
8.根据权利要求7所述的面向边缘异构硬件的深度学习级联任务调度方法,其特征在于,所述级联调度问题约束,包括:
深度学习网络任务到异构硬件的选择约束,用于约束不允许多个异构硬件合作完成单个深度学习网络任务推断;
级联依赖性约束,用于约束具有级联依赖关系的前置深度学习网络任务和后置深度学习网络任务的执行顺序,所述执行顺序为:所述后置深度学习网络任务在所述前置深度学习网络任务执行完的情况下执行;
执行不可打断约束,用于约束在同一个异构硬件上,当前深度学习网络任务执行完之后才能执行下一个深度学习网络任务;
并行执行时间约束,用于约束并行执行的深度学习网络任务的第一开始执行时间差,所述第一开始执行时间差小于所述并行执行的深度学习网络任务的执行时间;
批处理执行时间约束,用于约束批处理的深度学习网络任务的第二开始执行时间差,所述第二开始执行时间差等于0;
任务完成实时性约束,用于约束一个视频帧中的所有深度学习网络任务的执行时间小于用户响应时间要求;
异构硬件允许任务并行运行上限约束,用于约束多个并行执行的深度学习网络任务的累计异构硬件利用率不超过异构硬件的容量。
9.一种面向边缘异构硬件的深度学习级联任务调度装置,其特征在于,所述装置包括:
获取模块,用于获取响应时间要求,以及,获取待处理的视频帧;
预测模块,用于预测所述视频帧对应的级联任务图,所述级联任务图表征按照顺序执行的多个深度学习网络任务,在所述级联任务图中一个深度学习网络任务的输出作为另一个深度学习网络任务的输入;
匹配模块,用于根据所述响应时间要求,将所述级联任务图与离线级联任务图模板进行匹配;
调度模块,用于在所述级联任务图与离线级联任务图模板至少部分匹配的情况下,按照匹配的离线级联任务图模板对应的调度策略,将所述级联任务图中的多个深度学习网络任务调度到异构硬件上执行。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1-8任一项所述的面向边缘异构硬件的深度学习级联任务调度方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410198709.0A CN117762602B (zh) | 2024-02-22 | 2024-02-22 | 面向边缘异构硬件的深度学习级联任务调度方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410198709.0A CN117762602B (zh) | 2024-02-22 | 2024-02-22 | 面向边缘异构硬件的深度学习级联任务调度方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117762602A true CN117762602A (zh) | 2024-03-26 |
CN117762602B CN117762602B (zh) | 2024-05-07 |
Family
ID=90326139
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410198709.0A Active CN117762602B (zh) | 2024-02-22 | 2024-02-22 | 面向边缘异构硬件的深度学习级联任务调度方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117762602B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111258735A (zh) * | 2020-01-16 | 2020-06-09 | 中国人民解放军国防科技大学 | 一种支持用户QoS感知的深度学习任务调度方法 |
CN111666873A (zh) * | 2020-06-05 | 2020-09-15 | 汪金玲 | 一种基于多任务深度学习网络的训练方法、识别方法及系统 |
US20220327803A1 (en) * | 2021-06-30 | 2022-10-13 | Beijing Baidu Netcom Science Technology Co., Ltd. | Method of recognizing object, electronic device and storage medium |
CN115914237A (zh) * | 2022-12-09 | 2023-04-04 | 中国科学院深圳先进技术研究院 | 一种边缘环境下的深度学习任务调度方法、设备及介质 |
CN116257345A (zh) * | 2023-05-15 | 2023-06-13 | 中国华能集团清洁能源技术研究院有限公司 | 深度学习任务调度方法及装置 |
-
2024
- 2024-02-22 CN CN202410198709.0A patent/CN117762602B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111258735A (zh) * | 2020-01-16 | 2020-06-09 | 中国人民解放军国防科技大学 | 一种支持用户QoS感知的深度学习任务调度方法 |
CN111666873A (zh) * | 2020-06-05 | 2020-09-15 | 汪金玲 | 一种基于多任务深度学习网络的训练方法、识别方法及系统 |
US20220327803A1 (en) * | 2021-06-30 | 2022-10-13 | Beijing Baidu Netcom Science Technology Co., Ltd. | Method of recognizing object, electronic device and storage medium |
CN115914237A (zh) * | 2022-12-09 | 2023-04-04 | 中国科学院深圳先进技术研究院 | 一种边缘环境下的深度学习任务调度方法、设备及介质 |
CN116257345A (zh) * | 2023-05-15 | 2023-06-13 | 中国华能集团清洁能源技术研究院有限公司 | 深度学习任务调度方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN117762602B (zh) | 2024-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Tuli et al. | COSCO: Container orchestration using co-simulation and gradient based optimization for fog computing environments | |
Ma et al. | Weightnet: Revisiting the design space of weight networks | |
CN111626430B (zh) | 一种数据处理方法及相关产品 | |
EP4036803A1 (en) | Neural network model processing method and apparatus, computer device, and storage medium | |
Li et al. | Performance modeling and predictive scheduling for distributed stream data processing | |
Neglia et al. | The role of network topology for distributed machine learning | |
CN111160569A (zh) | 基于机器学习模型的应用开发方法、装置及电子设备 | |
Kristiani et al. | iSEC: An optimized deep learning model for image classification on edge computing | |
CN111126668A (zh) | 基于图卷积网络的Spark作业时间预测方法和装置 | |
US11625583B2 (en) | Quality monitoring and hidden quantization in artificial neural network computations | |
Cheong et al. | SCARL: Attentive reinforcement learning-based scheduling in a multi-resource heterogeneous cluster | |
US20200226458A1 (en) | Optimizing artificial neural network computations based on automatic determination of a batch size | |
CN113902116A (zh) | 一种面向深度学习模型推理批处理优化方法与系统 | |
US20220067495A1 (en) | Intelligent processor, data processing method and storage medium | |
EP3924891A1 (en) | Quality monitoring and hidden quantization in artificial neural network computations | |
CN117762602B (zh) | 面向边缘异构硬件的深度学习级联任务调度方法及装置 | |
CN111177460B (zh) | 提取关键帧的方法及装置 | |
WO2023185825A1 (zh) | 调度方法、第一计算节点、第二计算节点以及调度系统 | |
CN116451585A (zh) | 基于目标检测模型的自适应实时学习任务调度方法 | |
CN109711555A (zh) | 一种预测深度学习模型单轮迭代时间的方法和系统 | |
Tuli et al. | Optimizing the Performance of Fog Computing Environments Using AI and Co-Simulation | |
CN114021733B (zh) | 模型训练优化方法、装置、计算机设备及存储介质 | |
CN113076181B (zh) | 一种数据处理流程优化方法、系统及存储介质 | |
DE112022000723T5 (de) | Verzweigungsvorgang für eine schaltung eines neuronalen prozessors | |
CN113821323A (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 |